hs-bibutils-6.7.0.0/0000755000000000000000000000000000000000000012236 5ustar0000000000000000hs-bibutils-6.7.0.0/ChangeLog.md0000755000000000000000000000121100000000000014405 0ustar0000000000000000# 6.7.0.0 - Import Bibutils 6.7 # 6.6.0.0 - Import Bibutils 6.6. - Expose NBIB output support. # 6.5.0.0 - Import Bibutils 6.5. # 6.4.0.0 - Import Bibutils 6.4. # 6.3.0.1 - Fix MacOS X compilation. # 6.3.0.0 - Update to Bibutils 6.3. - Enable NBIB support. - Expose additional options values. # 6.2.0.1 - This is a patch release fixing MacOS X compilation. - Patched few minor warnings in imported Bibutils source. - Implemented Travis-CI builds through Cabal and Stack. # 6.2 - This release has removed `wordout_dropkey` because the corresponding constant in Bibutils has also been removed. hs-bibutils-6.7.0.0/LICENSE0000644000000000000000000004311300000000000013245 0ustar0000000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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 Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. hs-bibutils-6.7.0.0/README.md0000755000000000000000000000471200000000000013524 0ustar0000000000000000About ----- [hs-bibutils] is library with Haskell bindings to Chris Putnam's [bibutils], a library that interconverts between various bibliography formats using a common MODS-format XML intermediate. [hs-bibutils] can be used with [pandoc-citeproc] to read and use various bibliographic database formats for processing and automatically formatting citations and references according to a [CSL] style. [pandoc-citeproc] adds to [pandoc], the famous [Haskell] text processing tool, a Bibtex like citation and bibliographic formatting and generation facility. [CSL] is an XML language for specifying citation and bibliographic formatting, similar in principle to BibTeX `.bst` files or the binary style files in commercial products like Endnote or Reference Manager. Documentation ------------- The [Haddock] generated documentation is available here: Bug Reports ----------- To submit bug reports you can use the [hs-bibutils] bug tracking system available at the following address: Credits ------- Thanks to [Chris Putnam] for his help. Author ------ Andrea Rossato `andrea.rossato at unitn dot it` Maintainer ---------- Václav Haisman `vhaisman at gmail dot com` Links to Related Projects ---------------- Bibutils : Pandoc : Pandoc-Citeproc : Citeproc-hs: : CSL : Legal ----- This software is released under the GNU GPL. See LICENSE for more details. This is an early, "alpha" release. It carries no warranties of any kind. Copyright © 2008 – 2010 Andrea Rossato [hs-bibutils]: https://github.com/wilx/hs-bibutils [bibutils]: https://sourceforge.net/p/bibutils/home/Bibutils/ [Hackage]: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hs-bibutils [citeproc-hs]: http://istitutocolli.org/repos/citeproc-hs/ [CSL]: http://citationstyles.org/ [pandoc]: http://pandoc.org/ [pandoc-citeproc]: https://github.com/jgm/pandoc-citeproc [Zotero]: http://www.zotero.org [MODS]: http://www.loc.gov/mods/ [Bruce D'Arcus]: http://community.muohio.edu/blogs/darcusb/ [John MacFarlane]: http://johnmacfarlane.net/ [Chris Putnam]: http://www.scripps.edu/~cdputnam/ [Haskell]: http://www.haskell.org/ [Haddock]: http://www.haskell.org/haddock/ hs-bibutils-6.7.0.0/Setup.lhs0000644000000000000000000000011400000000000014042 0ustar0000000000000000#!/usr/bin/env runhaskell > import Distribution.Simple > main = defaultMain hs-bibutils-6.7.0.0/bibutils/0000755000000000000000000000000000000000000014053 5ustar0000000000000000hs-bibutils-6.7.0.0/bibutils/adsout.c0000644000000000000000000004474500000000000015534 0ustar0000000000000000/* * adsout.c * * Copyright (c) Richard Mathar 2007-2018 * Copyright (c) Chris Putnam 2007-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "bibformats.h" static int adsout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static void adsout_writeheader( FILE *outptr, param *p ); void adsout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_ADSABSOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; if ( p->charsetout == BIBL_CHARSET_UNICODE ) { p->utf8out = p->utf8bom = 1; } p->headerf = adsout_writeheader; p->footerf = NULL; p->writef = adsout_write; } enum { TYPE_UNKNOWN = 0, TYPE_GENERIC, TYPE_ARTICLE, TYPE_MAGARTICLE, TYPE_BOOK, TYPE_INBOOK, TYPE_INPROCEEDINGS, TYPE_HEARING, TYPE_BILL, TYPE_CASE, TYPE_NEWSPAPER, TYPE_COMMUNICATION, TYPE_BROADCAST, TYPE_MANUSCRIPT, TYPE_REPORT, TYPE_THESIS, TYPE_MASTERSTHESIS, TYPE_PHDTHESIS, TYPE_DIPLOMATHESIS, TYPE_DOCTORALTHESIS, TYPE_HABILITATIONTHESIS, TYPE_LICENTIATETHESIS, TYPE_PATENT, TYPE_PROGRAM }; typedef struct match_type { char *name; int type; } match_type; static int get_type( fields *in ) { match_type match_genres[] = { { "academic journal", TYPE_ARTICLE }, { "magazine", TYPE_MAGARTICLE }, { "conference publication", TYPE_INPROCEEDINGS }, { "hearing", TYPE_HEARING }, { "Ph.D. thesis", TYPE_PHDTHESIS }, { "Masters thesis", TYPE_MASTERSTHESIS }, { "Diploma thesis", TYPE_DIPLOMATHESIS }, { "Doctoral thesis", TYPE_DOCTORALTHESIS }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS }, { "Licentiate thesis", TYPE_LICENTIATETHESIS }, { "legislation", TYPE_BILL }, { "newspaper", TYPE_NEWSPAPER }, { "communication", TYPE_COMMUNICATION }, { "manuscript", TYPE_MANUSCRIPT }, { "unpublished", TYPE_MANUSCRIPT }, { "report", TYPE_REPORT }, { "technical report", TYPE_REPORT }, { "legal case and case notes", TYPE_CASE }, { "patent", TYPE_PATENT }, }; int nmatch_genres = sizeof( match_genres ) / sizeof( match_genres[0] ); char *tag, *data; int i, j, type = TYPE_UNKNOWN; for ( i=0; in; ++i ) { tag = in->tag[i].data; if ( strcasecmp( tag, "GENRE:MARC" ) && strcasecmp( tag, "GENRE:BIBUTILS" ) && strcasecmp( tag, "GENRE:UNKNOWN" ) ) continue; data = in->data[i].data; for ( j=0; jlevel[i]==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } else if ( !strcasecmp( data, "collection" ) ) { if ( in->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } if ( type!=TYPE_UNKNOWN ) fields_setused( in, i ); } } if ( type==TYPE_UNKNOWN ) { for ( i=0; in; ++i ) { if ( strcasecmp( in->tag[i].data, "RESOURCE" ) ) continue; data = in->data[i].data; if ( !strcasecmp( data, "moving image" ) ) type = TYPE_BROADCAST; else if ( !strcasecmp( data, "software, multimedia" ) ) type = TYPE_PROGRAM; if ( type!=TYPE_UNKNOWN ) fields_setused( in, i ); } } /* default to generic */ if ( type==TYPE_UNKNOWN ) type = TYPE_GENERIC; return type; } static int append_title( fields *in, char *ttl, char *sub, char *adstag, int level, fields *out, int *status ) { str fulltitle, *title, *subtitle, *vol, *iss, *sn, *en, *ar; int fstatus, output = 0; str_init( &fulltitle ); title = fields_findv( in, level, FIELDS_STRP, ttl ); subtitle = fields_findv( in, level, FIELDS_STRP, sub ); if ( str_has_value( title ) ) { output = 1; title_combine( &fulltitle, title, subtitle ); vol = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "VOLUME" ); if ( str_has_value( vol ) ) { str_strcatc( &fulltitle, ", vol. " ); str_strcat( &fulltitle, vol ); } iss = fields_findv_firstof( in, LEVEL_ANY, FIELDS_STRP, "ISSUE", "NUMBER", NULL ); if ( str_has_value( iss ) ) { str_strcatc( &fulltitle, ", no. " ); str_strcat( &fulltitle, iss ); } sn = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "PAGES:START" ); en = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "PAGES:STOP" ); ar = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "ARTICLENUMBER" ); if ( str_has_value( sn ) ) { if ( str_has_value( en ) ) { str_strcatc( &fulltitle, ", pp. " ); } else { str_strcatc( &fulltitle, ", p. " ); } str_strcat( &fulltitle, sn ); } else if ( str_has_value( ar ) ) { str_strcatc( &fulltitle, ", p. " ); str_strcat( &fulltitle, ar ); } if ( str_has_value( en ) ) { str_addchar( &fulltitle, '-' ); str_strcat( &fulltitle, en ); } if ( str_memerr( &fulltitle ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, adstag, str_cstr( &fulltitle ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } out: str_free( &fulltitle ); return output; } static void append_titles( fields *in, int type, fields *out, int *status ) { int added; if ( type==TYPE_ARTICLE || type==TYPE_MAGARTICLE ) { added = append_title( in, "TITLE", "SUBTITLE", "%J", LEVEL_HOST, out, status ); if ( added==0 ) (void) append_title( in, "SHORTTITLE", "SHORTSUBTITLE", "%J", LEVEL_HOST, out, status ); } } static void append_people( fields *in, char *tag1, char *tag2, char *tag3, char *adstag, int level, fields *out, int *status ) { str oneperson, allpeople; vplist_index i; int fstatus; vplist a; str_init( &oneperson ); str_init( &allpeople ); vplist_init( &a ); fields_findv_eachof( in, level, FIELDS_CHRP, &a, tag1, tag2, tag3, NULL ); if ( a.n ) { for ( i=0; idata ); else return 0; } static void append_date( fields *in, char *adstag, int level, fields *out, int *status ) { int month, fstatus; char outstr[1000]; str *year; year = fields_findv_firstof( in, level, FIELDS_STRP, "DATE:YEAR", "PARTDATE:YEAR", NULL ); if ( str_has_value( year ) ) { month = get_month( in, level ); sprintf( outstr, "%02d/%s", month, str_cstr( year ) ); fstatus = fields_add( out, adstag, outstr, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } #include "adsout_journals.c" static void output_4digit_value( char *pos, long long n ) { char buf[6]; n = n % 10000; /* truncate to 0->9999, will fit in buf[6] */ #ifdef WIN32 sprintf( buf, "%I64d", n ); #else sprintf( buf, "%lld", n ); #endif if ( n < 10 ) strncpy( pos+3, buf, 1 ); else if ( n < 100 ) strncpy( pos+2, buf, 2 ); else if ( n < 1000 ) strncpy( pos+1, buf, 3 ); else strncpy( pos, buf, 4 ); } static char initial_ascii( const char *name ) { int b1, b2; if ( isascii( name[0] ) ) return name[0]; b1 = name[0]+256; b2 = name[1]+256; switch( b1 ) { case 0xc3: if ( b2 >= 0x80 && b2 <= 0x86 ) return 'A'; else if ( b2 == 0x87 ) return 'C'; else if ( b2 >= 0x88 && b2 <= 0x8b ) return 'E'; else if ( b2 >= 0x8c && b2 <= 0x8f ) return 'I'; else if ( b2 == 0x90 ) return 'D'; else if ( b2 == 0x91 ) return 'N'; else if ( b2 >= 0x92 && b2 <= 0x98 ) return 'O'; else if ( b2 >= 0x99 && b2 <= 0x9c ) return 'U'; else if ( b2 == 0x9d ) return 'Y'; else if ( b2 == 0x9f ) return 'S'; else if ( b2 >= 0xa0 && b2 <= 0xa6 ) return 'A'; else if ( b2 == 0xa7 ) return 'C'; else if ( b2 >= 0xa8 && b2 <= 0xab ) return 'E'; else if ( b2 >= 0xac && b2 <= 0xaf ) return 'I'; else if ( b2 == 0xb0 ) return 'D'; else if ( b2 == 0xb1 ) return 'N'; else if ( b2 >= 0xb2 && b2 <= 0xb8 ) return 'O'; else if ( b2 >= 0xb9 && b2 <= 0xbc ) return 'U'; else if ( b2 >= 0xbd && b2 <= 0xbf ) return 'Y'; break; case 0xc4: if ( b2 >= 0x80 && b2 <= 0x85 ) return 'A'; else if ( b2 >= 0x86 && b2 <= 0x8d ) return 'C'; else if ( b2 >= 0x8e || b2 <= 0x91 ) return 'D'; else if ( b2 >= 0x92 && b2 <= 0x9b ) return 'E'; else if ( b2 >= 0x9c && b2 <= 0xa3 ) return 'G'; else if ( b2 >= 0xa4 && b2 <= 0xa7 ) return 'H'; else if ( b2 >= 0xa8 && b2 <= 0xb3 ) return 'I'; else if ( b2 >= 0xb4 && b2 <= 0xb5 ) return 'J'; else if ( b2 >= 0xb6 && b2 <= 0xb8 ) return 'K'; else if ( b2 >= 0xb9 && b2 <= 0xbf ) return 'L'; break; case 0xc5: if ( b2 >= 0x80 && b2 <= 0x82 ) return 'L'; else if ( b2 >= 0x83 && b2 <= 0x8b ) return 'N'; else if ( b2 >= 0x8c || b2 <= 0x93 ) return 'O'; else if ( b2 >= 0x94 && b2 <= 0x99 ) return 'R'; else if ( b2 >= 0x9a && b2 <= 0xa1 ) return 'S'; else if ( b2 >= 0xa2 && b2 <= 0xa7 ) return 'T'; else if ( b2 >= 0xa8 && b2 <= 0xb3 ) return 'U'; else if ( b2 >= 0xb4 && b2 <= 0xb5 ) return 'W'; else if ( b2 >= 0xb6 && b2 <= 0xb8 ) return 'Y'; else if ( b2 >= 0xb9 && b2 <= 0xbf ) return 'Z'; break; case 0xc6: if ( b2 >= 0x80 && b2 <= 0x85 ) return 'B'; else if ( b2 >= 0x86 && b2 <= 0x88 ) return 'C'; else if ( b2 >= 0x89 || b2 <= 0x8d ) return 'D'; else if ( b2 >= 0x8e && b2 <= 0x90 ) return 'E'; else if ( b2 >= 0x91 && b2 <= 0x92 ) return 'F'; else if ( b2 >= 0x93 && b2 <= 0x94 ) return 'G'; else if ( b2 == 0x95 ) return 'H'; else if ( b2 >= 0x96 && b2 <= 0x97 ) return 'I'; else if ( b2 >= 0x98 && b2 <= 0x99 ) return 'K'; else if ( b2 >= 0xba && b2 <= 0x9b ) return 'L'; else if ( b2 == 0xbc ) return 'M'; else if ( b2 >= 0x9d && b2 <= 0x9e ) return 'N'; else if ( b2 >= 0x9f && b2 <= 0xa3 ) return 'O'; else if ( b2 >= 0xa4 && b2 <= 0xa5 ) return 'P'; else if ( b2 == 0xa6 ) return 'R'; else if ( b2 >= 0xa7 && b2 <= 0xaa ) return 'S'; else if ( b2 >= 0xab && b2 <= 0xae ) return 'T'; else if ( b2 >= 0xaf && b2 <= 0xb1 ) return 'U'; else if ( b2 == 0xb2 ) return 'V'; else if ( b2 >= 0xb3 && b2 <= 0xb4 ) return 'Y'; else if ( b2 >= 0xb5 && b2 <= 0xbe ) return 'Z'; break; } return '.'; } static char get_firstinitial( fields *in ) { char *name; int n; n = fields_find( in, "AUTHOR", LEVEL_MAIN ); if ( n==FIELDS_NOTFOUND ) n = fields_find( in, "AUTHOR", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { name = fields_value( in, n, FIELDS_CHRP ); return initial_ascii( name ); } else return '\0'; } static int get_journalabbr( fields *in ) { char *jrnl; int n, j; n = fields_find( in, "TITLE", LEVEL_HOST ); if ( n!=FIELDS_NOTFOUND ) { jrnl = fields_value( in, n, FIELDS_CHRP ); for ( j=0; j=10000 ) { ch = 'a' + (page/10000); outstr[13] = ch; } } /** A */ ch = toupper( (unsigned char) get_firstinitial( in ) ); if ( ch!='\0' ) outstr[18] = ch; fstatus = fields_add( out, adstag, outstr, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_easyall( fields *in, char *tag, char *adstag, int level, fields *out, char *prefix, int *status ) { vplist_index i; int fstatus; str output; char *val; vplist a; vplist_init( &a ); if ( prefix ) str_init( &output ); fields_findv_each( in, level, FIELDS_CHRP, &a, tag ); for ( i=0; i0 ) str_strcatc( &allkeys, ", " ); str_strcatc( &allkeys, (char *) vplist_get( &a, i ) ); } fstatus = fields_add( out, adstag, str_cstr( &allkeys ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &allkeys ); vplist_free( &a ); } static void append_urls( fields *in, fields *out, int *status ) { int lstatus; slist types; /* skip DOI as we'll add that separately */ lstatus = slist_init_valuesc( &types, "URL", "PMID", "PMC", "ARXIV", "JSTOR", "MRNUMBER", "FILEATTACH", "FIGATTACH", NULL ); if ( lstatus!=SLIST_OK ) { *status = BIBL_ERR_MEMERR; return; } *status = urls_merge_and_add( in, LEVEL_ANY, out, "%U", LEVEL_MAIN, &types ); slist_free( &types ); } static void append_trailer( fields *out, int *status ) { int fstatus; fstatus = fields_add( out, "%W", "PHY", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } fstatus = fields_add( out, "%G", "AUTHOR", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } static void output( FILE *fp, fields *out ) { char *tag, *value; int i; for ( i=0; in; ++i ) { tag = fields_tag( out, i, FIELDS_CHRP ); value = fields_value( out, i, FIELDS_CHRP ); fprintf( fp, "%s %s\n", tag, value ); } fprintf( fp, "\n" ); fflush( fp ); } static int append_data( fields *in, fields *out ) { int type, status = BIBL_OK; fields_clearused( in ); type = get_type( in ); append_Rtag ( in, "%R", type, out, &status ); append_people ( in, "AUTHOR", "AUTHOR:ASIS", "AUTHOR:CORP", "%A", LEVEL_MAIN, out, &status ); append_people ( in, "EDITOR", "EDITOR:ASIS", "EDITOR:CORP", "%E", LEVEL_ANY, out, &status ); append_easy ( in, "TITLE", "%T", LEVEL_ANY, out, &status ); append_titles ( in, type, out, &status ); append_date ( in, "%D", LEVEL_ANY, out, &status ); append_easy ( in, "VOLUME", "%V", LEVEL_ANY, out, &status ); append_easy ( in, "ISSUE", "%N", LEVEL_ANY, out, &status ); append_easy ( in, "NUMBER", "%N", LEVEL_ANY, out, &status ); append_easy ( in, "LANGUAGE", "%M", LEVEL_ANY, out, &status ); append_easyall( in, "NOTES", "%X", LEVEL_ANY, out, NULL, &status ); append_easy ( in, "ABSTRACT", "%B", LEVEL_ANY, out, &status ); append_keys ( in, "KEYWORD", "%K", LEVEL_ANY, out, &status ); append_urls ( in, out, &status ); append_pages ( in, out, &status ); append_easyall( in, "DOI", "%Y", LEVEL_ANY, out, "DOI:", &status ); append_trailer( out, &status ); return status; } static int adsout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); status = append_data( in, &out ); if ( status==BIBL_OK ) output( fp, &out ); fields_free( &out ); return status; } static void adsout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/adsout.c0000755000000000000000000004474500000000000015537 0ustar0000000000000000/* * adsout.c * * Copyright (c) Richard Mathar 2007-2018 * Copyright (c) Chris Putnam 2007-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "bibformats.h" static int adsout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static void adsout_writeheader( FILE *outptr, param *p ); void adsout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_ADSABSOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; if ( p->charsetout == BIBL_CHARSET_UNICODE ) { p->utf8out = p->utf8bom = 1; } p->headerf = adsout_writeheader; p->footerf = NULL; p->writef = adsout_write; } enum { TYPE_UNKNOWN = 0, TYPE_GENERIC, TYPE_ARTICLE, TYPE_MAGARTICLE, TYPE_BOOK, TYPE_INBOOK, TYPE_INPROCEEDINGS, TYPE_HEARING, TYPE_BILL, TYPE_CASE, TYPE_NEWSPAPER, TYPE_COMMUNICATION, TYPE_BROADCAST, TYPE_MANUSCRIPT, TYPE_REPORT, TYPE_THESIS, TYPE_MASTERSTHESIS, TYPE_PHDTHESIS, TYPE_DIPLOMATHESIS, TYPE_DOCTORALTHESIS, TYPE_HABILITATIONTHESIS, TYPE_LICENTIATETHESIS, TYPE_PATENT, TYPE_PROGRAM }; typedef struct match_type { char *name; int type; } match_type; static int get_type( fields *in ) { match_type match_genres[] = { { "academic journal", TYPE_ARTICLE }, { "magazine", TYPE_MAGARTICLE }, { "conference publication", TYPE_INPROCEEDINGS }, { "hearing", TYPE_HEARING }, { "Ph.D. thesis", TYPE_PHDTHESIS }, { "Masters thesis", TYPE_MASTERSTHESIS }, { "Diploma thesis", TYPE_DIPLOMATHESIS }, { "Doctoral thesis", TYPE_DOCTORALTHESIS }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS }, { "Licentiate thesis", TYPE_LICENTIATETHESIS }, { "legislation", TYPE_BILL }, { "newspaper", TYPE_NEWSPAPER }, { "communication", TYPE_COMMUNICATION }, { "manuscript", TYPE_MANUSCRIPT }, { "unpublished", TYPE_MANUSCRIPT }, { "report", TYPE_REPORT }, { "technical report", TYPE_REPORT }, { "legal case and case notes", TYPE_CASE }, { "patent", TYPE_PATENT }, }; int nmatch_genres = sizeof( match_genres ) / sizeof( match_genres[0] ); char *tag, *data; int i, j, type = TYPE_UNKNOWN; for ( i=0; in; ++i ) { tag = in->tag[i].data; if ( strcasecmp( tag, "GENRE:MARC" ) && strcasecmp( tag, "GENRE:BIBUTILS" ) && strcasecmp( tag, "GENRE:UNKNOWN" ) ) continue; data = in->data[i].data; for ( j=0; jlevel[i]==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } else if ( !strcasecmp( data, "collection" ) ) { if ( in->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } if ( type!=TYPE_UNKNOWN ) fields_setused( in, i ); } } if ( type==TYPE_UNKNOWN ) { for ( i=0; in; ++i ) { if ( strcasecmp( in->tag[i].data, "RESOURCE" ) ) continue; data = in->data[i].data; if ( !strcasecmp( data, "moving image" ) ) type = TYPE_BROADCAST; else if ( !strcasecmp( data, "software, multimedia" ) ) type = TYPE_PROGRAM; if ( type!=TYPE_UNKNOWN ) fields_setused( in, i ); } } /* default to generic */ if ( type==TYPE_UNKNOWN ) type = TYPE_GENERIC; return type; } static int append_title( fields *in, char *ttl, char *sub, char *adstag, int level, fields *out, int *status ) { str fulltitle, *title, *subtitle, *vol, *iss, *sn, *en, *ar; int fstatus, output = 0; str_init( &fulltitle ); title = fields_findv( in, level, FIELDS_STRP, ttl ); subtitle = fields_findv( in, level, FIELDS_STRP, sub ); if ( str_has_value( title ) ) { output = 1; title_combine( &fulltitle, title, subtitle ); vol = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "VOLUME" ); if ( str_has_value( vol ) ) { str_strcatc( &fulltitle, ", vol. " ); str_strcat( &fulltitle, vol ); } iss = fields_findv_firstof( in, LEVEL_ANY, FIELDS_STRP, "ISSUE", "NUMBER", NULL ); if ( str_has_value( iss ) ) { str_strcatc( &fulltitle, ", no. " ); str_strcat( &fulltitle, iss ); } sn = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "PAGES:START" ); en = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "PAGES:STOP" ); ar = fields_findv( in, LEVEL_ANY, FIELDS_STRP, "ARTICLENUMBER" ); if ( str_has_value( sn ) ) { if ( str_has_value( en ) ) { str_strcatc( &fulltitle, ", pp. " ); } else { str_strcatc( &fulltitle, ", p. " ); } str_strcat( &fulltitle, sn ); } else if ( str_has_value( ar ) ) { str_strcatc( &fulltitle, ", p. " ); str_strcat( &fulltitle, ar ); } if ( str_has_value( en ) ) { str_addchar( &fulltitle, '-' ); str_strcat( &fulltitle, en ); } if ( str_memerr( &fulltitle ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, adstag, str_cstr( &fulltitle ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } out: str_free( &fulltitle ); return output; } static void append_titles( fields *in, int type, fields *out, int *status ) { int added; if ( type==TYPE_ARTICLE || type==TYPE_MAGARTICLE ) { added = append_title( in, "TITLE", "SUBTITLE", "%J", LEVEL_HOST, out, status ); if ( added==0 ) (void) append_title( in, "SHORTTITLE", "SHORTSUBTITLE", "%J", LEVEL_HOST, out, status ); } } static void append_people( fields *in, char *tag1, char *tag2, char *tag3, char *adstag, int level, fields *out, int *status ) { str oneperson, allpeople; vplist_index i; int fstatus; vplist a; str_init( &oneperson ); str_init( &allpeople ); vplist_init( &a ); fields_findv_eachof( in, level, FIELDS_CHRP, &a, tag1, tag2, tag3, NULL ); if ( a.n ) { for ( i=0; idata ); else return 0; } static void append_date( fields *in, char *adstag, int level, fields *out, int *status ) { int month, fstatus; char outstr[1000]; str *year; year = fields_findv_firstof( in, level, FIELDS_STRP, "DATE:YEAR", "PARTDATE:YEAR", NULL ); if ( str_has_value( year ) ) { month = get_month( in, level ); sprintf( outstr, "%02d/%s", month, str_cstr( year ) ); fstatus = fields_add( out, adstag, outstr, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } #include "adsout_journals.c" static void output_4digit_value( char *pos, long long n ) { char buf[6]; n = n % 10000; /* truncate to 0->9999, will fit in buf[6] */ #ifdef WIN32 sprintf( buf, "%I64d", n ); #else sprintf( buf, "%lld", n ); #endif if ( n < 10 ) strncpy( pos+3, buf, 1 ); else if ( n < 100 ) strncpy( pos+2, buf, 2 ); else if ( n < 1000 ) strncpy( pos+1, buf, 3 ); else strncpy( pos, buf, 4 ); } static char initial_ascii( const char *name ) { int b1, b2; if ( isascii( name[0] ) ) return name[0]; b1 = name[0]+256; b2 = name[1]+256; switch( b1 ) { case 0xc3: if ( b2 >= 0x80 && b2 <= 0x86 ) return 'A'; else if ( b2 == 0x87 ) return 'C'; else if ( b2 >= 0x88 && b2 <= 0x8b ) return 'E'; else if ( b2 >= 0x8c && b2 <= 0x8f ) return 'I'; else if ( b2 == 0x90 ) return 'D'; else if ( b2 == 0x91 ) return 'N'; else if ( b2 >= 0x92 && b2 <= 0x98 ) return 'O'; else if ( b2 >= 0x99 && b2 <= 0x9c ) return 'U'; else if ( b2 == 0x9d ) return 'Y'; else if ( b2 == 0x9f ) return 'S'; else if ( b2 >= 0xa0 && b2 <= 0xa6 ) return 'A'; else if ( b2 == 0xa7 ) return 'C'; else if ( b2 >= 0xa8 && b2 <= 0xab ) return 'E'; else if ( b2 >= 0xac && b2 <= 0xaf ) return 'I'; else if ( b2 == 0xb0 ) return 'D'; else if ( b2 == 0xb1 ) return 'N'; else if ( b2 >= 0xb2 && b2 <= 0xb8 ) return 'O'; else if ( b2 >= 0xb9 && b2 <= 0xbc ) return 'U'; else if ( b2 >= 0xbd && b2 <= 0xbf ) return 'Y'; break; case 0xc4: if ( b2 >= 0x80 && b2 <= 0x85 ) return 'A'; else if ( b2 >= 0x86 && b2 <= 0x8d ) return 'C'; else if ( b2 >= 0x8e || b2 <= 0x91 ) return 'D'; else if ( b2 >= 0x92 && b2 <= 0x9b ) return 'E'; else if ( b2 >= 0x9c && b2 <= 0xa3 ) return 'G'; else if ( b2 >= 0xa4 && b2 <= 0xa7 ) return 'H'; else if ( b2 >= 0xa8 && b2 <= 0xb3 ) return 'I'; else if ( b2 >= 0xb4 && b2 <= 0xb5 ) return 'J'; else if ( b2 >= 0xb6 && b2 <= 0xb8 ) return 'K'; else if ( b2 >= 0xb9 && b2 <= 0xbf ) return 'L'; break; case 0xc5: if ( b2 >= 0x80 && b2 <= 0x82 ) return 'L'; else if ( b2 >= 0x83 && b2 <= 0x8b ) return 'N'; else if ( b2 >= 0x8c || b2 <= 0x93 ) return 'O'; else if ( b2 >= 0x94 && b2 <= 0x99 ) return 'R'; else if ( b2 >= 0x9a && b2 <= 0xa1 ) return 'S'; else if ( b2 >= 0xa2 && b2 <= 0xa7 ) return 'T'; else if ( b2 >= 0xa8 && b2 <= 0xb3 ) return 'U'; else if ( b2 >= 0xb4 && b2 <= 0xb5 ) return 'W'; else if ( b2 >= 0xb6 && b2 <= 0xb8 ) return 'Y'; else if ( b2 >= 0xb9 && b2 <= 0xbf ) return 'Z'; break; case 0xc6: if ( b2 >= 0x80 && b2 <= 0x85 ) return 'B'; else if ( b2 >= 0x86 && b2 <= 0x88 ) return 'C'; else if ( b2 >= 0x89 || b2 <= 0x8d ) return 'D'; else if ( b2 >= 0x8e && b2 <= 0x90 ) return 'E'; else if ( b2 >= 0x91 && b2 <= 0x92 ) return 'F'; else if ( b2 >= 0x93 && b2 <= 0x94 ) return 'G'; else if ( b2 == 0x95 ) return 'H'; else if ( b2 >= 0x96 && b2 <= 0x97 ) return 'I'; else if ( b2 >= 0x98 && b2 <= 0x99 ) return 'K'; else if ( b2 >= 0xba && b2 <= 0x9b ) return 'L'; else if ( b2 == 0xbc ) return 'M'; else if ( b2 >= 0x9d && b2 <= 0x9e ) return 'N'; else if ( b2 >= 0x9f && b2 <= 0xa3 ) return 'O'; else if ( b2 >= 0xa4 && b2 <= 0xa5 ) return 'P'; else if ( b2 == 0xa6 ) return 'R'; else if ( b2 >= 0xa7 && b2 <= 0xaa ) return 'S'; else if ( b2 >= 0xab && b2 <= 0xae ) return 'T'; else if ( b2 >= 0xaf && b2 <= 0xb1 ) return 'U'; else if ( b2 == 0xb2 ) return 'V'; else if ( b2 >= 0xb3 && b2 <= 0xb4 ) return 'Y'; else if ( b2 >= 0xb5 && b2 <= 0xbe ) return 'Z'; break; } return '.'; } static char get_firstinitial( fields *in ) { char *name; int n; n = fields_find( in, "AUTHOR", LEVEL_MAIN ); if ( n==FIELDS_NOTFOUND ) n = fields_find( in, "AUTHOR", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { name = fields_value( in, n, FIELDS_CHRP ); return initial_ascii( name ); } else return '\0'; } static int get_journalabbr( fields *in ) { char *jrnl; int n, j; n = fields_find( in, "TITLE", LEVEL_HOST ); if ( n!=FIELDS_NOTFOUND ) { jrnl = fields_value( in, n, FIELDS_CHRP ); for ( j=0; j=10000 ) { ch = 'a' + (page/10000); outstr[13] = ch; } } /** A */ ch = toupper( (unsigned char) get_firstinitial( in ) ); if ( ch!='\0' ) outstr[18] = ch; fstatus = fields_add( out, adstag, outstr, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_easyall( fields *in, char *tag, char *adstag, int level, fields *out, char *prefix, int *status ) { vplist_index i; int fstatus; str output; char *val; vplist a; vplist_init( &a ); if ( prefix ) str_init( &output ); fields_findv_each( in, level, FIELDS_CHRP, &a, tag ); for ( i=0; i0 ) str_strcatc( &allkeys, ", " ); str_strcatc( &allkeys, (char *) vplist_get( &a, i ) ); } fstatus = fields_add( out, adstag, str_cstr( &allkeys ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &allkeys ); vplist_free( &a ); } static void append_urls( fields *in, fields *out, int *status ) { int lstatus; slist types; /* skip DOI as we'll add that separately */ lstatus = slist_init_valuesc( &types, "URL", "PMID", "PMC", "ARXIV", "JSTOR", "MRNUMBER", "FILEATTACH", "FIGATTACH", NULL ); if ( lstatus!=SLIST_OK ) { *status = BIBL_ERR_MEMERR; return; } *status = urls_merge_and_add( in, LEVEL_ANY, out, "%U", LEVEL_MAIN, &types ); slist_free( &types ); } static void append_trailer( fields *out, int *status ) { int fstatus; fstatus = fields_add( out, "%W", "PHY", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } fstatus = fields_add( out, "%G", "AUTHOR", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } static void output( FILE *fp, fields *out ) { char *tag, *value; int i; for ( i=0; in; ++i ) { tag = fields_tag( out, i, FIELDS_CHRP ); value = fields_value( out, i, FIELDS_CHRP ); fprintf( fp, "%s %s\n", tag, value ); } fprintf( fp, "\n" ); fflush( fp ); } static int append_data( fields *in, fields *out ) { int type, status = BIBL_OK; fields_clearused( in ); type = get_type( in ); append_Rtag ( in, "%R", type, out, &status ); append_people ( in, "AUTHOR", "AUTHOR:ASIS", "AUTHOR:CORP", "%A", LEVEL_MAIN, out, &status ); append_people ( in, "EDITOR", "EDITOR:ASIS", "EDITOR:CORP", "%E", LEVEL_ANY, out, &status ); append_easy ( in, "TITLE", "%T", LEVEL_ANY, out, &status ); append_titles ( in, type, out, &status ); append_date ( in, "%D", LEVEL_ANY, out, &status ); append_easy ( in, "VOLUME", "%V", LEVEL_ANY, out, &status ); append_easy ( in, "ISSUE", "%N", LEVEL_ANY, out, &status ); append_easy ( in, "NUMBER", "%N", LEVEL_ANY, out, &status ); append_easy ( in, "LANGUAGE", "%M", LEVEL_ANY, out, &status ); append_easyall( in, "NOTES", "%X", LEVEL_ANY, out, NULL, &status ); append_easy ( in, "ABSTRACT", "%B", LEVEL_ANY, out, &status ); append_keys ( in, "KEYWORD", "%K", LEVEL_ANY, out, &status ); append_urls ( in, out, &status ); append_pages ( in, out, &status ); append_easyall( in, "DOI", "%Y", LEVEL_ANY, out, "DOI:", &status ); append_trailer( out, &status ); return status; } static int adsout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); status = append_data( in, &out ); if ( status==BIBL_OK ) output( fp, &out ); fields_free( &out ); return status; } static void adsout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/adsout_journals.c0000644000000000000000000063257700000000000017457 0ustar0000000000000000/* http://adsabs.harvard.edu/abs_doc/journals1.html * download URL source then parse with * fgrep setfields journals1.html | awk -F ';' '{printf "%s\n",$2}' * | cut -c 7-12,24- | sed 's/"//g' | awk '{printf "\"%s\",\n",$0}' * | sort -k 2 * */ static const char *journals[] = { "TDR.. 3D Research", "AASHS AAS Hist. Ser.", "AASPB AAS Photo Bulletin", "AAN.. AAVSO Alert Notice", "AAVSC AAVSO Circular", "AAVSN AAVSO Newsletter", "AAVSB AAVSO Solar Bulletin", "AbaOB Abastumanskaia Astrofizicheskaia Observatoriia Byulleten", "AbbOO Abbadia Observatory Observations", "AADDR Abhandlungen Akad. Wiss. DDR", "AAGot Abhandlungen Akad. Wiss. Göttingen", "ABWG. Abh. Braunschweigische Wissenschaftliche Ges.", "AbhP. Abh. der Preuß. Akademie der Wissenschaften Jahrg", "AbhKP Abh. Konigl. Preuss. Akad. Wissenschaften Jahre 1906,92, Berlin,1907", "AbhBr Abh. naturwiss. Verein Bremen", "AbApA Abstract and Applied Analysis", "ASFAS Academia Scientiarum Fennica Annales Series Physica", "AOIJ. Academic Open Internet Journal", "CR2.. Academie des Sciences Comptes Rendus Serie Mecanique Physique Chimie Sciences de la Terre et de l Univers", "CRAS. Academie des Sciences Paris Comptes Rendus", "CRASB Academie des Sciences Paris Comptes Rendus Serie B Sciences Physiques", "CRASG Academie des Sciences Paris Comptes Rendus Serie Generale La Vie des Sciences", "CRASP Academie des Sciences Paris Comptes Rendus Serie Physique Astrophysique", "CRASM Academie des Sciences Paris Comptes Rendus Serie Sciences Mathematiques", "CRASA Academie des Sciences Paris Comptes Rendus Vie Academique Semester Supplement", "MeARB Academie Royale de Belgique Classe des Sciences Memoires", "ASSAB Academie Serbe des Sciences et des Arts Bulletin Classe des Sciences Techniques", "ASLLR Accademia di Scienze e Lettere Istituto Lombardo Rendiconti Serie della Classe di Scienze Matematiche e Naturali Sezione Scienze Matematiche Fisiche Chimiche e Geologiche", "ANLAM Accademia Nazionale dei Lincei Atti Rendiconti Classe di Matematica e Applicazioni", "ANLAF Accademia Nazionale dei Lincei Atti Rendiconti Classe di Scienze Fisiche e Naturali", "ANLAR Accademia Nazionale dei Lincei Atti Rendiconti Classe di Scienze Fisiche Matematiche e Naturali", "AcChR Accounts Chem. Res.", "AcBu. Acoust. Bull.", "AIH.. Acoustical Imaging and Holography", "APhy. Acoustical Physics", "ASAJ. Acoustical Society of America Journal", "AcouL Acoustics Letters", "AcAcu Acta Acustica", "AcAer Acta Aerodynamica Sinica", "AcAAS Acta Aeronautica et Astronautica Sinica", "AcAM. Acta Applicandae Mathematicae", "AcAri Acta Arithmetica", "AcArm Acta Armamentarii", "AcAau Acta Astronautica", "AcA.. Acta Astronomica", "AcASn Acta Astronomica Sinica", "AcAS. Acta Astronomica Supplementa", "AcApS Acta Astrophysica Sinica", "AcAuS Acta Automatica Sinica", "AcBAS Acta Biochimica and Biophysica Academiae Scientarium Hungarica", "AcBBH Acta Biochimica et Biophysica Hungarica", "AcBBS Acta Biochimica et Biophysica Sinica", "AcBio Acta Biotheoretica", "AcCS. Acta Chemica Scandinavica Series A", "ACIP. Acta Cienc. Indica Phys.", "AcC.. Acta Cosmologica", "AcCrA Acta Crystallographica Section A", "AcCrB Acta Crystallographica Section B", "AcCrC Acta Crystallographica Section C", "AcCrD Acta Crystallographica Section D", "AcElc Acta Electrochimica", "AcEle Acta Electronica", "AcElS Acta Electronica Sinica", "AcESn Acta Electron. Sinica", "AcFre Acta Frequenza", "AcGG. Acta Geod. Geophys.", "AcGeo Acta Geophysica", "AcGeP Acta Geophysica Polonica", "AcGSn Acta Geophys. Sinica", "AcHA. Acta Historica Astronomiae", "AcMCS Acta Materiae Compositae Sinica", "AcMat Acta Materialia", "AcMa. Acta Mathematica", "AcMaH Acta Mathematica Hungarica", "AcMaS Acta Mathematica Sinica", "AcMSw Acta Mathematica Sweden", "AcMec Acta Mechanica", "AcMSn Acta Mechanica Sinica", "AcMSS Acta Mechanica Solida Sinica", "AcMet Acta Metallurgica", "AcMMS Acta Metallurgica et Materialia Supplement", "AcMeS Acta Meteorologica Sinica", "AcNum Acta Numerica", "AcOSi Acta Oceanica Sinica", "AcOdS Acta Odontologica Scandinavica", "AcO.. Acta Oecologica", "AcOpS Acta Optica Sinica", "AcOrS Acta Orthopaedica Scandinavica", "AcPSi Acta Photonica Sinica", "AcPhy Acta Physica", "APASH Acta Physica Academiae Scientiarum Hungaricae", "AcPhA Acta Physica Austriaca", "AcPAS Acta Physica Austriaca Supplement", "AcPhC Acta Physica et Chemica", "AcPhH Acta Physica Hungarica", "APHHI Acta Physica Hungarica Heavy Ion Physics", "APHQE Acta Physica Hungarica Quantum Electronics", "AcPP. Acta Physica Polonica", "AcPPA Acta Physica Polonica A", "AcPPB Acta Physica Polonica B", "AcPSn Acta Physica Sinica", "AcPSl Acta Physica Slovaca", "AcPhS Acta Physiologica Scandinavica", "AcPol Acta Polytechnica", "AcPSc Acta Polytechnica Scandinavica Applied Physics Series", "AcPSP Acta Polytechnica Scandinavica Physics", "AcSSn Acta Seismologica Sinica", "ASSF. Acta Societatis Scientarum Fennicae", "ASSFA Acta Societatis Scientarum Fennicae Series A", "AcTec Acta Technica", "AcUni Acta Universitaria", "AcMPh Acta Universitatis Caroliae. Mathematica et Physica", "AcMPS Acta Universitatis Caroliae. Mathematica et Physica Supplement", "APEC. Active and Passive Electronic Components", "Acu.. Acustica", "AdBeh Adaptive Behaviour", "AdAs. Ad Astra", "ARPM. Adgeziia Rasplavov i Paika Materialov", "Adsor Adsorption", "AdCM. Advanced Ceramic Materials", "AdCoL Advanced Composites Letters", "AMP.. Advanced Materials and Processes", "APM.. Advanced Performance Materials", "ASL.. Advanced Science Letters", "AdSAC Advanced Series in Astrophysics and Cosmology", "AdSMP Advanced Series in Mathematical Physics", "ASDHE Advanced Series on Directions in High Energy Physics", "AdTPh Advanced Texts in Physics", "AdAeS Advances in Aeronautical Sciences", "AdApM Advances in Applied Mathematics", "AdAst Advances in Astronomy", "AASP. Advances in Astronomy and Space Physics", "AdAtS Advances in Atmospheric Sciences", "AdAMP Advances in Atomic and Molecular Physics", "AAMOP Advances in Atomic Molecular and Optical Physics", "AdBMP Advances in Biological and Medical Physics", "AdBio Advances in Biophysics", "AdCP. Advances in Cardiovascular Physics", "AdChP Advances in Chemical Physics", "AdCIS Advances in Colloid and Interface Science", "AdCoM Advances in Computational Mathematics", "AdCMP Advances in Condensed Matter Physics", "AdEPS Advances in Earth and Planetary Sciences", "AdEOA Advances in Earth Oriented Applications and Space Technology", "AEEP. Advances in Electronics and Electron Physics", "AEEPS Advances in Electronics and Electron Physics Supplement", "AdExG Advances in Exploration Geophysics", "AdGDP Advances in Geophysical Data Processing", "AdGR. Advances in Geophysical Research", "AdGeo Advances in Geophysics", "AdGeS Advances in Geophysics Supplement", "AdG.. Advances in Geosciences", "AdHEP Advances in High Energy Physics", "ADIEP Advances in Imaging and Electron Physics", "AdMRe Advances in Magnetic Resonance", "AdMPC Advances in Materials Physics and Chemistry", "AdMS. Advances in Materials Science", "AdMSE Advances in Materials Science and Engineering", "AdMaP Advances in Mathematical Physics", "AdMat Advances in Mathematics", "AdMPS Advances in Mechanics and Physics of Surfaces", "AdMUM Advances in Mechanics Uspekhi Mekhaniki", "AdMet Advances in Meteorology", "AdNOp Advances in Nonlinear Optics", "AdNuP Advances in Nuclear Physics", "AdPhG Advances in Physical Geochemistry", "AdPhy Advances in Physics", "AdPlP Advances in Plasma Physics", "AdPPR Advances in Plasma Physics Research", "AdPoS Advances in Polymer Science", "AdQC. Advances in Quantum Chemistry", "AdRS. Advances in Radio Science", "AdSR. Advances in Science and Research", "AdSSP Advances in Solid State Physics", "AdSpR Advances in Space Research", "AdAnS Advances in the Astronautical Sciences", "AdTAM Advances in Theoretical and Applied Mechanics", "AdTMP Advances in Theoretical and Mathematical Physics", "AdThP Advances in Theoretical Physics", "AdWR. Advances in Water Resources", "AAMS. Adv. Appl. Mech. Suppl.", "ATTM. AEG Telefunken Technische Mitteilungen", "AeoRe Aeolian Research", "Aekv. Aerodinamika kanalov i ventiliatorov", "AeRaG Aerodinamika Razrezhennykh Gazov", "AerTe Aerojet Technology", "AeIBu Aerokosmicheski Izsledvaniia B lgariia", "AeJ.. Aeronautical Journal", "AeQ.. Aeronautical Quarterly", "AeSIJ Aeronautical Society India Journal", "AerST Aerosol Science Technology", "AeAm. Aerospace America", "AeCh. Aerospace China", "AeCM. Aerospace Composites and Materials", "AeDy. Aerospace Dynamics", "AeEn. Aerospace Engineering", "AeMat Aerospace Materials", "AeMed Aerospace Medicine", "ARBl. Aerospace Research in Bulgaria", "AeTJa Aerospace Technology Japan", "Aero. Aerospace UK", "AFGL. AFGL-TR-0208 Environemental Research papers", "AfrSk African Skies", "AGUFM AGU Fall Meeting Abstracts", "AGUSM AGU Spring Meeting Abstracts", "AIAAJ AIAA Journal", "AIASJ AIAA Student Journal", "AIChE AIChE Journal", "EDAM. AI EDAM", "AIHAJ AIHA Journal", "AIPA. AIP Advances", "AirSp Air and Space", "AirE. Aircraft Engineering", "AirCo Air et Cosmos", "AFMa. Air Force Magazine", "AiInt Air International", "APCAJ Air Pollution Control Association Journal", "AkAtP Akademia Athenon Praktika", "DoArm Akademiia Nauk Armianskoi SSR Doklady", "DoAze Akademiia Nauk Azerbaidzhanskoi SSR Doklady", "IzAze Akademiia Nauk Azerbaidzhanskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh i Matematicheskikh Nauk", "IFBel Akademiia Nauk Belorusskoi SSR Institut Fiziki Nauchnaia Sessiia Minsk Belorussian SSR Zhurnal Prikladnoi Spektroskopii", "DoBel Akademiia Nauk BSSR Doklady", "SoGru Akademiia Nauk Gruzii Soobshcheniia", "VeKaz Akademiia Nauk Kazakhskoi SSR Vestnik", "IzLat Akademiia Nauk Latviiskoi SSR Izvestiia Seriia Fizicheskikh i Tekhnicheskikh Nauk", "IzMol Akademiia Nauk Moldavskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh i Matematicheskikh Nauk", "DoSSR Akademiia Nauk SSSR Doklady", "FizAO Akademiia Nauk SSSR Fizika Atmosfery i Okeana", "InSSR Akademiia Nauk SSSR Investiia Mekhanika Zhidkosti i Gaza", "IzFZ. Akademiia Nauk SSSR, Izvestiia, Fizika Zemli", "IzSSR Akademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "MeSSR Akademiia Nauk SSSR Mekhanika Zhidkosti i Gaza", "FiMos Akademiia Nauk SSSR Otdelenie Obshchei Fiziki i Astronomii Nauchnaia Sessiia Moscow USSR Uspekhi Fizicheskikh Nauk", "IzSib Akademiia Nauk SSSR Sibirskoe Otdelenie Izvestiia", "SiSSR Akademiia Nauk SSSR Sibirskoe Otdelenie Izvestiia Seriia Tekhnicheskie Nauki", "KzSib Akademiia Nauk SSSR Sibirskoi Otdelenie Izvestiia Seriia Tekhnicheskikh Nauk", "VeSSR Akademiia Nauk SSSR Vestnik", "DoTad Akademiia Nauk Tadzhikskoi SSR Doklady", "FiSSR Akademiia Nauk Tadzhikskoi SSR Fiziko Tekhnicheskii Institut Dyushambe Tadzhik SSR Akademiia Nauk Tadzhikskoi SSR Doklady", "ABTad Akademiia Nauk Tadzhikskoi SSR Institut Astrofiziki Biulleten", "IzTur Akademiia Nauk Turkmenskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh Khimicheskikh i Geologicheskikh Nauk", "IzUkr Akademiia Nauk Ukrainian SSSR Izvestiia Seriia Fizicheskaia", "PrUkr Akademiia Nauk Ukrains koi RSR Dopovidi Matematika Prirodoznavstvo Tekhnichni Nauki", "FiUkr Akademiia Nauk Ukrain skoi RSR Dopovidi Seriia Fiziko Matematichni ta Tekhnichni Nauki", "DoUkr Akademiia Nauk Ukrains koi RSR Dopovidi Seriia Fiziko Matematichni ta Tekhnichni Nauki", "ViUkr Akademiia Nauk Ukrains koi RSR Visnik", "MGUkr Akademiia Nauk Ukrainskoi SSR Morskie Gidrofizicheskie Issledovaniia", "DoUzb Akademiia Nauk Uzbekskoi SSR Doklady", "IzUzb Akademiia Nauk Uzbekskoi SSR Izvestiia Seriia Fiziko Matematicheskikh Nauk", "VeNav Akademiia Navuk BSSR Vestsi Seryia Fizika Tekhnichnykh Navuk", "AkZh. Akusticheskii Zhurnal", "AkTek Akustika i Ul trazvukovaia Tekhnika", "AAIzN Alma Ata Izdatel Nauka", "ALMAN ALMA Newsletter", "AlFr. Alta Frequenza", "AFRE. Alta Frequenza Rivista di Elettronica", "Ambio Ambio", "AVSOA American Association of Variable Stars Observers Abstracts", "AVSOM American Association of Variable Stars Observers Monographs", "AVSOQ American Association of Variable Stars Observers Quarterly Reports", "AVSOR American Association of Variable Stars Observers Reports", "ACSB. American Ceramic Society Bulletin", "ACSC. American Ceramic Society Communications", "ACSJ. American Ceramic Society Journal", "AHSJ. American Helicopter Society Journal", "AmJC. American Journal of Cardiology", "AmJM. American Journal of Mathematics", "AmJPh American Journal of Physics", "AmJS. American Journal of Science", "AmJSA American Journal of Science and Arts", "AMSBu American Meteorological Society Bulletin", "AmMin American Mineralogist", "AmSci American Scientist", "ASME. American Society of Mechanical Engineers", "AnCoi Anais do Observatorio Astronomico da Universidade de Coimbra", "AnFis Anales de Fisica", "AICSP Analog Integrated Circuits and Signal Processing", "AnMP. Analysis and Mathematical Physics", "AnBio Analytical Biochemistry", "AnaCh Analytical Chemistry", "AnaIn Analytical Instrumentation", "BSSR. AN BSSR Institut Teplo i Massoobmena Vsesoiuznaia Konferentsiia Teplomassoobmenu Minsk Belorussian SSR Preprint", "AAONw Anglo-Australian Observatory Epping Newsletter", "AAOPr Anglo-Australian Observatory Epping Preprint", "ARIJ. An Interdisciplinary Journal of Physical and Engineering Sciences", "CSMPA Ankara Universite Faculte des Sciences Communications Serie Mathematiques Physique et Astronomie", "AASF. Ann. Acad. Sci. Fennicae", "AnStr Annalen der Kaiserlichen Universitats-Sternwarte in Strassburg", "AnWie Annalen der K.K. Sternwarte Wien", "AnSWi Annalen der K.K. Universitaets-Sternwarte in Wien (Waehring)", "AnMun Annalen der Koeniglichen Sternwarte bei Muenchen", "AnP.. Annalen der Physik", "AnWiD Annalen der Universitaets-Sternwarte Wien, Dritter Folge", "AnMet Annalen Meteorologie", "AnLei Annalen van de Sterrewacht te Leiden", "AnAp. Annales d'Astrophysique", "AnCPh Annales de Chimie et de Physique", "AnG.. Annales de Geophysique", "AFLB. Annales de la Fondation Louis de Broglie", "ASSB. Annales de la Societe Scietifique de Bruxelles", "AnIHP Annales de L'Institut Henri Poincare Section Physique Theorique", "AnTou Annales de l'Observatoire Astron. et Meteo. de Toulouse", "AnAIK Annales de l'Observatoire astronomique de l'Université imériale de Kharkow", "AOTok Annales de l'Observatoire astronomique de Tokyo", "AnZoC Annales de l'Observatoire astronomique de Zô-sè (Chine)", "AnAPM Annales de l'Observatoire d'astronomie physique de Paris, Section d'astrophysique, à Meudon", "AnBes Annales de l'Observatoire de Besancon", "AnBor Annales de l'Observatoire de Bordeaux", "AnNic Annales de l'Observatoire de Nice", "AnPar Annales de l'Observatoire de Paris", "AnPOb Annales de l'Observatoire de Paris. Observations", "AnOSt Annales de l'Observatoire de Strasbourg", "AnRio Annales de l'Observatoire Imperial de Rio de Janeiro", "AnAth Annales de l'Observatoire national d'Athènes", "AnOB. Annales de l'Observatoire Royal de Belgique", "AnOBN Annales de l'Observatoire Royal de Belgique Nouvelle serie", "AnBru Annales de l'Observatoire Royal de Bruxelles", "AnPh. Annales de Physique", "AnPBM Annales de Physique Biologique et Medicale", "AnPCS Annales de Physique Colloque Supplement", "AnTel Annales des Telecommunications", "AnGVP Annales du Bureau des Longitudes, Gauthier-Villars, Paris", "AFChr Annales Francaises de Chronometrie", "AnGeo Annales Geophysicae", "AnGeA Annales Geophysicae Series A Upper Atmosphere and Space Sciences", "AnGeB Annales Geophysicae Series B Terrestrial and Planetary Physics", "AnHP. Annales Henri Poincaré", "AnTec Annales Tectonicae", "AUGGM Annales UMCS, Geographia, Geologia, Mineralogia et Petrographia", "AUSPh Annales UMCS, Sectio AAA: PHYSICA", "AnApS Annals of Applied Statistics", "AGp.. Annals of Geophysics", "AnGla Annals of Glaciology", "AnGAG Annals of Global Analysis Geometry", "AnHar Annals of Harvard College Observatory", "AnMat Annals of Mathematics", "AnMAI Annals of Mathematics and Artificial Intelligence", "AnOR. Annals of Operations Research", "AnPhy Annals of Physics", "AnREE Annals of Research on Engineering Education", "AnCGH Annals of Royal Observatory, Cape of Good Hope", "AnSci Annals of Science", "AnSta Annals of Statistics", "AnSAO Annals of the Astrophysical Observatory of the Smithsonian Institution", "AnBos Annals of the Bosscha Observatory Lembang (Java) Indonesia", "AnCap Annals of the Cape Observatory", "AnDea Annals of the Dearborn Observatory", "AnDud Annals of the Dudley Observatory", "AnISM Annals of the Institute of Statistical Mathematics", "AIQSY Annals of the IQSY", "AnIPS Annals of the Israel Physical Society", "AnLow Annals of the Lowell Observatory", "NYASA Annals of the New York Academy of Sciences", "AnLL. Annals of the Observatory of Lucien Libert", "AnLun Annals of the Observatory of Lund", "AnLuS Annals of the Observatory of Lund Supplement", "AnOLL Annals of the Private Observatory of Lucien Libert", "AnEdi Annals of the Royal Observatory, Edinburgh", "AnSPC Annals of the Solar Physics Observatory Cambridge England", "AnTok Annals of the Tokyo Astronomical Observatory", "AnUCP Annals of the University of Craiova Physics AUC", "AnRev Ann Rev", "AnBSJ Annual Bulletin of the Societe Jersiaise", "YalAR Annual Report of the Astronomer of the Winchester Observatory of Yale College", "ARKod Annual Report of the Kodaikanal Observatory", "MMAAR Annual Report of the Maria Mitchell Association", "ARAOJ Annual Report of the National Astronomical Observatory of Japan", "AnRSI Annual Report of the Smithsonian Institution", "WinAR Annual Report of the Windsor Observatory, New South Wales", "ARAC. Annual Review of Analytical Chemistry", "ARCMP Annual Review of Condensed Matter Physics", "AREPS Annual Review of Earth and Planetary Sciences", "AnRE. Annual Review of Energy", "AnRFM Annual Review of Fluid Mechanics", "ARIST Annual Review of Information Science and Technology", "ARMS. Annual Review of Marine Science", "AnRMS Annual Review of Materials Science", "ARNPS Annual Review of Nuclear and Particle Science", "ARPC. Annual Review of Physical Chemistry", "ARCP. Annual Reviews of Computational Physics", "AnMN. Antarctic Meteorite Newsletter", "AMR.. Antarctic Meteorite Research", "Antk. Antarktika", "Anten Antenny", "AnCan Anticancer Research", "IORA. Anuario publicado pelo Imperial Observatorio do Rio de Janeiro", "IORAS Anuario publicado pelo Imperial Observatorio do Rio de Janeiro Suplemento", "ApAN. Apatity Akademiia Nauk SSSR", "ApKF. Apatity Kol skii Filial AN SSSR", "Apei. Apeiron", "ApMat Aplikace Matematiky, Applied Mathematics", "AppAn Applicable Analysis", "ApMa. Applications of Mathematics", "ApAc. Applied Acoustics", "ApAI. Applied Artificial Intelligence", "ApCM. Applied Composite Materials", "ACESJ Applied Computational Electromagnetics Society Journal", "ApEn. Applied Energy", "ApEnM Applied Environmental Microbiology", "ApGeo Applied Geophysics", "ApMF. Applied Mathematical Finance", "AMat. Applied Mathematics", "ApMM. Applied Mathematics and Mechanics", "ApMaC Applied Mathematics Computation", "ApMaL Applied Mathematics Letters", "ApMaM Applied Mathematics Mechanics English Edition", "ApMaO Applied Mathematics Optimization", "AMM.. Applied Mechanics and Materials", "ApMRv Applied Mechanics Reviews", "ApMic Applied Microbiology", "ApMT. Applied Microgravity Technology", "ApNan Applied Nanoscience", "ApNM. Applied Numerical Mathematics", "ApOpt Applied Optics", "ApPhy Applied Physics", "ApPhA Applied Physics A: Materials Science &", "ApPhB Applied Physics B: Lasers and Optics", "ApPPL Applied Physics B Photophysics Laser Chemistry", "ApPhC Applied Physics Communications", "APExp Applied Physics Express", "ApPhL Applied Physics Letters", "ApPhR Applied Physics Research", "ApScR Applied Scientific Research", "ApSRA Applied Scientific Research Section A", "ApSRB Applied Scientific Research Section B", "ApSpe Applied Spectroscopy", "ApSRv Applied Spectroscopy Reviews", "ApSup Applied Superconductivity", "ApSS. Applied Surface Science", "ApWS. Applied Water Science", "APS.. APS Meeting Abstracts", "ACMFE Aquatic Conservation: Marine and Freshwater Ecosystems", "AJSE. Arabian Journal of Science Engineering", "Arch. Archaeoastronomy", "ArchS Archaeoastronomy Supplement", "Archa Archaeometry", "ASBTV Archenhold-Sternwarte Berlin-Treptow, Vortrage Schr.", "ArApM Archive Applied Mechanics", "AHES. Archive for History of Exact Sciences", "ArRMA Archive for Rational Mechanics and Analysis", "ArElU Archiv Elektronik und Uebertragungstechnik", "AAM.. Archive of Applied Mechanics", "ArApM Archive of Applied Mechanics", "ArBB. Archive of Biochemistry and Biophysics", "ArAco Archives Acoustics", "ArS.. Archives des Sciences", "ArSPN Archives des Sciences Physiques et Naturelles", "AMGBA Archives for Meteorology Geophysics and Bioclimatology Series A Meteorology and Atmopsheric Physics", "AMGBB Archives for Meteorology Geophysics and Bioclimatology Series B Theoretical and Applied Climatology", "AIPBB Archives Internationales de Physiologie de Biochimie et de Biophysique", "ArNSc Archives Neerlandaises des Sciences Exactes et Naturelles", "ArMaN Archiv for Mathematik og Naturvidenskab", "AMGBK Archiv Meteorologie Geophysik und Bioklimatologie Serie B Klimatologie und Umweltmeteorologie Strahlungsforschung", "AMGBS Archiv Meteorologie Geophysik und Bioklimatologie Serie Meteorologie und Geophysik", "ArMeS Archiv of Mechanics, Archiwum Mechaniki Stosowanej", "ArCom Archivum Combustionis", "ArAku Archiwum Akustyki", "ArAuT Archiwum Automatyki i Telemechaniki", "ArBuM Archiwum Budowy Maszyn", "ArEle Archiwum Elektrotechniki", "ArMeS Archiwum Mechaniki Stosowanej", "ArPSp Archiwum Procesow Spalania", "ArTSp Archiwum Termodynamiki i Spalania", "AAAR. Arctic, Antarctic and Alpine Research", "ArA.. Arkiv for Astronomi", "ArM.. Arkiv for Matematik", "ArMAF Arkiv for Matematik, Astronomi och Fysik", "ArmOL Armagh Observatory Leaflet", "ArJPh Armenian Journal of Physics", "ArtSa Artificial Satellites", "astro ArXiv Astrophysics e-prints", "cs... ArXiv Computer Science e-prints", "arXiv ArXiv e-prints", "gr.qc ArXiv General Relativity and Quantum Cosmology eprints", "hepex ArXiv High Energy Physics - Experiment e-prints", "hepla ArXiv High Energy Physics - Lattice e-prints", "hepph ArXiv High Energy Physics - Phenomenology e-prints", "hepth ArXiv High Energy Physics - Theory e-prints", "mathp ArXiv Mathematical Physics e-prints", "math. ArXiv Mathematics e-prints", "nlin. ArXiv Nonlinear Sciences e-prints", "nucle ArXiv Nuclear Experiment e-prints", "nuclt ArXiv Nuclear Theory e-prints", "physicArXiv Physics e-prints", "ASHRA ASHRAE Journal", "AsJPh Asian Journal of Physics", "Aslib Aslib Proceedings: new information perspectives", "ATJEM ASME Transactions Journal Engineering Materials and Technology", "ATJDS ASME Transactions Journal of Dynamic Systems and Measurement Control B", "ATJEl ASME Transactions Journal of Electronic Packaging", "ATJEG ASME Transactions Journal of Engineering Gas Turbines and Power", "ATJEP ASME Transactions Journal of Engineering Power", "ATJFE ASME Transactions Journal of Fluids Engineering", "ATJHT ASME Transactions Journal of Heat Transfer", "ATJLT ASME Transactions Journal of Lubrication Technology", "ATJSE ASME Transactions Journal of Solar Energy and Engineering", "ATJTr ASME Transactions Journal of Tribology", "ATJTu ASME Transactions Journal of Turbomachinery", "ATJVA ASME Transactions Journal of Vibration Acoustics", "ATJAM ASME Transactions Series E Journal of Applied Mechanics", "ATJEP ASME Transactions Series Journal of Engineering Power", "AsAut Assembly Automation", "ATMAB Association Technique Maritime et Aeronautique Bulletin", "ATMAS Association Technique Maritime et Aeronautique Session Paris France ONERA TP", "AVSVB Associazione Veneta Osservatori di Stelle Variabili Bulletin", "Aster Aster", "StNws ASTM Standardization News", "AsBio Astrobiology", "AISAO Astrofizicheskie Issledovaniia Izvestiya Spetsial'noj Astrofizicheskoj Observatorii", "AISof Astrofizicheskie Issledovaniya Sofia", "Afz.. Astrofizika", "AAfz. Astrometriia i Astrofizika", "AsAc. Astronautica Acta", "AsAcS Astronautica Acta Supplement", "AsAer Astronautics Aeronautics", "Asnau Astronautik", "AUBas Astron. Inst. Univ. Basel", "Anews ASTRON Newsletter", "AsUAI Astronomia. La rivista dell' Unione Astrofili Italiani", "Astnm Astronomia UAI", "USNOM Astronomical and Meteorological Observations made at the U.S. Naval Observatory", "ACiCh Astronomical Circular", "ACMan Astronomical Contributions from the University of Manchester", "TamCo Astronomical Contributions from the University of South Florida Tampa", "adass Astronomical Data Analysis Software and Systems", "ADCBu Astronomical Data Center Bulletin", "AstHe Astronomical Herald", "AstLt Astronomical Letters", "ANote Astronomical Notes University of Gothenburg Sweden Section of Astronomy", "USNOA Astronomical Observations made at the U.S. Naval Observatory", "UCLAP Astronomical Papers University of California Los Angeles", "AReg. Astronomical Register", "ASSA. Astronomical Society of South Africa, Cape Centre", "AVest Astronomicheskii Vestnik", "AVISS Astronomicheskii Vestnik Issledovaniia Solnechnoi Sistemy", "AZh.. Astronomicheskii Zhurnal", "ATsir Astronomicheskij Tsirkulyar", "KazOB Astronomicheskoj Observatorii Kazan Byulleten", "AsSch Astronomie in der Schule", "AAAN. Astronomische Abhandlungen als Erganzungshefte zu den Astronomische Nachrichten", "AAHam Astronomische Abhandlungen der Hamburger Sternwarte", "ABMun Astronomische Beobachtungen angestellt auf der K. Sternwarte zu Bogenhausen bei Muenchen", "ABSBe Astronomische Beobachtungen auf der Koniglichen Sternwarte zu Berlin", "ABKie Astronomische Beobachtungen auf der Sternwarte der Koeniglichen Christian-Albrechts-Universitaet zu Kiel", "MiZur Astronomische Mitteilungen der Eidgenössischen Sternwarte Zurich", "MiBre Astronomische Mitteilungen der Koeniglichen Universitaets-Sternwarte zu Breslau", "MiGoe Astronomische Mitteilungen der Universitaets-Sternwarte zu Goettingen", "AN... Astronomische Nachrichten", "ANS.. Astronomische Nachrichten Supplement", "MitSZ Astronomischen Mitteilungen Eidgen. Sternwarte Zurich", "AJB.. Astronomischer Jahresbericht", "MiARI Astronomisches Rechen-Institut Heidelberg Mitteilungen Serie A", "MiARB Astronomisches Rechen-Institut Heidelberg Mitteilungen Serie B", "ATi.. Astronomisk Tidsskrift", "Ast.. Astronomy", "Astro Astronomy", "AstAp Astronomy and Astro-Physics (formerly The Sidereal Messenger)", "ADIL. Astronomy Data Image Library", "AEdRv Astronomy Education Review", "AExpr Astronomy Express", "AstL. Astronomy Letters", "AsNow Astronomy Now", "AstQ. Astronomy Quarterly", "ARep. Astronomy Reports", "AASPP Astrononomy and Astrophysics Series", "APh.. Astroparticle Physics", "AstBu Astrophysical Bulletin", "ApInv Astrophysical Investigations", "ApL.. Astrophysical Letters", "ApNr. Astrophysica Norvegica", "Ap... Astrophysics", "ASPRv Astrophysics and Space Physics Reviews", "ApSSP Astrophysics and Space Science Proceedings", "ASTRA Astrophysics and Space Sciences Transactions", "ApSSS Astrophysics and Space Science Supplement", "MKAtl Astrophysics monographs University of Chicago Press", "ArBei Astrophysics Reports Publications of the Beijing Astronomical Observatory", "ApT.. Astrophysics Today", "AstPo Astropolitics", "AsAna Asymptotic Analysis", "BLabR AT&", "AJSEd Atlas Journal of Science Education", "AtlVS Atlas Poiskovykh Kart Peremennykh Zvezd", "Atmos Atmosphere", "AtO.. Atmosphere Ocean", "AtOpt Atmosphere Optics", "ACP.. Atmospheric Chemistry &", "ACPD. Atmospheric Chemistry &", "AtmEn Atmospheric Environment", "AMT.. Atmospheric Measurement Techniques", "AMTD. Atmospheric Measurement Techniques Discussions", "AtmRe Atmospheric Research", "AtSc. Atmospheric Science", "AtScL Atmospheric Science Letters", "AtmTe Atmospheric Technology", "atnfp ATNF Proposal", "Atom. Atom", "AD... Atomic Data", "ADNDT Atomic Data and Nuclear Data Tables", "AtERv Atomic Energy Review", "AMOP. Atomic Molecular and Optical Physics", "AtPhy Atomic Physics", "AtST. Atomisation Spray Technology", "AtKe. Atomkernenergie", "AtEn. Atomnaia Energiia", "AVET. Atomno Vodorodnaia Energetika i Tekhnologiia", "ATR.. ATR Australian Telecommunication Research", "AALST Atti Accad. Ligure Sci. Lett.", "AAPon Atti Accad. Pontaniana", "AAST. Atti Accad. Sco. Torino I", "ATTTJ AT T Technical Journal", "AurPh Auroral physics", "AuJAR Australian Journal of Agricultural Research", "AuJA. Australian Journal of Astronomy", "AuJCE Australian Journal of Chemical Education", "AJCh. Australian Journal of Chemistry", "AuJES Australian Journal of Earth Sciences", "AuJPh Australian Journal of Physics", "AuJPA Australian Journal of Physics Astrophysical Supplement", "AuSRA Australian Journal of Scientific Research A Physical Sciences", "AJSR. Australian Journal of Soil Research", "AuMSJ Australian Mathematical Society Journal Series B -- Applied Mathematics", "AuMM. Australian Meteorological Magazine", "Autom Automatica", "ACTAp Automatic Control Theory Applications", "AuRob Autonomous Robots", "AvSeM Aviation Space and Environmental Medicine", "AvWST Aviation Week Space Technology", "AvKos Aviatsiia i Kosmonavtika", "AvTek Aviatsionnaia Tekhnika", "AvTel Avtomatika i Telemekhanika", "AvPE. Avtomatizatsiia Proektirovaniia Elektronike", "Avtme Avtometriia", "BBUSS Babes Bolyai Universitas Studia Series Mathematica", "BBUSM Babes Bolyai Universitas Studia Series Physica", "BaPhL Balkan Physics Letters", "BaltA Baltic Astronomy", "BamKV Bamberg Kleine Veroeffentlichungen der Remeis-Sternwarte", "BAVRu BAV Rundbrief", "BAVSR BAV Rundbrief - Mitteilungsblatt der Berliner Arbeits-gemeinschaft fuer Veraenderliche Sterne", "BAWMN Bayerische Akademie Wissenschaften mathematisch naturwissenschaftliche Klasse Sitzungsberichte", "BayAn Bayesian Analysis", "BBCEn BBC Engineering", "BRMIC Behavior Research Methods Instruments and Computers", "BIT.. Behaviour &", "BUAAJ Beijing University Aeronautics and Astronautics Journal", "BePl. Beitraege Plasmaphysik", "BeiGe Beitraege zur Geophysik", "BeiMP Beitraege zur Mineralogie und Petrographie", "BROGS Belgian Royal Observatory Communications Series Geophysics Series", "BKAD. Beobachtungen der Kaiserlichen Universitaets-Sternwarte Dorpat", "BKUJ. Beobachtungen der Kaiserlichen Universitaets-Sternwarte Jurjew", "BESBe Beobachtungs-Ergebnisse der Koniglichen Sternwarte zu Berlin", "ANZi. Beobachtungs-Zirkular der Astronomischen Nachrichten", "BBGPC Berichte der Bunsen-Gesellschaft Physical Chemistry Chemical Physics Berichte", "BADPG Berlin East Germany Akademie Verlag GmbH Ergebnisse Plasmaphysik und Gaselektronik", "BAVMM Berlin East Germany Akademie Verlag GmbH Shriftenreihe des Zentralinstituts Mathematik und Mechanik", "BAVSM Berliner Arbeitsgemeinschaft fuer Veraenderliche Sterne - Mitteilungen", "BGBGM Berlin Gebrueder Borntraeger Geoexploration Monographs Series", "Bern. Bernoulli", "BeElM Beskontaktnye Elektricheskie Mashiny", "BeSN. Be Star Newsletter", "BGIBI BGI Bulletin d'Information", "AstBa Biblioteca Astrei Basarabene", "BEPM. Bielefeld Encounters in Physics and Mathematics", "BiLuf Bildmessung und Luftbildwessen", "BBRC. Biochemical and Biophysical Research Communications", "BioJ. Biochemical Journal", "BCB.. Biochemistry and Cell Biology", "AcBB. Biochimica et Biophysica Acta", "BioFa Biofabrication", "BGeo. Biogeosciences", "BGD.. Biogeosciences Discussions", "BMNAS Biographical Memoirs National Academy of Sciences", "BMFRS Biographical Memoirs of Fellows of the Royal Society", "BiBi. Bioinspiration and Biomimetics", "BMP.. Biological and Medical Physics", "BPS.. Biological Physics Series", "BRCPS Biological Reviews of the Cambridge Philosophical Society", "BioMa Biomedical Materials", "BioMi Biomedical Microdevices", "Biome Biometrika", "Bion. Bionika", "BioCh Biophysical Chemistry", "BpJ.. Biophysical Journal", "BpBeS Biophysics and Bioengineering Series", "BioSM Biophysics of Structure and Mechanism", "Bioph Biophysics USSR", "Biopk Biophysik", "Biorh Biorheology", "BioSc BioScience", "BiotL Biotechnology Letters", "BOTor Biuletyn Obserwatoium Astronomicznego Uniwersytetu M. Kopernika w Toruniu", "BITad Biulletini of the Astronomical Institute Akademiia Nauk Tadzhikskoi", "BIAst Bjull. Inst. Astrofizikii", "BlazD BLAZAR Data", "BAAA. Boletin de la Asociacion Argentina de Astronomia La Plata Argentina", "BAOM. Boletin de la Astronomico Observatorio de Madrid", "BIMAF Boletin del Instituto de Matematica Astronomica y Fisica Universidad Nacional de Cordoba Argentina", "BITon Boletin del Instituto de Tonantzintla", "BOTT. Boletin de los Observatorios Tonantzintla y Tacubaya", "BMOE. Boletin mensual del Observatorio del Ebro", "BlDok Bolgarska Akademiia Nauk Doklady", "BSVit Bolletino della Societa dei Variabilisti Italiani", "BoSAI Bollettino della Societa Astronomica Italiana", "BGSA. Bollettino Geod. Scienzi Affini", "BonD. Bonner Durchmusterung", "BoLMe Boundary-Layer Meteorology", "Brain Brain", "BVVSA Bratislava Veda Vydavatelstvo Slovenskej Akademie Vied", "BFWSG Braunschweig Friedr Vieweg und Sohn GmbH", "BTUM. Braunschweig Technische Universitaet Mitteilungen", "BrJPh Brazilian Journal of Physics", "BrWK. Brennstoff Waerme Kraft", "BJAP. British Journal of Applied Physics", "BJET. British Journal of Educational Technology", "BJMSP British Journal of Mathematical and Statistical Psychology", "BJP.. British Journal of Psychology", "BTE.. British Telecommunications Engineering", "BIRM. Brussels Institute Royal Meteorologique de Belgique", "BuAkK Budapest Akademiai Kiado", "BlgAJ Bulgarian Astronomical Journal", "BlGJ. Bulgarian Geophysical Journal", "BlJMH Bulgarian Journal of Meteorology and Hydrology", "BlJPh Bulgarian Journal of Physics", "BlJPS Bulgarian Journal of Physics Supplement", "BlGeo Bulgarska Akademiia Naukite Geofizichni Institut Izvestiia", "BlTek Bulgarska Akademiia Naukite Institut Tekhnicheska Kibernetika Izvestiia", "BlMat Bulgarska Akademiia Naukite Matematicheski Institut Izvestiia", "BlSpi Bulgarska Akademiia Naukite Spisanie", "BlTse Bulgarska Akademiia Naukite Tsentralna Laboratoriia Geodeziia Izvestiia", "BlGSp Bulgarsko Geofizichno Spisanie", "BAFOE Bulletin Association Fran. Obs. Etoiles Variables", "BuAst Bulletin Astronomique", "BABel Bulletin Astronomique de Belgrade", "BuAsR Bulletin Astronomique, Revue Generale des Travaux Astronomiques", "BuAsI Bulletin Astronomique, Serie I", "BuChr Bulletin Chronometrique (Besancon)", "BCSAB Bulletin Cl. Science Academy Royal de Belgique", "BCrAO Bulletin Crimean Astrophysical Observatory", "BAPSS Bulletin de l'Academie Polonaise des Sciences Series des Sciences Mathematiques Astronomiques et Physiques", "BARB. Bulletin de l'Academie Royale de Belgique", "BSAF. Bulletin de la Societe Astronomique de France", "BSAFR Bulletin de la Societe Astronomique de France et Revue Mensuelle d'Astronomie, de Meteorologie et de Physique du Globe", "BSAL. Bulletin de la Societe Astronomique de Liege", "BSBA. Bulletin de la Societe Belge d'Astronomie", "BSRSL Bulletin de la Societe Royale des Sciences de Liege", "AFOEV Bulletin de l'Association Francaise d'Observateurs d'Etoiles Variables", "BMai. Bulletin de la Station Astrophotographique de Mainterne", "BOBeo Bulletin de l'Observatoire Astronomique de Belgrade", "BuLyo Bulletin de l'Observatoire de Lyon", "BBSAG Bulletin der Bedeckungsveraenderlichen-Beobachter der Schweizerischen Astronomischen Gesellschaft", "BIEBe Bulletin d'Information d'Etoiles Be", "BIM.. Bulletin d'Information des Marees Terrestres", "BIBGI Bulletin d'Information du Bureau Gravimetrique International", "BICDS Bulletin d'Information du Centre de Donnees Stellaires", "BCFHT Bulletin d'information du telescope Canada-France-Hawaii", "BGeod Bulletin Geodesique", "BGNS. Bulletin Geodesique, Nouvelle Series", "BuBIH Bulletin Horaire du Bureau International de l'Heure", "BOPul Bulletin (Izvestiya) de l'Observatoire Central a Poulkovo", "BuMat Bulletin Mathematique", "BKoAS Bulletin of Korean Astronomical Society", "BMBio Bulletin of Mathematical Biology", "BMBp. Bulletin of Mathematical Biophysics", "BPAS. Bulletin of Pure and Applied Science (Physics)", "BAAPG Bulletin of the American Association of Petroleum Geologists", "BAVSO Bulletin of the American Association of Variable Stars Observers", "BAAS. Bulletin of the American Astronomical Society", "BAMaS Bulletin of the American Mathematical Society", "BAMS. Bulletin of the American Meteorological Society", "BAPS. Bulletin of the American Physical Society", "BAICz Bulletin of the Astronomical Institutes of Czechoslovakia", "BAN.. Bulletin of the Astronomical Institutes of the Netherlands", "BANS. Bulletin of the Astronomical Institutes of the Netherlands Supplement Series", "BAORB Bulletin of the Astronomical Observatoire Royale de Belgique", "IllOB Bulletin of the Astronomical Observatory of the University of Illinois", "BASBr Bulletin of the Astronomical Society of Brazil", "BASI. Bulletin of the Astronomical Society of India", "BCAIC Bulletin of the Central Astronomical Institute of Czechoslovakia", "BuGSA Bulletin of the Geological Society of America", "BIMIA Bulletin of the Institute of Mathematics and Its Applications", "BuIPS Bulletin of the Israel Physical Society", "BKobO Bulletin of the Kobe Marine Observatory Kobe Japan", "BLPI. Bulletin of the Lebedev Physics Institute", "BuLMS Bulletin of the London Mathematical Society", "BRASP Bulletin of the Russian Academy of Science, Phys.", "BSAst Bulletin of the Section of Astronomy", "BSAE. Bulletin of the Soviet Antarctic Expedition", "BuONC Bulletin of the Special Astrophysical Observatory, Northern Caucasus", "BSAO. Bulletin of the Special Astrophysics Observatory", "BTasO Bulletin of the Tashkent Observatory", "BTok. Bulletin of the Tokyo Astronomical Observatory", "BToIT Bulletin of the Tokyo Institute of Technology", "BUBes Bulletin of the University of Besancon Observatory", "BYam. Bulletin of the Yamagata University Yamagata Japan", "YerOB Bulletin of the Yerkes Observatory of the University of Chicago", "BVol. Bulletin of Volcanology", "BCNRS Bulletin Signaletique - Centre National de la Recherche Scientifique", "BSAO. Bull. Special Astrophys. Obs.", "BIHCD Bureau Internationale Heure, Paris, Circulaire", "BDus. Byulleten' Instituta Astrofiziki Dushanbe Akademiya Nauk Tadzhikskoj SSR", "BITA. Byulleten' Instituta Teoreticheskoj Astronomii (Leningrad)", "BStaO Byulleten' Stalinabadskoj Astronomicheskoj Observatorii Akademiya Nauk Tadzhikskoj SSR", "ByuRe Byurakan Astrophysical Observatory Armenia USSR Reprints", "ByuPr Byurakanskaya Astrofizicheskaya Observatoriya Preprint", "CahPh Cahiers de Physique", "CAS.. Cambridge Astrophysics Series", "CCA.. Cambridge Contemporary Astrophysics", "CamRe Cambridge Observatories Reprints", "CMPNC Cambridge Monographs on Particle Physics, Nuclear Physics and Cosmology", "CMPPh Cambridge Monographs on Plasma Physics", "CSLPT Cambridge Studies in Low Temperature Physics", "CTMPC Cambridge Topics in Mineral Physics and Chemistry", "BCNRC Canada National Research Council Division Mechanical Engineering National Aeronautical Establishment Quarterly Bulletin", "CASJ. Canadian Aeronautics and Space Journal", "CASJQ Canadian Aeronautics and Space Journal Quarter", "CEEJ. Canadian Electrical Engineering Journal", "CaGeJ Canadian Geotechnical Journal", "CIPSG Canadian Information Processing Society Graphics Interface", "CJChE Canadian Journal of Chemical Engineering", "CaJCh Canadian Journal of Chemistry", "CaJCE Canadian Journal of Civil Engineering", "CaJES Canadian Journal of Earth Sciences", "CJECE Canadian Journal of Electrical Computer Engineering", "CJMat Canadian Journal of Mathematics", "CaJPh Canadian Journal of Physics", "CaJPS Canadian Journal of Physics Supplement", "CaJRS Canadian Journal of Remote Sensing", "CJRA. Canadian Journal of Research Section A", "CJSMT Canadian Journal of Science Mathematics and Technology Education", "CaJSS Canadian Journal of Soil Science", "CaRes Cancer Research", "CPhD. Cape Photographic Durchmusterung", "CarR. Caries Research", "GCRV. Carnegie Institute Washington D.C. Publication", "CarOB Carter Observatory Wellington New Zealand Astronomical Bulletins", "CarRe Carter Observatory Wellington New Zealand Reprints", "CasRe Case Western Reserve University Warner and Swasey Observatory Cleveland Ohio Reprints", "CASI. CASI Transactions", "CSVS. Catalogue of suspected variable stars. Acad. of Sciences USSR Shternberg.", "CatL. Catalysis Letters", "CarRv Catalysis Reviews", "Catt. CATTECH", "CCDA. CCD Astronomy", "CEGB. CEGB Research", "CeMec Celestial Mechanics", "CeMDA Celestial Mechanics and Dynamical Astronomy", "Cell. Cell", "Cellu Cellulose", "Cent. Centaurus", "CfAPr Center for Astrophysics Cambridge Mass Preprint Series", "CBET. Central Bureau Electronic Telegrams", "CEAB. Central European Astrophysical Bulletin", "CEJE. Central European Journal of Engineering", "CEJG. Central European Journal of Geosciences", "CEJPh Central European Journal of Physics", "CPH.. Centre de Physique des Houches", "CCpFS Ceskoslovensky Casopis pro Fyziku Sekce", "CFDAA CFD Advances Applications", "CKH.. Chagyo Kenkyu Hokoku (Tea Research Journal)", "ChNew Chandra News", "Chaos Chaos", "CSF.. Chaos Solitons and Fractals", "ChCom Chemical Communications", "ChEdu Chemical Educator", "ChEnC Chemical Engineering Communications", "ChEnN Chemical Engineering News", "CERDA Chemical Engineering Research &", "ChEnS Chemical Engineering Science", "ChGeo Chemical Geology", "CP... Chemical Physics", "CPL.. Chemical Physics Letters", "CPSS. Chemical Physics of Solid Surfaces", "CPSSH Chemical Physics of Solid Surfaces and Heterogeneous Catalysis", "CPR.. Chemical Physics Reports", "ChSRv Chemical Society Reviews", "ChEG. Chemie der Erde / Geochemistry", "CEJ.. Chemistry A European Journal", "CPCar Chemistry and Physics of Carbon", "CPLip Chemistry and Physics of Lipids", "ChUDA Chile Universidad Departamento de Astronomia Publicaciones", "ChOE. China Ocean Engineering", "ChRST China Rept Sci Technol JPRS CST", "ChA.. Chinese Astronomy", "ChIEJ Chinese Institute of Engineers Journal", "ChJA. Chinese Journal of Aeronautics", "ChJAA Chinese Journal of Astronomy and Astrophysics", "ChJAS Chinese Journal of Astronomy and Astrophysics Supplement", "ChJCP Chinese Journal of Chemical Physics", "ChJG. Chinese Journal of Geophysics", "ChJIR Chinese Journal of Infrared Research", "ChJL. Chinese Journal of Lasers", "ChJLB Chinese Journal of Lasers B", "CJLTP Chinese Journal of Low Temperature Physics", "ChJME Chinese Journal of Mechanical Engineering", "ChJNP Chinese Journal of Nuclear Physics", "ChJOL Chinese Journal of Oceanology and Limnology", "ChJPh Chinese Journal of Physics", "ChJPR Chinese Journal of Polar Research", "ChJS. Chinese Journal of Semiconductors", "ChJSS Chinese Journal of Space Science", "ChOpL Chinese Optics Letters", "ChPhy Chinese Physics", "ChPhB Chinese Physics B", "ChPhC Chinese Physics C", "ChPhL Chinese Physics Letters", "ChSBu Chinese Science Bulletin", "ChSAJ Chinese Society of Astronautics Journal", "ChSMJ Chinese Society of Mechanical Engineers Journal", "ChSST Chinese Space Science Technology", "CMDRG Chislennye Metody Dinamike Razrezhennykh Gazov", "CHOCS CHOCS", "CITM. Chubu Institute Technology Memoirs", "CIDA. CIDA", "CTE.. Ciencias de la Tierra y del Espacio", "CiInf Circ. Inf.", "CiSSV Circolare Interna della Sezione Stelle Variabili dell'Unione Astrofili Italiani", "CSSP. Circuits Systems and Signal Processing", "CirW. Circuit World", "CAFOE Circulaire de l'Association Francaise d'Observateurs d'Etoiles Variables", "CiBAA Circular of the British Astronomical Association", "CiUO. Circular of the Union Observatory Johannesburg", "CiPoJ Circumpolar Journal", "CQGra Classical and Quantum Gravity", "CQGrS Classical and Quantum Gravity Supplement", "CRMMP Classical Reviews in Mathematics and Mathematical Physics", "CTPhy Classical Theoretical Physics", "CCM.. Clays and Clay Minerals", "ClDy. Climate Dynamics", "CliPa Climate of the Past", "CliPD Climate of the Past Discussions", "ClCh. Climatic Change", "COIR. Clinical Oral Implants Research", "CPPM. Clinical Physics and Physiological Measurement", "CNRAe CNR Aeritalia S", "CODAB CODATA Bulletin", "Coel. Coelum Periodico Bimestrale per la Divulgazione dell'Astronomia", "AeSc. Collection of Papers on Aerospace Science", "ColJ. Colloid Journal", "ColSu Colloids and Surfaces", "CPC.. Combinatorics, Probability and Computing", "CoFl. Combustion and Flame", "CST.. Combustion Science and Technology", "CTM.. Combustion Theory Modelling", "CNSMP Comet News Service, McDonnell Planetarium", "CPMCM Commentationes Physico-Mathematicae et Chemico-Medicae", "ComMP Comments in Modern Physics", "ComAp Comments on Astrophysics", "CoASP Comments on Astrophysics and Space Physics", "CoAMP Comments on Atomic and Molecular Physics", "CoCMP Comments on Condensed Matter Physics", "CoNPP Comments on Nuclear and Particle Physics", "CoPPC Comments on Plasma Physics and Controlled Fusion", "ComSp Commercial Space", "CoKon Commmunications of the Konkoly Observatory Hungary", "CAPJ. Communication Astronomy with the Public Journal", "ComBr Communication Broadcasting", "CoSSC Communication in Statistics - Simulation and Computation", "CoSTM Communication in Statistics - Theory and Methods", "Commu Communications", "CoORB Communications de l'Observatoire Royal de Belgique", "MonAP Communications du Departement d'Astrophysique de la Faculte des Sciences de Mons Mons Astrophysical Papers", "CoDDO Communications from the David Dunlap Observatory", "CoMtW Communications from the Mount Wilson Solar Observatory to the National Academy of Sciences", "CoRad Communications from the Radcliffe Observatory Pretoria South Africa", "CoROE Communications from the Royal Observatory Edinburgh", "CoOxf Communications from the University Observatory Oxford", "CoStA Communications from the University Observatory St Andrews Scotland", "CEST. Communications Gillies Inc Electronic Systems in Transportation", "CoAlg Communications in Algebra", "CANM. Communications in Applied Numerical Methods", "CoAst Communications in Asteroseismology", "CCoPh Communications in Computational Physics", "CMaPh Communications in Mathematical Physics", "CNSNS Communications in Nonlinear Science and Numerical Simulations", "CNME. Communications in Numerical Methods in Engineering", "CoPDE Communications in Partial Differential Equations", "CPAM. Communications in Pure Applied Mathematics", "CoTPh Communications in Theoretical Physics", "CoAnk Communications of the Department of Astronomy of Ankara University", "CoLPL Communications of the Lunar and Planetary Laboratory", "CoLon Communications of the University of London Observatory", "CPhy. Communications on Physics", "CRLJ. Communications Research Laboratory Journal", "CRLRv Communications Research Laboratory Review", "ComSo Communications Society", "Compe COMPEL: The International Journal for Computation and Mathematics in Electrical and Electronic Engineering", "CoVar Complex Variables", "Compo Composites", "CmpEn Composites Engineering", "CmpMa Composites Manufacturing", "ComST Composites Science Technology", "CmpSt Composite Structures", "CoMat Compositio Mathematica", "CRSPH Compte Rendu des Seances de la Societe de Physique et d'Histoire Naturelle de Genere", "CR... Comptes Rendus Academie des Sciences (serie non specifiee)", "CRABS Comptes Rendus de l'Academie Bulgare des Sciences", "CRASE Comptes Rendus de l'Académie des Sciences - Series IIA - Earth and Planetary Science", "CRGeo Comptes Rendus Geoscience", "CRMat Comptes Rendus Mathematique", "CRMec Comptes Rendus Mecanique", "CRPhy Comptes Rendus Physique", "CAMP. Computational and Applied Mathematical Physics", "ComMS Computational Materials Science", "CMMPh Computational Mathematics and Mathematical Physics", "CompM Computational Mechanics", "COA.. Computational Optimization and Applications", "CSMA. Computational Structural Mechanics and Applications", "Compr Computer", "CAD.. Computer-Aided Design", "CGIP. Computer Graphics Image Processing", "CMAME Computer Methods in Applied Mechanics and Engineering", "CoPhC Computer Physics Communications", "CoPhR Computer Physics Reports", "CBR.. Computers and Biomedical Research", "CEE.. Computers and Electrical Engineering", "CF... Computers and Fluids", "CG... Computers and Geosciences", "CMwA. Computers and Mathematics with Applications", "CoStr Computers and Structures", "CSEd. Computer Science Education", "ComPh Computers in Physics", "CVIU. Computer Vision and Image Understanding", "CVGIP Computer Vision Graphics and Image Processing", "Compu Computing", "CSE.. Computing in Science and Engineering", "ComSE Computing Systems in Engineering", "COMTR COMSAT Technical Review", "CoCoi Comunicacoes do Observatonio Astronomico da Universidade de Coimbra", "CoMRA Concepts in Magnetic Resonances A", "CoMRB Concepts in Magnetic Resonances B", "CMPhy Condensed Matter Physics", "CGDAM Conformal Geometry and Dynamics of the American Mathematical Society", "CDT.. Connaissance des Temps", "ConSc Connection Science", "CoFra Consiglio Nazionale delle Ricerche Italia. Laboratorio di Astrofisica Frascati Roma Contributi", "ConCP Contemporary Concepts in Physics", "ConFP Contemporary Fundamental Physics", "ConPh Contemporary Physics", "CSR.. Continental Shelf Research", "CMT.. Continuum Mechanics and Thermodynamics", "CoIAP Contributions de l'Institut d'Astrophysique de Paris Serie A", "CoIAB Contributions de l'Institut d'Astrophysique de Paris Serie B", "CoAsi Contributions dell'Osservatorio Astrofisica dell'Universita di Padova in Asiago", "CoMil Contributions dell'Osservatorio Astrononia di Milano-Merate", "CoArm Contributions from the Armagh Observatory", "CoThe Contributions from the Astronomical Department of the University of Thessaloniki", "CoBos Contributions from the Bosscha Observervatory", "CoCam Contributions from the Cambridge Observatory England", "CoTol Contributions from the Cerro Tololo Inter-American Observatory", "CoTok Contributions from the Department of Astronomy University of Tokyo", "CoDAO Contributions from the Dominion Astrophysical Observatory in Victoria", "CoDun Contributions from the Dunsink Observatory Dublin Ireland", "CoKyo Contributions from the Institute of Astrophysics and Kwasan Observatory Kyoto", "CoKit Contributions from the Kitt Peak National Observatory", "CoKwa Contributions from the Kwasan and Hida Observatories University of Kyoto", "CoIoa Contributions from the Laboratory of Astronomy - University of Ioannina Greece", "CoMcD Contributions from the McDonald Observatory University of Texas Fort Davis", "CMWCI Contributions from the Mount Wilson Observatory / Carnegie Institution of Washington", "CoPri Contributions from the Princeton University Observatory", "CoRut Contributions from the Rutherford Observatory of Columbia University New York", "CoWas Contributions from the Washburn Observatory of the University of Wisconsin", "CoAth Contributions from the Wroclaw Astronomical Observatory", "CoLic Contributions of Lick Observatory", "CLic2 Contributions of Lick Observatory, Series II", "CoPer Contributions of Perkins Observatory", "CoSka Contributions of the Astronomical Observatory Skalnate Pleso", "CoSkL Contributions of the Astronomical Observatory Skalnate Pleso Letters", "CoSkS Contributions of the Astronomical Observatory Skalnate Pleso Supplement", "CoLou Contributions of the Louisiana State University Observatory Baton Rouge Louisiana", "CoNMx Contributions of the Observatory of New Mexico State University Las Cruces New Mexico", "CoBrn Contributions of the Public Observatory and Planetarium in Brno", "CSASG Contributions of the Slovak Academy Sciences Geophysical Institute", "CoWat Contributions of the University of Waterloo Observatory", "CoVVO Contributions of the Van Vleck Observatory", "ConAP Contributions to Atmospheric Physics/Beitraege zur Physik Atmosphaere", "CoGG. Contributions to Geophysics and Geodesy", "CoMP. Contributions to Mineralogy and Petrology", "CoPP. Contributions to Plasma Physics", "CoUCL Contributions Universite Catholique de Louvain", "CoSte Contributions University of Arizona Steward Observatory Tucson Arizona", "CoRHO Contributions University of Florida Rosemary Hill Observatory Gainesville", "CoCom Control and Computers", "CopRe Copenhagen University Observatory Reprints", "CorRe Coral Reefs", "CorD. Cordoba Durchmusterung", "CAGHS Correspondance Astronomique, Geographique, Hydrographique et statistique", "CosEl Cosmic Electrodynamics", "CosRe Cosmic Research", "CosSe Cosmic Search", "CTP.. Course of Theoretical Physics", "CRB.. C.R. Acad. Sci. Ser. B1", "CraRe Cracow Observatory Reprints", "CRSSM Critical Reviews in Solid State &", "Cryo. Cryogenics", "CryRp Crystallography Reports", "CSSE. Cultural Studies of Science Education", "CuCo. Culture and Cosmos", "CAP.. Current Applied Physics", "CCPCE Current Contents Physical Chemical and Earth Sciences", "CEyeR Current Eye Research", "CNan. Current Nanoscience", "COSSM Current Opinion in Solid State and Materials Science", "CSci. Current Science", "CySys Cybernetics and Systems", "CzJPh Czechoslovak Journal of Physics", "CzJPB Czechoslovak Journal of Physics B", "CzJPS Czechoslovak Journal of Physics Supplement", "CzMJ. Czechoslovak Mathematical Journal", "DTr.. Dalton Transactions", "DMKD. Data Mining and Knowledge Discovery", "DatSJ Data Science Journal", "DDORe David Dunlap Observatory Richmond Hill Reprints", "DeaCo Dearborn Observatory Contributions", "DSR.. Deep Sea Research Part II: Topical Studies in Oceanography", "DSRI. Deep Sea Research Part I: Oceanographic Research", "DSNPR Deep Space Network Progress Report", "Defek Defektoskopiia", "DefEl Defense Electronics", "DMJ.. Defense Management Journal", "DeScE Defense Science Electronics", "DSJ.. Defense Science Journal", "DSRMC Defense Systems Review Military Communications", "DSSN. Delta Scuti Star Newsletter", "Sterb Der Sternenbote Monatsschrift fuer Oesterreichs Amateur-astronomen", "DGKBA Deutsche Geodaetische Kommission Bayer. Akad. Wiss.", "DGKBB Deutsche Geodaetische Kommission Bayer. Akad. Wiss. B", "DGKGN Deutsche Geodaetische Kommission Gravity Network West Germany DSGN Data Adjustment", "DeHyZ Deutsche Hydrographische Zeitschrift", "DPhyG Deutsche Physikalische Gesellschaft", "DSEG. Developments in Solid Earth Geophysics", "DFVLR DFVLR", "DRM.. Diamond and Related Materials", "Stern Die Sterne", "Welt. Die Weltall", "DnU.. Differentsial nye Uravneniia", "DSP.. Digital Signal Processing", "Dimen Dimensions", "DiSis Dinamicheskie Sistemy", "DPM.. Dinamika i Prochnost Mashin", "DiRaG Dinamika razrezhennykh gazov", "DIO.. DIO", "DCMP. Directions in Condensed Matter Physics", "DISA. DISA Information", "Disc. Discover", "DImTe Display Imaging Technology", "Displ Displays", "DSE.. Distributed Systems Engineering", "DLGRM DLGR Magnetofluiddyn", "Dlib. D-Lib Magazine", "DLRNa DLR Nachrichten", "DOCi. Documentation des Observateurs Circulaire", "DOIAP Documentation des Observateurs Institut d'Astrophysique de Paris", "DoANT Doklady Akademiia Nauk TadzhSSR", "DokAN Doklady Akad Nauk Minerologia USSR", "DoBan Doklady Bolgarskoi Akademiia Nauk", "DokES Doklady Earth Sciences", "DokPC Doklady Physical Chemistry", "DAOAR Dominion Astrophysical Observatory Annual Report", "DorPo Dornier Post", "DSO.. Double Star Observer", "DSSC. Double Star Section Circulars", "DudOR Dudley Observatory Reports", "PODE. Dun Echt Observatory Publications", "DunOP Dunsink Observatory Publications", "DunRe Dunsink Observatory Reprints", "DurOO Durham Observatory Observations", "IzDus Dushanbe Izdatel Donish", "DyeRe Dyer Observatory Reprints", "DySys Dynamical Systems: An International Journal", "DynCo Dynamics and Control", "DSSys Dynamics and Stability of Systems", "DyAtO Dynamics of Atmospheres and Oceans", "EESC. Earth and Environmental Science Conference Series", "EaEvS Earth and Evolution Sciences", "EExSc Earth and Extraterrestrial Sciences", "EaInt Earth Interactions", "EOAST Earth-Oriented Applications and Space Technology", "EEEV. Earthquake Engineering and Engineering Vibration", "EaSci Earthquake Science", "ESRv. Earth Science Reviews", "ESPL. Earth Surface Processes and Landforms", "ESD.. Earth System Dynamics", "ESDD. Earth System Dynamics Discussion", "ESSD. Earth System Science Data", "ESSDD Earth System Science Data Discussions", "EERST East European Rept Sci. Technol. JPRS ESA", "EERSA East Europe Rept Sci Affairs JPRS", "EBCi. Eclipsing Binaries Circulars", "EcGH. Eclogae geologae Helvetii", "Ecogr Ecography", "EcGou Ecole de Goutelas", "Earth eEarth", "EartD eEarth Discussions", "ETATF Eesti NSV Teaduste Akadeemia Toimetised Fuusika Matemaatika", "IzmP. Ege University Izmir Publications of the Department of Astronomy", "EJSM. e-Journal of Soft Materials", "Elast Elastic", "ECLRv Electrical Communication Laboratories Review", "JElEn Electrical Engineering of Japan", "EMPS. Electric Machines and Power Systems", "Elecm Electromagnetics", "EJSEd Electronic Journal of Science Education", "EJSta Electronic Journal of Statistics", "EJTP. Electronic Journal of Theoretical Physics", "EML.. Electronic Materials Letters", "ElPro Electronic Progress", "JElCo Electronics Communications of Japan", "ElL.. Electronics Letters", "ElP.. Electronics Power", "EOSD. Electro Optical Systems Design", "ElLC. Electrotechnical Laboratory Circulars", "ElLR. Electrotechnical Laboratory Researches", "ElW.. Electrowaerme International", "ElBah Elektrische Bahnen", "Elem. Elektromekhanika", "Elek. Elektronika", "ElTA. Elektronnaia Tekhnika Avtomatike", "ElMod Elektronnoe Modelirovanie", "ETRE. Elektrosviaz Telecommunications Radio Engineering Telecommunications", "EVest Elektrotehniski Vestnik", "OED.. El Observador de Estrellas Dobles", "ElUn. El Universo", "EMCT. EMC Technology", "EBBT. Emerging Biochemical and Biophysical Techniques", "EAA.. Encyclopedia of Astronomy and Astrophysics", "Endvr Endeavour", "Energ Energetika", "EnAt. Energia es Atomtechnika", "EnUK. Energy", "EnC.. Energy Conversion", "ECM.. Energy Conversion Management", "EnS.. Energy Sources", "EnTR. Energy Technology Review", "EnUK. Energy UK", "EngAn Engineering Analysis", "EnSci Engineering and Science", "EngCo Engineering Computations", "EnFM. Engineering Fracture Mechanics", "EnOp. Engineering Optimization", "CEnTp Engineering Thermophysics China", "Entro Entropie", "Entrp Entropy", "EnAPC Environmental Analytical and Physical Chemistry Series", "EES.. Environmental Earth Sciences", "EnEng Environmental Engineering", "EFM.. Environmental Fluid Mechanics", "EnGeo Environmental Geology", "EnMan Environmental Management", "EnP.. Environmental Pollution Series B Chemical and Physical", "ER... Environmental Research", "ERL.. Environmental Research Letters", "EnST. Environmental Science Technology", "EnTox Environmental Toxicology", "ETWQ. Environmental Toxicology and Water Quality", "Env.. Environmentrics", "EOSTr EOS Transactions", "EL... EPL (Europhysics Letters)", "EPRIJ EPRI Journal", "AnErg Ergaenzungshefte zu den Astronomischen Nachrichten", "ErNW. Ergebnisse der exakten Naturwissenschaften", "ETDS. Ergodic Theory and Dynamical Systems", "Ergo. Ergonomics", "ESABu ESA Bulletin", "ESAHR ESA History Study Reports", "EIUEN ESA IUE Newsletter", "ESAJ. ESA Journal", "ESASM ESA Scientific &", "ESAST ESA Scientific Technical Review", "ESATM ESA Training Manual", "EssPh Essays in Physics", "ECSS. Estuarine Coastal and Shelf Science", "EUCAS EUCASS Proceedings Series", "EurSS Eurasian Soil Science", "EJASP EURASIP Journal on Applied Signal Processing", "EBioJ European Biophysics Journal", "EJAM. European Journal of Applied Mathematics", "EJBio European Journal of Biochemistry", "EJC.. European Journal of Combinatorics", "EJEE. European Journal of Engineering Education", "EJMF. European Journal of Mechanics B Fluids", "EJMS. European Journal of Mechanics Solids", "EJPh. European Journal of Physics", "EPJA. European Physical Journal A", "EPJAP European Physical Journal Applied Physics", "EPJAS European Physical Journal A Supplement", "EPJB. European Physical Journal B", "EPJC. European Physical Journal C", "EPJCS European Physical Journal C Supplement", "EPJD. European Physical Journal D", "EPJE. European Physical Journal E", "EPJH. European Physical Journal H", "EPJP. European Physical Journal Plus", "EPJST European Physical Journal Special Topics", "EuRv. European Review", "ESN.. European Science Notes", "ESOAR European Southern Observatory Annual Reports", "ESOB. European Southern Observatory ESO Bulletin", "ESOSP European Southern Observatory Scientific Preprints", "ESOSR European Southern Observatory Scientific Report", "ETTRT European Transactions Telecommunications Related Technologies", "ERST. Europe Report Science Technology", "EL... Europhysics Letters", "ENews Europhysics News", "EXOSA EXOSAT Express", "ExA.. Experimental Astronomy", "EEyeR Experimental Eye Research", "ExHT. Experimental Heat Transfer", "ExM.. Experimental Mechanics", "ExMPS Experimental Methods in the Physical Sciences", "ExT.. Experimental Techniques", "ExTFS Experimental Thermal Fluid Science", "ExFl. Experiments in Fluids", "ExG.. Exploration Geophysics", "Extr. Extraction", "PMtv. Facultad de Humanidades y Ciencias Universidad de la Republica Montevideo", "FaDi. Faraday Discussions", "FaTr. Faraday Transactions", "FFEMS Fatigue and Fracture of Engineering Materials and Structures", "FerNo Fermilab Note", "Fer.. Ferroelectrics", "FerLS Ferroelectrics Letters Section", "FBS.. Few-Body Systems", "FiIO. Fiber and Integrated Optics", "Filom Filomat", "FeMik Finommechanika Mikrotechnika", "FiBr. First Break", "FizEl Fizicheskaia Elektronika", "FiMek Fizicheskaia Mekhanika", "Fiz.. Fizika", "FizA. Fizika A", "FizAS Fizika Aerodispersnykh Sistem", "FizB. Fizika B", "FizGV Fizika Goreniia i Vzryva", "FizKO Fizika i Khimiia Obrabotki Materialov", "FizTV Fizika i Tekhnika Vysokikh Davlenii", "FizMM Fizika Metallov i Metallovedenie", "FizMS Fizika Mnogochastichnykh Sistem", "FizNT Fizika Nizkikh Temperatur", "FizPl Fizika Plazmy", "FizSz Fizika Sz.", "FizTT Fizika Tverdogo Tela", "FizZS Fizika Zhidkogo Sostoianiia", "FizAt Fiziki Atmosfery", "FizKM Fiziko Khimicheskaia Mekhanika Materialov", "FizCh Fizyki i Chemii Seria Fizyka", "FliIn Flight International", "FNL.. Fluctuation and Noise Letters", "FRFI. Flug Revue Flugwelt International", "FlDy. Fluid Dynamics", "FlDyR Fluid Dynamics Research", "FlDyT Fluid Dynamics Transactions", "Fluid Fluidika", "FMAG. Fluid Mechanics of Astrophysics and Geophysics", "FlMSR Fluid Mechanics Soviet Research", "FluQ. Fluids Quarterly", "FBP.. Food and Bioproducts Processing. Part C, Transactions of the Institution of Chemical Engineers", "ForPh Fortschritte der Physik", "FoGeo Fotointerpretacja w Geografii", "FoPh. Foundations of Physics", "FoPhL Foundations of Physics Letters", "Fract Fractals", "Freq. Frequenz", "FrES. Frontiers of Earth Science", "FrMS. Frontiers of Materials Science", "FrME. Frontiers of Mechanical Engineering", "FrPhy Frontiers of Physics", "FrPhC Frontiers of Physics in China", "IzFru Frunze Izdatel Ilim", "FSTJ. Fujitsu Scientific Technical Journal", "FST.. Fullerene Science and Technology", "FAAp. Functional Analysis and Its Applications", "FML.. Functional Materials Letters", "FACM. Functiones et Approximatio Commentarii Mathematici", "FInfo Fundamenta Informaticae", "FANP. Fundamental and Applied Nuclear Physics Series", "OOPS. Fundamental nye Osnovy Opticheskoi Pamiati i Sredy", "FCPh. Fundamentals of Cosmic Physics", "FTP.. Fundamental Theories of Physics", "Futur Future Spring", "GCNew Galactic Center Newsletter", "galxp GALEX Proposal", "GalEl Galilean Electrodynamics", "GEB.. Games and Economic Behavior", "GGMit Gauss-Gesellschaft e.V. Göttingen, Mitteilungen", "GVPOO Gauthier-Villars Paris Observatory Observations", "GazA. Gazette Astronomique", "GazAM Gazette Astronomique Memoires", "GazT. Gazodinamika i Teploobmen", "GCNR. GCN Report", "GECJR GEC Journal Research", "Gelio Geliotekhnika", "Gemin GEMINI Newsletter Royal Greenwich Observatory", "GHA.. General History of Astronomy", "GPB.. General Physiology and Biophysics", "GReGr General Relativity and Gravitation", "Gen.. Genetica", "GeoIn Geocarto International", "GeocJ Geochemical Journal", "Geoch Geochemistry", "GGG.. Geochemistry, Geophysics, Geosystems", "GeocI Geochemistry International", "GeCoA Geochimica et Cosmochimica Acta", "GeCAS Geochimica et Cosmochimica Acta Supplement", "GeCar Geodesy and Cartography", "GeAer Geodeziia i Aerofotos", "GeKar Geodeziia i Kartografiia", "GKA.. Geodeziia i Kartografiia Aehrofotosemka, L'vov", "GeKaA Geodeziia Kartografiia i Aerofotos", "GeoK. Geodezja i Kartografia", "GeoAc Geodinamica Acta", "GeofI Geofisica Internacional", "GeoPA Geofisica Pura e Applicata", "GeoSb Geofizicheskii Sbornik", "GeoZh Geofizicheskii Zhurnal", "GeoAA Geografiska Annaler, Series A: Physical Geography", "GeoAB Geografiska Annaler, Series B: Human Geography", "GeIss Geoinformation Issues", "Geokh Geokhimiia", "GCarp Geologica Carpathica", "GeolJ Geological Journal", "GeoM. Geological Magazine", "GeoSJ Geological Society Journal", "GSAMB Geological Society of America Bulletin", "GSAMm Geological Society of America Memoir", "GSASP Geological Society of America Special Papers", "GSLSP Geological Society of London Special Publications", "Geolo Geologija", "GeoRu Geologische Rundschau", "Geolg Geologos", "Geo.. Geology", "GeoOD Geology of Ore Deposits", "GeoIs Geomagnitnye Issledovaniia", "GML.. Geo-Marine Letters", "GeoD. Geometriae Dedicata", "GeomJ Geomicrobiology Journal", "Geomo Geomorphology", "Geoph Geophysica", "GeGe. Geophysica et Geodaetica", "GApFD Geophysical and Astrophysical Fluid Dynamics", "GDS.. Geophysical Developments Series", "GeoJ. Geophysical Journal", "GeoJI Geophysical Journal International", "GeopP Geophysical Prospecting", "GeopR Geophysical References", "GeoRL Geophysical Research Letters", "GeoSu Geophysical Surveys", "GeoNr Geophysica Norvegica", "Geop. Geophysics", "GAM.. Geophysics and Astrophysics Monographs", "GeoOM Georgetown Observatory Monogram", "GeoRe Georgetown Observatory Reprints", "GMD.. Geoscientific Model Development", "GMDD. Geoscientific Model Development Discussions", "GEOCE GEOS Circular on Eclipsing Binaries", "GEOCR GEOS Circular on RR Lyr Type Variables", "GEOCA GEOS Circular on Small-Amplitude Variables", "GEOSN GEOS Note Circulaire", "Geote Geotectonics", "TrGRC Geothermal Resources Council Transactions", "Geoth Geothermics", "Geot. Geotimes", "Gerb. Gerbertvs, International Academic Publication on History of Medieval Science", "GBzG. Gerlands Beitraege zur Geophysik", "GUL.. Geschichte und Lichtwechsel der Veraenderlichen Sterne (Potsdam)", "GATAN Gesellschaft Aerosolforschung Tagung ueber Aerosole Naturwissenschaft Medizin und Technik Messtechnik und technische Anwendung", "GMMWJ Gesellschaft angewandte Mathematik und Mechanik Jahrestagung Goettingen West Germany Zeitschrift Flugwissenschaften", "GaMuM Gesellschaft Angewandte Mathematik und Mechanik Workshop Paris France", "GMuD. Gesellschaft Mathematik und Datenverarbeitung mbH Multigrid Methods Special Topics Applications", "GVMK. Gibridnye Vychislitel nye Mashiny i Kompleksy", "Gidro Gidromekhanika", "GiGi. Gidroprivod i Gidropnevmoavtomatika", "GiSan Gigiena i Sanitariia", "GTPZ. Gigiena Truda i Professional nye Zabolevaniia", "GAst. Giornale di Astronomia", "GlMaJ Glasgow Mathematical Journal", "GPC.. Global and Planetary Change", "GBioC Global Biogeochemical Cycles", "GLORe Goethe Link Observatory Reprints", "GPSW. GPS World", "GMIP. Graphical Models and Image Processing", "GrCo. Gravitation and Cosmology", "GrCoS Gravitation and Cosmology Supplement", "GrTOn Gravitatsiia i Teoriia Otnositel nosti", "GCN.. GRB Coordinates Network", "GGMM. Greenhouse Gas Measurement &", "GriO. Griffith Observer", "GrAeH Grumman Aerospace Horizons", "Grund Grundwasser", "GICi. Gruppo Italiano RV Tauri Circolare", "HalRe Hale Observatories Reprints", "HadJ. Hadronic Journal", "HadJS Hadronic Journal Supplement", "BSD.. Hamburger Sternwarte Bergedorf", "HamS. Hamburger Sternwarte Sonderdrucke", "LS... Hamburger Sternw. Warner &", "HAAG. Handbook of Astronomy Astrophysics and Geophysics", "HBP.. Handbook of Biological Physics", "HGE.. Handbook of Geophysical Exploration", "HPlPh Handbook of Plasma Physics", "HPCRE Handbook on the Physics and Chemistry of Rare Earths", "HDA.. Handbuch der Astrophysik", "HDP.. Handbuch der Physik", "HarZi Harthaer Beobachtungs-Zirkular", "HarAC Harvard College Observatory Announcement Card", "HarAR Harvard College Observatory Annual Report", "BHarO Harvard College Observatory Bulletin", "HarCi Harvard College Observatory Circular", "HarPa Harvard College Observatory Papers", "HarRe Harvard College Observatory Reprints", "HarMi Harvard Observatory Mimeograms", "HarMo Harvard Observatory Monographs", "HeaPh Health Physics", "HMT.. Heat and Mass Transfer", "HTrEn Heat Transfer Engineering", "HTJR. Heat Transfer Japanese Research", "HTSR. Heat Transfer Soviet Research", "Heavn Heavens", "HWM.. Helgoländer Wissenschaftliche Meeresuntersuchungen", "HMR.. Helgoland Marine Research", "AcHCh Helvetica Chimica Acta", "AcHPh Helvetica Physica Acta", "AcHPS Helvetica Physica Acta Supplementum", "HelOB Helwan Institute of Astronomy and Geophysics Bulletins", "HemD. Hemel en Dampkring", "HECh. High Energy Chemistry", "HEDP. High Energy Density Physics", "HEPNP High Energy Physics and Nuclear Physics", "HiA.. Highlights of Astronomy", "HPP.. High Performance Polymers", "HPR.. High Pressure Research", "HiTec High Technology", "HTHP. High Temperatures and High Pressures", "HTemS High Temperature Science", "HARSB Histoire de l'Academie Royale des Sciences et des Belles-Lettres de Berlin", "HSPBS Historical Studies in the Physical and Biological Sciences", "HGeo. History of Geophysics", "HGSS. History of Geo- and Space Sciences", "HisSc History of Science", "HUFEB Hokkaido University Faculty Engineering Bulletin", "HUFEM Hokkaido University Faculty Engineering Memoirs", "Holz. Holzforschung", "HBB.. Horizons in Biochemistry and Biophysics", "HWP.. Horizons in World Physics", "HCHy. Hovering Craft and Hydrofoil", "HGT.. Human Gene Therapy", "HvaOB Hvar Observatory Bulletin", "HvOBS Hvar Observatory Bulletin Supplement", "HyBio Hydrobiologia", "HydJ. Hydrogeology Journal", "HyPr. Hydrological Processes", "HESS. Hydrology and Earth System Sciences", "HESSD Hydrology and Earth System Sciences Discussions", "HyInt Hyperfine Interactions", "IadEn Iadernaia Energiia", "IAGBu IAGA Bulletin", "IaIaF Iakutsk Iakutskii Filial SO AN SSSR", "BSEEA Iasi Institutul Politehnic Buletinul Sectia Electrotehnica Electronica Automatizari", "BSMMT Iasi Institutul Politehnic Buletinul Sectia Matematica Mecanica Teoretica Fizica", "BSMT. Iasi Institutul Politehnic Buletinul Sectia Mecanica Tehnica", "IAUCB IAU Commission on Close Binary Stars", "IAUDS IAU Commission on Double Stars", "IAUIn IAU Commission on Instruments", "IAUGA IAU General Assembly", "IAUIB IAU Information Bulletin", "IAUSS IAU Special Session", "WFINw IAU Working Group on Wide-Field Imaging, Newsletter", "IBMJ. IBM Journal of Research and Development", "ICAOB ICAO Bulletin", "Icar. Icarus", "IAESM IEEE Aerospace Electronic Systems Magazine", "IAWPL IEEE Antennas and Wireless Propagation Letters", "IAPM. IEEE Antennas Propagation Magazine", "IASSP IEEE ASSP Magazine", "ICiSM IEEE Circuits Systems Magazine", "IComM IEEE Communications Magazine", "ICSEn IEEE Computational Science and Engineering", "ICGA. IEEE Computer Graphics Applications", "ICSM. IEEE Computer Systems Magazine", "IDTC. IEEE Design Test Computers", "IEDL. IEEE Electron Device Letters", "IExp. IEEE Expert", "IGRSL IEEE Geoscience and Remote Sensing Letters", "IISys IEEE Intelligent Systems", "IJOE. IEEE Journal of Oceanic Engineering", "IJQE. IEEE Journal of Quantum Electronics", "IJRA. IEEE Journal of Robotics Automation", "ISTSP IEEE Journal of Selected Topics in Signal Processing", "IJSSC IEEE Journal of Solid-State Circuits", "IJSAC IEEE Journal on Selected Areas in Communications", "ILCSM IEEE LCS Magazine", "ILTS. IEEE LTS", "IMGWL IEEE Microwave and Guided Wave Letters", "IMMag IEEE Microwave Magazine", "IEEEN IEEE Network", "IPTL. IEEE Photonics Technology Letters", "IEEEP IEEE Proceedings", "ISPL. IEEE Signal Processing Letters", "ISPM. IEEE Signal Processing Magazine", "IEEES IEEE Spectrum", "ISysJ IEEE Systems Journal", "ITASS IEEE Transactions on Acoustics Speech and Signal Processing", "ITAES IEEE Transactions on Aerospace Electronic Systems", "ITAP. IEEE Transactions on Antennas and Propagation", "ITAS. IEEE Transactions on Applied Superconductivity", "ITAC. IEEE Transactions on Automatic Control", "ITBE. IEEE Transactions on Biomedical Engineering", "ITB.. IEEE Transactions on Broadcasting", "ITCS. IEEE Transactions on Circuits Systems", "ITCom IEEE Transactions on Communications", "ITCHM IEEE Transactions on Components Hybrids and Manufacturing Technology", "ITCAD IEEE Transactions on Computer Aided Design", "ITCmp IEEE Transactions on Computers", "ITDEI IEEE Transactions on Dielectrics and Electrical Insulation", "ITEdu IEEE Transactions on Education", "ITEI. IEEE Transactions on Electrical Insulation", "ITElC IEEE Transactions on Electromagnetic Compatibility", "ITED. IEEE Transactions on Electron Devices", "ITEnC IEEE Transactions on Energy Conversion", "ITEM. IEEE Transactions on Engineering Management", "ITGRS IEEE Transactions on Geoscience and Remote Sensing", "ITGE. IEEE Transactions on Geoscience Electronics", "ITIP. IEEE Transactions on Image Processing", "ITIE. IEEE Transactions on Industrial Electronics", "ITIEC IEEE Transactions on Industrial Electronics and Control Instrumentation", "ITIA. IEEE Transactions on Industry Applications", "ITIT. IEEE Transactions on Information Theory", "ITIM. IEEE Transactions on Instrumentation Measurement", "ITM.. IEEE Transactions on Magnetics", "ITMI. IEEE Transactions on Medical Imaging", "ITMTT IEEE Transactions on Microwave Theory Techniques", "ITME. IEEE Transactions on Military Electronics", "ITNan IEEE Transactions on Nanotechnology", "ITNN. IEEE Transactions on Neural Networks", "ITNS. IEEE Transactions on Nuclear Science", "ITPHP IEEE Transactions on Parts Hybrids and Packaging", "ITPAM IEEE Transactions on Pattern Analysis and Machine Intelligence", "ITPS. IEEE Transactions on Plasma Science", "ITPAS IEEE Transactions on Power Apparatus Systems", "ITPD. IEEE Transactions on Power Delivery", "ITPE. IEEE Transactions on Power Electronics", "ITR.. IEEE Transactions on Reliability", "ITRA. IEEE Transactions on Robotics Automation", "ITSTQ IEEE Transactions on Selected Topics in Quantum Electronics", "ITSM. IEEE Transactions on Semiconduct M", "ITSP. IEEE Transactions on Signal Processing", "ITSE. IEEE Transactions on Software Engineering", "ITSU. IEEE Transactions on Sonics Ultrasonics", "ITSMC IEEE Transactions on Systems Man and Cybernetics", "ITUFF IEEE Transactions on Ultrasonics Ferroelectrics and Frequency Control", "ITVT. IEEE Transactions on Vehicular Technology", "JMOA. IEE Journal of Microwaves Optics and Acoustics", "JSSED IEE Journal of Solid-State Electron Devices", "ITEIS IEEJ Transactions on Electronics, Information and Systems", "IJTFM IEEJ Transactions on Fundamentals and Materials", "IJTIA IEEJ Transactions on Industry Applications", "IJTPE IEEJ Transactions on Power and Energy", "IJTSM IEEJ Transactions on Sensors and Micromachines", "IPEPA IEE Proceedings B: Electric Power Applications", "IPGTD IEE Proceedings C: Generation Transmission Distribution", "IPCSV IEE Proceedings: Communications Speech and Vision", "IPCTA IEE Proceedings D: Control Theory Applications", "IPCDT IEE Proceedings E: Computers and Digital Techniques", "IPCRS IEE Proceedings F: Communications Radar and Signal Processing", "IPRSP IEE Proceedings F: Radar and Signal Processing", "IPMAP IEE Proceedings H: Microwaves Antennas and Propagation", "IPMOA IEE Proceedings H: Microwaves Optics and Antennas", "IPOpt IEE Proceedings J: Optoelectronics", "IPPSM IEE Proceedings: Physical Science Measurement and Instrumentation Management and Education Reviews", "IPSSE IEE Proceedings: Solid-State Electron Devices", "IEERv IEE Reviews", "IEIEE IEICE Electronics Express", "ESSFR IEICE ESS Fundamentals Review", "IEITC IEICE Transactions on Communications", "IEITE IEICE Transactions on Electronics", "IEITF IEICE Transactions on Fundamentals of Electronics Communications and Computer Sciences", "IEITI IEICE Transactions on Information and Systems", "ITN.. IERS Technical Note", "IESJ. IES Journal", "IHWN. IHW Newsletter", "JApMa IMA Journal of Applied Mathematics", "IJNA. IMA Journal of Numerical Analysis", "IVMA. IMA Volumes in Mathematics and its Applications", "IMEPA IME Proceedings. Part A: Journal of Power and Energy", "IMEPB IME Proceedings. Part B: Journal of Engineering Manufacture", "IMEPC IME Proceedings. Part C: Journal of Mechanical Engineering Science", "IMEPD IME Proceedings. Part D: Journal of Automobile Engineering", "IMEPE IME Proceedings. Part E: Journal of Process Mechanical Engineering", "IMEPG IME Proceedings. Part G: Journal of Aerospace Engineering", "IMEPH IME Proceedings. Part H: Journal of Engineering in Medicine", "IMEPI IME Proceedings. Part I: Journal of Systems and Control Engineering", "IMEPK IME Proceedings. Part K: Journal of Multibody Dynamics", "ICSE. Impact of Computing in Science and Engineering", "InEPS Indian Academy of Sciences Proceedings: Earth and Planetary Sciences", "InMS. Indian Academy of Sciences Proceedings Mathematical Sciences", "InASP Indian Academy of Sciences Proceedings Section", "InES. Indian Academy of Sciences Proceedings: Section C Engineering Sciences", "IUMJ. Indiana University Mathematics Journal", "IIApN Indian Institute of Astrophysics Newsletter", "InISJ Indian Institute of Science Journal", "InISA Indian Institute of Science Journal of Aeronomical Society of India", "ITJSE Indian Institute of Technology Journal on Section Engineering Technology", "InJAE Indian Journal of Aerospace Engineering Division", "InJBB Indian Journal of Biochemistry and Biophysics", "InJET Indian Journal of Electronics Telecommunication Engineering Division", "InJME Indian Journal of Mechanical Engineering Division", "IJMHG Indian Journal of Meteorology Hydrology and Geophysics", "InJPh Indian Journal of Physics", "InJP. Indian Journal of Physics and Proceedings of the Indian Assocatiation for the Cultivation of Science", "InJPA Indian Journal of Physics Section A", "InJPB Indian Journal of Physics Section B", "IJPAM Indian Journal of Pure and Applied Mathematics", "IJPAP Indian Journal of Pure and Applied Physics", "IJRSP Indian Journal of Radio and Space Physics", "InJHS Indian Journal of the History of Science", "InJTP Indian Journal of Theoretical Physics", "INSAP Indian National Science Academy Proceedings Supplement", "IDAQP Infinite Dimensional Analysis, Quantum Probability and Related Topics", "IBSH. Informational Bulletin of the Southern Hemisphere", "IBUAA Informational Bulletin of the Ukrainian Astronomical Association", "InCo. Information and Computation", "IBVS. Information Bulletin on Variable Stars", "InfCo Information Control", "InfD. Information Display", "IPM.. Information Processing and Management", "IPL.. Information Processing Letters", "ISNL. Information Systems Newsletter", "IRA.. Infrared Astronomy", "InfPh Infrared Physics", "InPhT Infrared Physics and Technology", "Ingeg Ingegneria", "IngAr Ingenieur Archiv", "InCh. Inorganic Chemistry", "IAL1K Institut d'Astronomie de Lausanne", "IMA.. Institute for Mathematics and Its Applications", "InFuJ Institute Fuel Journal", "JIECE Institute of Electronics Communication Engineers of Japan Transactions Section E English", "IPASA Institute of Physics Academia Sinica Annual Report", "ISASS Institute of Space and Astronautical Science Report", "ITABO Institute of Theoretical Astrophysics, Blindern-Oslo", "OslR. Institute of Theoretical Astrophysics Blindern Oslo Reports", "IEAEE Institution Engineers Australia Electrical Engineering Transactions", "IEEP. Institution of Electrical Engineers Proceedings", "IEREJ Institution of Electronic Radio Engineers Journal", "IETE. Institution of Electronics Telecommunication Engineers", "IAFET Instituto de Astronomia y Fisica del Espacio Buenos Aires", "MerRe Instituto Venezolano de Astronomia Merida Venezuela", "IRMBP Institut Royal Meteorologique de Belgique Publications Serie", "ITAB. Institut Teoreticheskoi Astronomii Byulleten", "TrITA Institut Teoreticheskoi Astronomii Trudy", "IET.. Instruments and Experimental Techniques", "InLoP Instytut Lotnictwa Prace", "InMPP Instytut Maszyn Przeplywowych Prace", "IntaC Inta Conie", "ITSF. Integral Transforms and Special Functions", "ICAE. Integrated Computer-Aided Engineering", "InFer Integrated Ferroelectrics", "Inter Interavia", "IntSM Interavia Space Markets", "ISRv. Interdisciplinary Science Reviews", "IFB.. Interfaces and Free Boundaries", "IPAUC INTERKOSMOS Prague Astronomicky Ustav Ceskoslovenske Akademie Ved", "IANT. International Advances in Nondestructive Testing", "IntAg International Agrophysics", "IAPPP International Amateur-Professional Photoelectric Photometry Communications", "IAM.. International Applied Mechanics", "IAUC. International Astronomical Union Circular", "ICQ.. International Comet Quarterly", "ICHMT International Communications in Heat and Mass Transfer", "IrPH. International Conference Infrared Physics Zurich Switzerland", "ICML. International Conference on Machine Learning", "IER.. Internationale Elektronische Rundschau", "InGeo International Geophysics Series", "IJCEM International Journal for Computational Methods in Engineering Science and Mechanics", "IJNAM International Journal for Numerical and Analytical Methods in Geomechanics", "IJNME International Journal for Numerical Methods in Engineering", "IJNMF International Journal for Numerical Methods in Fluids", "IJRPC International Journal for Radiation Physics and Chemistry", "IJACS International Journal of Adaptive Control and Signal Processing", "IJAdA International Journal of Adhesion Adhesives", "IJASS International Journal of Aeronautical and Space Sciences", "IJAEM International Journal of Analytical and Experimental Modal Analysis", "IJAEO International Journal of Applied Earth Observation and Geoinformation", "IJApE International Journal of Electromagnetics and Mechanics", "IJAIS International Journal of Applied Information Systems", "IJAM. International Journal of Applied Mechanics", "IJAsB International Journal of Astrobiology", "IJAA. International Journal of Astronomy and Astrophysics", "IJAP. International Journal of Aviation Psychology", "IJBC. International Journal of Bifurcation and Chaos", "IJBB. International Journal of Bioclimatology Biometeorology", "IJBm. International Journal of Biometeorology", "IJCli International Journal of Climatology", "IJCES International Journal of Computational Engineering Science", "IJCFD International Journal of Computational Fluid Dynamics", "IJCMS International Journal of Computational Materials Science and Engineering", "IJCA. International Journal of Computer Applications", "IJCAT International Journal of Computer Applications and Technology", "IJCMB International Journal of Computer Mathematics Section B", "IJCV. International Journal of Computer Vision", "IJC.. International Journal of Control", "IJDM. International Journal of Damage Mechanics", "IJDE. International Journal of Digital Earth", "IJDF. International Journal of Dynamics of Fluids", "IJEaS International Journal of Earth Sciences", "IJE.. International Journal of Electronics", "IJER. International Journal of Energy Research", "IJEFM International Journal of Engineering and Fluid Mechanics Spring", "IJES. International Journal of Engineering Science", "IJFa. International Journal of Fatigue", "IJFD. International Journal of Fluid Dynamics", "IJFr. International Journal of Fracture", "IJFE. International Journal of Fusion Energy", "IJGS. International Journal of General Systems", "IJGA. International Journal of Geomagnetism and Aeronomy", "IJGMM International Journal of Geometric Methods in Modern Physics", "IJGeo International Journal of Geophysics", "IJGNP International Journal of Green Nanotechnology Physics and Chemistry", "IJHFF International Journal of Heat and Fluid Flow", "IJHMT International Journal of Heat and Mass Transfer", "IJHSC International Journal of High Speed Computing", "IJHSE International Journal of High Speed Electronics and Systems", "IJHM. International Journal of Hybrid Microelectronics Fall", "IJHE. International Journal of Hydrogen Energy", "IJHy. International Journal of Hyperthermia", "IJIDF International Journal of Image and Data Fusion", "IJIG. International Journal of Image and Graphics", "IJIST International Journal of Imaging Systems Technology", "IJIE. International Journal of Impact Engineering", "IJIMW International Journal of Infrared and Millimeter Waves", "IJICS International Journal of Intelligent Control and Systems", "IJMSE International Journal of Mars Science and Exploration", "IJMSp International Journal of Mass Spectrometry", "IJMSI International Journal of Mass Spectrometry and Ion Processes", "IJMES International Journal of Mathematical Education in Science and Technology", "IJM.. International Journal of Mathematics", "IJMS. International Journal of Mechanical Sciences", "IJMW. International Journal of Mine Water", "IJMM. International Journal of Mini Microcomputers", "IJMoS International Journal of Modelling and Simulation", "IJMPA International Journal of Modern Physics A", "IJMPB International Journal of Modern Physics B", "IJMPC International Journal of Modern Physics C", "IJMPS International Journal of Modern Physics Conference Series", "IJMPD International Journal of Modern Physics D", "IJMPE International Journal of Modern Physics E", "IJMF. International Journal of Multiphase Flow", "IJN.. International Journal of Nanoscience", "IJNT. International Journal of Nanotechnology", "IJNS. International Journal of Neural Systems", "IJNLM International Journal of Non Linear Mechanics", "IJNOP International Journal of Nonlinear Optical Physics", "IJNMH International Journal of Numerical Methods for Heat &", "IJOpt International Journal of Optics", "IJOMS International Journal of Oral and Maxillofacial Surgery", "IJPRS International Journal of Photogrammetry and Remote Sensing", "IJPES International Journal of Physical and Engineering Sciences", "IJP.. International Journal of Plasticity", "IJPM. International Journal of Polymeric Materials", "IJPG. International Journal of Population Geography", "IJPR. International Journal of Production Research", "IJQC. International Journal of Quantum Chemistry", "IJRAI International Journal of Radiation Applications and Instrumentation D Nuclear Tracks and Radiation Measurements", "IJRB. International Journal of Radiation Biology", "IJRQS International Journal of Reliability, Quality and Safety Engineering", "IJRS. International Journal of Remote Sensing", "IJRR. International Journal of Robotics Research", "IJSC. International Journal of Satellite Communications", "IJSME International Journal of Science and Mathematics Education", "IJSEd International Journal of Science Education", "IJSE. International Journal of Solar Energy", "IJSS. International Journal of Solids and Structures", "IJSSD International Journal of Structural Stability and Dynamics", "IJScA International Journal of Supercomputer Applications", "IJSyS International Journal of Systems Science", "IJTP. International Journal of Theoretical Physics", "IJT.. International Journal of Thermophysics", "IJTJE International Journal of Turbo Jet Engines", "IMRv. International Materials Reviews", "IMeRv International Metals Reviews", "IREdu International Review of Education", "IRH.. International Review of Hydrobiology", "IRNP. International Review of Nuclear Physics", "IRPC. International Reviews in Physical Chemistry", "ISBRv International Space Business Review", "IUGG. International Union of Geodesy and Geophysics General Assembly", "IPNPR Interplanetary Network Progress Report", "IMPA. Interscience Monographs in Physics and Astronomy", "ITPA. Interscience Tracts on Physics and Astronomy", "InMat Inventiones Mathematicae", "InvPr Inverse Problems", "IGeo. Investigations in Geophysics", "InFiZ Inzhenerno Fizicheskii Zhurnal", "IonIs Ionosfernye Issledovaniia", "Iono. Ionosphere", "Ippa. Ipparchos", "IrJST Iranian Journal of Science Technology", "IRETE IRE Transactions on Education", "IrAJ. Irish Astronomical Journal", "IrAJS Irish Astronomical Journal Supplement", "ISAP. ISA Proceedings", "ISAT. ISA Transactions", "IHERv Ishikawajima Harima Engineering Review", "Isis. Isis. Journal of the History of Science Society", "IPBS. Isotopes in the Physical and Biomedical Sciences", "IsJT. Israel Journal of Technology", "IsSRT Israel Space Research and Technology Information Bulletin", "ISRAA ISRN Astronomy and Astrophysics", "ISCJS ISRO Satellite Centre Journal of Spacecraft Technology", "ISSIR ISSI Scientific Reports Series", "ISSIR ISSI Scientific Reports Series", "IssZK Issledovanie Zemli Fiz Kosmosa", "IGAFS Issledovaniia Geomagnetizmu Aeronomii i Fizike Solntsa", "IsMTD Issledovaniia Mekhanike i Teploobmenu Dvukhfaznykh Sred", "IssUP Issledovaniia Uprugosti i Plastichnosti", "ISKZ. Issledovaniya Solntsa i Krasnykh Zvezd", "IST.. Issues in Science and Technology", "IsJAP Istanbul University Faculty of Science Journal of Astronomy Physics", "IsRvC Istanbul University Faculty Science Review Serie C", "IINA. Istituto Italiano di Navigazione Atti", "IAIss Istoriko-Astronomicheskie Issledovaniya", "ITCJ. ITC Journal", "INTSA Itogi Nauki i Tekhniki Seriia Astronomiia", "INTSF Itogi Nauki i Tekhniki Seriia Fizika Plazmy", "INTSI Itogi Nauki i Tekhniki Seriia Issledovanie Kosmicheskogo Prostranstva", "INTMK Itogi Nauki i Tekhniki Seriia Meteorologiia i Klimatologiia", "INTSO Itogi Nauki i Tekhniki Seriia Okeanologiia", "INTSR Itogi Nauki i Tekhniki Seriia Radiotekhnika", "INTSS Itogi Nauki i Tekhniki Seriia Sovremennye Problemy Matematiki", "INTSV Itogi Nauki i Tekhniki Seriia Vozdushnyi Transport", "ITUTJ ITU Telecommunication Journal", "IUEEN IUE ESA Newsletter", "IUENN IUE NASA Newsletter", "IzTad Izvestiia Akademiia Nauk TadzhSSR", "IzSF. Izvestiia Akademii Nauk Seriya Fizicheskaya", "IzGla Izvestiia Glavnoi rossiiskoi astronomicheskoi observatorii", "IzVGA Izvestiia vuzov. Geodeziia Aehrofotosemka", "IzVF. Izvestiia Vysshaia Uchebn. Zaved., Fizika", "IzVUZ Izvestiia Vysshaia Uchebn. Zaved., Radiofizika", "IzAsh Izvestiya Akademii Nauk Turkmenskoj SSR Ashkhabad", "IzArm Izvestiya Akademiya Nauk Armyanskoi", "IzAlm Izvestiya Astrofizicheskogo Instituta Alma-Ata", "IzEhn Izvestiya Astronomicheskoj Engel'gardt obskoj Observatorii Kazan", "IzAOP Izvestiya Atmospheric and Oceanic Physics", "IzKie Izvestiya Glavnoj Astronomicheskoj Observatorii Kiev", "IzPul Izvestiya Glavnoj Astronomicheskoj Observatorii v Pulkove", "IzMat Izvestiya: Mathematics", "IzAne Izvestiya na Fizicheskiya Institut s Aneb", "IzKry Izvestiya Ordena Trudovogo Krasnogo Znameni Krymskoj Astrofizicheskoj Observatorii", "IzPSE Izvestiya Physics of the Solid Earth", "IzAvT Izvestiya VUZ Aviatsionnaya Tekhnika", "IzRad Izvestiya VUZ Radiofizika", "IzNic Izviestiia Nikolaevskoi glavnoi astronomicheskoi observatorii", "JWUDF Jahns Wöchentliche Unterhaltungen Für Dilettanten und Freunde der Astronomie, Georgraphie und Witterungskunde", "JRE.. Jahrbuch der Radioaktivität und Elektronik", "JASAC Japan Astronomical Study Association Circulars", "JaJAP Japanese Journal of Applied Physics", "JJAPL Japanese Journal of Applied Physics Letters B", "JJAPR Japanese Journal of Applied Physics Regular Papers Short Notes and Review Papers", "JJAPS Japanese Journal of Applied Physics Supplement", "JaJAG Japanese Journal of Astronomy and Geophysics", "JMMPS Japanese Magazine of Mineralogical and Petrological Sciences", "JaIMJ Japan Institute of Metals Journal", "JSASS Japan Society of Aeronautical Space Sciences", "JSAST Japan Society of Aeronautical Space Sciences Transactions", "JSAPJ Japan Society of Air Pollution Journal", "JSCMJ Japan Society of Composite Materials Journal", "JSLEJ Japan Society of Lubrication Engineers Journal", "JSMSJ Japan Society of Materials Science Journal", "JSPS. Japan Society of Promotion Science", "JSMAJ JASMA Japan Society of Microgravity Application Journal", "JMeOp Jemna Mechanika Optika", "JenRu Jenaer Rundschau", "JenRv Jena Review", "JBAn. Jodrell Bank Annals", "JBASP Jodrell Bank Ann Ser Pt", "JBRe. Jodrell Bank Reprints", "JHATD Johns Hopkins APL Technical Digest", "JOM.. JOM - Journal of the Minerals, Metals and Materials Society", "RSNSW Journal and Proceedings of the Royal Society of New South Wales", "JAco. Journal d'Acoustique", "JCP.. Journal de Chimie Physique", "JCPPC Journal de Chimie Physique et de Physico-Chimie Biologique", "JMec. Journal de Mecanique", "JMecA Journal de Mecanique Appliquee", "JMecT Journal de Mecanique Theorique et Appliquee", "JMTAS Journal de Mecanique Theorique et Appliquee Supplement", "JPhys Journal de Physique", "JPhyC Journal de Physique Colloque", "JPR.. Journal de Physique et le Radium", "JPhy1 Journal de Physique I", "JPhy2 Journal de Physique II", "JPhy3 Journal de Physique III", "JPhy4 Journal de Physique IV", "JPhyL Journal de Physique Lettres", "JPhTA Journal de Physique Theorique et Apliquee", "JReAt Journal de Recherches Atmospheriques", "JAF.. Journal des Astronomes Francais", "JO... Journal des Observateurs", "JOp.. Journal d'Optique", "JTP.. Journal for Technology of Plasticity", "JHA.. Journal for the History of Astronomy", "JHAS. Journal for the History of Astronomy Supplement", "JRAM. Journal fur die reine und angewandte Mathematik", "JNanU Journal Nanjing Univ", "JNIRE Journal NIRE", "JAE.. Journal of Acoustic Emission", "JAMDS Journal of Advanced Mechanical Design, Systems, and Manufacturing", "JAMES Journal of Advances in Modeling Earth Systems", "JAerS Journal of Aerosol Science", "JAerE Journal of Aerospace Engineering", "JAerP Journal of Aerospace Power", "JAfES Journal of African Earth Sciences", "JAER. Journal of Agricultural Engineering Research", "JAir. Journal of Aircraft", "JAlg. Journal of Algebra", "JAlgC Journal of Algebraic Combinatorics", "JAlgo Journal of Algorithms", "JAllC Journal of Alloys and Compounds", "JACS. Journal of American Ceramic Society", "JAAS. Journal of Analytical Atomic Spectrometry", "JApCr Journal of Applied Crystallography", "JApEl Journal of Applied Electrochemistry", "JAG.. Journal of Applied Geophysics", "JApMM Journal of Applied Mathematics and Mechanics", "JAM.. Journal of Applied Mechanics", "JAMTP Journal of Applied Mechanics and Technical Physics", "JApMw Journal of Applied Metalworking", "JApMe Journal of Applied Meteorology", "JApMC Journal of Applied Meteorology and Climatology", "JAPE. Journal of Applied Photographic Engineering", "JAP.. Journal of Applied Physics", "JAPh. Journal of Applied Physiology", "JARS. Journal of Applied Remote Sensing", "JASE. Journal of Applied Science and Engineering Section on Electrical Power and Information Systems", "JApSc Journal of Applied Sciences", "JApSp Journal of Applied Spectroscopy", "JApS. Journal of Applied Statistics", "JApT. Journal of Approximation Theory", "JAESc Journal of Asian Earth Sciences", "JAD.. Journal of Astronomical Data", "JAHH. Journal of Astronomical History and Heritage", "JAI.. Journal of Astronomical Instrumentation", "JAsPh Journal of Astronomy and Physics (Turkey)", "JASS. Journal of Astronomy and Space Sciences", "JApA. Journal of Astrophysics and Astronomy", "JApAS Journal of Astrophysics and Astronomy Supplement", "JAtOT Journal of Atmospheric and Oceanic Technology", "JASTP Journal of Atmospheric and Solar-Terrestrial Physics", "JATP. Journal of Atmospheric and Terrestrial Physics", "JAtC. Journal of Atmospheric Chemistry", "JAtS. Journal of Atmospheric Sciences", "JAMOP Journal of Atomic, Molecular and Optical Physics", "JAES. Journal of Audio Engineering Society", "JAuGG Journal of Australian Geology and Geophysics", "JAuR. Journal of Automated Reasoning", "JBall Journal of Ballistics", "JBBM. Journal of Biochemical and Biophysical Methods", "JBB.. Journal of Bioenergetics and Biomembranes", "JBC.. Journal of Biological Chemistry", "JBP.. Journal of Biological Physics", "JBiom Journal of Biomechanics", "JBO.. Journal of Biomedical Optics", "JBNMR Journal of Biomolecular NMR", "JBBC. Journal of Biophysical and Biochemical Cytology", "JBiop Journal of Biophysics", "JBiBi Journal of Biophysique et Biomecanique", "JBMN. Journal of Biophysique et Medecine Nucleaire", "JBMR. Journal of Bone and Mineral Research", "JBR.. Journal of Breath Research", "JCat. Journal of Catalysis", "JChEd Journal of Chemical Education", "JChPh Journal of Chemical Physics", "JChS. Journal of Chromatographic Science", "JCh.. Journal of Chromatography", "JCSC. Journal of Circuits, Systems and Computers", "JCli. Journal of Climate", "JCAM. Journal of Climate and Applied Meteorology", "JClim Journal of Climatology", "JCS.. Journal of Clinical Microbiology", "JClP. Journal of Clinical Pharmacology", "JCS.. Journal of Cluster Science", "JCScT Journal of College Science Teaching", "JCIS. Journal of Colloid and Interface Science", "JCoSc Journal of Colloid Science", "JCTA. Journal of Combinatorial Theory, Series A", "JCTB. Journal of Combinatorial Theory, Series B", "JCom. Journal of Communications", "CoNet Journal of Communications and Networks", "JComp Journal of Complexity", "JCoMa Journal of Composite Materials", "JCTR. Journal of Composites and Technology Research", "JCA.. Journal of Computational Acoustics", "JTCN. Journal of Computational and Theoretical Nanoscience", "JCoAM Journal of Computational and Applied Mathematics", "JCoB. Journal of Computational Biology", "JCoCh Journal of Computational Chemistry", "JCM.. Journal of Computational Mathematics", "JCoN. Journal of Computational Neuroscience", "JCoPh Journal of Computational Physics", "JCST. Journal of Computational Science and Technology", "JCMD. Journal of Computer-Aided Materials Design", "JCAMD Journal of Computer-Aided Molecular Design", "JCoSS Journal of Computer and System Sciences", "JCHyd Journal of Contaminant Hydrology", "JConP Journal of Contemporary Physics (Armenian Academy of Sciences)", "JCos. Journal of Cosmology", "JCAP. Journal of Cosmology and Astro-Particle Physics", "JCrGr Journal of Crystal Growth", "JDR.. Journal of Dairy Research", "JDE.. Journal of Differential Equations", "JDGeo Journal of Differential Geometry", "JoDI. Journal of Digital Information", "JDST. Journal of Dispersion Science and Technology", "JDisT Journal of Display Technology", "JDSO. Journal of Double Star Observations", "JDCS. Journal of Dynamical and Control Systems", "JDDE. Journal of Dynamics and Differential Equations", "JESS. Journal of Earth System Science", "JElas Journal of Elasticity", "JEEEA Journal of Electrical and Electronics Engineering Australia", "JEE.. Journal of Electrical Engineering", "JElec Journal of Electroceramics", "JEAA. Journal of Electromagnetic Analysis and Application", "JEWA. Journal of Electromagnetic Waves and Applications", "JECS. Journal of Electronic Circuits and Systems", "JEI.. Journal of Electronic Imaging", "JEMat Journal of Electronic Materials", "JEPub Journal of Electronic Publishing", "JECTC Journal of Electronics Cooling and Thermal Control", "JElM. Journal of Electronics Manufacturing", "JEMT. Journal of Electron Microscopy Technique", "JESRP Journal of Electron Spectroscopy and Related Phenomena", "JESEd Journal of Elementary Science Education", "JEner Journal of Energy", "JEAS. Journal of Engineering and Applied Sciences", "JEnMa Journal of Engineering and Mathematics", "JEngM Journal of Engineering and Mechanics", "JETh. Journal of Engineering and Thermophysics", "JEER. Journal of Engineering Education Research", "JEP.. Journal of Engineering Physics", "JEPT. Journal of Engineering Physics and Thermophysics", "JEngS Journal of Engineering Sciences", "JEEM. Journal of Environmental and Economics Management", "JECE. Journal of Environmental Conservation Engineering", "JEnvS Journal of Environmental Sciences", "JExB. Journal of Experimental Botany", "JENan Journal of Experimental Nanoscience", "JFF.. Journal of Fire Flammability", "JFC.. Journal of Fluid Control", "JFM.. Journal of Fluid Mechanics", "JFS.. Journal of Fluids and Structures", "JFST. Journal of Fluid Science and Technology", "JFlu. Journal of Fluorescence", "JFAA. Journal of Fourier Analysis and Applications", "JFuA. Journal of Functional Analysis", "JGeod Journal of Geodesy", "JGeo. Journal of Geodynamics", "JGS.. Journal of Geographical Systems", "JGIS. Journal of Geographic Information System", "JG... Journal of Geology", "JGG.. Journal of Geomagnetism and Geoelectricity", "JGGS. Journal of Geomagnetism and Geoelectricity Supplement", "JGP.. Journal of Geometry and Physics", "JGR.. Journal of Geophysical Research", "JGRD. Journal of Geophysical Research (Atmospheres)", "JGRG. Journal of Geophysical Research (Biogeosciences)", "JGRF. Journal of Geophysical Research (Earth Surface)", "JGRC. Journal of Geophysical Research (Oceans)", "JGRE. Journal of Geophysical Research (Planets)", "JGRB. Journal of Geophysical Research (Solid Earth)", "JGRA. Journal of Geophysical Research (Space Physics)", "JGRS. Journal of Geophysical Research Supplement", "JGE.. Journal of Geophysics and Engineering", "JGZG. Journal of Geophysics Zeitschrift Geophysik", "JGeEd Journal of Geoscience Education", "JGlac Journal of Glaciology", "JGO.. Journal of Global Optimization", "JGrPh Journal of Gravitational Physics", "JGHyd Journal of Groundwater Hydrology", "JGuC. Journal of Guidance Control", "JGCD. Journal of Guidance Control Dynamics", "JHeu. Journal of Heuristics", "JHENP Journal of High Energy and Nuclear Physics", "JHEP. Journal of High Energy Physics", "JHEPC Journal of High Energy Physics Conference Proceedings", "JHSN. Journal of High Speed Networks", "JHTS. Journal of High Temperature Society", "JHyd. Journal of Hydrology", "JHyMe Journal of Hydrometeorology", "JHyn. Journal of Hydronautics", "JIST. Journal of Imaging Science and Technology", "JIPM. Journal of Information Processing and Management", "JInfo Journal of Informetrics", "JIMW. Journal of Infrared and Millimeter Waves", "JInst Journal of Instrumentation", "JIntS Journal of Integer Sequences", "JIEq. Journal of Integral Equations", "JIRS. Journal of Intelligent and Robotic Systems", "JIMSS Journal of Intelligent Material Systems and Structures", "JIEx. Journal of Ion Exchange", "JJAEE Journal of Japan Association for Earthquake Engineering", "JJAHS Journal of Japanese Association of Hydrological Sciences", "JJSEE Journal of Japanese Society for Engineering Education", "JSCSE Journal of Japan Society of Civil Engineers, Ser. A1 (Structural Engineering &", "JSCAM Journal of Japan Society of Civil Engineers, Ser. A2 (Applied Mechanics (AM))", "JSCHE Journal of Japan Society of Civil Engineers, Ser. B1 (Hydraulic Engineering)", "JSCGE Journal of Japan Society of Civil Engineers, Ser. C (Geosphere Engineering)", "JSCAI Journal of Japan Society of Civil Engineers, Ser. D1 (Architecture of Infrastructure and Environment)", "JSCHS Journal of Japan Society of Civil Engineers, Ser. D2 (Historical Studies in Civil Engineering)", "JSCIP Journal of Japan Society of Civil Engineers, Ser. D3 (Infrastructure Planning and Management)", "JSCPE Journal of Japan Society of Civil Engineers, Ser. E1 (Pavement Engineering)", "JSCMC Journal of Japan Society of Civil Engineers, Ser. E2 (Materials and Concrete Structures)", "JSCTE Journal of Japan Society of Civil Engineers, Ser. F1 (Tunnel Engineering)", "JSCUS Journal of Japan Society of Civil Engineers, Ser. F2 (Underground Space Research)", "JSCCE Journal of Japan Society of Civil Engineers, Ser. F3 (Civil Engineering Informatics)", "JSCCM Journal of Japan Society of Civil Engineers, Ser. F4 (Construction and Management)", "JSCPP Journal of Japan Society of Civil Engineers, Ser. F5 (Professional Practices in Civil Engineering)", "JSCSP Journal of Japan Society of Civil Engineers, Ser. F6 (Safety Problem)", "JSCER Journal of Japan Society of Civil Engineers, Ser. G (Environmental Research)", "JKTR. Journal of Knot Theory and its Ramifications", "JKAS. Journal of Korean Astronomical Society", "JKASS Journal of Korean Astronomical Society Supplement", "JKPS. Journal of Korean Physical Society", "JLCMe Journal of Laboratory and Clinical Medicine", "JLasA Journal of Laser Applications", "JLCM. Journal of Less Common Metals", "JLVEn Journal of Light &", "JLwT. Journal of Lightwave Technology", "JLTP. Journal of Low Temperature Physics", "JLum. Journal of Luminescence", "JMSB. Journal of Macromolecular Science, Part B: Physics", "JMSC. Journal of Macromolecular Science, Part C: Reviews in Macromolecular Chemistry and Physics", "JMagR Journal of Magnetic Resonance", "JMMM. Journal of Magnetism and Magnetic Materials", "JMR.. Journal of Marine Research", "JMSA. Journal of Marine Science and Application", "JMS.. Journal of Marine Systems", "JMarA Journal of Maritime Archaeology", "JMES. Journal of Materials and Energy Systems", "JMCh. Journal of Materials Chemistry", "JMEP. Journal of Materials Engineering and Performance", "JMPMS Journal of Materials Processing and Manufacturing Science", "JMatR Journal of Materials Research", "JMatS Journal of Materials Science", "JMSME Journal of Materials Science and Materials Electronics", "JMSL. Journal of Materials Science Letters", "JMSMM Journal of Materials Science: Materials in Medicine", "JMSP. Journal of Materials Synthesis and Processing", "JMAA. Journal of Mathematical Analysis and Applications", "JMCS. Journal of Mathematical and Computational Science", "JMPS. Journal of Mathematical and Physical Sciences", "JMaCh Journal of Mathematical Chemistry", "JMFM. Journal of Mathematical Fluid Mechanics", "JMIV. Journal of Mathematical Imaging and Vision", "JMP.. Journal of Mathematical Physics", "JMPsy Journal of Mathematical Psychology", "JMaSc Journal of Mathematical Sciences", "JMSo. Journal of Mathematical Sociology", "JMaMe Journal of Mathematics and Mechanics", "JMaPh Journal of Mathematics and Physics", "JMecE Journal of Mechanical and Engineering Science", "JMBM. Journal of Mechanical Behavior and Materials", "JMSTL Journal of Mechanical Systems for Transportation and Logistics", "JMPSo Journal of Mechanics Physics of Solids", "JMNB. Journal of Medecine Nucleaire et Biophysique", "JMet. Journal of Metals", "JMemS Journal of Microelectromechanical Systems", "JMiMi Journal of Micromechanics and Microengineering", "JMic. Journal of Microscopy", "JMPeS Journal of Mineralogical and Petrological Sciences", "JMOp. Journal of Modern Optics", "JMPh. Journal of Modern Physics", "JMBio Journal of Molecular Biology", "JMoEl Journal of Molecular Electronics", "JMolE Journal of Molecular Evolution", "JMoSp Journal of Molecular Spectroscopy", "JMoSt Journal of Molecular Structure", "JMA.. Journal of Multivariate Analysis", "JNUNS Journal of Nanjing University (Natural Sciences)", "JNR.. Journal of Nanoparticle Research", "JNano Journal of Nanophotonics", "JNav. Journal of Navigation", "JNIS. Journal of Near Infrared Spectroscopy", "JNEng Journal of Neural Engineering", "JNeur Journal of Neurochemistry", "JNO.. Journal of Neuro-Oncology", "JNCS. Journal of Non Crystalline Solids", "JNE.. Journal of Nondestructive Evaluation", "JNET. Journal of Non Equilibrium Thermodynamics", "JNMP. Journal of Nonlinear Mathematical Physics", "JNLM. Journal of Non Linear Mechanics", "JNOPM Journal of Nonlinear Optical Physics and Materials", "JNS.. Journal of NonLinear Science", "JNuE. Journal of Nuclear Energy", "JNuM. Journal of Nuclear Materials", "JNT.. Journal of Number Theory", "JOUC. Journal of Ocean University of China", "JOC.. Journal of Optical Communications", "JON.. Journal of Optical Networking", "JOptT Journal of Optical Technology", "JOpt. Journal of Optics", "JOptA Journal of Optics A: Pure and Applied Optics", "JOptB Journal of Optics B: Quantum and Semiclassical Optics", "JOTA. Journal of Optimization Theory Applications", "JOMS. Journal of Oral and Maxillofacial Surgery", "JOR.. Journal of Oral Rehabilitation", "JPal. Journal of Paleontology", "JPDC. Journal of Parallel and Distributed Computing", "JPet. Journal of Petrology", "JPhPh Journal of Pharmacy and Pharmacology", "JPCRD Journal of Physical and Chemical Reference Data", "JPCC. Journal of Physical and Colloid Chemistry", "JPhCh Journal of Physical Chemistry", "JPCA. Journal of Physical Chemistry A", "JPCB. Journal of Physical Chemistry B", "JPO.. Journal of Physical Oceanography", "JPhSt Journal of Physical Studies", "JPhA. Journal of Physics A Mathematical General", "JPCS. Journal of Physics and Chemistry of Solids", "JPhB. Journal of Physics B Atomic Molecular Physics", "JPCM. Journal of Physics Condensed Matter", "JPhCS Journal of Physics Conference Series", "JPhC. Journal of Physics C Solid State Physics", "JPhD. Journal of Physics D Applied Physics", "JPhE. Journal of Physics E Scientific Instruments", "JPhF. Journal of Physics F Metal Physics", "JPhG. Journal of Physics G Nuclear Physics", "JPhGS Journal of Physics G Nuclear Physics Supplement", "JPE.. Journal of Physics of the Earth", "JPTEO Journal of Physics Teacher Education Online", "JPhsg Journal of Physiology", "JPFR. Journal of Plasma and Fusion Research", "JPlPh Journal of Plasma Physics", "JPoSc Journal of Polymer Science", "JPoSA Journal of Polymer Science A Polymer Chemistry", "JPoSB Journal of Polymer Science B Polymer Physics", "JPoSL Journal of Polymer Science: Polymer Letters Edition", "JPMat Journal of Porous Materials", "JPES. Journal of Power and Energy Systems", "JPS.. Journal of Power Sources", "JPAS. Journal of Practical Applications in Space", "JPP.. Journal of Propulsion and Power", "JPT.. Journal of Propulsion Technology", "JPrCh Journal of Protein Chemistry", "JPApS Journal of Pure Applied Sciences", "JQT.. Journal of Quality Technology", "JQSRT Journal of Quantitative Spectroscopy and Radiative Transfer", "JQS.. Journal of Quaternary Science", "JRNC. Journal of Radioanalytical and Nuclear Chemistry", "JRAC. Journal of Radioanalytical Chemistry", "JRP.. Journal of Radiological Protection", "JRSp. Journal of Raman Spectroscopy", "JRPC. Journal of Reinforced Plastics and Composites", "JRes. Journal of Research", "JRPhy Journal of Research in Physics", "JRScT Journal of Research in Science Teaching", "JRIST Journal of Research Institute of Science and Technology, College of Science and Technology, Nihon University", "JRNBS Journal of Research of the National Bureau of Standards", "JRNBA Journal of Research of the National Bureau of Standards A Physica and Chemsitry", "JRNBB Journal of Research of the National Bureau of Standards B Mathematical Sciences", "JRTEd Journal of Research on Technology in Education", "JResB Journal of Research Section B Mathematical Sciences B", "JRheo Journal of Rheology", "JRoS. Journal of Robotic Systems", "JRLR. Journal of Russian Laser Research", "JSEdT Journal of Science Education and Technology", "JSTEd Journal of Science Teacher Education", "JSCom Journal of Scientific Computing", "JScI. Journal of Scientific Instruments", "JSIPI Journal of Scientific Instruments and of Physics in Industry", "JSR.. Journal of Sea Research", "JSedR Journal of Sedimentary Research", "JSeis Journal of Seismology", "JSemi Journal of Semiconductors", "JSGeo Journal of Series Geophysics", "JShR. Journal of Ship Research", "JSGST Journal of Sol-Gel Science and Technology", "JSMME Journal of Solid Mechanics and Materials Engineering", "JSSCh Journal of Solid State Chemistry France", "JSCh. Journal of Solution Chemistry", "JSV.. Journal of Sound Vibration", "JSAES Journal of South American Earth Sciences", "JSLR. Journal of Soviet Laser Research", "JSAR. Journal of Space Astronomy Research", "JSpRo Journal of Spacecraft and Rockets", "JSpT. Journal of Spacecraft Technology", "JSpEn Journal of Space Engineering", "JSWSC Journal of Space Weather and Space Climate", "JSCS. Journal of Statistical Computation and Simulation", "JSMTE Journal of Statistical Mechanics: Theory and Experiment", "JSP.. Journal of Statistical Physics", "JStA. Journal of Strain Analysis and Engineering Design", "JSG.. Journal of Structural Geology", "JSM.. Journal of Structural Mechanics", "JSup. Journal of Superconductivity", "JSymC Journal of Symbolic Computation", "JSDD. Journal of System Design and Dynamics", "JTePh Journal of Technical Physics", "JTech Journal of Technology", "JTeEv Journal of Testing Evaluation", "JASJa Journal of the Acoustical Society of Japan", "JAVSO Journal of the American Association of Variable Star Observers (JAAVSO)", "JAChS Journal of the American Chemical Society", "JAMS. Journal of the American Mathematical Society", "JASIS Journal of the American Society for Information Science and Technology", "JASCE Journal of the American Society of Civil Engineers", "JAWRA Journal of the American Water Resources Association", "JALPO Journal of the Association of Lunar and Planetary Observers, the Strolling Astronomer", "JAnSc Journal of the Astronautical Sciences", "JASEg Journal of the Astronomical Society of Egypt", "JASSA Journal of the Astronomical Society of Southern Africa", "JASV. Journal of the Astronomical Society of Victoria Melbourne", "JASWA Journal of the Astronomical Society of Western Australia", "JBAA. Journal of the British Astronomical Association", "JBAS. Journal of the British Astronomical Society", "JBIS. Journal of the British Interplanetary Society", "JCSS. Journal of the Chinese Silicate Society", "JElS. Journal of the Electrochemical Society", "FrInJ Journal of The Franklin Institute", "JGSJ. Journal of the Geodetic Society of Japan", "JIISB Journal of the Indian Institute of Science Section B Physical and Chemical Series", "JIEEJ Journal of The Institute of Electrical Engineers of Japan", "JIMIA Journal of the Institute of Mathematics and Its Applications", "JIPNT Journal of the Institute of Positioning, Navigation and Timing of Japan", "JIETE Journal of the Institution of Electronics and Telecommunication Engineers", "JJSMS Journal of the Japan Society for Marine Surveys and Technology", "JLMS. Journal of the London Mathematical Society", "JORS. Journal of the Operational Research Society", "JOSA. Journal of the Optical Society of America (1917-1983)", "JOSAA Journal of the Optical Society of America A", "JOSAB Journal of the Optical Society of America B Optical Physics", "JTAM. Journal of Theoretical and Applied Mechanics", "JTBio Journal of Theoretical Biology", "JPSJ. Journal of the Physical Society of Japan", "JPSJS Journal of the Physical Society of Japan Supplement", "JTAC. Journal of Thermal Analysis and Calorimetry", "JThSc Journal of Thermal Science", "JJTST Journal of Thermal Science and Technology", "JTST. Journal of Thermal Spray Technology", "JThSt Journal of Thermal Stresses", "JTh.. Journal of Thermodynamics", "JTHT. Journal of Thermophysics and Heat Transfer", "JThCM Journal of Thermoplastic Composite Materials", "JRASA Journal of the Royal Aeronautical Society of London", "JRASC Journal of the Royal Astronomical Society of Canada", "JRASN Journal of the Royal Astronomical Society of New Zealand", "JRCSE Journal of the Royal College of Surgeons of Edinburgh", "JRSSD Journal of the Royal Statistical Society: Series D (The Statistician)", "JSRP. Journal of the Society for Radiological Protection", "JSPST Journal of The Society of Photographic Science and Technology of Japan", "JSARA Journal of the Southeastern Association for Research in Astronomy", "JSD.. Journal of the Structural Division, American Society of Civil Engineers", "JVSJ Journal of the Vacuum Society of Japan", "JWasA Journal of the Washington Academy of Sciences", "JTF.. Journal of Time and Frequency", "JTurb Journal of Turbulence", "JVST. Journal of Vacuum Science Technology", "JVSTA Journal of Vacuum Science Technology A: Vacuum Surfaces and Films", "JVSTB Journal of Vacuum Science Technology B: Microelectronics and Nanometer Structures", "JVC.. Journal of Vibration and Control", "JVE.. Journal of Vibration Engineering", "JVCIR Journal of Visual Communication and Image Representation", "JVGR. Journal of Volcanology and Geothermal Research", "JWMSE Journal of Women and Minorities in Science and Engineering", "JXST. Journal of X-Ray Science and Technology", "RpScT JPRS Report Science Technology USSR Space", "JSMB. JSME Bulletin", "JSMEJ JSME International Journal", "JSMEA JSME International Journal Series A", "JSMEB JSME International Journal Series B", "JSMEC JSME International Journal Series C", "JSMET JSME Transactions", "KKR.. Kagaku Kogaku Ronbunshu", "MmKMO Kakioka Magnetic Observatory Memoirs", "KEIJ. Kansei Engineering International Journal", "GroR. Kapteyn Astronomical Laboratory Groningen Reports", "KIzKU Kazan Izdatel Kazanskogo Universiteta", "MeeRe Kenneth Mees Observatory Reprints", "KernR Kernforschungsanlage Rept Res Results Solid State Nucl Phys", "KexT. Kexue Tongbao", "Khago Khagol", "KharI Kharkov Izdanie IRE AN USSR", "KTTM. Khimiia i Tekhnologiia Topliv i Masel", "KhPl. Khimiia Plazmy", "KVnT. Kibernetika i Vychislitel naia Tekhnika", "KiInF Kiev Institut Fiziki AN USSR", "KiInM Kiev Institut Matematiki AN USSR", "KIPME Kiev Institut Problem Modelirovaniia Energetike AN USSR", "KIzIM Kiev Izdanie Instituta Matematiki AN USSR", "KiIND Kiev Izdatel Naukova Dumka", "KiIzT Kiev Izdatel Tekhnika", "KIzVS Kiev Izdatel Vishcha Shkola", "KiePr Kievskij Ordena Lenina Gosudarstvennyj Universitet Shevchenko Astronomicheskaya Observatoriya - Preprint", "KPCB. Kinematics and Physics of Celestial Bodies", "KPCBS Kinematics and Physics of Celestial Bodies, Supplement", "KFNT. Kinematika i Fizika Nebesnykh Tel", "KFNTS Kinematika i Fizika Nebesnykh Tel Supplement", "KiCat Kinetics and Catalysis", "KIzS. Kishinev Izdatel Shtiintsa", "KPNON Kitt Peak National Observatory Newsletter", "KVeBB Kleine Veroeffentlichungen der Universitaetssternwarte zu Berlin Babelsberg", "KlBer Kleinheubacher Berichte", "KodOB Kodaikanal Observatory Bulletins", "KodRe Kodaikanal Observatory Reprints", "KomTs Kometnyj Tsirkulyar", "KomMe Komety i Meteory", "KNAB. Koninklijke Nederlandse Akademie van Weteschappen Proceedings Series B Physical Sciences", "KIMMJ Korean Institute of Metals and Materials Journal", "KNT.. Kosmicheskaia Nauka i Tekhnika", "KosIs Kosmicheskie Issledovaniia", "KosIU Kosmicheskie Issledovaniia Ukraine", "KosLu Kosmicheskie Luchi", "KosNT Kosmichna Nauka i Tekhnologiya", "Kozmo Kozmos", "KT... K-Theory", "KSVH. Kungl. Svenska Vetenskapsakademiens Handlingar", "KvanE Kvantovaia Elektronika Moscow", "Kyb.. Kybernetes", "KyoMe Kyoto University Faculty Engineering Memoirs", "KyITB Kyushu Institute Technology Bulletin", "KUFEM Kyushu University Faculty Engineering Memoirs", "KyUAM Kyushu University Research Institute Applied Mechanics Reports", "KyUSR Kyushu University Research Institute Industrial Science Reports", "KyUTR Kyushu University Technology Reports", "LChip Lab on a Chip", "AerAs L'Aeronautique et L'Astronautique", "AerMS L'Aerotecnica Missili e Spazio", "LHBl. La Houille Blanche", "Meteo La Meteorologie", "LDD.. Land Degradation &", "LanB. Landolt Börnstein", "Langm Langmuir", "LaJ.. Lapidary Journal", "Rech. La Recherche", "ReAer La Recherche Aerospatiale", "ReAeB La Recherche Aerospatiale Bimonthly Bulletin ESA", "ReSp. La Recherche Spatiale", "LPB.. Laser and Particle Beams", "LaEO. Laser Elektro Optik", "LaFoc Laser Focus", "LasJ. Laser Journal", "LaPhy Laser Physics", "LaPhL Laser Physics Letters", "LaPhR Laser Physics Review", "Astrf L'Astrofilo Bolletino Trimestral del Gruppo Astrofili Villaggio Sereno Brescia", "LAstr L'Astronomie", "LTerm La Termotecnica", "LatJP Latvian Journal of Physics and Technical Sciences", "LatME Latviiskii Matematicheskii Ezhegodnik", "LawOB Laws Observatory Bulletin, University of Missouri", "LBLRR LBL Research Review", "ASPL. Leaflet of the Astronomical Society of the Pacific", "ASPLS Leaflet of the Astronomical Society of the Pacific (Supplement)", "LePub Learned Publishing", "LERec L'Echo des Recherches", "Ciel. Le Ciel", "LNEA. Lecture Notes and Essays in Astrophysics", "LNSP. Lecture Notes and Supplements in Physics", "LNCS. Lecture Notes in Computer Science", "LNES. Lecture Notes in Earth Sciences, Berlin Springer Verlag", "LNEn. Lecture Notes in Engineering, Berlin Springer Verlag", "LNM.. Lecture Notes in Mathematics, Berlin Springer Verlag", "LNP.. Lecture Notes in Physics, Berlin Springer Verlag", "LNPAM Lecture Notes in Pure and Applied Mathematics", "LeBAN Leningrad Biblioteka Akademii Nauk SSSR", "LeEne Leningrad Energoizdat", "LeGid Leningrad Gidrometeoizdat", "PrAtO Leningrad Gidrometeoizdat Sovremennye Problemy Atmosfernoi Optiki", "LeIzE Leningrad Izdatel Energiia", "LeIzG Leningrad Izdatel Gidrometeoizdat", "LeIzK Leningrad Izdatel Khimiia", "LeIzU Leningrad Izdatel Leningradskogo Universiteta", "LeIzM Leningrad Izdatel Mashinostroenie", "LeIzN Leningrad Izdatel Nauka", "LIzNe Leningrad Izdatel Nedra", "IzLen Leningrad, Izdatel'stvo Nauka", "LeIzS Leningrad Izdatel Sudostroenie", "LeLen Leningrad Lenizdat", "LGUPM Leningradskii Gosudarstvennyi Universitet Problemy Matematicheskoi Fiziki", "VeLen Leningradskii Universitet Vestnik Matematika Mekhanika Astronomiia", "LeRad Le Radium", "Leo.. Leonardo", "LFTR. LEST Foundation, Technical Report", "LHMT. Letters Heat Mass Transfer", "LAES. Letters in Applied and Engineering Sciences", "LMaPh Letters in Mathematical Physics", "LicOB Lick Observatory Bulletin", "LFR.. Lietuvos Fizikos Rinkinys", "LDA.. Lifetime Data Analysis", "LLabJ Lincoln Laboratory Journal", "LiCr. Liquid Crystals", "Litho Lithos", "LitJP Lithuanian Journal of Physics and Technical Sciences", "LRR.. Living Reviews in Relativity", "LRSP. Living Reviews in Solar Physics", "LockH Lockheed Horizons", "LOEle L'Onde Electrique", "LowOB Lowell Observatory Bulletin", "LTP.. Low Temperature Physics", "LPIBu LPI Bulletin", "LPICo LPI Contributions", "LubEn Lubrication Engineering", "LR... Luft und Raumfahrt", "LuRaQ Luft und Raumfahrt Quarter", "LPSC. Lunar and Planetary Science Conference Proceedings", "LCEC. Luxembourg Commission European Communities", "LIVS. Lvov Izdatel Vishcha Shkola", "LvoTs L'vovskij Ordena Lenina Gosudarstvennyj Universitet Tsirkulyar", "MaDes Machine Design", "MLear Machine Learning", "MmCP. Macromolecular Chemistry and Physics", "MaMol Macromolecules", "MadOO Madras Observatory Astronomical Observations", "MadOb Madras Observatory Observations", "MagFE Magnetic Fusion Energy", "MRMed Magnetic Resonance in Medicine", "MRMPB Magnetic Resonance Materials in Physics Biology and Medicine", "MRRev Magnetic Resonance Review", "MHD.. Magnetohydrodynamics", "MagGi Magnitnaia Gidrodinamika", "MagIs Magnitosfernye Issledovaniia", "MTACI Magyar Tudomanyos Akademia Csillagvizsgalo Intezetenek koezlemenyei", "MAWMN Mainz Akademie Wissenschaften Mathematisch Naturwissenschaftliche Klasse", "Lapa. Majalah LAPAN", "MWGBI Mannheim West Germany Bibliographisches Institut AG", "MaTeJ ManTech Journal", "MGeo. Manuscr. Geod.", "ManGe Manuscripta Geodaetica", "MarRv Marconi Review", "MarGe Marine Geodesy", "MarGR Marine Geophysical Research", "MarPG Marine Petroleum Geology", "Mars. Mars", "Mashi Mashinostroenie", "MsT.. Masters Thesis", "MaFiz Matematicheskaia Fizika", "MFiNM Matematicheskaia Fizika i Nelineinaia Mekhanika", "MatIs Matematicheskie Issledovaniia", "MMFMP Matematicheskie Metody i Fiziko Mekhanicheskie Polia", "MISTr Matematicheskii Institut imeni Steklova Trudy", "MMTET Matematicheskoe Modelirovanie i Teoriia Elektricheskikh Tsepei", "MatVe Matematichki Vesnik", "Mater Materialpruefung", "Mate. Materials", "MMP.. Materials and Manufacturing Processes", "MCP.. Materials Chemistry and Physics", "MaHT. Materials at High Temperatures", "MatEv Materials Evaluation", "MatL. Materials Letters", "MaRBu Materials Research Bulletin", "MRSSP Materials Research Society Symposia Proceedings", "MSEng Materials Science and Engineering", "MSEnA Materials Science and Engineering A", "MSEnB Materials Science and Engineering B", "MSEnC Materials Science and Engineering C", "MSEnR Materials Science and Engineering R Reports", "MSTec Materials Science and Technology", "MSF.. Materials Science Forum", "MatSP Materials Science Poland", "MatST Materials Science Technology", "MatTr Materials Transactions JIM", "MatTe Materiaux et Techniques", "MComM Mathematical and Computer Modelling", "MEI.. Mathematical Engineering Industry", "MaFi. Mathematical Finance", "MatG. Mathematical Geology", "MMAS. Mathematical Methods in the Applied Sciences", "MatM. Mathematical Modelling", "MMNA. Mathematical Modelling Numerical Analysis", "M3AS. Mathematical Models and Methods in Applied Sciences", "MPAG. Mathematical Physics, Analysis and Geometry", "MPAM. Mathematical Physics and Applied Mathematics", "MaPEJ Mathematical Physics Electronic Journal", "MaPhS Mathematical Physics Studies", "MaPr. Mathematical Proceedings", "MPCPS Mathematical Proceedings of the Cambridge Philosophical Society", "MatPr Mathematical Programming", "MatRv Mathematical Reviews", "MMS.. Mathematics and Mechanics of Solids", "MEdRJ Mathematics Education Research Journal", "MaCom Mathematics of Computation", "Mat.. Mathematika", "MatAn Mathematische Annalen", "MatNa Mathematische Nachrichten", "MatZe Mathematische Zeitschrift", "MitAe Max Planck Institut Aeronomie Mitteilungen", "MPARp Max Planck Institut fur Astrophysik Report", "Meas. Measurements", "MeScT Measurement Science and Technology", "MeScR Measurement Science Review", "Mecc. Meccanica", "MecEn Mechanical Engineering", "MSSP. Mechanical Systems and Signal Processing", "MPDS. Mechanics and Physics of Discrete Systems", "MCMS. Mechanics of Composite Materials", "MSM.. Mechanics of Structures and Machines", "MTDM. Mechanics of Time-Dependent Materials", "MeReC Mechanics Research Communications", "MeTeS Mechanika Teoretyczna i Stosowana", "MeMaT Mechanism and Machine Theory", "MeUpp Meddelanden fran Astronomiska Observatorium Uppsala", "MeLu1 Meddelanden fran Lunds Astronomiska Observatorium Serie I", "MeLu2 Meddelanden fran Lunds Astronomiska Observatorium Serie II", "MeAar Meddelser fra Ole Romer Observatoriet Aarhus", "MeGen Mededelingen Universiteit te Gent Sterrenkundig Instituut", "MeLeu Mededelingen van het Astronomisch Instituut van de Katholieke Universiteit Leuven", "MedPh Medical Physics", "MekGS Mekhanika Giroskopicheskikh Sistem", "MekKM Mekhanika Kompozitnykh Materialov", "MekP. Mekhanika Polimerov", "MekTT Mekhanika Tverdogo Tela", "MelAR Melbourne Observatory Annual Report", "MelOO Melbourne Observatory Observations", "MmEbr Memoires de l'Observatoire de l'Ebre", "MmARB Memoires of the Academie Royale de Belgique", "MmMtS Memoires of the Mount Stromlo Observervatory", "MSRSL Memoires of the Societe Royale des Sciences de Liege", "MeSRM Memoires Scientifiques de la Revue de Metallurgie", "MmKyo Memoirs Faculty of Sciences University of Kyoto", "MmASI Memoirs of the Astronomical Society of India", "MmBAA Memoirs of the British Astronomical Association", "MmRAS Memoirs of the Royal Astronomical Society", "MmSAI Memorie della Societa Astronomica Italiana", "MSAIS Memorie della Societa Astronomica Italiana Supplementi", "MmSSI Memorie della Societa Degli Spettroscopisti Italiani", "MmSS. Memorie della Societa Degli Spettroscopisti Italiani, serie 2", "MmSGI Memorie della Societa Geologica Italiana", "MmNap Memorie del R. Osservatorio di Capodimonte in Napoli", "MeCom Mendeleev Communications", "Mercu Mercury", "MeAut Meres es Automatika", "MeRAu Mesures Regulation Automatisme", "Metal Metallofizika", "MTObM Metallovedenie i Termicheskaia Obrabotka Metallov", "MMTA. Metallurgical and Materials Transactions A", "MMTB. Metallurgical and Materials Transactions B", "MTA.. Metallurgical Transactions A", "MTB.. Metallurgical Transactions B", "MTPMM Metallurgical Transactions Physical Metallurgy Materials Science", "MetaM Metamaterials", "MTRMA Meteor Forschungsergebnisse Reihe B Meteorologie und Aeronomie", "Metit Meteorites", "Met.. Meteorite - The International Quarterly of Meteorites and Meteorite Science", "Metic Meteoritics", "Metik Meteoritika", "MetRR Meteornoe Rasprostranenie Radiovoln", "MetIs Meteornye Issledovaniia", "MeApp Meteorological Applications", "MetMa Meteorological Magazine", "MetMo Meteorological Monographs", "MSCTN Meteorological Satellite Center Technical Note", "MeSJJ Meteorological Society of Japan Journal", "MetZp Meteorologicke Zpravy", "MeGid Meteorologiia i Gidrologiia", "MetRu Meteorologische Rundschau", "MetZe Meteorologische Zeitschrift", "MAP.. Meteorology and Atmospheric Physics", "MetAP Meteorology Atmospheric Physics", "MetHy Meteorology Hydrology JPRS", "MeRR. Meteor. rasprostr. radiovoln, Kazan", "MVMP. Methoden und Verfahren der Mathematischen Physik", "MCME. Methods: A Companion to Methods in Enzymology", "MApAn Methods and Applications of Analysis", "MComP Methods in Computational Physics", "MGG.. Methods in Geochemistry and Geophysics", "MSB.. Methods in Subnuclear Physics", "MExP. Methods of Experimental Physics", "MetVy Metody Vychislenii", "Metro Metrologia", "MicEc Microbial Ecology", "MPFD. Microdevices: Physics and Fabrication Technologies", "MiEng Microelectronic Engineering", "MiI.. Microelectronics International", "MiRe. Microelectronics Reliability", "MicgQ Microgravity Quarterly", "MiST. Microgravity Science and Technology", "MTEng Microscale Thermophysical Engineering", "MiMic Microscopy and Microanalysis", "MiOTL Microwave and Optical Technology Letters", "MiJo. Microwave Journal", "MicWa Microwaves", "AcMik Mikrochimica Acta", "Mikro Mikroelektronika", "MikSb Mikroelektronika Sbornik", "MAIMT Milan Associazione Italiana di Meccanica Teorica ed Applicata", "MSMFR Milano Seminario Matematico e Fisico Rendiconti", "MiElC Military Electronics Countermeasures", "MiLa. Mind and Language", "MinDe Mineralium Deposita", "Miner Mineralogia", "MinM. Mineralogical Magazine", "MinPe Mineralogy and Petrology", "MinPh Mineral Physics", "MWE.. Mine Water and The Environment", "MPBu. Minor Planet Bulletin", "MPC.. Minor Planet Circulars", "MPEC. Minor Planet Electronic Circulars", "IzMin Minsk Izdatel BGU", "MiINT Minsk Izdatel Nauka i Tekhnika", "MisSp Missiles Spacecraft", "MAPSE Mission Analysis Program Solar Electric Propulsion MAPSEP", "MHITR Mitsubishi Heavy Industries Technical Review", "MitAG Mitteilungen der Astronomischen Gesellschaft Hamburg", "MiBon Mitteilungen der Astronomischen Institute der Universitaet Bonn", "MiBas Mitteilungen der Astronomisch-Meteorologischen Anstalt der Universitaet Basel Astronomische Reihe", "MiHar Mitteilungen der Bruno-H.-Buergel-Sternwarte Hartha DDR", "MiHam Mitteilungen der Hamburger Sternwarte in Bergedorf", "MiKon Mitteilungen der Konkoly Sternwarte Budapest-Szabadsaghegy", "MiPul Mitteilungen der Nikolai-Hauptsternwarte zu Pulkowo", "MiBud Mitteilungen der Sternwarte der Ungarischen Akademie der Wissenschaften Budapest", "MiInn Mitteilungen der Sternwarte Innsbruck", "MiMun Mitteilungen der Sternwarte Munchen", "MiSon Mitteilungen der Sternwarte zu Sonneberg", "MiGra Mitteilungen der Universitaets-Sternwarte Graz", "MiWie Mitteilungen der Universitaets-Sternwarte Wien", "MiJen Mitteilungen der Universitaets-Sternwarte zu Jena", "MiTue Mitteilungen des Astronomischen Instituts der Universitaet Tuebingen", "MiMue Mitteilungen des Astronomischen Instituts des Universitaet Munster", "MiPot Mitteilungen des Astrophysikalischen Observatoriums Potsdam", "MiGIR Mitteilungen Geod. Institut Rheinischen Friedrich-Wilhelms-Universitaets. Bonn", "MSMSE Modelling Simul. Mater. Sci. Eng.", "MAG.. Modern Approaches in Geophysics", "ModGe Modern Geology", "ModIn Modern Instrumentation", "MIMPE Modern Instrumentation and Measurements in Physics and Engineering", "ModPh Modern Physics", "MPLA. Modern Physics Letters A", "MPLB. Modern Physics Letters B", "MJPS. Moldavian Journal of the Physical Sciences", "MBB.. Molecular Biology and Biophysics", "MBBB. Molecular Biology Biochemistry and Biophysics", "MCLC. Molecular Crystals and Liquid Crystals", "MGM.. Molecular Genetics and Metabolism", "MolPh Molecular Physics", "MoPhR Molecular Physics Reports", "MoSim Molecular Simulation", "MCBEH Monatliche Correspondenz zur Beforderung der Erd- und Himmels-kunde", "WisBB Monatsber. Deutsch. Akad Wissenschaftliche Berlin", "MEEP. Monographs on Environment, Earth and Planets", "MNSSJ Monthly notes of the Astronomical Society of South Africa", "MNSSA Monthly Notes of the Astronomical Society of South Africa", "MNRAS Monthly Notices of the Royal Astronomical Society", "MWRv. Monthly Weather Review", "Moon. Moon", "MorGI Morskie Gidrofizicheskie Issledovaniia", "MAtom Moscow Atomizdat", "MoEBA Moscow Energoatomizdat Biblioteka Automatike", "MEner Moscow Energoizdat", "MoGid Moscow Gidrometeoizdat", "MoIKI Moscow Institut Kosmicheskikh Issledovanii AN SSSR", "MoIPM Moscow Institut Prikladnoi Matematiki AN SSSR", "MoIzA Moscow Izdatel Atomizdat", "MoIzE Moscow Izdatel Energiia", "MIEBA Moscow Izdatel Energiia Biblioteka Avtomatike", "MIEBR Moscow Izdatel Energiia Biblioteka Radioelektronike", "MoIzK Moscow Izdatel Khimiia", "MIzLI Moscow Izdatel Legkaia Industriia", "MIzMa Moscow Izdatel Mashinostroenie", "MIzMe Moscow Izdatel Metallurgiia", "MoIzM Moscow Izdatel Moskovskogo Universiteta", "MIzMU Moscow Izdatel Moskovskogo Universiteta Pt", "MoIzN Moscow Izdatel Nauka", "MINFI Moscow Izdatel Nauka AN SSR Fizicheskii Institut Trudy", "MINCV Moscow Izdatel Nauka AN SSSR Chteniia imeni Vernadskogo", "MoINA Moscow Izdatel Nauka AN SSSR Fizicheskii Institut Trudy", "MINGI Moscow Izdatel Nauka AN SSSR Geologicheskoi Institut Trudy", "MINMI Moscow Izdatel Nauka AN SSSR Matematicheskii Institut Trudy", "MoINI Moscow Izdatel Nauka Issledovaniia Geomagnetizmu Aeronomii i Fizike Solntsa", "MINTF Moscow Izdatel Nauka Teoreticheskaia Fizika", "MINVS Moscow Izdatel Nauka Vychislitel naia Seismologiia", "MIzNe Moscow Izdatel Nedra", "MIzRS Moscow Izdatel Radio Sviaz", "MIzSR Moscow Izdatel Sovetskoe Radio", "MISRI Moscow Izdatel Sovetskoe Radio Ionosfernye Issledovaniia", "MoIzS Moscow Izdatel Sviaz", "MISST Moscow Izdatel Sviaz Statisticheskaia Teoriia sviazi", "MoIzT Moscow Izdatel Transport", "MoIzV Moscow Izdatel VINITI", "MIzVS Moscow Izdatel Vysshaia Shkola", "MoIzZ Moscow Izdatel Znanie", "MIZNZ Moscow Izdatel Znanie Novoe Zhizni Nauke Tekhnike Seriia Fizika", "MosIZ Moscow IZMIRAN", "MoMTN Moscow Mezhdunarodnyi Tsentr Nauchnoi i Tekhnicheskoi Informatsii", "MoMGK Moscow Mezhduvedomstvennyi Geofizicheskii Komitet", "MUPB. Moscow University Physics Bulletin", "MoVIN Moscow VINITI", "MosVo Moscow Voenizdat", "MosVI Moscow Voennoe Izdatel", "MoVNT Moscow Vychislitel nyi Tsentr AN SSSR", "MoVyS Moscow Vysshaia Shkola", "MoLLP Moshchnye lazery i lazernaia plazma", "MoEIT Moskovskii Energeticheskii Institut Trudy", "MGUMN Moskovskii Gosudarstvennyi Universitet Institut Mekhaniki Nauchnye Trudy", "MGIMO Moskovskii Gosudarstvennyi Universitet Institut Mekhaniki Otchet", "MVSFA Moskovskii Universitet Vestnik Seriia Fizika Astronomiia", "MUVSK Moskovskii Universitet Vestnik Seriia Khimiia", "MVSMM Moskovskii Universitet Vestnik Seriia Matematika Mekhanika", "MGTVM Moskovskij Gosudarstvennyj Tekhnicheskij Universitet Vestnik Seriya Mashinostroenie", "MGTVP Moskovskij Gosudarstvennyj Tekhnicheskij Universitet Vestnik Seriya Priborostroenie", "MotZe Motortechnische Zeitschrift", "MtSOM Mount Stromlo Observatory Mimeographs", "MtSRe Mount Stromlo Observatory Reprints", "MtWAR Mount Wilson and Palomar Observatory Annual Report", "MtWRe Mount Wilson and Palomar Observatory Reprints", "MWOAR Mount Wilson Observatory Annual Report", "MPERp MPE Report", "MRSBu MRS Bulletin", "MUSS. Muenchen Universitaets Schriften Serie", "MROVG Munich R Oldenbourg Verlag GmbH", "NISZ. Nabliudeniia Iskusstvennykh Sputnikov Zemli", "NINT. Nablyud. Iskusstvennykh Nebesnykh Tel", "NAZ.. Nachrichtenblatt der Astronomischen Zentralstelle Heidelberg", "NVS.. Nachrichtenblatt der Vereinigung der Sternfreunde", "NacEl Nachrichten Elektronik", "NGFAW Nachrichtentechnische Gesellschaft Fachtagung ueber Antennen", "NacZe Nachrichtentechnische Zeitschrift", "NOGB. Nachr. Olbers-Ges. Bremen", "NUFEM Nagoya University Faculty Engineering Memoirs", "NURIA Nagoya University Research Institute of Atmospherics Proceedings", "NUSEM Nagoya University School Engineering Memoirs", "NaAIJ Nanjing Aeronautical Institute Journal", "NUAAJ Nanjing University Aeronautics and Astronautics Journal", "NanoL Nano Letters", "Nanos Nanoscale", "NRL.. Nanoscale Research Letters", "Nanot Nanotechnology", "NIUNA Napoli Istituto Universitario Navale Annali", "NASCL NASA Circular Letter", "PDSS. NASA Planetary Data System", "NASRP NASA Reference Publication", "NASSP NASA Special Publication", "STIA. NASA STI/Recon Technical Report A", "STIN. NASA STI/Recon Technical Report N", "NASTM NASA Technical Memo", "NBSSP National Bureau of Standards Special Publication", "NBSTN National Bureau of Standards Technical Note", "NaGe. National Geographic", "NISTJ National Institute of Standards and Technology Journal of Research", "PolRe National Institute Polar Research Memoirs", "BAth. National Observatory of Athens Greece Bulletin of the Astronomical Institute", "NRAON National Radio Astronomy Observatory Newsletter", "NRAOR National Radio Astronomy Observatory Reprints", "NRAOW National Radio Astronomy Observatory Workshop", "NUDTJ National University Defense Technology Journal", "NHESS Natural Hazards and Earth System Sciences", "NatH. Natural History", "NatSc Natural Science", "Natur Nature", "NatBi Nature Biotechnology", "NatCh Nature Chemistry", "NatCC Nature Climate Change", "NatCo Nature Communications", "NatGe Nature Geoscience", "NatMa Nature Materials", "NatNa Nature Nanotechnology", "NaPho Nature Photonics", "NPhS. Nature Physical Science", "NatPh Nature Physics", "NatSR Nature Scientific Reports", "NW... Naturwissenschaften", "NInfo Nauchnye Informatsii", "NRRv. Naval Research Reviews", "Navig Navigation", "NavAu Navigation Australia", "NavPa Navigation Paris", "NVVSR Nederlandse Vereiniging voor Weer en Sterrenkunde Werkgroep veranderlijke Sterren Reports", "NCNS. Network: Computation in Neural Systems", "NSpEc Networks and Spatial Economics", "AnBog Neue Annalen der Koeniglichen Sternwarte in Bogenhausen bei Muenchen", "NJMM. Neues Jahrbuch Mineralogie Monatshefte", "NeCom Neural Computation", "NN... Neural Networks", "NeuL. Neuroscience Letters", "NPNDS Neutron Physics and Nuclear Data in Science and Technology", "NewA. New Astronomy", "NewAR New Astronomy Reviews", "NJCh. New Journal of Chemistry", "NJPh. New Journal of Physics", "NewSc New Scientist", "ASNYN News Letter of the Astronomical Society of New York", "ICHIN Newsletters of the Interdivisional Commission on History of the IAGA", "NTN.. New Technology News", "NZJGG New Zealand Journal Geology and Geophysics", "NZJS. New Zealand Journal of Science", "NKG.. Nihon Kessho Gakkaishi", "NOHIC Nizamiah JAPAL Rangapur Observatories Hyderabad India Contributions", "NizRe Nizamiah Observatory Reprints", "NCE.. Noise Control Engineering Journal", "NTE.. Nondestructive Testing and Evaluation", "NDTI. Nondestructive Testing and Evaluation International", "NTCo. Nondestructive Testing Communications", "NPPSB Nonequilibrium Problems in the Physical Sciences and Biology", "NATM. Nonlinear Analysis Theory Methods Applications", "Nonli Nonlinearity", "NlOpt Nonlinear Optics", "NPGeo Nonlinear Processes in Geophysics", "NSAP. Nonlinear, Statistical and Applied Physics", "NTA.. Nonlinear Theory and Its Applications, IEICE", "NATi. Nordisk Astronomisk Tidsskrift", "SApMM North Holland Series Applied Mathematical Mechanics", "NHCWP North Hollywood Calif Western Periodicals Co", "NPUJ. Northwestern Polytechnical University Journal", "NoDef Not Defined", "NoPar Notes et Informations", "NROpt Nouvelle Revue d'Optique", "NROA. Nouvelle Revue d'Optique Appliquee", "UGC.. Nova Acta Regiae Soc. Sci. Upsaliensis Ser. V", "NTvA. Novaya tekhn. v astron.", "NoIGG Novosibirsk Institut Geologii i Geofiziki SO AN SSSR", "NovIG Novosibirsk Institut Gidrodinamiki SO AN SSSR Dinamika Sploshnoi Sredy", "NoIzN Novosibirsk Izdatel Nauka", "NSSDC NSSDC Publication", "NTTRv NTT Review", "NDS.. Nuclear Data Sheets", "NDT.. Nuclear Data Tables", "NuEnD Nuclear Engineering and Design", "NucFu Nuclear Fusion", "NucFS Nuclear Fusion Special Supplement", "NuGeo Nuclear Geophysics", "NucIM Nuclear Instruments and Methods", "NIMPR Nuclear Instruments and Methods in Physics Research", "NIMPA Nuclear Instruments and Methods in Physics Research A", "NIMPB Nuclear Instruments and Methods in Physics Research B", "NucPh Nuclear Physics", "NuPhA Nuclear Physics A", "NuPhB Nuclear Physics B", "NuPhS Nuclear Physics B Proceedings Supplements", "NSE.. Nuclear Science Engineering", "NucTe Nuclear Technology", "NucTF Nuclear Technology Fusion", "NAR.. Nucleic Acids Research", "NuAlg Numerical Algorithms", "NFAO. Numerical Functional Analysis and Optimization", "NumHT Numerical Heat Transfer", "NHTA. Numerical Heat Transfer Part A - Applications", "NHTB. Numerical Heat Transfer Part B - Fundamentals", "NuMat Numerische Mathematik", "NCimA Nuovo Cimento A Serie", "NCimB Nuovo Cimento B Serie", "NCimC Nuovo Cimento C Geophysics Space Physics C", "NCimD Nuovo Cimento D Serie", "NCimL Nuovo Cimento Lettere", "NCimR Nuovo Cimento Rivista Serie", "NCimS Nuovo Cimento Serie", "OCSC. OAA Compututer Section Circular", "OSUC. Observationes Astronomicas Insitutas in Specula Universitatis Caesareae Dorpatensis", "OVS.. Observation of Variable Stars", "Obser Observation pi", "OAORP Observations astronomiques faites a l'Observatoire royal de Paris", "USNOO Observations made at the U.S. Naval Observatory", "OOVRO Observations Owens Valley Radio Observatory", "Bes1K Observatoire de Besancon", "OBN1K Observatoire de Besancon - CNES", "Gen1K Observatoire de Geneve", "OSFOT Observatoire de la Société Astronomique de France Observations et Travaux", "LyoRe Observatoire de Lyon Reprints", "Meu1K Observatoire de Meudon", "Nic1K Observatoire de Nice", "CORB. Observatoire Royal de Belgique Communications Serie B", "LPlaC Observatorio Astronomico de La Plata Circular", "LPlaS Observatorio Astronomico de La Plata Separata Astronomica", "RosOB Observatorio Astronomico Municipal de Rosario Argentia Boletin", "RioB. Observatorio Nacional Publicacoes do Servico Astronomico Rio de Janeiro", "HelR. Observatory and Astrophysics Laboratory University of Helsinki Report", "PLPla Observatory Astronomical La Plata Series Astronomies", "ObVyS Obzory Vysokotemperaturnoi Sverkhprovodimosti", "ONRAS Occasional Notes of the Royal Astronomical Society", "ORROE Occasional Reports of the Royal Observatory Edinburgh", "OccN. Occultation Newsletter, International Occultation Timing Association (IOTA)", "OcDyn Ocean Dynamics", "OcEng Ocean Engineering", "OcMod Ocean Modelling", "OSJaJ Oceanographical Society of Japan Journal", "AcOC. Oceanologica Acta", "Ocgy. Oceanology", "OcPhE Ocean Physics and Engineering", "OcSci Ocean Science", "OcScD Ocean Science Discussions", "OSJ.. Ocean Science Journal", "Ocean Oceanus Summer", "OAP.. Odessa Astronomical Publications", "BOOde Odesskij Gosudarstvennyi Universitet im. I. I. Mechnikova Byulletin Astronomicheskoj Observatorii", "IzOde Odesskij Gosudarstvennyi Universitet im. I. I. Mechnikova Izvestiya Astronomicheskoj Observatorii", "OAWMN Oesterreichische Akademie Wissenschaften Mathematisch naturwissenschaftliche Klasse Sitzungsberichte Abteilung", "Oikos Oikos", "Okean Okeanologiia", "ONCP. Old and New Concepts of Physics", "OCzAS Ondrejov Czechoslovakia Czechoslovak Academy Sciences CAS Astronomical Institute Publications", "ONERA ONERA TP", "OEJV. Open European Journal on Variable Stars", "OJA.. Open Journal of Acoustics", "OJAS. Open Journal of Applied Sciences", "OJBp. Open Journal of Biophysics", "OJFD. Open Journal of Fluid Dynamics", "OJGeo Open Journal of Geology", "OJMic Open Journal of Microphysics", "OLear Open Learning", "OSID. Open Systems and Information Dynamics", "AcOpt Optica Acta", "OQE.. Optical and Quantum Electronics", "OptEn Optical Engineering", "OptFT Optical Fiber Technology", "OptMa Optical Materials", "OptPE Optical Physics and Engineering", "OptQE Optical Quantum Electronics", "OptRv Optical Review", "OpSCN Optical Sciences Center Newsletter", "OSAJI Optical Society of America Journal Optics and Image Science", "OptPN Optics &", "OptLE Optics and Lasers in Engineering", "OPJ.. Optics and Photonics Journal", "OptSp Optics and Spectroscopy", "OptCo Optics Communications", "OExpr Optics Express", "OptLT Optics Laser Technology", "OptL. Optics Letters", "OptN. Optics News", "Optik Optik", "OpAt. Optika Atmosfery", "OpAtO Optika Atmosfery i Okeana", "OpSp. Optika i Spektroskopiia", "OpMeP Optiko Mekhanicheskaia Promyshlennost", "OCAM. Optimal Control Applications and Methods", "OptEL Optoelectronics Letters", "OERv. Opto-Electronics Review", "OpPuT Optoelektronika i Poluprovodnikovaia Tekhnika", "OrGeo Organic Geochemistry", "OrLi. Origins of Life", "OLEB. Origins of Life and Evolution of the Biosphere", "Ori.. Orione", "Orion Orion: Zeitschrift für Amateur-Astronomie", "IGS.. Orlando FL Academic Press Inc International Geophysics Series", "OrNav Ortung und Navigation", "BuENS Osaka Prefecture University Bulletin Series Engineering Natural Sciences", "OsUTR Osaka University Technology Reports", "Osir. Osiris", "NapCo Osservatorio Astronomico di Capodimonte Napoli Contributi Astronomici", "TerCo Osservatorio Astronomico di Collurania Teramo Contributi", "TerMm Osservatorio Astronomico di Collurania Teramo Memorie ed Osservazioni", "TerNC Osservatorio Astronomico di Collurania Teramo Note e Comunicazioni", "PadCR Osservatorio Astronomico di Padova Comunicazioni e Rassegne", "RomCo Osservatorio Astronomico di Roma su Monte Mario Contributi Scientifici", "TriP. Osservatorio Astronomico di Trieste Pubblicazioni", "TreP. Osservatorio Privato Specola Ariel Treviso Italia Pubblicazione", "MmArc Osservazioni e memorie dell'Osservatorio astrofisico di Arcetri", "MmArS Osservazioni e memorie dell'Osservatorio astrofisico di Arcetri - Appendici", "OsCar Osteoarthritis and Cartilage", "OtObI Otbor i Obrabotka Informatsii", "OtPI. Otbor i Peredacha Informatsii", "OISNP Oxford Pergamon Press International Series on Natural Philosophy", "OISTS Oxford Pergamon Press International Tables Selected Constants", "OxfOO Oxford University Observatory Observations", "OxM.. Oxidation of Metals", "OzSE. Ozone: Science &", "Palb. Paleobiology", "PalOc Paleoceanography", "PMetR Papers in Meteorological Research", "PPh.. Papers in Physics", "PMG.. Papers Meteorology Geophysics", "PGC.. Papers on Global Change IGBP", "ParC. Parallel Computing", "Paras Parasitology", "ParAc Particle Accelerators", "PPhI. Particle Physics Insights", "PaReL Pattern Recognition Letters", "PerMS Perceptual Motor Skills", "PZ... Peremennye Zvezdy", "PZP.. Peremennye Zvezdy Prilozhenie", "PMHu. Periodica Mathematica Hungarica", "PPEE. Periodica Polytechnica Electrical Engineering", "PPME. Periodica Polytechnica Mechanical Engineering", "PPTE. Periodica Polytechnica Transportation Engineering", "PerCo Perkins Observatory Contributions", "PMO.. Perth Meridien Observations", "PTMJ. Phase Transitions: A Multinational Journal", "PhDT. Ph.D. Thesis", "PhiJR Philips Journal Research", "PhiRR Philips Research Reports", "PhiTR Philips Technical Review", "PMag. Philosophical Magazine", "PMagL Philosophical Magazine Letters", "PMagA Philosophical Magazine, Part A", "PMagB Philosophical Magazine, Part B", "PFP.. Philosophy and Foundations of Physics", "Phoen Phoenix Mitteilungsblatt fuer Veraenderlichenbeobachter", "PcPb. Photochemistry and Photobiology", "Pg... Photogrammetria", "PgE.. Photogrammetric Engineering", "PgERS Photogrammetric Engineering and Remote Sensing", "PhInt Photo Interpretation", "PhNan Photonics and Nanostructures", "PhSen Photonic Sensors", "PhoSp Photonics Spectra", "PsynR Photosynthesis Research", "Psyn. Photosynthetica", "PhyOJ Physcs Online Journal", "Phy.. Physica", "PhyA. Physica A Statistical Mechanics and its Applications", "PhyBC Physica B+C", "PhyB. Physica B Condensed Matter", "PhyC. Physica C Superconductivity", "PhyD. Physica D Nonlinear Phenomena", "PhyE. Physica E Low-Dimensional Systems and Nanostructures", "PEFPN Physica Energiae Fortis et Physica Nuclearis", "PhAco Physical Acoustics", "PhBio Physical Biology", "PCESR Physical Chemical and Earth Sciences Research Reports", "PCCP. Physical Chemistry Chemical Physics (Incorporating Faraday Transactions)", "PCSE. Physical Chemistry: Science and Engineering", "PhGeo Physical Geography", "PPHTS Physical Properties of High Temperature Superconductors", "PhyR. Physical Research", "PhRv. Physical Review", "PhRvA Physical Review A", "PhRvB Physical Review B", "PhRvC Physical Review C", "PhRvD Physical Review D", "PhRvE Physical Review E", "PhRvL Physical Review Letters", "PhRvI Physical Review Series I", "PhRvS Physical Review Special Topics Accelerators and Beams", "PRSTP Physical Review Special Topics Physics Education", "PhRvX Physical Review X", "PSD.. Physical Sciences Data", "PSCEC Physical Sciences Series of the Commission of European Communities", "PhyNr Physica Norvegica", "PhyS. Physica Scripta", "PhySB Physica Scripta B", "PhST. Physica Scripta Volume T", "PSSAR Physica Status Solidi Applied Research", "PSSBR Physica Status Solidi B Basic Research", "PSSCR Physica Status Solidi C Current Topics", "PSSRR Physica Status Solidi Rapid Research Letters", "PhySS Physica Status Solids", "PhyL. Physic Letters", "PhChH PhysicoChemical Hydrodynamics", "Physi Physics", "PCS.. Physics and Chemistry in Space", "PhChE Physics and Chemistry of Earth", "PCL.. Physics and Chemistry of Liquids", "PCMLD Physics and Chemistry of Materials with Low-Dimensional Structures", "PCMLA Physics and Chemistry of Materials with Low-Dimensional Structures Series A", "PCMLB Physics and Chemistry of Materials with Low-Dimensional Structures Series B", "PCMLC Physics and Chemistry of Materials with Low-Dimensional Structures Series C", "PCM.. Physics and Chemistry of Minerals", "PCE.. Physics and Chemistry of the Earth", "PCEA. Physics and Chemistry of the Earth A", "PCEB. Physics and Chemistry of the Earth B", "PCEC. Physics and Chemistry of the Earth C", "PCED. Physics and Chemistry of the Earth Delta", "PEEI. Physics and Evolution of the Earth's Interior", "PhApp Physics and its Applications", "PTPPB Physics and Technology of Particle and Photon Beams", "PhB.. Physics Bulletin", "DokPh Physics - Doklady", "PhyEd Physics Education", "PhyEs Physics Essays", "PCHEI Physics in Collision: High-Energy ee/ep/pp Interactions", "PMB.. Physics in Medicine and Biology", "PhP.. Physics in Perspective", "PhTec Physics in Technology", "PhyIn Physics International", "PhLF. Physics Laser Fusion", "PhL.. Physics Letters", "PhLA. Physics Letters A", "PhLB. Physics Letters B", "PhLC. Physics Letters Section C Physics Reports C", "PhyNY Physics New York", "PhyN. Physics Notes", "PAN.. Physics of Atomic Nuclei", "PAM.. Physics of Atoms and Molecules", "PhFl. Physics of Fluids", "PhFlB Physics of Fluids B", "PhLRv Physics of Life Reviews", "PLDS. Physics of Low-Dimensional Structures", "PhMet Physics of Metals", "PMM.. Physics of Metals and Metallography", "PPN.. Physics of Particles and Nuclei", "PPNL. Physics of Particles and Nuclei Letters", "PhPl. Physics of Plasmas", "PhQE. Physics of Quantum Electronics", "PSL.. Physics of Solids and Liquids", "PEPI. Physics of the Earth and Planetary Interiors", "PhSS. Physics of the Solid State", "PTF.. Physics of Thin Films", "PWP.. Physics of Wave Phenomena", "PhR.. Physics Reports", "PRI.. Physics Research International", "PhT.. Physics Today", "PhyU. Physics Uspekhi", "PhyW. Physics World", "PCTM. Physikalisch-Chemische Trenn- und Messmethoden", "PhyBl Physikalische Blötter", "PhyG. Physikalische Gesellschaft", "PhyGZ Physikalische Gesellschaft Zürich", "PhyZ. Physikalische Zeitschrift", "PKM.. Physik der Kondensierten Materie", "PhuZ. Physik in unserer Zeit", "PhyCP Physiological Chemistry and Physics", "PhyM. Physiological Measurement", "PhylS Physiologist Supplement", "PAZh. Pis ma Astronomicheskii Zhurnal", "PZETF Pis ma Zhurnal Eksperimental noi i Teoreticheskoi Fiziki", "PZhTF Pis ma Zhurnal Tekhnischeskoi Fiziki", "PlAst Planetary Astronomy", "PlR.. Planetary Report", "PlSci Planetary Science", "PSRD. Planetary Science Research Discoveries", "PCPhy Plant and Cell Physiology", "PFR.. Plasma and Fusion Research", "PCPP. Plasma Chemistry and Plasma Processing", "PlPh. Plasma Physics", "PPCF. Plasma Physics and Controlled Fusion", "PlPhR Plasma Physics Reports", "PlPo. Plasmas and Polymers", "PlST. Plasma Science and Technology", "PSST. Plasma Sources Science Technology", "PRFVT Plastiques Renforces Fibres de Verre Textile", "PLoSB PLoS Biology", "PLoSC PLoS Clinical Trials", "PLSCB PLoS Computational Biology", "PLoSG PLoS Genetics", "PLoSM PLoS Medicine", "PLoSN PLoS Neglected Tropical Diseases", "PLoSO PLoS ONE", "PLoSP PLoS Pathogens", "PMCPA PMC Physics A", "PMCPB PMC Physics B", "PMCPC PMC Physics C", "PMTF. PMTF Zhurnal Prikladnoi Mekhaniki i Tekhnicheskoi Fiziki", "nraop National Radio Astronomy Observatory Press Release", "PnGid Pnevmatika i Gidravlika", "noaop NOAO Proposal", "PolSc Polar Science", "PolSi Poliarnye Siianiia", "PSSNN Poliarnye Siianiia i Svechenie Nochnogo Neba", "PASAM Polish Academy of Science Arch Mech", "PASAS Polish Academy of Science Artificial Satellites", "PASIG Polish Academy of Sciences Institute of Geophysics Publications", "PASTA Polish Academy of Sciences Theory Aggregation Coagulation", "PJMPE Polish Journal of Medical Physics And Engineering", "PCZNN Politechnika Czestochowska Zeszyty Naukowe Nauki Techniczne Mechanika", "PGZNM Politechnika Gdanska Zeszyty Naukowe Mechanika", "PSZNM Politechnika Slaska Zeszyty Naukowe Mechanika", "PolAt Pollution Atmospherique", "CraR. Polskie Towarzyslwo Milosnikow Astronomii", "PolTM Poluprovodnikovaia Tekhnika i Mikroelektronika", "PolPP Poluprovodnikovye Pribory i ikh Primenenie", "Poly. Polymer", "PoCom Polymer Composites", "PolPh Polymer Physics", "PPTEn Polymer-Plastics Technology and Engineering", "PomAK Pomiary Automatyka Kontrola", "PATi. Popular Astronomisk Tidsskrift", "PA... Popular Astronomy", "PorMe Poroshkovaia Metallurgiia", "PoAn. Postepy Astronautyki", "PoAst Postepy Astronomii Krakow", "PSci. Pour la Science", "PDiff Powder Diffraction", "PUAMA Poznan Uniwersytet im Adama Mickiewicza Seria Akustyka", "PUAMF Poznan Uniwersytet im Adama Mickiewicza Seria Fizyka", "PrAst Practical Astronomy", "NaiRe Pradesh State Observatory Naini Tal Insia Reprints", "PraAc Prague Academia", "Prama Pramana", "PreR. Precambrian Research", "Prib. Priborostroenie", "PriTE Pribory i Tekhnika Eksperimenta", "PriMM Prikladnaia Matematika i Mekhanika", "PriMP Prikladnaia Matematika i Programmirovanie", "PriM. Prikladnaia Mekhanika", "PPPLR Princeton Plasma Physics Laboratory Report", "Prir. Priroda", "Priv. Private Communication", "PrEM. Probabilistic Engineering Mechanics", "PrAiA Problemy Arktiki i Antarktiki", "PrBio Problemy Bioniki", "PrDRV Problemy Difraktsii i Rasprostraneniia Voln", "PrFA. Problemy Fiziki Atmosfery", "PrFKL Problemy Iadernoi Fiziki i Kosmicheskikh Luchei", "PrKFi Problemy Kosmicheskoi Fiziki", "PrMas Problemy Mashinostroeniia", "PrPro Problemy Prochnosti", "PrSP. Problemy Sluchainogo Poiska", "PrTE. Problemy Tekhnicheskoi Elektrodinamiki", "PrTGE Problemy Teorii Gravitatsii i Elementarnykh Chastits", "PrTPT Problemy Teploenergetiki i Prikladnoi Teplofiziki", "PJA.. Proceeding of the Japan Academy", "PJAA. Proceeding of the Japan Academy, Series A", "PJAB. Proceeding of the Japan Academy, Series B", "PBioS Proceedings: Biological Sciences", "PMPES Proceedings: Mathematical, Physical and Engineering Sciences", "PAMS. Proceedings of the American Mathematical Society", "PAPhS Proceedings of the American Philosophical Society", "PASAu Proceedings of the Astronomical Society of Australia", "PCAS. Proceedings of the California Academy of Sciences", "PCPS. Proceedings of the Cambridge Philosophical Society", "PEMS. Proceedings of the Edinburgh Mathematical Society", "PIASE Proceedings of the Indian Academy of Science, Earth and Planetary Sciences", "PINSA Proceedings of the Indian National Science Academy Part A", "PINSB Proceedings of the Indian National Science Academy Part B", "PIGP. Proceedings of the Institute of General Physics, Adademy of the Sciences of Russia", "PILOM Proceedings of the International Latitude Observatory at Mizusawa", "PIRE. Proceedings of the IRE", "PNAS. Proceedings of the National Academy of Sciences", "PNAS. Proceedings of the National Academy of Sciences USA", "PNAS. Proceedings of the National Academy of Sciences of the USA", "PNSC. Proceedings of the National Science Council", "PNSBP Proceedings of the National Society of Black Physicists", "PPS.. Proceedings of the Physical Society", "PPSA. Proceedings of the Physical Society A", "PPSB. Proceedings of the Physical Society B", "PPSL. Proceedings of the Physical Society of London", "PRIAN Proceedings of the Research Institute of Atmospherics, Nagoya University", "PRIAA Proceedings of the Royal Irish Academy Section A", "PRNAS Proceedings of the Royal Netherlands Academy of Arts and Sciences", "PSEBM Proceedings of the Society for Experimental Biology and Medicine", "PrVP. Proceedings of Vibration Problems", "PELIS Program: electronic library &", "PrAeS Progress in Aerospace Sciences", "PrAA. Progress in Astronautics and Aeronautics", "PrA.. Progress in Astronomy", "PABei Progress in Astronomy", "PBB.. Progress in Biochemistry and Biophysics", "PBBC. Progress in Biophysics and Biophysical Chemistry", "PBMB. Progress in Biophysics and Molecular Biology", "PrECS Progress in Energy and Combustion Science", "PLTP. Progress in Low Temperature Physics", "PrMS. Progress in Materials Science", "PMatP Progress in Mathematical Physics", "PMRP. Progress in Medical Radiation Physics", "PMetP Progress in Metal Physics", "PNSci Progress in Natural Science", "PrOce Progress in Oceanography", "POrCo Progress in Organic Coatings", "PrPNP Progress in Particle and Nuclear Physics", "PPcPp Progress in Photochemistry and Photophysics", "PPGeo Progress in Physical Geography", "PrPh. Progress in Physics", "PQE.. Progress in Quantum Electronics", "PrSS. Progress In Surface Science", "PTCP. Progress in Theoretical Chemistry and Physics", "PTEP. Progress of Theoretical and Experimental Physics", "PThPh Progress of Theoretical Physics", "PThPS Progress of Theoretical Physics Supplement", "ProTe Promyshlennaia Teplotekhnika", "PrEx. Propellants and Explosives", "PrExP Propellants and Explosives Pyrotechnics", "PMMin Proper Motion Survey, University of Minnesota", "rxte pRXTE Proposal", "sptz pSpitzer Proposal", "suba pSubaru Proposal", "PUFir Pubblicazioni della R. Universita degli studi di Firenze", "PSAIL Pubblicazioni della Stazione Astronomica Internazionale di Latitudine", "POMil Pubblicazioni dell'Osservatorio Astronomico di Milano-Merate", "POPad Pubblicazioni dell'Osservatorio Astronomico di Padova", "POPal Pubblicazioni dell'Osservatorio Astronomico di Palermo", "POTor Pubblicazioni Varie Fuori Serie dell'Osservatorio Astronomico di Torino", "PKCat Publ. House Czech. Acad. Sci.", "PMad. Publicacion Facultad de Ciencias Madrid", "POClu Publicatiile Observatorului Astronomical Universitatii din Cluj", "POPar Publication de l'Observatoire de Paris Notes et Informations", "POStr Publication de l'Observatoire de Strasbourg", "PUSK. Publication der Koeniglichen Sternwarte in Kiel", "PULei Publicationen der K. Universitoats-Sternwarte zu Leipzig", "PCARS Publication of COMU Astrophysics Research Center", "PKAS. Publication of Korean Astronomical Society", "PPCAS Publication of the Pomona College Astronomical Society", "PIAGL Publications de l'Institut d'Astronomie et de Geophysique Georges Lemaitre", "POBeo Publications de l'Observatoire Astronomique de Beograd", "POBor Publications de l'Observatoire de l'Universite de Bordeaux", "POTou Publications de l'Observatoire de Toulouse", "PLAGL Publications du Laboratoire d'Astronomie et de Geodesie de l'Universite de Louvain", "PDHO. Publications of Debrecen Heliophysical Observatory", "POBol Publications of dell'Osservatorio Astronomie de Bologna", "PLawO Publications of Laws Observatory, University of Missouri", "PLicO Publications of Lick Observatory", "POMic Publications of Michigan Observatory", "PCat. Publications of Osservatorio Astrofisico di Catania", "PASK. Publications of the Academy of Science Kasakstan Sect. Astrobotanics", "PAllO Publications of the Allegheny Observatory of the University of Pittsburgh", "PAASA Publications of the Astronomical and Astrophysical Society of America", "PAICU Publications of the Astronomical Institute of the Charles University", "PAICz Publications of the Astronomical Institute of the Czechoslovak Academy of Sciences", "PUAms Publications of the Astronomical Institute of the University of Amsterdam", "PBrn. Publications of the Astronomical Institute of the University of Borneo", "POHel Publications of the Astronomical Observatory Helsinki", "PAOS. Publications of the Astronomical Observatory of Sarajevo", "POMin Publications of the Astronomical Observatory University of Minnesota", "PASA. Publications of the Astronomical Society of Australia", "PASJ. Publications of the Astronomical Society of Japan", "PASP. Publications of the Astronomical Society of the Pacific", "PASPS Publications of the Astronomical Society of the Pacific Supplement", "PASRB Publications of the Astronomical Society Rudjer Boskovic", "PADEU Publications of the Astronomy Department of the Eotvos Lorand University", "PAIB. Publications of the Astronomy Institute of Bonn", "PAB.. Publications of The Astrophysics Branch Ottawa", "PBeiO Publications of the Beijing Astronomical Observatory", "PBosO Publications of the Bosscha Observatory Lembang Indonesia", "PCinO Publications of the Cincinnati Observatory", "PCooO Publications of the Cook Observatory", "PDDO. Publications of the David Dunlap Observatory", "PDAUC Publications of the Department of Astronomy University of Chile", "PDAO. Publications of the Dominion Astrophysical Observatory Victoria", "PDO.. Publications of the Dominion Observatory Ottawa", "PDreO Publications of the Dresden Observatory", "PFAO. Publications of the Flower Astronomical Observatory", "PGLO. Publications of the Goethe Link Observatory", "PGooO Publications of the Goodsell Observatory, Carleton College", "ILOMP Publications of the International Latitude Observatory at Mizusawa", "PIstO Publications of the Istanbul University Observatory", "PGro. Publications of the Kapteyn Astronomical Laboratory Groningen", "PKirO Publications of the Kirkwood Observatory of Indiana University", "PAth. Publications of the Laborotory of Astronomy University of Athens", "PMcCO Publications of the Leander McCormick Observatory", "PManO Publications of the Manila Observatory", "PMunO Publications of the Munich Observatory", "PNAOC Publications of the National Astronomical Observatories of China", "PNAOJ Publications of the National Astronomical Observatory of Japan", "POLyo Publications of the Observatoire de Lyon", "PGenA Publications of the Observatoire Geneve Series A", "PGenB Publications of the Observatoire Geneve Series B", "POHP. Publications of the Observatoire Haute-Provence", "POANC Publications of the Observatorie Astronomie Nacional Cerro Calan", "POIst Publications of the Observatory Astronomie University Istambul", "POslO Publications of the Oslo Observatory", "POVRO Publications of the Owens Valley Observatory", "PPMtO Publications of the Purple Mountain Observatory", "PRCO. Publications of the Riverview College Observatory", "PROE. Publications of the Royal Observatory of Edinburgh", "PSAO. Publications of the Shaanxi Astronomical Observatory", "PShaO Publications of the Shaanxi Astronomy Observatory", "PSprO Publications of the Sproul Observatory", "PSSAI Publications of the Sternberg State Astronomical Institute", "PTarO Publications of the Tartu Astrofizica Observatory", "PTasO Publications of the Tashkent Astronomical Observatory", "PUPFA Publications of the University of Pennsylvania Flower Astronomical Observatory", "PUSNO Publications of the U.S. Naval Observatory Second Series", "PVVO. Publications of the Van Vleck Observatory", "PVasO Publications of the Vassar College Observatory", "PWasO Publications of the Washburn Observatory", "PYerO Publications of the Yerkes Observatory", "PYunO Publications of the Yunnan Observatory", "PWHHO Publications of West Hendon House Observatory, Sunderland", "PSCDS Publication Speciale du Centre de Donnees Stellaires", "POxf. Publications University of Oxford Department of Astrophysics", "PUS.. Public Understanding of Science", "PKUJ. Publikationen der Kaiserlichen Universitaets-Sternwarte Jurjew", "PAIKH Publikationen des Astrophysikalischen Instituts Koenigstuhl-Heidelberg", "POPot Publikationen des Astrophysikalischen Observatoriums zu Potsdam", "PCopO Publikationer og mindre Meddeler fra Kobenhavns Observatorium", "PGAOI Pulkovo Glavnaia Astronomicheskaia Observatoriia Izvestiia", "PApCh Pure &", "PApGe Pure and Applied Geophysics", "PApPh Pure and Applied Physics", "PApOp Pure Applied Optics", "QUnJ. Qinghua University Journal", "xmm.. XMM-Newton Press Release", "xmm.. XMM-Newton Proposal", "QREI. Quality Reliability Engineering International", "QuFin Quantitative Finance", "QuSOp Quantum and Semiclassical Optics", "QuEle Quantum Electronics", "QuIP. Quantum Information Processing", "QuOpt Quantum Optics", "QBSA. Quarterly Bulletin on Solar Activity", "QJMAM Quarterly Journal of Mechanics and Applied Mathematics", "QJRAS Quarterly Journal of the Royal Astronomical Society", "QJRMS Quarterly Journal of the Royal Meteorological Society", "QApMa Quarterly of Applied Mathematics", "QRBio Quarterly Reviews of Biophysics", "QuInt Quaternary International", "QuRes Quaternary Research", "QSRv. Quaternary Science Reviews", "Quest Quest", "RadRe Radcliffe Observatory Pretoria South Africa Reprints", "Rad.. Radiant, Journal of the Dutch Meteor Society", "REB.. Radiation and Environmental Biophysics", "RadEf Radiation Effects", "REDS. Radiation Effects and Defects in Solids", "RaPC. Radiation Physics and Chemistry", "RaRe. Radiation Research", "RaEE. Radio and Electronic Engineer", "Radel Radioehlektronika", "REEP. Radio Engineering and Electronic Physics", "RaF.. Radiofizika", "RaSol Radioizluchenie Solntsa", "RPRA. Radio Physics and Radio Astronomy", "RaRLJ Radio Research Laboratory, Journal", "RaRLR Radio Research Laboratory, Review", "RaSc. Radio Science", "RaScB Radio Science Bulletin", "RaScS Radio Science Supplement", "RaT.. Radioteknika", "RaEl. Radiotekhnika i Elektronika", "RERE. Radiotekhnika i Elektronika Radio Engineering Electronic Physics", "RatK. Radiotekhnika Kharkov", "RTRE. Radiotekhnika Tecommunications Radio Engineering Radio Engineering", "RaPro Raschety Prochnost", "RF... Raumfahrtforschung", "RCAEn RCA Engineer", "RCARv RCA Review", "RTI.. Real-Time Imaging", "RDCMP Recent Development in Condensed Matter Physics", "RRDAP Recent Research Development in Applied Physics", "RRDBC Recent Research Development in Biophysical Chemistry", "RRDBB Recent Research Development in Biophysics and Biochemistry", "RRDCP Recent Research Development in Chemical Physics", "RRDPC Recent Research Development in Physical Chemistry", "RRDP. Recent Research Development in Physics", "RRDPF Recent Research Development in Physics of Fluids", "RRDSP Recent Research Development in Statistical Physics", "ReAA. Recherches Aeronautiques et Aerospatiales", "RAOU. Recherches Astronomiques de l'Observatoire d'Utrecht", "RZh.. Referationyj Zhurnal", "RJEHM Regional Journal of Energy Heat and Mass Transfer", "RCD.. Regular and Chaotic Dynamics", "RemS. Remote Sensing", "RSEMS Remote Sensing Electro Magnetic Spectrum", "RSEnv Remote Sensing of Environment", "RSQ.. Remote Sensing Quarterly", "Renor Renormalization", "RISRJ Report Ionosphere Space Research Japan", "HarOR Report of the Committee of the Overseers of Harvard College appointed to visit the Observatory", "RNAOJ Report of the National Astronomical Observatory of Japan", "RSPUT Report Series of the Department of Physics and Science, University of Turku", "YalRY Reports for the year presented by the Board of Managers of the Observatory of Yale University to the President and Fellows", "ROLun Reports of the Lund Observatory", "RpMP. Reports on Mathematical Physics", "RPPh. Reports on Progress in Physics", "RTAMS Representation Theory of the American Mathematical Society", "BeiRe Reprints Beijing Astronomical Observatory Academia Sinica", "ROCi. Republic Observatory Johannesburg Circular", "ChPAS Republic of China National Science Council Proceedings Applied Sciences", "RBSEJ Research Based Science Education Journal", "RAA.. Research in Astronomy and Astrophysics", "ReNEv Research in Nondestructive Evaluation", "RSTEd Research in Science and Technological Education", "RScEd Research in Science Education", "RJPh. Research Journal of Physics", "RLEMR Research Laboratory Engineering Materials Report", "RLPME Research Laboratory Precision Machinery Electronics Bulletin", "RLOpt Research Letters in Optics", "RLPhy Research Letters in Physics", "RMA.. Research Measurement Approach", "RNOST Research News &", "RPFSU Research Papers Faculty of Materials Science and Technology Slovak University of Technology", "RRP.. Research Reports in Physics", "RTP.. Research Trends in Physics", "RNAO. Resultados del Observatorio Nacional Argentino", "ROCor Resultados del Observatorio Nacional Argentino en Cordoba", "ResPh Results in Physics", "RAROC Results of Astronomical Observations made at the Royal Observatory, Cape of Good Hope", "RMROC Results of Meridian Observations made at the Royal Observatory, Cape of Good Hope", "RDR.. Review of Derivatives Research", "RvPCJ Review of Physical Chemistry of Japan", "RvPT. Review of Physics in Technology", "RScI. Review of Scientific Instruments", "RvAqS Reviews in Aquatic Sciences", "RvMaP Reviews in Mathematical Physics", "RvMA. Reviews in Modern Astronomy", "RvGeo Reviews of Geophysics", "RvGSP Reviews of Geophysics and Space Physics", "RvGeS Reviews of Geophysics Supplement", "RvMin Reviews of Mineralogy", "RvMP. Reviews of Modern Physics", "RvMPS Reviews of Modern Physics Supplement", "RvOp. Reviews of Optics", "RvPP. Reviews of Plasma Physics", "RvRRL Reviews of the Radio Research Laboratory", "RvA.. Revista Astronomica Organo de la Asociacion Argengina Amigos de la Astronomia Buenos Aires", "RBrFi Revista Brasileira de Fisica", "RvCF. Revista Colombiana de Fisica", "IORP. Revista do observatorio : publicacao mensal do Imperial Observatorio do Rio de Janeiro", "RMxAA Revista Mexicana de Astronomia y Astrofisica", "RMxF. Revista Mexicana de Fisica", "RMxFE Revista Mexicana de Fisica E", "RMxFS Revista Mexicana de Fisica Supplement", "RvMad Revista Real Acad. Ciencias Exact. Fis. Nat. Madrid", "RTrTe Revista Transporturilor si Telecomunicatiilor", "AerRv Revue Aerospatiale", "RvAc. Revue d'Acoustique", "RvGPG Revue de Geographie Physique et de Geologie Dynamique", "RvGDG Revue de Geologie Dynamique et de Geographie Physique", "RvPA. Revue de Physique Appliquee", "RvPD. Revue du Palais de la Decouverte", "RvFEQ Revue Francaise de l'Electricite Quarter", "RFrM. Revue Francaise de Mecanique", "RFrMQ Revue Francaise de Mecanique Quarter", "RRMPA Revue Roumaine de Mathematiques Pures et Appliquees", "RvRP. Revue Roumaine de Physique", "RvRST Revue Roumaine des Sciences Techniques Serie de Mecanique Appliquee", "RST.. Revue Scientifique et Technique CECLES CERS", "RvT.. Revue Technique Thomson CSF", "RNISZ Rezul taty Nabliudenii Iskusstvennykh Sputnikov Zemli", "RWTHA Rheinisch Westfaelische Technische Hochschule Aerodynamisches Institut Abhandlungen", "AcRhe Rheologica Acta", "RA... Ricerche Astronomiche", "RIzZi Riga Izdatel Zinatne", "Rise. Rise Hvezd", "RRA.. River Research and Applications", "RIG.. Rivista Italiana di Geofisica", "RIGSA Rivista Italiana di Geofisica e Scienze Affini", "RvTS. Rivista Tecnica Selenia", "Robot Robotica", "RMRE. Rock Mechanics and Rock Engineering", "RMFMR Rock Mechanics Felsmechanik Mecanique des Roches", "Roczn Rocznik Astronomiczny Observatorjum Krakowskiego Krakow", "RoAJ. Romanian Astronomical Journal", "RoJPh Romanian Journal of Physics", "RoRPh Romanian Reports in Physics", "RoIE. Rossiiskaia Akademiia Nauk Izvestiia Energetika", "RoIMZ Rossiiskaia Akademiia Nauk Izvestiia Mekhanika Zhidkosti i Gaza", "RoISF Rossiiskaia Akademiia Nauk Izvestiia Seriia Fizicheskaia", "RoDok Rossijskaya Akademiya Nauk Doklady", "RoIMT Rossijskaya Akademiya Nauk Izvestiya Mekhanika Tverdogo Tela", "RoIzF Rossijskaya Akademiya Nauk Izvestiya Seriya Fizicheskaya", "RWPWZ Rostock Wilhelm Pieck Universitaet Wissenschaftliche Zeitschrift Mathematisch Naturwissenschaftliche Reihe", "PVSS. Royal Astronomical Society of New Zealand Publications of Variable Star Section", "VSSCi Royal Astronomical Society of New Zealand Variable Star Section Circulars", "VSSRe Royal Astronomical Society of New Zealand Variable Star Section Reprints", "VSSSC Royal Astronomical Society of New Zealand Variable Star Section Special Circulars", "RGOB. Royal Greenwich Observatory Bulletin", "RGOO. Royal Greenwich Observatory Observations", "ROAn. Royal Observatory Annals", "CapMi Royal Observatory Cape Mimeogram", "CoRSE Royal Society Edinburgh Communications Physical Sciences", "RSCT. Royal Society of Canada Transactions", "RSEPS Royal Society of Edinburgh Proceedings Section", "RSET. Royal Society of Edinburgh Transactions", "RSPTA Royal Society of London Philosophical Transactions Series A", "RSPTB Royal Society of London Philosophical Transactions Series B", "RSPT. Royal Society of London Philosophical Transactions Series I", "RSPSA Royal Society of London Proceedings Series A", "RSPSB Royal Society of London Proceedings Series B", "RSPS. Royal Society of London Proceedings Series I", "RoIn. Rozprawy Inzynierskie", "RoIET Rozprawy Inzynierskie Engineering Transactions", "asc.. Space Telescope ASC Instrument Science Report", "nicm. Space Telescope NICMOS Instrument Science Report", "stis. Space Telescope STIS Instrument Science Report", "wfc.. Space Telescope WFC Instrument Science Report", "wfpc. Space Telescope WFPC2 Instrument Science Report", "Ruimt Ruimtevaart", "RuCRv Russian Chemical Reviews", "RuGG. Russian Geology and Geophysics", "RJET. Russian Journal of Engineering Thermophysics", "RJMP. Russian Journal of Mathematical Physics", "RJPC. Russian Journal Physical Chemistry", "RJPCA Russian Journal Physical Chemistry A", "RJTAM Russian Journal Theoretical and Applied Mechanics", "RuMaS Russian Mathematical Surveys", "RuMet Russian Metallurgy", "RuPhJ Russian Physics Journal", "RALR. Rutherford Appleton Laboratory Report", "Sadha Sadhana", "STVF. Samoletostroenie Tekhnika Vozdushnogo Flota", "SAMPJ SAMPE Journal", "SAMPQ SAMPE Quarterly", "UISTS San Diego CA Univelt Inc Science Technology Series", "MaMeA Sankt Peterburgskii Universitet Vestnik Seriia Matematika Mekhanika Astronomiia", "SAOSR SAO Special Report", "asd.. Astrophysics Software Database", "ascl. Astrophysics Source Code Library", "SatCo Satellite Communications", "SBARM SBARMO Bulletin", "SbMat Sbornik: Mathematics", "SJMet Scandinavian Journal of Metallurgy", "SUVSR Scandinavian Union of Amateur Astronomers Variable Star Section", "ScReE Scholarly Research Exchange", "SNG.. Schweizerische Naturforschende Gesellschaft", "Sci.. Science", "SCSA. Science and Culture Series: Astrophysics", "SCSP. Science and Culture Series: Physics", "SECM. Science and Engineering of Composite Materials", "STAdM Science and Technology of Advanced Materials", "SCSMP Science China Series Mathematics Physics Astronomy Technological Sciences", "SciDi Science Dimension", "SciEd Science Education", "ScEdR Science Education Research", "SFCh. Science Foundation in China", "ScChA Science in China A: Mathematics", "ScChB Science in China B: Chemistry", "ScChC Science in China C: Life Sciences", "ScChD Science in China D: Earth Sciences", "ScChE Science in China E: Technological Sciences", "ScChF Science in China F: Information Sciences", "ScChG Science in China G: Physics and Astronomy", "SISN. Science Information Systems Newsletter", "SciN. Science News", "ScTEn Science of the Total Environment", "ScPr. Science Progress", "Scis. Sciences", "SciB. Scientia (Bologna)", "SciSn Scientia Sinica", "SSPMA Scientia Sinica Physica, Mechanica &", "SSSMP Scientia Sinica Series Mathematical Physical Technical Sciences", "SciAm Scientific American", "SMS.. Scientific Modeling and Simulation SMNS", "Scim. Scientometrics", "SRToh Sci. Rep. Tohoku Univ. Eighth Ser.", "SFSN. Scripta Faculty Science Nat. Ujep Brunensis Physica", "ScM.. Scripta Metallurgica", "ScMM. Scripta Metallurgica et Materialia", "SedG. Sedimentary Geology", "Sedim Sedimentology", "SeiKa Seikei-Kakou", "BSSA. Seismological Society America Bulletin", "SEGeo Seismology and Exploration Geophysics", "STSSP Selected Topics in Solid State Physics", "Semic Semiconductors", "SeScT Semiconductor Science Technology", "SeSTS Semiconductor Science Technology Supplement", "TrKra Seminar Kraevym Zadacham Trudy", "SCB.. Seminars in Cancer Biology", "SDia. Seminars in Dialysis", "GEOCS Semi-Regular Variables", "SenAR Sendai Astronomiaj Raportoj", "SenIm Sensing and Imaging", "SPTS. Sensor Physics and Technology Series", "SeRv. Sensor Review", "SeAc. Sensors and Actuators", "SeAcA Sensors and Actuators A Physical", "SeAcB Sensors and Actuators B Chemical", "SAERI Seoul Korea Atomic Energy Research Institute", "SanS. Separata Universidad de Chile Departamento de Astronomia Santiago", "SerAJ Serbian Astronomical Journal", "AnShO Shanghai Observatory Annals", "SV... Shock and Vibration", "SVD.. Shock Vibration Digest", "SVICB Shock Vibration Information Center Shock Vibration Bulletin", "SVICP Shock Vibration Information Center Shock Vibration Computer Programs", "SVICD Shock Vibration Information Center Shock Vibration Digest", "SVICI Shock Vibration Information Center Shock Vibration Inform Digest", "ShWav Shock Waves", "SJAM. SIAM Journal of Applied Mathematics", "SJCO. SIAM Journal of Control Optimization", "SJMA. SIAM Journal of Mathematical Analysis", "SJADS SIAM Journal on Applied Dynamical Systems", "SJNA. SIAM Journal on Numerical Analysis", "SIAMR SIAM Review", "SiMaJ Siberian Mathematical Journal", "SiFTZ Sibirskii Fiziko Tekhnicheskii Zhurnal", "JCMSI SICE Journal of Control, Measurement, and System Integration", "SidM. Sidereal Messenger", "SIDPQ SID Proceedings Quarter", "SiFoE Siemens Forschungs und Entwicklungsberichte", "SIGMA SIGMA", "Sig.. Signal", "SigPr Signal Processing", "Simul Simulation", "SiMol Single Molecules", "SZPA. SIRIUS. Zeitschrift fuer Populaere Astronomie", "Situ. Situ", "SkInq Skeptical Inquirer", "SRT.. Skin Research and Technology", "SkyN. Sky News", "SlaOb Slaboproudy Obzor", "SJCE. Slovak Journal of Civil Engineering", "SBE.. Small Business Economics", "SMaS. Smart Material Structures", "Smith Smithsonian", "SCoA. Smithsonian Contributions to Astrophysics", "SCoK. Smithsonian Contributions to Knowledge", "SmCES Smithsonian Contributions to the Earth Sciences", "SSS.. Social Studies of Science", "MSAIQ Societa Astronomica Italiana Memorie Quarter", "SFPTB Societe Francaise de Photogrammetrie et de Teledetection Bulletin", "SASS. Society for Astronomical Sciences Annual Symposium", "SEEJ. Society of Environmental Engineers Journal", "SIAM. Society of Industrial and Applied Mathematics", "SIBAN Sofia Izdatel Bolgarskoi Akademii Nauk", "SMat. Soft Matter", "SSSAJ Soil Science Society of America Journal", "SoCe. Solar Cells", "SoEn. Solar Energy", "SoEnM Solar Energy Materials", "SoPh. Solar Physics", "SoSyR Solar System Research", "STERJ Solar Terrestrial and Environmental Research Japan", "SolE. Solid Earth", "SolED Solid Earth Discussions", "SMArc Solid Mechanics Archives", "SSCom Solid State Communications", "SSEle Solid State Electronics", "SSIon Solid State Ionics", "SSNMR Solid State Nuclear Magnetic Resonance", "SSPAR Solid State Physics Advances in Research and Applications", "SSPAS Solid State Physics Advances in Research and Applications Supplement", "SSSci Solid State Sciences", "SSTec Solid State Technology", "BSolD Solnechnye Dann. Bull. Akad. Nauk SSSR", "SoKie Sonderdrucke der Sternwarte Kiel", "SoMue Sonderdrucke Universitaet Muenster Astronomisches Institut", "Sonne Sonne", "SoShe Soobshchenie Shemakhinskoj Astrofizicheskoj Observatorii", "SoByu Soobshcheniya Byurakanskoj Observatorii Akademiya Nauk Armyanskoj SSR Erevan", "SoSht Soobshcheniya Gosudarstvennogo Astronomicheskogo Instituta", "SoSAO Soobshcheniya Spetsial'noj Astrofizicheskoj Observatorii", "SMTS. Soprotivlenie Materialov i Teoriia Sooruzhenii", "SSHMP Sources and Studies in the History of Mathematics and Physical Sciences", "SHMPS Sources in the History of Mathematics and Physical Sciences", "SAAOC South African Astronomical Observatory Circular", "SAAOR South African Astronomical Observatory Republic", "SAJPh South African Journal of Physics", "SAJSc South African Journal of Science", "SouSt Southern Stars", "IBSAE Sovetskaia Antarkticheskaia Ekspeditsiia Informatsionnyi Byulleten", "SovAe Soviet Aeronomii", "SvApM Soviet Applied Mechanics", "SvA.. Soviet Astronomy", "SvAL. Soviet Astronomy Letters", "JETP. Soviet Journal of Experimental and Theoretical Physics", "JETPL Soviet Journal of Experimental and Theoretical Physics Letters", "SvJNP Soviet Journal of Nuclear Physics", "SvJOT Soviet Journal of Optical Technology", "SvJPP Soviet Journal of Plasma Physics", "SvJQE Soviet Journal of Quantum Electronics", "SvPAC Soviet Physics Acoustics", "SvPhA Soviet Physics Astronomy", "SvPC. Soviet Physics Crystallography", "SPhD. Soviet Physics Doklady", "SvPhJ Soviet Physics Journal", "SvPS. Soviet Physics Semiconductors", "SvPSS Soviet Physics Solid State", "SPTP. Soviet Physics Technical Physics", "SvPhU Soviet Physics Uspekhi", "SvRP. Soviet Radiophysics", "SSRvA Soviet Scientific Reviews A Physics Reviews", "SSRvC Soviet Scientific Reviews C Mathematical Physics Reviews", "SSRvD Soviet Scientific Reviews D Physicochemical Biology Reviews", "SSRvE Soviet Scientific Reviews E Astrophysics and Space Physics Reviews", "SvTRv Soviet Technology Reviews", "Space Space", "SSPRv Space and Solar Power Review", "SpCoB Space Communication Broadcasting", "SpCom Space Communications", "SpEd. Space Education", "SpFl. Spaceflight", "SLSci Space Life Sciences", "SpMar Space Markets", "SpMME Space Medicine Medical Engineering", "SpPol Space Policy", "SpPow Space Power", "SPRMD Space Power - Resources, Manufacturing and Development", "SpRBu Space Research Bulgaria", "SpReT Space Research Today", "SSI.. Space Science Instrumentation", "SSRv. Space Science Reviews", "SpT.. Space Technology", "STICA Space Technology Industrial and Commercial Applications", "STECF Space Telescope European Coordinating Facility Newsletter", "Spvw. Spaceview", "SpWea Space Weather", "SpWd. Space World", "SpWdU Space World U", "SpWdW Space World W", "SpWdY Space World Y", "Spark Spark, the AAS Education Newsletter", "VatAR Specola Astronomica Vaticana Annual Reports", "AtlSV Specola Astronomica Vaticana Atlas Stellarum Variabilium", "VatCo Specola Astronomica Vaticana Comunicazione", "VatMA Specola Astronomica Vaticana Miscellanea Astronomica", "VatPS Specola Astronomica Vaticana Pubblicazioni Serie Seconda", "VatRS Specola Astronomica Vaticana Ricerche Spettroscopiche", "VatRA Specola Astronomica Vaticana Richerche Astronomiche", "AcSpe Spectrochimica Acta", "AcSpA Spectrochimica Acta Part A: Molecular Spectroscopy", "SpecL Spectroscopy Letters", "SRMO. Specula Regia Monachiensi Observationes astronomicae", "SScT. Speculations in Science and Technology", "Spika Spika", "SpEng Sports Engineering", "SSSSc Springer Series in Surface Sciences", "STMP. Springer Tracts in Modern Physics", "SSCP. Springer Verlag Springer Series on Chemical Physics", "SSEp. Springer Verlag Springer Series on Electrophysics", "SSGSR Springer Verlag Springer Series on Group Geophysics Space Research", "SSOS. Springer Verlag Springer Series on Optical Sciences", "SVPCS Springer Verlag Springer Series on Physics Chemistry Space", "SSSSS Springer Verlag Springer Series on Solid State Sciences", "SSSyn Springer Verlag Springer Series on Synergetics", "SSWP. Springer Verlag Springer Series on Wave Phenomena", "SprRe Sproul Observatory Reprints", "SrLJP Sri Lankan Journal of Physics", "SANUG Srpska Akademiia Nauka i Umetnosti Glas Odeljenje Tekhnichkikh Nauka", "SRXPh SRX Physics", "StarD StarDate Magazine", "StSky Star Sky", "StMet Statistical Methodology", "StaSc Statistical Science", "StCom Statistics and Computing", "StReL Staub Reinhaltung Luft", "SMSPS Stephan Mueller Special Publication Series", "Sterz Sternzeit Mitteilungen der Astrnomischen Vereinigungen Aachen", "IEWS. Stevenage Herts England Peter Peregrinus Ltd IEE Electromagnetic Waves Series", "SteRe Steward Observatory Reprints", "TriTr STLE Tribology Transactions", "SAA.. Stochastic Analysis and Applications", "SHH.. Stochastic Hydrology and Hydraulics", "SSRp. Stochastics and Stochastics Reports", "StoAn Stockholms Observatoriums Annaler", "StoMe Stockholms Observatoriums Meddelande", "StoOR Stockholms Observatoriums Reports", "Strab Strabismus", "Strai Strain", "SGC.. Stratigraphy and Geological Correlation", "Stroj Strojarstvo", "StAst Strolling Astronomer", "StrOp Structural Optimization", "SASn. Studia Astronomica Sinica", "StBio Studia Biophysica", "StGG. Studia Geophysica et Geodaetica", "StuMa Studia Mathematica", "SSTor Studia Societatis Scientiarum Torunensis Sectio F Astronomia", "StAM. Studies in Applied Mathematics", "SCMP. Studies in Condensed Matter Physics", "SGORS Studies in Geophysical Optics and Remote Sensing", "StGeo Studies in Geophysics", "StHEP Studies in High Energy Physics", "StHCG Studies in High Energy Physics Cosmology and Gravitation", "StMaP Studies in Mathematical Physics", "StPTC Studies in Physical and Theoretical Chemistry", "SScEd Studies in Science Education", "StHPM Studies in the History and Philosophy of Modern Physics", "StHMP Studies in the History of Mathematics and the Physical Sciences", "Sttur Studies in turbulence", "SCA.. Studii si Cercetari de Astronomie Bucuresti", "StCeF Studii si Cercetari de Fizica", "StCeM Studii si Cercetari Matematice", "StCMA Studii si Cercetary de Mecanica Aplicata", "SSTA. Subsurface Sensing Technologies and Applications", "SunGe Sun and Geosphere", "Sunwo Sunworld", "SuScT Superconductor Science Technology", "SuMi. Superlattices and Microstructures", "JPhSu Supplement au Journal de Physique", "AnMuS Supplementband zu den Annalen der Munchener Sternwarte", "SAnAp Supplements aux Annales d'Astrophysique", "SuCT. Surface and Coatings Technology", "SurIA Surface and Interface Analysis", "SRL.. Surface Review and Letters", "SurSc Surface Science", "SurSL Surface Science Letter", "SurSR Surface Science Reports", "SurSS Surface Science Spectra", "SGeo. Surveys in Geophysics", "SHEP. Surveys in High Energy Physics", "SvPro Svarochnoe Proizvodstvo", "SvUNT Sverdlovsk Ural skii Nauchnyi Tsentr AN SSSR", "SydOP Sydney Observatory Papers", "SynMe Synthetic Metals", "SAMS. Systems Analysis Modelling Simulation", "SyTec Systems Technology", "TMPGO Tagung ueber Mathematische Probleme Geodaesie Oberwolfach West Germany Bulleting Geodesique", "TANEs Tartu Akademiia Nauk Estonskoi SSR", "TarPr Tartu Astrofizicheskoj Observatorii Preprint", "TarOT Tartu Astrofuusika Observatoorium Teated", "IzTas Tashkent Izdatel Fan", "IzGeo Tbilisi Georgian SSR Izdatel Metsniereba", "TIzSS Tbilisi Izdatel Sabchota Sakartvelo", "TecN. Technical News", "TePhL Technical Physics Letters", "TeLoA Technika Lotnicza i Astronautyczna", "TBBM. Techniques of Biochemical and Biophysical Morphology", "TPhy. Techniques of Physics", "TMKF. Technische Mitteilungen Krupp Forschungsberichte", "TUnGG Technische Univ Geodesy Global Geodyn", "ToIzL Technisch oekonomische Informationen zivilen Luftfahrt", "Tech. Technology", "TeCu. Technology and Culture", "TecRv Technology Review", "Tecto Tectonics", "Tectp Tectonophysics", "TekEl Tekhnicheskaia Elektrodinamika", "TJAu. Telecommunication Journal of Australia", "TDAPR Telecommunications and Data Acquisition Progress Report", "TMOPR Telecommunications and Mission Operations Progress Report", "TRET. Telecommunications and Radio Engineering Telecommunications", "TelIn Telematics Informatics", "Telet Telettra S", "Tell. Tellus", "TellA Tellus Series A", "TellB Tellus Series B Chemical and Physical Meteorology B", "TSDMO Tellus Series Dynamic Meteorology and Oceanography", "TeoEl Teoreticheskaia Elektrotekhnika", "TeoPM Teoreticheskaia i Prikladnaia Mekhanika", "TFFAP Teoriia Funktsii Funktsional nyi Analiz i ikh Prilozheniia", "TeoVP Teoriia Veroiatnostei i ee Primeneniia", "Teplo Teploenergetika", "Tepsg Teplofizicheskie svoistva gazov", "TepT. Teplofizika i Teplotekhnika", "TepVT Teplofizika Vysokikh Temperatur", "TFizG Teploobmen i Fizicheskaia Gazodinamika", "TNEK. Teplovye Napriazheniia Elementakh Konstruktsii", "TeMAE Terrestrial Magnetism and Atmospheric Electricity (Journal of Geophysical Research)", "TeMag Terrestrial Magnetism (Journal of Geophysical Research)", "Tesla TESLA Electronics", "TTPhy Teubner Texte zur Physik", "TexMi Textures and Microstructures", "Ana.. The Analyst", "Agrph The Astrograph", "Astr. The Astronomer", "ATel. The Astronomer's Telegram", "AJ... The Astronomical Journal", "AJS.. The Astronomical Journal Supplement", "AstRv The Astronomical Review", "ApJ.. The Astrophysical Journal", "ApJL. The Astrophysical Journal Letters", "ApJS. The Astrophysical Journal Supplement Series", "BJHS. The British Journal for the History of Science", "BJPS. The British Journal for the Philosophy of Science", "BuSSA The Bulletin of the Seismological Society of America", "ComRv The Communication Review", "CompJ The Computer Journal", "TCD.. The Cryosphere Discussions", "EMBO. The EMBO Journal", "JAS.. The Journal of Agricultural Science", "JChTh The Journal of Chemical Thermodynamics", "JFin. The Journal of Finance", "MatMo The Mathematical Monthly", "Msngr The Messenger", "Neuro The Neuroscientist", "INGN. The Newsletter of the Isaac Newton Group of Telescopes", "Obs.. The Observatory", "OAcJ. The Open Acoustics Journal", "OAeEJ The Open Aerospace Engineering Journal", "OAPJ. The Open Applied Physics Journal", "OAJ.. The Open Astronomy Journal", "OASJ. The Open Atmospheric Science Journal", "OCPJ. The Open Chemical Physics Journal", "OCMPJ The Open Condensed Matter Physics Journal", "OGC.. The Open Geology Journal", "OHJ.. The Open Hydrology Journal", "OMEJ. The Open Mechanical Engineering Journal", "OMJ.. The Open Mechanics Journal", "OMnJ. The Open Mineralogy Journal", "OMPJ. The Open Mineral Processing Journal", "ONJ.. The Open Nanoscience Journal", "ONPPJ The Open Nuclear &", "ONMJ. The Open Numerical Methods Journal", "OOcJ. The Open Oceanagraphy Journalurnal", "OOEJ. The Open Ocean Engineering Journal", "OOJ.. The Open Optics Journal", "OPalJ The Open Paleontology Journal", "OPCJ. The Open Physical Chemistry Journal", "OPPJ. The Open Plasma Physics Journal", "ORSJ. The Open Remote Sensing Journal", "OREJ. The Open Renewable Energy Journal", "OSPJ. The Open Signal Processing Journal", "OSpeJ The Open Spectroscopy Journal", "OSuJ. The Open Superconductors Journal", "OSSJ. The Open Surface Science Journal", "AcTC. Theoretica Chimica Acta", "ThApC Theoretical and Applied Climatology", "ThAFM Theoretical and Applied Fracture Mechanics", "TAM.. Theoretical and Applied Mechanics", "ThCFD Theoretical and Computational Fluid Dynamics", "TMP.. Theoretical and Mathematical Physics", "ThAst Theoretical Astrophysics", "TPAG. Theory and Practice of Applied Geophysics", "PhTea The Physics Teacher", "PlJ.. The Plant Journal", "QJMat The Quarterly Journal of Mathematics", "QJPAM The Quarterly Journal of Pure and Applied Mathematics", "RamJ. The Ramaujan Journal", "RvES. The Review of Economic Studies", "ThEng Thermal Engineering", "TSE.. Thermal Science and Engineering", "SJCLI The Scandinavian Journal of Clinical and Laboratory Investigation", "SciMo The Scientific Monthly", "TSF.. Thin Solid Films", "TETB. Thyssen Edelstahl Technische Berichte", "TrTIM Tiflis Izdatel Metsniereba Akademiia Nauk Gruzinskoi SSR Institut Geofiziki Trudy", "TrGru Tiflis Izdatel Metsniereba Akademiia Nauk Gruzinskoi SSR Matematicheskii Institut Trudy", "IzTif Tiflis Izdatel Tbilisskogo Universiteta", "CorTi Tirada Aparte Universidad Nacional de Cordoba Argentina Observatorio Astronomico", "TiEng Tissue Engineering", "TNKS. Tochnost i Nadezhnost Kiberneticheskikh Sistem", "TSRSG Tohoku University Science Reports Series Geophysics", "TokAB Tokyo Astronomical Bulletin", "TokRe Tokyo Astronomical Observatory Reprints", "TUFER Tokyo Denki University Faculty of Engineering Research Reports", "TAEMm Tokyo Metropolitan College Aeronautical Engineering Memoirs", "TUFEJ Tokyo University Faculty of Engineering Journal Series", "TUISR Tokyo University Institute Industrial Science Report", "TUASB Tokyo University Institute of Space and Aeronautical Science Bulletin", "TUASR Tokyo University Institute of Space and Aeronautical Science Report", "TIOA. Tomsk Institut Optiki Atmosfery CO AN SSSR", "TApPh Topics in Applied Physics", "TAASS Topics in Astrophysics, Astrononmy, and Space Science", "ToCat Topics in Catalysis", "TCPh. Topics in Current Physics", "TPhCh Topics in Physical Chemistry", "ToASC Torino Accademia delle Scienze Classe di Scienze Fisiche Matematiche e Naturali Atti", "TosRv Toshiba Review", "TouCE Toulouse Cepadues Editions", "TrSpT Transactions of Space Technology Japan", "TAGU. Transactions of the American Geophysical Union", "TAMS. Transactions of the American Mathematical Society", "TAPS. Transactions of the American Philosophical Society", "TOYal Transactions of the Astronomical Observatory of Yale University", "TCaPS Transactions of the Cambridge Philosophical Society", "TIMC. Transactions of the Institute of Measurement and Control", "TISCI Transactions of the Institute of Systems, Control and Information Engineers", "IAUTA Transactions of the International Astronomical Union, Series A", "IAUTB Transactions of the International Astronomical Union, Series B", "TIUCS Transactions of the International Union for Cooperation in Solar Research", "TJSAI Transactions of the Japanese Society for Artificial Intelligence", "TATJ. Transactions of the Japanese Society for Artificial Intelligence, Aerospace Technology Japan", "TJSIE Transactions of The Japanese Society of Irrigation, Drainage and Rural Engineering", "TRACE Transactions of the Japan Society of Refrigerating and Air Conditioning Engineers", "TLHSQ Transactions of the Literary and Historical Society of Quebec", "TrOS. Transactions of the Optical Society", "TSICE Transactions of the Society of Instrument and Control Engineers", "TPM.. Transport in Porous Media", "TTSP. Transport Theory and Statistical Physics", "TvOC. Transvaal Observatory Circular", "TSSLW Travaux de la Societe des Sciences et des Letters de Wroclaw", "TOMar Travaux de l'Observatoire de Marseille", "TraGe Travaux Geophysiques", "TrGeo Treatise on Geochemistry", "TTP.. Trends in Theoretical Physics", "TriL. Tribology Letters", "TrLit Trudy Akademiia Nauk Litovskoi", "TrSSR Trudy Akademiia Nauk SSSR Fizicheskii Institut", "TrAlm Trudy Astrofizicheskogo Instituta Alma-Ata", "TrRig Trudy Astrofiz. Lab. Riga", "TrLen Trudy Astronomicheskoj Observatorii Leningrad", "TrPul Trudy Glavnoj Astronomicheskoj Observatorii v Pulkovo", "TrSht Trudy Gosudarstvennogo Astronomicheskogo Instituta", "TrDus Trudy Instituta Astrofiziki Dushanbe", "TrSta Trudy Instituta Astrofiziki Stalinabad", "TrKaz Trudy Kazanskaia Gorodkoj Astronomicheskoj Observatorii", "TrMMO Trudy Moskovskoe Matematicheskoe Obshchestvo", "TrPet Trudy Seminar imeni G Petrovskogo", "TrTas Trudy Tashkentskoj Astronomicheskoj Observatorii", "TrTsA TsAGI Trudy", "ZaTsA TsAGI Uchenye Zapiski", "TrTsI TsIAM Trudy", "TsHUJ Tsing Hua University Journal", "TITas Tsirkulyar Astronomicheskogo Instituta Akademiya Nauk Uzbekskoj SSR", "TsLvo Tsirkulyar Astronomicheskoj Observatorii Lvov", "TsShe Tsirkulyar Shemakhinskoj Astrofizicheskoj Observatorii", "TsSta Tsirkulyar Stalinabadskoj Astronomicheskoj Observatorii", "TsTas Tsirkulyar Tashkentskoj Astronomicheskoj Observatorii", "TsVse Tsirkulyar Vses. astron.-geod. o-va", "TsPul Tsirkulyary Glavnoj Astronomicheskoj Observatorii i Pulkove", "TUAID Tuebingen Universitaet Astronomisches Institut Diplomarbeit", "TJJPT Tuijin Jishu Journal of Propulsion Technology", "TurTe Turbulentnye techeniia", "TJPh. Turkish Journal of Physics", "UkJPO Ukrainian Journal of Physical Optics", "UkFiZ Ukrainskii Fizicheskii Zhurnal", "UkMaZ Ukrainskii Matematicheskii Zhurnal", "Ultmi Ultramicroscopy", "UltIm Ultrasonic Imaging", "Ultra Ultrasonics", "Umsch Umschau", "USOC. Unified System Orbit Computation USOC", "UMIB. Unione Matematica Italiana Bollettino", "UNPSA United Nations Programme on Space Applications", "UniCl Universe Classroom", "UNAer Universita di Napoli Aeritalia S", "UCAFR Universitas Comeniana Acta Facultatis Rerum Naturalium Physica", "UMt1K Universite de Montpellier", "UECBu University Electro Communications Bulletin", "UnECR University Electro Communications Reports", "StARe University Observatory St. Andrews Scotland Reprints", "HawRe University of Hawaii Reprints", "ADUrb University of Illinois Astronomy Department Urbana Illinois", "MicRe University of Michigan Observatory Reprints", "XXFD. University of Minnesota 1969 (XXFD)", "LP... University of Minnesota Minneapolis", "OklRe University of Oklahoma Observatory Reprints", "MAUTx University of Texas Monographs in Astronomy", "PAUTx University of Texas Publications in Astronomy", "Unpub Unpublished", "UAPET Updates in Applied Physics and Electrical Technology", "UppAn Uppsala Astronomical Observatory Annals", "UppOR Uppsala Astronomical Observatory Reports", "USM.. Upravliaiushchie Sistemy i Mashiny", "UrBar Urania (Bracelona)", "Urani Urania (Krakow)", "UrMad Urania (Madrid)", "UGSJR U S Geological Survey Journal Research", "USNOC U.S. Naval Observatory Circulars", "USNOR U.S. Naval Observatory Reports", "UsFiN Uspekhi Fizicheskikh Nauk", "UMAM. Uspekhi Mekhaniki Advances Mechanics", "RpCCA USSR Report Cybernetics Computers Automation Technology JPRS UCC", "RpESc USSR Report Earth Sciences JPRS UES", "RpSpR USSR Report Space", "RpBAM USSR Report Space Biology Aerospace Medicine JPRS USB", "RpEEE USSR Rept Electron Elec Eng JPRS UEE", "RpEn. USSR Rept Energy JPRS UEN", "RpEE. USSR Rept Eng Equipment JPRS UEQ", "RLSBB USSR Rept Life Sci Biomed Behavioral Sci JPRS", "RMTME USSR Rept Machine Tools Metalworking Equipment JPRS UMM", "RpMSM USSR Rept Mater Sci Met JPRS", "RpPhM USSR Rept Phys Math JPRS UPM", "RSBAM USSR Rept Space Biol Aerospace Med Jun JPRS", "RpSBA USSR Rept Space Biol Aerospace Med Sep", "RpTr. USSR Rept Transportation JPRS UTR", "UtMat Utilitas Mathematica", "UtrOv Utrechtse Sterrekundige Overdrukken", "Vacuu Vacuum", "VVORe Van Vleck Observatory Reprints", "VSOLB Variable Star Observers League in Japan - Bulletin", "Vasio Vasiona", "VatOP Vatican Observatory Publications", "VDIF. VDI Forschungsheft", "VDIZ. VDI Z", "VDIZF VDI Zeitschriften Fortschritt Berichte Reihe Stroemungstechnik", "VSD.. Vehicle System Dynamics", "VKAWA Verhandelingen der Koninklijke Akademie van Wetenschappen te Amsterdam", "Verme Vermessungstechnik", "VeWFS Veroeffentlichung der Wilhelm Foerster Sterwarte", "ViHei Veroeffentlichungen der Badischen Landes-Sternwarte zu Heidelberg", "VeHei Veroeffentlichungen der Badischen Sternwarte zu Heidelberg", "VeGG. Veroeffentlichungen der Geod. Geophys", "VeKar Veroeffentlichungen der Grossherzoglichen Sternwarte zu Karlsruhe", "VeBam Veroeffentlichungen der Remeis-Sternwarte zu Bamberg", "VeBab Veroeffentlichungen der Sternwarte Babelsberg", "VeMun Veroeffentlichungen der Sternwarte Munchen", "VeSon Veroeffentlichungen der Sternwarte Sonneberg", "VeKie Veroeffentlichungen der Universitaets-Sternwarte Kiel", "VeKoe Veroeffentlichungen der Universitaets-Sternwarte Koenigsberg Pr.", "VeBB. Veroeffentlichungen der Universitaetssternwarte zu Berlin-Babelsberg", "VeGoe Veroeffentlichungen der Universitaets-Sternwarte zu Goettingen", "VeJen Veroeffentlichungen der Universitaets-Sternwarte zu Jena", "VeLei Veroeffentlichungen der Universitaetssternwarte zu Leipzig", "VeBoc Veroeffentlichungen des Astronomischen Instituts der Ruhr-Universitaet Bochum", "VeARI Veroeffentlichungen des Astronomischen Rechen-Instituts Heidelberg", "VeABD Veroeffentlichungen des Astronomischen Rechen-Instituts zu Berlin-Dahlem", "VeBon Veroeffentlichungen des Astronomisches Institute der Universitaet Bonn", "VeFra Veroeffentlichungen des Astronomisches Institute der Universitaet Frankfurt", "VeBKI Veroeffentlichungen des Bayerische Kommission Int. Erdmessung", "VeKAB Veroeffentlichungen des Koeniglichen Astronomischen Rechen-Instituts zu Berlin", "VeZPE Veroffentlichungen des Zentralinstituts Physik der Erde", "VMKAN Verslagen en Mededeelingen der Kon. Academie van Wetenschappen, Afd. Natuurkunde", "VeLdn Verslag van den staat der Sterrewacht te Leiden", "Vert. Vertica", "Vertf Vertiflite", "Vesmi Vesmir", "VKha. Vestnik Khar'kovskogo Universiteta", "VeKha Vestnik Khar'kov Universitet", "VKie. Vestnik Kievskogo Universiteta Seriya Astronomii", "VeLGU Vestnik LGU", "VeMos Vestnik Moskovskogo Universiteta Seriya 3 Fizika Astronomiya", "VISBD Vibration Inst Shock Vibration Digest", "VIAEA Vienna International Atomic Energy Agency", "VAG.. Vierteljahresschrift der Astronomischen Gesellschaft", "VMed. Vierteljahrschrift für Gerichtliche Medizin und Öffentliches Sanitätswesen", "VNG.. Vierteljahrsschrift der Naturforschenden Gesellschaft in Zürich", "VilCo Villanova University Observatory Contributions", "VilOB Vilnius Astronomijos Observatorijos Biuletenis", "IzVil Vilnius Izdatel Mokslas", "VJS.. Virginia Journal of Science", "VisKi Visnik Kiiv. Univ., Fiz.-Mat. Nauki, Astron", "ViGeo Vissha Geodeziia", "VA... Vistas in Astronomy", "VTJ.. Vitro Technical Journal", "yCat. VizieR Online Data Catalog", "yCatp VizieR Online Data Catalog", "VADVS VKI Advanced Design of Ventilation Systems", "VICFD VKI An Introduction to Computational Fluid Dynamics", "VIMT. VKI An Introduction to Modeling Turbulence", "VAFC. VKI Axial Flow Compressors", "VBLT. VKI Boundary Layers in Turbomachines", "VCCPP VKI Combined Cycles for Power Plants", "VCFD. VKI Computational Fluid Dynamics", "VCFDI VKI Computational Fluid Dynamics for Industrial Flows", "VCGFV VKI Computer Graphics Flow Visualization and Computational Fluid Dynamics", "VGTET VKI Gas Turbine Engine Transient Behaviour", "VIHE. VKI Industrial Heat Exchangers", "VKILV VKI Laser Velocimetry", "VKIMT VKI Measurement and Techniques", "VMTA. VKI Measurement Techniques in Aerodynamics", "VMHT. VKI Methodology Hypersonic Testing", "VMATP VKI Modeling and Applications of Transport Phenomena in Porous Media", "VADMT VKI New Approaches in the Description and Modeling of Turbulence", "VNGG. VKI Numerical Grid Generation", "VNMFT VKI Numerical Methods for Flows in Turbomachinery", "VPIDV VKI Particle Image Displacement Velocimetry", "VKIRT VKI Radial Turbines", "VKISP VKI Spacecraft Propulsion", "VTSF. VKI Turbulent Shear Flows", "VVRD. VKI Vibration Rotor Dynamics", "VLSID VLSI Design", "VAC.. Voies Aviation Civile Fall Winter", "VANTS Voprosy Atomnoi Nauki i Tekhniki Seriia Fizika Plazmy i Problemy Upravliaemykh Termoiadernykh Reaktsii", "VopDP Voprosy Dinamiki i Prochnosti", "VETT. Voprosy Elektroniki Tverdogo Tela", "VopGA Voprosy Gidrodinamiki Atmosfery", "VopK. Voprosy Kibernetiki", "VMOIP Voprosy Metrologicheskogo Obespecheniia Izmereniia Parametrov Tekhnologicheskikh Lazerov", "VoTAS Voprosy Teorii Atomnykh Stolknovenii", "VopTP Voprosy Teorii Plazmy", "VTSAU Voprosy Teorii Sistem Avtomaticheskogo Upravleniia", "VossZ Vossische Zeitung", "IzYak Vsesoiuznaia Konferentsiia Kosmicheskim Lucham Yakutsk USSR Akademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "IzYer Vsesoiuznaia Konferentsiia Kosmicheskim Lucham Yerevan Armenian SSR Aademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "RaUkr Vsesoiuznyi Simpozium Difraktsii i Rasprostraneniiu Voln Lvov Ukrainian SSR Radiofizika", "VnPM. Vychislitel naia i Prikladnaia Matematika", "VnMP. Vychislitel nye Metody i Programmirovanie", "VyGeo Vyssha Geodeziia", "WarRe Warsaw University Reprints", "WasOA Washburn Observatory Astrophysics", "GMS.. Washington DC American Geophysical Union Geophysical Monograph Series", "WRR.. Water Resources Research", "WavEl Wave Electronics", "WaMot Wave Motion", "WRCM. Waves in Random and Complex Media", "WRM.. Waves in Random Media", "Wear. Wear", "WearB Wear B", "Wthr. Weather", "WtFor Weather and Forecasting", "WeiEn Weight Engineering", "WeldJ Welding Journal", "Werk. Werkgroepnieuws", "JIMO. WGN, Journal of the International Meteor Organization", "WilOO Williamstown Observatory Observations", "WiEn. Wind Energy", "WiEng Wind Engineering", "WisBT Wissenschaftliche Berichte AEG Telefunken", "WisZe Wissenschaftliche Zeitschrift", "WSAAA Workshop Series of the Asociacion Argentina de Astronomia", "WCRp. World Climate Report", "WJCMP World Journal of Condensed Matter Physics", "WJM.. World Journal of Mechanics", "WJNSE World Journal of Nano Science and Engineering", "WJNST World Journal of Nuclear Science and Technology", "WroRe Wroclaw Astronomical Observatory Reprints", "Wuli. Wuli", "YaFiz Yadernaya Fizika", "YalOY Yale University Observatory Reports for the Year", "YUFEM Yamaguchi University Faculty of Engineering Memoirs", "YUTR. Yamaguchi University Technology Reports", "YamC. Yamamoto Circular", "ZaDN. Zagadnienia Drgan Nieliniowych", "JAMP. ZAMP Journal of Applied Mathematics and Physics", "ZaLab Zavodskaia Laboratoriia", "ZaMM. Zeitschrift Angewandte Mathematik und Mechanik", "ZaMP. Zeitschrift Angewandte Mathematik und Physik", "ZFHDG Zeitschrift der Fachsektion Hydrogeologie in der Deutschen Geologischen Gesellschaft", "ZeIE. Zeitschrift elektrische Informations und Energietechnik", "ZAGeo Zeitschrift fur Angewandte Geographie", "ZAPhy Zeitschrift fur Angewandte Physik", "ZAAC. Zeitschrift fur Anorganische und Allgemeine Chemie", "ZA... Zeitschrift fur Astrophysik", "ZEVGA Zeitschrift fur Eisenbahnwesen und Verkehrstechnik Glasers Annalen", "ZEAPC Zeitschrift für Elektrochemie und Angewandte Physikalische Chemie", "ZFlu. Zeitschrift fur Flugwissenschaften", "ZFlWe Zeitschrift fur Flugwissenschaften und Weltraumforschung", "ZGm.. Zeitschrift fur Geomorphologie", "ZGmS. Zeitschrift fur Geomorphologie Supplement", "ZGeo. Zeitschrift fur Geophysik", "ZGlGl Zeitschrift fur Gletscherkunde und Glazialgeologie", "ZK... Zeitschrift fur Kristallographie", "ZKMP. Zeitschrift fur Kristallographie Mineralogie und Petrographie", "ZKS.. Zeitschrift fur Kristallographie Supplements", "ZMP.. Zeitschrift für Mathematik und Physik", "ZMetl Zeitschrift fur Metallkunde", "ZeMet Zeitschrift fur Meteorologie", "ZPhy. Zeitschrift fur Physik", "ZPhyA Zeitschrift fur Physik A Hadrons and Nuclei", "ZPC.. Zeitschrift fur Physikalische Chemie", "ZPCF. Zeitschrift fur Physikalische Chemie Frankfurt", "ZPCL. Zeitschrift fur Physikalische Chemie Leipzig", "ZPCNF Zeitschrift fur Physikalische Chemie Neue Folge", "ZPCW. Zeitschrift fur Physikalische Chemie Wiesbaden", "ZPhyB Zeitschrift fur Physik B Condensed Matter", "ZPhyC Zeitschrift fur Physik C Particles and Fields", "ZPhyD Zeitschrift fur Physik D Atoms Molecules Clusters", "ZNatA Zeitschrift Naturforschung Teil A", "ZNatB Zeitschrift Naturforschung Teil B", "ZePAN Zeitschrift Physik Atomic Nuclei", "ZVer. Zeitschrift Vermessungswes.", "ZWer. Zeitschrift Werkstofftechnik", "ZemVs Zemlia i Vselennaia", "Zenit Zenit", "MiTau Zentralinstitut fuer Astrophysik Mitteilungen des Karl-Schwarzschild-Observatoriums Tautenburg", "MitVS Zentralinstitut fuer Astrophysik Sternwarte Sonneberg Mitteilungen ueber Veraenderliche Sterne", "ZhPmR ZhETF Pis ma Redaktsiiu", "ZhETF Zhurnal Eksperimental noi i Teoreticheskoi Fiziki", "ZhFK. Zhurnal Fizicheskoi Khimii", "ZNPFK Zhurnal Nauchnoi i Prikladnoi Fotografii i Kinematografii", "ZhPhy Zhurnal Physik", "ZhPS. Zhurnal Prikladnoi Spektroskopii", "ZhTFi Zhurnal Tekhnicheskoi Fiziki", "ZVMMF Zhurnal Vychislitel noi Matematiki i Matematicheskoi Fiziki", "ZiZa. Ziran Zazhi", "Zprav Zpravodaj VZLU", "ZvDeb Zvaigsnota Debess", }; static const int njournals = sizeof( journals ) / sizeof( journals[0] ); hs-bibutils-6.7.0.0/bibutils/adsout_journals.c0000755000000000000000000063257700000000000017462 0ustar0000000000000000/* http://adsabs.harvard.edu/abs_doc/journals1.html * download URL source then parse with * fgrep setfields journals1.html | awk -F ';' '{printf "%s\n",$2}' * | cut -c 7-12,24- | sed 's/"//g' | awk '{printf "\"%s\",\n",$0}' * | sort -k 2 * */ static const char *journals[] = { "TDR.. 3D Research", "AASHS AAS Hist. Ser.", "AASPB AAS Photo Bulletin", "AAN.. AAVSO Alert Notice", "AAVSC AAVSO Circular", "AAVSN AAVSO Newsletter", "AAVSB AAVSO Solar Bulletin", "AbaOB Abastumanskaia Astrofizicheskaia Observatoriia Byulleten", "AbbOO Abbadia Observatory Observations", "AADDR Abhandlungen Akad. Wiss. DDR", "AAGot Abhandlungen Akad. Wiss. Göttingen", "ABWG. Abh. Braunschweigische Wissenschaftliche Ges.", "AbhP. Abh. der Preuß. Akademie der Wissenschaften Jahrg", "AbhKP Abh. Konigl. Preuss. Akad. Wissenschaften Jahre 1906,92, Berlin,1907", "AbhBr Abh. naturwiss. Verein Bremen", "AbApA Abstract and Applied Analysis", "ASFAS Academia Scientiarum Fennica Annales Series Physica", "AOIJ. Academic Open Internet Journal", "CR2.. Academie des Sciences Comptes Rendus Serie Mecanique Physique Chimie Sciences de la Terre et de l Univers", "CRAS. Academie des Sciences Paris Comptes Rendus", "CRASB Academie des Sciences Paris Comptes Rendus Serie B Sciences Physiques", "CRASG Academie des Sciences Paris Comptes Rendus Serie Generale La Vie des Sciences", "CRASP Academie des Sciences Paris Comptes Rendus Serie Physique Astrophysique", "CRASM Academie des Sciences Paris Comptes Rendus Serie Sciences Mathematiques", "CRASA Academie des Sciences Paris Comptes Rendus Vie Academique Semester Supplement", "MeARB Academie Royale de Belgique Classe des Sciences Memoires", "ASSAB Academie Serbe des Sciences et des Arts Bulletin Classe des Sciences Techniques", "ASLLR Accademia di Scienze e Lettere Istituto Lombardo Rendiconti Serie della Classe di Scienze Matematiche e Naturali Sezione Scienze Matematiche Fisiche Chimiche e Geologiche", "ANLAM Accademia Nazionale dei Lincei Atti Rendiconti Classe di Matematica e Applicazioni", "ANLAF Accademia Nazionale dei Lincei Atti Rendiconti Classe di Scienze Fisiche e Naturali", "ANLAR Accademia Nazionale dei Lincei Atti Rendiconti Classe di Scienze Fisiche Matematiche e Naturali", "AcChR Accounts Chem. Res.", "AcBu. Acoust. Bull.", "AIH.. Acoustical Imaging and Holography", "APhy. Acoustical Physics", "ASAJ. Acoustical Society of America Journal", "AcouL Acoustics Letters", "AcAcu Acta Acustica", "AcAer Acta Aerodynamica Sinica", "AcAAS Acta Aeronautica et Astronautica Sinica", "AcAM. Acta Applicandae Mathematicae", "AcAri Acta Arithmetica", "AcArm Acta Armamentarii", "AcAau Acta Astronautica", "AcA.. Acta Astronomica", "AcASn Acta Astronomica Sinica", "AcAS. Acta Astronomica Supplementa", "AcApS Acta Astrophysica Sinica", "AcAuS Acta Automatica Sinica", "AcBAS Acta Biochimica and Biophysica Academiae Scientarium Hungarica", "AcBBH Acta Biochimica et Biophysica Hungarica", "AcBBS Acta Biochimica et Biophysica Sinica", "AcBio Acta Biotheoretica", "AcCS. Acta Chemica Scandinavica Series A", "ACIP. Acta Cienc. Indica Phys.", "AcC.. Acta Cosmologica", "AcCrA Acta Crystallographica Section A", "AcCrB Acta Crystallographica Section B", "AcCrC Acta Crystallographica Section C", "AcCrD Acta Crystallographica Section D", "AcElc Acta Electrochimica", "AcEle Acta Electronica", "AcElS Acta Electronica Sinica", "AcESn Acta Electron. Sinica", "AcFre Acta Frequenza", "AcGG. Acta Geod. Geophys.", "AcGeo Acta Geophysica", "AcGeP Acta Geophysica Polonica", "AcGSn Acta Geophys. Sinica", "AcHA. Acta Historica Astronomiae", "AcMCS Acta Materiae Compositae Sinica", "AcMat Acta Materialia", "AcMa. Acta Mathematica", "AcMaH Acta Mathematica Hungarica", "AcMaS Acta Mathematica Sinica", "AcMSw Acta Mathematica Sweden", "AcMec Acta Mechanica", "AcMSn Acta Mechanica Sinica", "AcMSS Acta Mechanica Solida Sinica", "AcMet Acta Metallurgica", "AcMMS Acta Metallurgica et Materialia Supplement", "AcMeS Acta Meteorologica Sinica", "AcNum Acta Numerica", "AcOSi Acta Oceanica Sinica", "AcOdS Acta Odontologica Scandinavica", "AcO.. Acta Oecologica", "AcOpS Acta Optica Sinica", "AcOrS Acta Orthopaedica Scandinavica", "AcPSi Acta Photonica Sinica", "AcPhy Acta Physica", "APASH Acta Physica Academiae Scientiarum Hungaricae", "AcPhA Acta Physica Austriaca", "AcPAS Acta Physica Austriaca Supplement", "AcPhC Acta Physica et Chemica", "AcPhH Acta Physica Hungarica", "APHHI Acta Physica Hungarica Heavy Ion Physics", "APHQE Acta Physica Hungarica Quantum Electronics", "AcPP. Acta Physica Polonica", "AcPPA Acta Physica Polonica A", "AcPPB Acta Physica Polonica B", "AcPSn Acta Physica Sinica", "AcPSl Acta Physica Slovaca", "AcPhS Acta Physiologica Scandinavica", "AcPol Acta Polytechnica", "AcPSc Acta Polytechnica Scandinavica Applied Physics Series", "AcPSP Acta Polytechnica Scandinavica Physics", "AcSSn Acta Seismologica Sinica", "ASSF. Acta Societatis Scientarum Fennicae", "ASSFA Acta Societatis Scientarum Fennicae Series A", "AcTec Acta Technica", "AcUni Acta Universitaria", "AcMPh Acta Universitatis Caroliae. Mathematica et Physica", "AcMPS Acta Universitatis Caroliae. Mathematica et Physica Supplement", "APEC. Active and Passive Electronic Components", "Acu.. Acustica", "AdBeh Adaptive Behaviour", "AdAs. Ad Astra", "ARPM. Adgeziia Rasplavov i Paika Materialov", "Adsor Adsorption", "AdCM. Advanced Ceramic Materials", "AdCoL Advanced Composites Letters", "AMP.. Advanced Materials and Processes", "APM.. Advanced Performance Materials", "ASL.. Advanced Science Letters", "AdSAC Advanced Series in Astrophysics and Cosmology", "AdSMP Advanced Series in Mathematical Physics", "ASDHE Advanced Series on Directions in High Energy Physics", "AdTPh Advanced Texts in Physics", "AdAeS Advances in Aeronautical Sciences", "AdApM Advances in Applied Mathematics", "AdAst Advances in Astronomy", "AASP. Advances in Astronomy and Space Physics", "AdAtS Advances in Atmospheric Sciences", "AdAMP Advances in Atomic and Molecular Physics", "AAMOP Advances in Atomic Molecular and Optical Physics", "AdBMP Advances in Biological and Medical Physics", "AdBio Advances in Biophysics", "AdCP. Advances in Cardiovascular Physics", "AdChP Advances in Chemical Physics", "AdCIS Advances in Colloid and Interface Science", "AdCoM Advances in Computational Mathematics", "AdCMP Advances in Condensed Matter Physics", "AdEPS Advances in Earth and Planetary Sciences", "AdEOA Advances in Earth Oriented Applications and Space Technology", "AEEP. Advances in Electronics and Electron Physics", "AEEPS Advances in Electronics and Electron Physics Supplement", "AdExG Advances in Exploration Geophysics", "AdGDP Advances in Geophysical Data Processing", "AdGR. Advances in Geophysical Research", "AdGeo Advances in Geophysics", "AdGeS Advances in Geophysics Supplement", "AdG.. Advances in Geosciences", "AdHEP Advances in High Energy Physics", "ADIEP Advances in Imaging and Electron Physics", "AdMRe Advances in Magnetic Resonance", "AdMPC Advances in Materials Physics and Chemistry", "AdMS. Advances in Materials Science", "AdMSE Advances in Materials Science and Engineering", "AdMaP Advances in Mathematical Physics", "AdMat Advances in Mathematics", "AdMPS Advances in Mechanics and Physics of Surfaces", "AdMUM Advances in Mechanics Uspekhi Mekhaniki", "AdMet Advances in Meteorology", "AdNOp Advances in Nonlinear Optics", "AdNuP Advances in Nuclear Physics", "AdPhG Advances in Physical Geochemistry", "AdPhy Advances in Physics", "AdPlP Advances in Plasma Physics", "AdPPR Advances in Plasma Physics Research", "AdPoS Advances in Polymer Science", "AdQC. Advances in Quantum Chemistry", "AdRS. Advances in Radio Science", "AdSR. Advances in Science and Research", "AdSSP Advances in Solid State Physics", "AdSpR Advances in Space Research", "AdAnS Advances in the Astronautical Sciences", "AdTAM Advances in Theoretical and Applied Mechanics", "AdTMP Advances in Theoretical and Mathematical Physics", "AdThP Advances in Theoretical Physics", "AdWR. Advances in Water Resources", "AAMS. Adv. Appl. Mech. Suppl.", "ATTM. AEG Telefunken Technische Mitteilungen", "AeoRe Aeolian Research", "Aekv. Aerodinamika kanalov i ventiliatorov", "AeRaG Aerodinamika Razrezhennykh Gazov", "AerTe Aerojet Technology", "AeIBu Aerokosmicheski Izsledvaniia B lgariia", "AeJ.. Aeronautical Journal", "AeQ.. Aeronautical Quarterly", "AeSIJ Aeronautical Society India Journal", "AerST Aerosol Science Technology", "AeAm. Aerospace America", "AeCh. Aerospace China", "AeCM. Aerospace Composites and Materials", "AeDy. Aerospace Dynamics", "AeEn. Aerospace Engineering", "AeMat Aerospace Materials", "AeMed Aerospace Medicine", "ARBl. Aerospace Research in Bulgaria", "AeTJa Aerospace Technology Japan", "Aero. Aerospace UK", "AFGL. AFGL-TR-0208 Environemental Research papers", "AfrSk African Skies", "AGUFM AGU Fall Meeting Abstracts", "AGUSM AGU Spring Meeting Abstracts", "AIAAJ AIAA Journal", "AIASJ AIAA Student Journal", "AIChE AIChE Journal", "EDAM. AI EDAM", "AIHAJ AIHA Journal", "AIPA. AIP Advances", "AirSp Air and Space", "AirE. Aircraft Engineering", "AirCo Air et Cosmos", "AFMa. Air Force Magazine", "AiInt Air International", "APCAJ Air Pollution Control Association Journal", "AkAtP Akademia Athenon Praktika", "DoArm Akademiia Nauk Armianskoi SSR Doklady", "DoAze Akademiia Nauk Azerbaidzhanskoi SSR Doklady", "IzAze Akademiia Nauk Azerbaidzhanskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh i Matematicheskikh Nauk", "IFBel Akademiia Nauk Belorusskoi SSR Institut Fiziki Nauchnaia Sessiia Minsk Belorussian SSR Zhurnal Prikladnoi Spektroskopii", "DoBel Akademiia Nauk BSSR Doklady", "SoGru Akademiia Nauk Gruzii Soobshcheniia", "VeKaz Akademiia Nauk Kazakhskoi SSR Vestnik", "IzLat Akademiia Nauk Latviiskoi SSR Izvestiia Seriia Fizicheskikh i Tekhnicheskikh Nauk", "IzMol Akademiia Nauk Moldavskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh i Matematicheskikh Nauk", "DoSSR Akademiia Nauk SSSR Doklady", "FizAO Akademiia Nauk SSSR Fizika Atmosfery i Okeana", "InSSR Akademiia Nauk SSSR Investiia Mekhanika Zhidkosti i Gaza", "IzFZ. Akademiia Nauk SSSR, Izvestiia, Fizika Zemli", "IzSSR Akademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "MeSSR Akademiia Nauk SSSR Mekhanika Zhidkosti i Gaza", "FiMos Akademiia Nauk SSSR Otdelenie Obshchei Fiziki i Astronomii Nauchnaia Sessiia Moscow USSR Uspekhi Fizicheskikh Nauk", "IzSib Akademiia Nauk SSSR Sibirskoe Otdelenie Izvestiia", "SiSSR Akademiia Nauk SSSR Sibirskoe Otdelenie Izvestiia Seriia Tekhnicheskie Nauki", "KzSib Akademiia Nauk SSSR Sibirskoi Otdelenie Izvestiia Seriia Tekhnicheskikh Nauk", "VeSSR Akademiia Nauk SSSR Vestnik", "DoTad Akademiia Nauk Tadzhikskoi SSR Doklady", "FiSSR Akademiia Nauk Tadzhikskoi SSR Fiziko Tekhnicheskii Institut Dyushambe Tadzhik SSR Akademiia Nauk Tadzhikskoi SSR Doklady", "ABTad Akademiia Nauk Tadzhikskoi SSR Institut Astrofiziki Biulleten", "IzTur Akademiia Nauk Turkmenskoi SSR Izvestiia Seriia Fiziko Tekhnicheskikh Khimicheskikh i Geologicheskikh Nauk", "IzUkr Akademiia Nauk Ukrainian SSSR Izvestiia Seriia Fizicheskaia", "PrUkr Akademiia Nauk Ukrains koi RSR Dopovidi Matematika Prirodoznavstvo Tekhnichni Nauki", "FiUkr Akademiia Nauk Ukrain skoi RSR Dopovidi Seriia Fiziko Matematichni ta Tekhnichni Nauki", "DoUkr Akademiia Nauk Ukrains koi RSR Dopovidi Seriia Fiziko Matematichni ta Tekhnichni Nauki", "ViUkr Akademiia Nauk Ukrains koi RSR Visnik", "MGUkr Akademiia Nauk Ukrainskoi SSR Morskie Gidrofizicheskie Issledovaniia", "DoUzb Akademiia Nauk Uzbekskoi SSR Doklady", "IzUzb Akademiia Nauk Uzbekskoi SSR Izvestiia Seriia Fiziko Matematicheskikh Nauk", "VeNav Akademiia Navuk BSSR Vestsi Seryia Fizika Tekhnichnykh Navuk", "AkZh. Akusticheskii Zhurnal", "AkTek Akustika i Ul trazvukovaia Tekhnika", "AAIzN Alma Ata Izdatel Nauka", "ALMAN ALMA Newsletter", "AlFr. Alta Frequenza", "AFRE. Alta Frequenza Rivista di Elettronica", "Ambio Ambio", "AVSOA American Association of Variable Stars Observers Abstracts", "AVSOM American Association of Variable Stars Observers Monographs", "AVSOQ American Association of Variable Stars Observers Quarterly Reports", "AVSOR American Association of Variable Stars Observers Reports", "ACSB. American Ceramic Society Bulletin", "ACSC. American Ceramic Society Communications", "ACSJ. American Ceramic Society Journal", "AHSJ. American Helicopter Society Journal", "AmJC. American Journal of Cardiology", "AmJM. American Journal of Mathematics", "AmJPh American Journal of Physics", "AmJS. American Journal of Science", "AmJSA American Journal of Science and Arts", "AMSBu American Meteorological Society Bulletin", "AmMin American Mineralogist", "AmSci American Scientist", "ASME. American Society of Mechanical Engineers", "AnCoi Anais do Observatorio Astronomico da Universidade de Coimbra", "AnFis Anales de Fisica", "AICSP Analog Integrated Circuits and Signal Processing", "AnMP. Analysis and Mathematical Physics", "AnBio Analytical Biochemistry", "AnaCh Analytical Chemistry", "AnaIn Analytical Instrumentation", "BSSR. AN BSSR Institut Teplo i Massoobmena Vsesoiuznaia Konferentsiia Teplomassoobmenu Minsk Belorussian SSR Preprint", "AAONw Anglo-Australian Observatory Epping Newsletter", "AAOPr Anglo-Australian Observatory Epping Preprint", "ARIJ. An Interdisciplinary Journal of Physical and Engineering Sciences", "CSMPA Ankara Universite Faculte des Sciences Communications Serie Mathematiques Physique et Astronomie", "AASF. Ann. Acad. Sci. Fennicae", "AnStr Annalen der Kaiserlichen Universitats-Sternwarte in Strassburg", "AnWie Annalen der K.K. Sternwarte Wien", "AnSWi Annalen der K.K. Universitaets-Sternwarte in Wien (Waehring)", "AnMun Annalen der Koeniglichen Sternwarte bei Muenchen", "AnP.. Annalen der Physik", "AnWiD Annalen der Universitaets-Sternwarte Wien, Dritter Folge", "AnMet Annalen Meteorologie", "AnLei Annalen van de Sterrewacht te Leiden", "AnAp. Annales d'Astrophysique", "AnCPh Annales de Chimie et de Physique", "AnG.. Annales de Geophysique", "AFLB. Annales de la Fondation Louis de Broglie", "ASSB. Annales de la Societe Scietifique de Bruxelles", "AnIHP Annales de L'Institut Henri Poincare Section Physique Theorique", "AnTou Annales de l'Observatoire Astron. et Meteo. de Toulouse", "AnAIK Annales de l'Observatoire astronomique de l'Université imériale de Kharkow", "AOTok Annales de l'Observatoire astronomique de Tokyo", "AnZoC Annales de l'Observatoire astronomique de Zô-sè (Chine)", "AnAPM Annales de l'Observatoire d'astronomie physique de Paris, Section d'astrophysique, à Meudon", "AnBes Annales de l'Observatoire de Besancon", "AnBor Annales de l'Observatoire de Bordeaux", "AnNic Annales de l'Observatoire de Nice", "AnPar Annales de l'Observatoire de Paris", "AnPOb Annales de l'Observatoire de Paris. Observations", "AnOSt Annales de l'Observatoire de Strasbourg", "AnRio Annales de l'Observatoire Imperial de Rio de Janeiro", "AnAth Annales de l'Observatoire national d'Athènes", "AnOB. Annales de l'Observatoire Royal de Belgique", "AnOBN Annales de l'Observatoire Royal de Belgique Nouvelle serie", "AnBru Annales de l'Observatoire Royal de Bruxelles", "AnPh. Annales de Physique", "AnPBM Annales de Physique Biologique et Medicale", "AnPCS Annales de Physique Colloque Supplement", "AnTel Annales des Telecommunications", "AnGVP Annales du Bureau des Longitudes, Gauthier-Villars, Paris", "AFChr Annales Francaises de Chronometrie", "AnGeo Annales Geophysicae", "AnGeA Annales Geophysicae Series A Upper Atmosphere and Space Sciences", "AnGeB Annales Geophysicae Series B Terrestrial and Planetary Physics", "AnHP. Annales Henri Poincaré", "AnTec Annales Tectonicae", "AUGGM Annales UMCS, Geographia, Geologia, Mineralogia et Petrographia", "AUSPh Annales UMCS, Sectio AAA: PHYSICA", "AnApS Annals of Applied Statistics", "AGp.. Annals of Geophysics", "AnGla Annals of Glaciology", "AnGAG Annals of Global Analysis Geometry", "AnHar Annals of Harvard College Observatory", "AnMat Annals of Mathematics", "AnMAI Annals of Mathematics and Artificial Intelligence", "AnOR. Annals of Operations Research", "AnPhy Annals of Physics", "AnREE Annals of Research on Engineering Education", "AnCGH Annals of Royal Observatory, Cape of Good Hope", "AnSci Annals of Science", "AnSta Annals of Statistics", "AnSAO Annals of the Astrophysical Observatory of the Smithsonian Institution", "AnBos Annals of the Bosscha Observatory Lembang (Java) Indonesia", "AnCap Annals of the Cape Observatory", "AnDea Annals of the Dearborn Observatory", "AnDud Annals of the Dudley Observatory", "AnISM Annals of the Institute of Statistical Mathematics", "AIQSY Annals of the IQSY", "AnIPS Annals of the Israel Physical Society", "AnLow Annals of the Lowell Observatory", "NYASA Annals of the New York Academy of Sciences", "AnLL. Annals of the Observatory of Lucien Libert", "AnLun Annals of the Observatory of Lund", "AnLuS Annals of the Observatory of Lund Supplement", "AnOLL Annals of the Private Observatory of Lucien Libert", "AnEdi Annals of the Royal Observatory, Edinburgh", "AnSPC Annals of the Solar Physics Observatory Cambridge England", "AnTok Annals of the Tokyo Astronomical Observatory", "AnUCP Annals of the University of Craiova Physics AUC", "AnRev Ann Rev", "AnBSJ Annual Bulletin of the Societe Jersiaise", "YalAR Annual Report of the Astronomer of the Winchester Observatory of Yale College", "ARKod Annual Report of the Kodaikanal Observatory", "MMAAR Annual Report of the Maria Mitchell Association", "ARAOJ Annual Report of the National Astronomical Observatory of Japan", "AnRSI Annual Report of the Smithsonian Institution", "WinAR Annual Report of the Windsor Observatory, New South Wales", "ARAC. Annual Review of Analytical Chemistry", "ARCMP Annual Review of Condensed Matter Physics", "AREPS Annual Review of Earth and Planetary Sciences", "AnRE. Annual Review of Energy", "AnRFM Annual Review of Fluid Mechanics", "ARIST Annual Review of Information Science and Technology", "ARMS. Annual Review of Marine Science", "AnRMS Annual Review of Materials Science", "ARNPS Annual Review of Nuclear and Particle Science", "ARPC. Annual Review of Physical Chemistry", "ARCP. Annual Reviews of Computational Physics", "AnMN. Antarctic Meteorite Newsletter", "AMR.. Antarctic Meteorite Research", "Antk. Antarktika", "Anten Antenny", "AnCan Anticancer Research", "IORA. Anuario publicado pelo Imperial Observatorio do Rio de Janeiro", "IORAS Anuario publicado pelo Imperial Observatorio do Rio de Janeiro Suplemento", "ApAN. Apatity Akademiia Nauk SSSR", "ApKF. Apatity Kol skii Filial AN SSSR", "Apei. Apeiron", "ApMat Aplikace Matematiky, Applied Mathematics", "AppAn Applicable Analysis", "ApMa. Applications of Mathematics", "ApAc. Applied Acoustics", "ApAI. Applied Artificial Intelligence", "ApCM. Applied Composite Materials", "ACESJ Applied Computational Electromagnetics Society Journal", "ApEn. Applied Energy", "ApEnM Applied Environmental Microbiology", "ApGeo Applied Geophysics", "ApMF. Applied Mathematical Finance", "AMat. Applied Mathematics", "ApMM. Applied Mathematics and Mechanics", "ApMaC Applied Mathematics Computation", "ApMaL Applied Mathematics Letters", "ApMaM Applied Mathematics Mechanics English Edition", "ApMaO Applied Mathematics Optimization", "AMM.. Applied Mechanics and Materials", "ApMRv Applied Mechanics Reviews", "ApMic Applied Microbiology", "ApMT. Applied Microgravity Technology", "ApNan Applied Nanoscience", "ApNM. Applied Numerical Mathematics", "ApOpt Applied Optics", "ApPhy Applied Physics", "ApPhA Applied Physics A: Materials Science &", "ApPhB Applied Physics B: Lasers and Optics", "ApPPL Applied Physics B Photophysics Laser Chemistry", "ApPhC Applied Physics Communications", "APExp Applied Physics Express", "ApPhL Applied Physics Letters", "ApPhR Applied Physics Research", "ApScR Applied Scientific Research", "ApSRA Applied Scientific Research Section A", "ApSRB Applied Scientific Research Section B", "ApSpe Applied Spectroscopy", "ApSRv Applied Spectroscopy Reviews", "ApSup Applied Superconductivity", "ApSS. Applied Surface Science", "ApWS. Applied Water Science", "APS.. APS Meeting Abstracts", "ACMFE Aquatic Conservation: Marine and Freshwater Ecosystems", "AJSE. Arabian Journal of Science Engineering", "Arch. Archaeoastronomy", "ArchS Archaeoastronomy Supplement", "Archa Archaeometry", "ASBTV Archenhold-Sternwarte Berlin-Treptow, Vortrage Schr.", "ArApM Archive Applied Mechanics", "AHES. Archive for History of Exact Sciences", "ArRMA Archive for Rational Mechanics and Analysis", "ArElU Archiv Elektronik und Uebertragungstechnik", "AAM.. Archive of Applied Mechanics", "ArApM Archive of Applied Mechanics", "ArBB. Archive of Biochemistry and Biophysics", "ArAco Archives Acoustics", "ArS.. Archives des Sciences", "ArSPN Archives des Sciences Physiques et Naturelles", "AMGBA Archives for Meteorology Geophysics and Bioclimatology Series A Meteorology and Atmopsheric Physics", "AMGBB Archives for Meteorology Geophysics and Bioclimatology Series B Theoretical and Applied Climatology", "AIPBB Archives Internationales de Physiologie de Biochimie et de Biophysique", "ArNSc Archives Neerlandaises des Sciences Exactes et Naturelles", "ArMaN Archiv for Mathematik og Naturvidenskab", "AMGBK Archiv Meteorologie Geophysik und Bioklimatologie Serie B Klimatologie und Umweltmeteorologie Strahlungsforschung", "AMGBS Archiv Meteorologie Geophysik und Bioklimatologie Serie Meteorologie und Geophysik", "ArMeS Archiv of Mechanics, Archiwum Mechaniki Stosowanej", "ArCom Archivum Combustionis", "ArAku Archiwum Akustyki", "ArAuT Archiwum Automatyki i Telemechaniki", "ArBuM Archiwum Budowy Maszyn", "ArEle Archiwum Elektrotechniki", "ArMeS Archiwum Mechaniki Stosowanej", "ArPSp Archiwum Procesow Spalania", "ArTSp Archiwum Termodynamiki i Spalania", "AAAR. Arctic, Antarctic and Alpine Research", "ArA.. Arkiv for Astronomi", "ArM.. Arkiv for Matematik", "ArMAF Arkiv for Matematik, Astronomi och Fysik", "ArmOL Armagh Observatory Leaflet", "ArJPh Armenian Journal of Physics", "ArtSa Artificial Satellites", "astro ArXiv Astrophysics e-prints", "cs... ArXiv Computer Science e-prints", "arXiv ArXiv e-prints", "gr.qc ArXiv General Relativity and Quantum Cosmology eprints", "hepex ArXiv High Energy Physics - Experiment e-prints", "hepla ArXiv High Energy Physics - Lattice e-prints", "hepph ArXiv High Energy Physics - Phenomenology e-prints", "hepth ArXiv High Energy Physics - Theory e-prints", "mathp ArXiv Mathematical Physics e-prints", "math. ArXiv Mathematics e-prints", "nlin. ArXiv Nonlinear Sciences e-prints", "nucle ArXiv Nuclear Experiment e-prints", "nuclt ArXiv Nuclear Theory e-prints", "physicArXiv Physics e-prints", "ASHRA ASHRAE Journal", "AsJPh Asian Journal of Physics", "Aslib Aslib Proceedings: new information perspectives", "ATJEM ASME Transactions Journal Engineering Materials and Technology", "ATJDS ASME Transactions Journal of Dynamic Systems and Measurement Control B", "ATJEl ASME Transactions Journal of Electronic Packaging", "ATJEG ASME Transactions Journal of Engineering Gas Turbines and Power", "ATJEP ASME Transactions Journal of Engineering Power", "ATJFE ASME Transactions Journal of Fluids Engineering", "ATJHT ASME Transactions Journal of Heat Transfer", "ATJLT ASME Transactions Journal of Lubrication Technology", "ATJSE ASME Transactions Journal of Solar Energy and Engineering", "ATJTr ASME Transactions Journal of Tribology", "ATJTu ASME Transactions Journal of Turbomachinery", "ATJVA ASME Transactions Journal of Vibration Acoustics", "ATJAM ASME Transactions Series E Journal of Applied Mechanics", "ATJEP ASME Transactions Series Journal of Engineering Power", "AsAut Assembly Automation", "ATMAB Association Technique Maritime et Aeronautique Bulletin", "ATMAS Association Technique Maritime et Aeronautique Session Paris France ONERA TP", "AVSVB Associazione Veneta Osservatori di Stelle Variabili Bulletin", "Aster Aster", "StNws ASTM Standardization News", "AsBio Astrobiology", "AISAO Astrofizicheskie Issledovaniia Izvestiya Spetsial'noj Astrofizicheskoj Observatorii", "AISof Astrofizicheskie Issledovaniya Sofia", "Afz.. Astrofizika", "AAfz. Astrometriia i Astrofizika", "AsAc. Astronautica Acta", "AsAcS Astronautica Acta Supplement", "AsAer Astronautics Aeronautics", "Asnau Astronautik", "AUBas Astron. Inst. Univ. Basel", "Anews ASTRON Newsletter", "AsUAI Astronomia. La rivista dell' Unione Astrofili Italiani", "Astnm Astronomia UAI", "USNOM Astronomical and Meteorological Observations made at the U.S. Naval Observatory", "ACiCh Astronomical Circular", "ACMan Astronomical Contributions from the University of Manchester", "TamCo Astronomical Contributions from the University of South Florida Tampa", "adass Astronomical Data Analysis Software and Systems", "ADCBu Astronomical Data Center Bulletin", "AstHe Astronomical Herald", "AstLt Astronomical Letters", "ANote Astronomical Notes University of Gothenburg Sweden Section of Astronomy", "USNOA Astronomical Observations made at the U.S. Naval Observatory", "UCLAP Astronomical Papers University of California Los Angeles", "AReg. Astronomical Register", "ASSA. Astronomical Society of South Africa, Cape Centre", "AVest Astronomicheskii Vestnik", "AVISS Astronomicheskii Vestnik Issledovaniia Solnechnoi Sistemy", "AZh.. Astronomicheskii Zhurnal", "ATsir Astronomicheskij Tsirkulyar", "KazOB Astronomicheskoj Observatorii Kazan Byulleten", "AsSch Astronomie in der Schule", "AAAN. Astronomische Abhandlungen als Erganzungshefte zu den Astronomische Nachrichten", "AAHam Astronomische Abhandlungen der Hamburger Sternwarte", "ABMun Astronomische Beobachtungen angestellt auf der K. Sternwarte zu Bogenhausen bei Muenchen", "ABSBe Astronomische Beobachtungen auf der Koniglichen Sternwarte zu Berlin", "ABKie Astronomische Beobachtungen auf der Sternwarte der Koeniglichen Christian-Albrechts-Universitaet zu Kiel", "MiZur Astronomische Mitteilungen der Eidgenössischen Sternwarte Zurich", "MiBre Astronomische Mitteilungen der Koeniglichen Universitaets-Sternwarte zu Breslau", "MiGoe Astronomische Mitteilungen der Universitaets-Sternwarte zu Goettingen", "AN... Astronomische Nachrichten", "ANS.. Astronomische Nachrichten Supplement", "MitSZ Astronomischen Mitteilungen Eidgen. Sternwarte Zurich", "AJB.. Astronomischer Jahresbericht", "MiARI Astronomisches Rechen-Institut Heidelberg Mitteilungen Serie A", "MiARB Astronomisches Rechen-Institut Heidelberg Mitteilungen Serie B", "ATi.. Astronomisk Tidsskrift", "Ast.. Astronomy", "Astro Astronomy", "AstAp Astronomy and Astro-Physics (formerly The Sidereal Messenger)", "ADIL. Astronomy Data Image Library", "AEdRv Astronomy Education Review", "AExpr Astronomy Express", "AstL. Astronomy Letters", "AsNow Astronomy Now", "AstQ. Astronomy Quarterly", "ARep. Astronomy Reports", "AASPP Astrononomy and Astrophysics Series", "APh.. Astroparticle Physics", "AstBu Astrophysical Bulletin", "ApInv Astrophysical Investigations", "ApL.. Astrophysical Letters", "ApNr. Astrophysica Norvegica", "Ap... Astrophysics", "ASPRv Astrophysics and Space Physics Reviews", "ApSSP Astrophysics and Space Science Proceedings", "ASTRA Astrophysics and Space Sciences Transactions", "ApSSS Astrophysics and Space Science Supplement", "MKAtl Astrophysics monographs University of Chicago Press", "ArBei Astrophysics Reports Publications of the Beijing Astronomical Observatory", "ApT.. Astrophysics Today", "AstPo Astropolitics", "AsAna Asymptotic Analysis", "BLabR AT&", "AJSEd Atlas Journal of Science Education", "AtlVS Atlas Poiskovykh Kart Peremennykh Zvezd", "Atmos Atmosphere", "AtO.. Atmosphere Ocean", "AtOpt Atmosphere Optics", "ACP.. Atmospheric Chemistry &", "ACPD. Atmospheric Chemistry &", "AtmEn Atmospheric Environment", "AMT.. Atmospheric Measurement Techniques", "AMTD. Atmospheric Measurement Techniques Discussions", "AtmRe Atmospheric Research", "AtSc. Atmospheric Science", "AtScL Atmospheric Science Letters", "AtmTe Atmospheric Technology", "atnfp ATNF Proposal", "Atom. Atom", "AD... Atomic Data", "ADNDT Atomic Data and Nuclear Data Tables", "AtERv Atomic Energy Review", "AMOP. Atomic Molecular and Optical Physics", "AtPhy Atomic Physics", "AtST. Atomisation Spray Technology", "AtKe. Atomkernenergie", "AtEn. Atomnaia Energiia", "AVET. Atomno Vodorodnaia Energetika i Tekhnologiia", "ATR.. ATR Australian Telecommunication Research", "AALST Atti Accad. Ligure Sci. Lett.", "AAPon Atti Accad. Pontaniana", "AAST. Atti Accad. Sco. Torino I", "ATTTJ AT T Technical Journal", "AurPh Auroral physics", "AuJAR Australian Journal of Agricultural Research", "AuJA. Australian Journal of Astronomy", "AuJCE Australian Journal of Chemical Education", "AJCh. Australian Journal of Chemistry", "AuJES Australian Journal of Earth Sciences", "AuJPh Australian Journal of Physics", "AuJPA Australian Journal of Physics Astrophysical Supplement", "AuSRA Australian Journal of Scientific Research A Physical Sciences", "AJSR. Australian Journal of Soil Research", "AuMSJ Australian Mathematical Society Journal Series B -- Applied Mathematics", "AuMM. Australian Meteorological Magazine", "Autom Automatica", "ACTAp Automatic Control Theory Applications", "AuRob Autonomous Robots", "AvSeM Aviation Space and Environmental Medicine", "AvWST Aviation Week Space Technology", "AvKos Aviatsiia i Kosmonavtika", "AvTek Aviatsionnaia Tekhnika", "AvTel Avtomatika i Telemekhanika", "AvPE. Avtomatizatsiia Proektirovaniia Elektronike", "Avtme Avtometriia", "BBUSS Babes Bolyai Universitas Studia Series Mathematica", "BBUSM Babes Bolyai Universitas Studia Series Physica", "BaPhL Balkan Physics Letters", "BaltA Baltic Astronomy", "BamKV Bamberg Kleine Veroeffentlichungen der Remeis-Sternwarte", "BAVRu BAV Rundbrief", "BAVSR BAV Rundbrief - Mitteilungsblatt der Berliner Arbeits-gemeinschaft fuer Veraenderliche Sterne", "BAWMN Bayerische Akademie Wissenschaften mathematisch naturwissenschaftliche Klasse Sitzungsberichte", "BayAn Bayesian Analysis", "BBCEn BBC Engineering", "BRMIC Behavior Research Methods Instruments and Computers", "BIT.. Behaviour &", "BUAAJ Beijing University Aeronautics and Astronautics Journal", "BePl. Beitraege Plasmaphysik", "BeiGe Beitraege zur Geophysik", "BeiMP Beitraege zur Mineralogie und Petrographie", "BROGS Belgian Royal Observatory Communications Series Geophysics Series", "BKAD. Beobachtungen der Kaiserlichen Universitaets-Sternwarte Dorpat", "BKUJ. Beobachtungen der Kaiserlichen Universitaets-Sternwarte Jurjew", "BESBe Beobachtungs-Ergebnisse der Koniglichen Sternwarte zu Berlin", "ANZi. Beobachtungs-Zirkular der Astronomischen Nachrichten", "BBGPC Berichte der Bunsen-Gesellschaft Physical Chemistry Chemical Physics Berichte", "BADPG Berlin East Germany Akademie Verlag GmbH Ergebnisse Plasmaphysik und Gaselektronik", "BAVMM Berlin East Germany Akademie Verlag GmbH Shriftenreihe des Zentralinstituts Mathematik und Mechanik", "BAVSM Berliner Arbeitsgemeinschaft fuer Veraenderliche Sterne - Mitteilungen", "BGBGM Berlin Gebrueder Borntraeger Geoexploration Monographs Series", "Bern. Bernoulli", "BeElM Beskontaktnye Elektricheskie Mashiny", "BeSN. Be Star Newsletter", "BGIBI BGI Bulletin d'Information", "AstBa Biblioteca Astrei Basarabene", "BEPM. Bielefeld Encounters in Physics and Mathematics", "BiLuf Bildmessung und Luftbildwessen", "BBRC. Biochemical and Biophysical Research Communications", "BioJ. Biochemical Journal", "BCB.. Biochemistry and Cell Biology", "AcBB. Biochimica et Biophysica Acta", "BioFa Biofabrication", "BGeo. Biogeosciences", "BGD.. Biogeosciences Discussions", "BMNAS Biographical Memoirs National Academy of Sciences", "BMFRS Biographical Memoirs of Fellows of the Royal Society", "BiBi. Bioinspiration and Biomimetics", "BMP.. Biological and Medical Physics", "BPS.. Biological Physics Series", "BRCPS Biological Reviews of the Cambridge Philosophical Society", "BioMa Biomedical Materials", "BioMi Biomedical Microdevices", "Biome Biometrika", "Bion. Bionika", "BioCh Biophysical Chemistry", "BpJ.. Biophysical Journal", "BpBeS Biophysics and Bioengineering Series", "BioSM Biophysics of Structure and Mechanism", "Bioph Biophysics USSR", "Biopk Biophysik", "Biorh Biorheology", "BioSc BioScience", "BiotL Biotechnology Letters", "BOTor Biuletyn Obserwatoium Astronomicznego Uniwersytetu M. Kopernika w Toruniu", "BITad Biulletini of the Astronomical Institute Akademiia Nauk Tadzhikskoi", "BIAst Bjull. Inst. Astrofizikii", "BlazD BLAZAR Data", "BAAA. Boletin de la Asociacion Argentina de Astronomia La Plata Argentina", "BAOM. Boletin de la Astronomico Observatorio de Madrid", "BIMAF Boletin del Instituto de Matematica Astronomica y Fisica Universidad Nacional de Cordoba Argentina", "BITon Boletin del Instituto de Tonantzintla", "BOTT. Boletin de los Observatorios Tonantzintla y Tacubaya", "BMOE. Boletin mensual del Observatorio del Ebro", "BlDok Bolgarska Akademiia Nauk Doklady", "BSVit Bolletino della Societa dei Variabilisti Italiani", "BoSAI Bollettino della Societa Astronomica Italiana", "BGSA. Bollettino Geod. Scienzi Affini", "BonD. Bonner Durchmusterung", "BoLMe Boundary-Layer Meteorology", "Brain Brain", "BVVSA Bratislava Veda Vydavatelstvo Slovenskej Akademie Vied", "BFWSG Braunschweig Friedr Vieweg und Sohn GmbH", "BTUM. Braunschweig Technische Universitaet Mitteilungen", "BrJPh Brazilian Journal of Physics", "BrWK. Brennstoff Waerme Kraft", "BJAP. British Journal of Applied Physics", "BJET. British Journal of Educational Technology", "BJMSP British Journal of Mathematical and Statistical Psychology", "BJP.. British Journal of Psychology", "BTE.. British Telecommunications Engineering", "BIRM. Brussels Institute Royal Meteorologique de Belgique", "BuAkK Budapest Akademiai Kiado", "BlgAJ Bulgarian Astronomical Journal", "BlGJ. Bulgarian Geophysical Journal", "BlJMH Bulgarian Journal of Meteorology and Hydrology", "BlJPh Bulgarian Journal of Physics", "BlJPS Bulgarian Journal of Physics Supplement", "BlGeo Bulgarska Akademiia Naukite Geofizichni Institut Izvestiia", "BlTek Bulgarska Akademiia Naukite Institut Tekhnicheska Kibernetika Izvestiia", "BlMat Bulgarska Akademiia Naukite Matematicheski Institut Izvestiia", "BlSpi Bulgarska Akademiia Naukite Spisanie", "BlTse Bulgarska Akademiia Naukite Tsentralna Laboratoriia Geodeziia Izvestiia", "BlGSp Bulgarsko Geofizichno Spisanie", "BAFOE Bulletin Association Fran. Obs. Etoiles Variables", "BuAst Bulletin Astronomique", "BABel Bulletin Astronomique de Belgrade", "BuAsR Bulletin Astronomique, Revue Generale des Travaux Astronomiques", "BuAsI Bulletin Astronomique, Serie I", "BuChr Bulletin Chronometrique (Besancon)", "BCSAB Bulletin Cl. Science Academy Royal de Belgique", "BCrAO Bulletin Crimean Astrophysical Observatory", "BAPSS Bulletin de l'Academie Polonaise des Sciences Series des Sciences Mathematiques Astronomiques et Physiques", "BARB. Bulletin de l'Academie Royale de Belgique", "BSAF. Bulletin de la Societe Astronomique de France", "BSAFR Bulletin de la Societe Astronomique de France et Revue Mensuelle d'Astronomie, de Meteorologie et de Physique du Globe", "BSAL. Bulletin de la Societe Astronomique de Liege", "BSBA. Bulletin de la Societe Belge d'Astronomie", "BSRSL Bulletin de la Societe Royale des Sciences de Liege", "AFOEV Bulletin de l'Association Francaise d'Observateurs d'Etoiles Variables", "BMai. Bulletin de la Station Astrophotographique de Mainterne", "BOBeo Bulletin de l'Observatoire Astronomique de Belgrade", "BuLyo Bulletin de l'Observatoire de Lyon", "BBSAG Bulletin der Bedeckungsveraenderlichen-Beobachter der Schweizerischen Astronomischen Gesellschaft", "BIEBe Bulletin d'Information d'Etoiles Be", "BIM.. Bulletin d'Information des Marees Terrestres", "BIBGI Bulletin d'Information du Bureau Gravimetrique International", "BICDS Bulletin d'Information du Centre de Donnees Stellaires", "BCFHT Bulletin d'information du telescope Canada-France-Hawaii", "BGeod Bulletin Geodesique", "BGNS. Bulletin Geodesique, Nouvelle Series", "BuBIH Bulletin Horaire du Bureau International de l'Heure", "BOPul Bulletin (Izvestiya) de l'Observatoire Central a Poulkovo", "BuMat Bulletin Mathematique", "BKoAS Bulletin of Korean Astronomical Society", "BMBio Bulletin of Mathematical Biology", "BMBp. Bulletin of Mathematical Biophysics", "BPAS. Bulletin of Pure and Applied Science (Physics)", "BAAPG Bulletin of the American Association of Petroleum Geologists", "BAVSO Bulletin of the American Association of Variable Stars Observers", "BAAS. Bulletin of the American Astronomical Society", "BAMaS Bulletin of the American Mathematical Society", "BAMS. Bulletin of the American Meteorological Society", "BAPS. Bulletin of the American Physical Society", "BAICz Bulletin of the Astronomical Institutes of Czechoslovakia", "BAN.. Bulletin of the Astronomical Institutes of the Netherlands", "BANS. Bulletin of the Astronomical Institutes of the Netherlands Supplement Series", "BAORB Bulletin of the Astronomical Observatoire Royale de Belgique", "IllOB Bulletin of the Astronomical Observatory of the University of Illinois", "BASBr Bulletin of the Astronomical Society of Brazil", "BASI. Bulletin of the Astronomical Society of India", "BCAIC Bulletin of the Central Astronomical Institute of Czechoslovakia", "BuGSA Bulletin of the Geological Society of America", "BIMIA Bulletin of the Institute of Mathematics and Its Applications", "BuIPS Bulletin of the Israel Physical Society", "BKobO Bulletin of the Kobe Marine Observatory Kobe Japan", "BLPI. Bulletin of the Lebedev Physics Institute", "BuLMS Bulletin of the London Mathematical Society", "BRASP Bulletin of the Russian Academy of Science, Phys.", "BSAst Bulletin of the Section of Astronomy", "BSAE. Bulletin of the Soviet Antarctic Expedition", "BuONC Bulletin of the Special Astrophysical Observatory, Northern Caucasus", "BSAO. Bulletin of the Special Astrophysics Observatory", "BTasO Bulletin of the Tashkent Observatory", "BTok. Bulletin of the Tokyo Astronomical Observatory", "BToIT Bulletin of the Tokyo Institute of Technology", "BUBes Bulletin of the University of Besancon Observatory", "BYam. Bulletin of the Yamagata University Yamagata Japan", "YerOB Bulletin of the Yerkes Observatory of the University of Chicago", "BVol. Bulletin of Volcanology", "BCNRS Bulletin Signaletique - Centre National de la Recherche Scientifique", "BSAO. Bull. Special Astrophys. Obs.", "BIHCD Bureau Internationale Heure, Paris, Circulaire", "BDus. Byulleten' Instituta Astrofiziki Dushanbe Akademiya Nauk Tadzhikskoj SSR", "BITA. Byulleten' Instituta Teoreticheskoj Astronomii (Leningrad)", "BStaO Byulleten' Stalinabadskoj Astronomicheskoj Observatorii Akademiya Nauk Tadzhikskoj SSR", "ByuRe Byurakan Astrophysical Observatory Armenia USSR Reprints", "ByuPr Byurakanskaya Astrofizicheskaya Observatoriya Preprint", "CahPh Cahiers de Physique", "CAS.. Cambridge Astrophysics Series", "CCA.. Cambridge Contemporary Astrophysics", "CamRe Cambridge Observatories Reprints", "CMPNC Cambridge Monographs on Particle Physics, Nuclear Physics and Cosmology", "CMPPh Cambridge Monographs on Plasma Physics", "CSLPT Cambridge Studies in Low Temperature Physics", "CTMPC Cambridge Topics in Mineral Physics and Chemistry", "BCNRC Canada National Research Council Division Mechanical Engineering National Aeronautical Establishment Quarterly Bulletin", "CASJ. Canadian Aeronautics and Space Journal", "CASJQ Canadian Aeronautics and Space Journal Quarter", "CEEJ. Canadian Electrical Engineering Journal", "CaGeJ Canadian Geotechnical Journal", "CIPSG Canadian Information Processing Society Graphics Interface", "CJChE Canadian Journal of Chemical Engineering", "CaJCh Canadian Journal of Chemistry", "CaJCE Canadian Journal of Civil Engineering", "CaJES Canadian Journal of Earth Sciences", "CJECE Canadian Journal of Electrical Computer Engineering", "CJMat Canadian Journal of Mathematics", "CaJPh Canadian Journal of Physics", "CaJPS Canadian Journal of Physics Supplement", "CaJRS Canadian Journal of Remote Sensing", "CJRA. Canadian Journal of Research Section A", "CJSMT Canadian Journal of Science Mathematics and Technology Education", "CaJSS Canadian Journal of Soil Science", "CaRes Cancer Research", "CPhD. Cape Photographic Durchmusterung", "CarR. Caries Research", "GCRV. Carnegie Institute Washington D.C. Publication", "CarOB Carter Observatory Wellington New Zealand Astronomical Bulletins", "CarRe Carter Observatory Wellington New Zealand Reprints", "CasRe Case Western Reserve University Warner and Swasey Observatory Cleveland Ohio Reprints", "CASI. CASI Transactions", "CSVS. Catalogue of suspected variable stars. Acad. of Sciences USSR Shternberg.", "CatL. Catalysis Letters", "CarRv Catalysis Reviews", "Catt. CATTECH", "CCDA. CCD Astronomy", "CEGB. CEGB Research", "CeMec Celestial Mechanics", "CeMDA Celestial Mechanics and Dynamical Astronomy", "Cell. Cell", "Cellu Cellulose", "Cent. Centaurus", "CfAPr Center for Astrophysics Cambridge Mass Preprint Series", "CBET. Central Bureau Electronic Telegrams", "CEAB. Central European Astrophysical Bulletin", "CEJE. Central European Journal of Engineering", "CEJG. Central European Journal of Geosciences", "CEJPh Central European Journal of Physics", "CPH.. Centre de Physique des Houches", "CCpFS Ceskoslovensky Casopis pro Fyziku Sekce", "CFDAA CFD Advances Applications", "CKH.. Chagyo Kenkyu Hokoku (Tea Research Journal)", "ChNew Chandra News", "Chaos Chaos", "CSF.. Chaos Solitons and Fractals", "ChCom Chemical Communications", "ChEdu Chemical Educator", "ChEnC Chemical Engineering Communications", "ChEnN Chemical Engineering News", "CERDA Chemical Engineering Research &", "ChEnS Chemical Engineering Science", "ChGeo Chemical Geology", "CP... Chemical Physics", "CPL.. Chemical Physics Letters", "CPSS. Chemical Physics of Solid Surfaces", "CPSSH Chemical Physics of Solid Surfaces and Heterogeneous Catalysis", "CPR.. Chemical Physics Reports", "ChSRv Chemical Society Reviews", "ChEG. Chemie der Erde / Geochemistry", "CEJ.. Chemistry A European Journal", "CPCar Chemistry and Physics of Carbon", "CPLip Chemistry and Physics of Lipids", "ChUDA Chile Universidad Departamento de Astronomia Publicaciones", "ChOE. China Ocean Engineering", "ChRST China Rept Sci Technol JPRS CST", "ChA.. Chinese Astronomy", "ChIEJ Chinese Institute of Engineers Journal", "ChJA. Chinese Journal of Aeronautics", "ChJAA Chinese Journal of Astronomy and Astrophysics", "ChJAS Chinese Journal of Astronomy and Astrophysics Supplement", "ChJCP Chinese Journal of Chemical Physics", "ChJG. Chinese Journal of Geophysics", "ChJIR Chinese Journal of Infrared Research", "ChJL. Chinese Journal of Lasers", "ChJLB Chinese Journal of Lasers B", "CJLTP Chinese Journal of Low Temperature Physics", "ChJME Chinese Journal of Mechanical Engineering", "ChJNP Chinese Journal of Nuclear Physics", "ChJOL Chinese Journal of Oceanology and Limnology", "ChJPh Chinese Journal of Physics", "ChJPR Chinese Journal of Polar Research", "ChJS. Chinese Journal of Semiconductors", "ChJSS Chinese Journal of Space Science", "ChOpL Chinese Optics Letters", "ChPhy Chinese Physics", "ChPhB Chinese Physics B", "ChPhC Chinese Physics C", "ChPhL Chinese Physics Letters", "ChSBu Chinese Science Bulletin", "ChSAJ Chinese Society of Astronautics Journal", "ChSMJ Chinese Society of Mechanical Engineers Journal", "ChSST Chinese Space Science Technology", "CMDRG Chislennye Metody Dinamike Razrezhennykh Gazov", "CHOCS CHOCS", "CITM. Chubu Institute Technology Memoirs", "CIDA. CIDA", "CTE.. Ciencias de la Tierra y del Espacio", "CiInf Circ. Inf.", "CiSSV Circolare Interna della Sezione Stelle Variabili dell'Unione Astrofili Italiani", "CSSP. Circuits Systems and Signal Processing", "CirW. Circuit World", "CAFOE Circulaire de l'Association Francaise d'Observateurs d'Etoiles Variables", "CiBAA Circular of the British Astronomical Association", "CiUO. Circular of the Union Observatory Johannesburg", "CiPoJ Circumpolar Journal", "CQGra Classical and Quantum Gravity", "CQGrS Classical and Quantum Gravity Supplement", "CRMMP Classical Reviews in Mathematics and Mathematical Physics", "CTPhy Classical Theoretical Physics", "CCM.. Clays and Clay Minerals", "ClDy. Climate Dynamics", "CliPa Climate of the Past", "CliPD Climate of the Past Discussions", "ClCh. Climatic Change", "COIR. Clinical Oral Implants Research", "CPPM. Clinical Physics and Physiological Measurement", "CNRAe CNR Aeritalia S", "CODAB CODATA Bulletin", "Coel. Coelum Periodico Bimestrale per la Divulgazione dell'Astronomia", "AeSc. Collection of Papers on Aerospace Science", "ColJ. Colloid Journal", "ColSu Colloids and Surfaces", "CPC.. Combinatorics, Probability and Computing", "CoFl. Combustion and Flame", "CST.. Combustion Science and Technology", "CTM.. Combustion Theory Modelling", "CNSMP Comet News Service, McDonnell Planetarium", "CPMCM Commentationes Physico-Mathematicae et Chemico-Medicae", "ComMP Comments in Modern Physics", "ComAp Comments on Astrophysics", "CoASP Comments on Astrophysics and Space Physics", "CoAMP Comments on Atomic and Molecular Physics", "CoCMP Comments on Condensed Matter Physics", "CoNPP Comments on Nuclear and Particle Physics", "CoPPC Comments on Plasma Physics and Controlled Fusion", "ComSp Commercial Space", "CoKon Commmunications of the Konkoly Observatory Hungary", "CAPJ. Communication Astronomy with the Public Journal", "ComBr Communication Broadcasting", "CoSSC Communication in Statistics - Simulation and Computation", "CoSTM Communication in Statistics - Theory and Methods", "Commu Communications", "CoORB Communications de l'Observatoire Royal de Belgique", "MonAP Communications du Departement d'Astrophysique de la Faculte des Sciences de Mons Mons Astrophysical Papers", "CoDDO Communications from the David Dunlap Observatory", "CoMtW Communications from the Mount Wilson Solar Observatory to the National Academy of Sciences", "CoRad Communications from the Radcliffe Observatory Pretoria South Africa", "CoROE Communications from the Royal Observatory Edinburgh", "CoOxf Communications from the University Observatory Oxford", "CoStA Communications from the University Observatory St Andrews Scotland", "CEST. Communications Gillies Inc Electronic Systems in Transportation", "CoAlg Communications in Algebra", "CANM. Communications in Applied Numerical Methods", "CoAst Communications in Asteroseismology", "CCoPh Communications in Computational Physics", "CMaPh Communications in Mathematical Physics", "CNSNS Communications in Nonlinear Science and Numerical Simulations", "CNME. Communications in Numerical Methods in Engineering", "CoPDE Communications in Partial Differential Equations", "CPAM. Communications in Pure Applied Mathematics", "CoTPh Communications in Theoretical Physics", "CoAnk Communications of the Department of Astronomy of Ankara University", "CoLPL Communications of the Lunar and Planetary Laboratory", "CoLon Communications of the University of London Observatory", "CPhy. Communications on Physics", "CRLJ. Communications Research Laboratory Journal", "CRLRv Communications Research Laboratory Review", "ComSo Communications Society", "Compe COMPEL: The International Journal for Computation and Mathematics in Electrical and Electronic Engineering", "CoVar Complex Variables", "Compo Composites", "CmpEn Composites Engineering", "CmpMa Composites Manufacturing", "ComST Composites Science Technology", "CmpSt Composite Structures", "CoMat Compositio Mathematica", "CRSPH Compte Rendu des Seances de la Societe de Physique et d'Histoire Naturelle de Genere", "CR... Comptes Rendus Academie des Sciences (serie non specifiee)", "CRABS Comptes Rendus de l'Academie Bulgare des Sciences", "CRASE Comptes Rendus de l'Académie des Sciences - Series IIA - Earth and Planetary Science", "CRGeo Comptes Rendus Geoscience", "CRMat Comptes Rendus Mathematique", "CRMec Comptes Rendus Mecanique", "CRPhy Comptes Rendus Physique", "CAMP. Computational and Applied Mathematical Physics", "ComMS Computational Materials Science", "CMMPh Computational Mathematics and Mathematical Physics", "CompM Computational Mechanics", "COA.. Computational Optimization and Applications", "CSMA. Computational Structural Mechanics and Applications", "Compr Computer", "CAD.. Computer-Aided Design", "CGIP. Computer Graphics Image Processing", "CMAME Computer Methods in Applied Mechanics and Engineering", "CoPhC Computer Physics Communications", "CoPhR Computer Physics Reports", "CBR.. Computers and Biomedical Research", "CEE.. Computers and Electrical Engineering", "CF... Computers and Fluids", "CG... Computers and Geosciences", "CMwA. Computers and Mathematics with Applications", "CoStr Computers and Structures", "CSEd. Computer Science Education", "ComPh Computers in Physics", "CVIU. Computer Vision and Image Understanding", "CVGIP Computer Vision Graphics and Image Processing", "Compu Computing", "CSE.. Computing in Science and Engineering", "ComSE Computing Systems in Engineering", "COMTR COMSAT Technical Review", "CoCoi Comunicacoes do Observatonio Astronomico da Universidade de Coimbra", "CoMRA Concepts in Magnetic Resonances A", "CoMRB Concepts in Magnetic Resonances B", "CMPhy Condensed Matter Physics", "CGDAM Conformal Geometry and Dynamics of the American Mathematical Society", "CDT.. Connaissance des Temps", "ConSc Connection Science", "CoFra Consiglio Nazionale delle Ricerche Italia. Laboratorio di Astrofisica Frascati Roma Contributi", "ConCP Contemporary Concepts in Physics", "ConFP Contemporary Fundamental Physics", "ConPh Contemporary Physics", "CSR.. Continental Shelf Research", "CMT.. Continuum Mechanics and Thermodynamics", "CoIAP Contributions de l'Institut d'Astrophysique de Paris Serie A", "CoIAB Contributions de l'Institut d'Astrophysique de Paris Serie B", "CoAsi Contributions dell'Osservatorio Astrofisica dell'Universita di Padova in Asiago", "CoMil Contributions dell'Osservatorio Astrononia di Milano-Merate", "CoArm Contributions from the Armagh Observatory", "CoThe Contributions from the Astronomical Department of the University of Thessaloniki", "CoBos Contributions from the Bosscha Observervatory", "CoCam Contributions from the Cambridge Observatory England", "CoTol Contributions from the Cerro Tololo Inter-American Observatory", "CoTok Contributions from the Department of Astronomy University of Tokyo", "CoDAO Contributions from the Dominion Astrophysical Observatory in Victoria", "CoDun Contributions from the Dunsink Observatory Dublin Ireland", "CoKyo Contributions from the Institute of Astrophysics and Kwasan Observatory Kyoto", "CoKit Contributions from the Kitt Peak National Observatory", "CoKwa Contributions from the Kwasan and Hida Observatories University of Kyoto", "CoIoa Contributions from the Laboratory of Astronomy - University of Ioannina Greece", "CoMcD Contributions from the McDonald Observatory University of Texas Fort Davis", "CMWCI Contributions from the Mount Wilson Observatory / Carnegie Institution of Washington", "CoPri Contributions from the Princeton University Observatory", "CoRut Contributions from the Rutherford Observatory of Columbia University New York", "CoWas Contributions from the Washburn Observatory of the University of Wisconsin", "CoAth Contributions from the Wroclaw Astronomical Observatory", "CoLic Contributions of Lick Observatory", "CLic2 Contributions of Lick Observatory, Series II", "CoPer Contributions of Perkins Observatory", "CoSka Contributions of the Astronomical Observatory Skalnate Pleso", "CoSkL Contributions of the Astronomical Observatory Skalnate Pleso Letters", "CoSkS Contributions of the Astronomical Observatory Skalnate Pleso Supplement", "CoLou Contributions of the Louisiana State University Observatory Baton Rouge Louisiana", "CoNMx Contributions of the Observatory of New Mexico State University Las Cruces New Mexico", "CoBrn Contributions of the Public Observatory and Planetarium in Brno", "CSASG Contributions of the Slovak Academy Sciences Geophysical Institute", "CoWat Contributions of the University of Waterloo Observatory", "CoVVO Contributions of the Van Vleck Observatory", "ConAP Contributions to Atmospheric Physics/Beitraege zur Physik Atmosphaere", "CoGG. Contributions to Geophysics and Geodesy", "CoMP. Contributions to Mineralogy and Petrology", "CoPP. Contributions to Plasma Physics", "CoUCL Contributions Universite Catholique de Louvain", "CoSte Contributions University of Arizona Steward Observatory Tucson Arizona", "CoRHO Contributions University of Florida Rosemary Hill Observatory Gainesville", "CoCom Control and Computers", "CopRe Copenhagen University Observatory Reprints", "CorRe Coral Reefs", "CorD. Cordoba Durchmusterung", "CAGHS Correspondance Astronomique, Geographique, Hydrographique et statistique", "CosEl Cosmic Electrodynamics", "CosRe Cosmic Research", "CosSe Cosmic Search", "CTP.. Course of Theoretical Physics", "CRB.. C.R. Acad. Sci. Ser. B1", "CraRe Cracow Observatory Reprints", "CRSSM Critical Reviews in Solid State &", "Cryo. Cryogenics", "CryRp Crystallography Reports", "CSSE. Cultural Studies of Science Education", "CuCo. Culture and Cosmos", "CAP.. Current Applied Physics", "CCPCE Current Contents Physical Chemical and Earth Sciences", "CEyeR Current Eye Research", "CNan. Current Nanoscience", "COSSM Current Opinion in Solid State and Materials Science", "CSci. Current Science", "CySys Cybernetics and Systems", "CzJPh Czechoslovak Journal of Physics", "CzJPB Czechoslovak Journal of Physics B", "CzJPS Czechoslovak Journal of Physics Supplement", "CzMJ. Czechoslovak Mathematical Journal", "DTr.. Dalton Transactions", "DMKD. Data Mining and Knowledge Discovery", "DatSJ Data Science Journal", "DDORe David Dunlap Observatory Richmond Hill Reprints", "DeaCo Dearborn Observatory Contributions", "DSR.. Deep Sea Research Part II: Topical Studies in Oceanography", "DSRI. Deep Sea Research Part I: Oceanographic Research", "DSNPR Deep Space Network Progress Report", "Defek Defektoskopiia", "DefEl Defense Electronics", "DMJ.. Defense Management Journal", "DeScE Defense Science Electronics", "DSJ.. Defense Science Journal", "DSRMC Defense Systems Review Military Communications", "DSSN. Delta Scuti Star Newsletter", "Sterb Der Sternenbote Monatsschrift fuer Oesterreichs Amateur-astronomen", "DGKBA Deutsche Geodaetische Kommission Bayer. Akad. Wiss.", "DGKBB Deutsche Geodaetische Kommission Bayer. Akad. Wiss. B", "DGKGN Deutsche Geodaetische Kommission Gravity Network West Germany DSGN Data Adjustment", "DeHyZ Deutsche Hydrographische Zeitschrift", "DPhyG Deutsche Physikalische Gesellschaft", "DSEG. Developments in Solid Earth Geophysics", "DFVLR DFVLR", "DRM.. Diamond and Related Materials", "Stern Die Sterne", "Welt. Die Weltall", "DnU.. Differentsial nye Uravneniia", "DSP.. Digital Signal Processing", "Dimen Dimensions", "DiSis Dinamicheskie Sistemy", "DPM.. Dinamika i Prochnost Mashin", "DiRaG Dinamika razrezhennykh gazov", "DIO.. DIO", "DCMP. Directions in Condensed Matter Physics", "DISA. DISA Information", "Disc. Discover", "DImTe Display Imaging Technology", "Displ Displays", "DSE.. Distributed Systems Engineering", "DLGRM DLGR Magnetofluiddyn", "Dlib. D-Lib Magazine", "DLRNa DLR Nachrichten", "DOCi. Documentation des Observateurs Circulaire", "DOIAP Documentation des Observateurs Institut d'Astrophysique de Paris", "DoANT Doklady Akademiia Nauk TadzhSSR", "DokAN Doklady Akad Nauk Minerologia USSR", "DoBan Doklady Bolgarskoi Akademiia Nauk", "DokES Doklady Earth Sciences", "DokPC Doklady Physical Chemistry", "DAOAR Dominion Astrophysical Observatory Annual Report", "DorPo Dornier Post", "DSO.. Double Star Observer", "DSSC. Double Star Section Circulars", "DudOR Dudley Observatory Reports", "PODE. Dun Echt Observatory Publications", "DunOP Dunsink Observatory Publications", "DunRe Dunsink Observatory Reprints", "DurOO Durham Observatory Observations", "IzDus Dushanbe Izdatel Donish", "DyeRe Dyer Observatory Reprints", "DySys Dynamical Systems: An International Journal", "DynCo Dynamics and Control", "DSSys Dynamics and Stability of Systems", "DyAtO Dynamics of Atmospheres and Oceans", "EESC. Earth and Environmental Science Conference Series", "EaEvS Earth and Evolution Sciences", "EExSc Earth and Extraterrestrial Sciences", "EaInt Earth Interactions", "EOAST Earth-Oriented Applications and Space Technology", "EEEV. Earthquake Engineering and Engineering Vibration", "EaSci Earthquake Science", "ESRv. Earth Science Reviews", "ESPL. Earth Surface Processes and Landforms", "ESD.. Earth System Dynamics", "ESDD. Earth System Dynamics Discussion", "ESSD. Earth System Science Data", "ESSDD Earth System Science Data Discussions", "EERST East European Rept Sci. Technol. JPRS ESA", "EERSA East Europe Rept Sci Affairs JPRS", "EBCi. Eclipsing Binaries Circulars", "EcGH. Eclogae geologae Helvetii", "Ecogr Ecography", "EcGou Ecole de Goutelas", "Earth eEarth", "EartD eEarth Discussions", "ETATF Eesti NSV Teaduste Akadeemia Toimetised Fuusika Matemaatika", "IzmP. Ege University Izmir Publications of the Department of Astronomy", "EJSM. e-Journal of Soft Materials", "Elast Elastic", "ECLRv Electrical Communication Laboratories Review", "JElEn Electrical Engineering of Japan", "EMPS. Electric Machines and Power Systems", "Elecm Electromagnetics", "EJSEd Electronic Journal of Science Education", "EJSta Electronic Journal of Statistics", "EJTP. Electronic Journal of Theoretical Physics", "EML.. Electronic Materials Letters", "ElPro Electronic Progress", "JElCo Electronics Communications of Japan", "ElL.. Electronics Letters", "ElP.. Electronics Power", "EOSD. Electro Optical Systems Design", "ElLC. Electrotechnical Laboratory Circulars", "ElLR. Electrotechnical Laboratory Researches", "ElW.. Electrowaerme International", "ElBah Elektrische Bahnen", "Elem. Elektromekhanika", "Elek. Elektronika", "ElTA. Elektronnaia Tekhnika Avtomatike", "ElMod Elektronnoe Modelirovanie", "ETRE. Elektrosviaz Telecommunications Radio Engineering Telecommunications", "EVest Elektrotehniski Vestnik", "OED.. El Observador de Estrellas Dobles", "ElUn. El Universo", "EMCT. EMC Technology", "EBBT. Emerging Biochemical and Biophysical Techniques", "EAA.. Encyclopedia of Astronomy and Astrophysics", "Endvr Endeavour", "Energ Energetika", "EnAt. Energia es Atomtechnika", "EnUK. Energy", "EnC.. Energy Conversion", "ECM.. Energy Conversion Management", "EnS.. Energy Sources", "EnTR. Energy Technology Review", "EnUK. Energy UK", "EngAn Engineering Analysis", "EnSci Engineering and Science", "EngCo Engineering Computations", "EnFM. Engineering Fracture Mechanics", "EnOp. Engineering Optimization", "CEnTp Engineering Thermophysics China", "Entro Entropie", "Entrp Entropy", "EnAPC Environmental Analytical and Physical Chemistry Series", "EES.. Environmental Earth Sciences", "EnEng Environmental Engineering", "EFM.. Environmental Fluid Mechanics", "EnGeo Environmental Geology", "EnMan Environmental Management", "EnP.. Environmental Pollution Series B Chemical and Physical", "ER... Environmental Research", "ERL.. Environmental Research Letters", "EnST. Environmental Science Technology", "EnTox Environmental Toxicology", "ETWQ. Environmental Toxicology and Water Quality", "Env.. Environmentrics", "EOSTr EOS Transactions", "EL... EPL (Europhysics Letters)", "EPRIJ EPRI Journal", "AnErg Ergaenzungshefte zu den Astronomischen Nachrichten", "ErNW. Ergebnisse der exakten Naturwissenschaften", "ETDS. Ergodic Theory and Dynamical Systems", "Ergo. Ergonomics", "ESABu ESA Bulletin", "ESAHR ESA History Study Reports", "EIUEN ESA IUE Newsletter", "ESAJ. ESA Journal", "ESASM ESA Scientific &", "ESAST ESA Scientific Technical Review", "ESATM ESA Training Manual", "EssPh Essays in Physics", "ECSS. Estuarine Coastal and Shelf Science", "EUCAS EUCASS Proceedings Series", "EurSS Eurasian Soil Science", "EJASP EURASIP Journal on Applied Signal Processing", "EBioJ European Biophysics Journal", "EJAM. European Journal of Applied Mathematics", "EJBio European Journal of Biochemistry", "EJC.. European Journal of Combinatorics", "EJEE. European Journal of Engineering Education", "EJMF. European Journal of Mechanics B Fluids", "EJMS. European Journal of Mechanics Solids", "EJPh. European Journal of Physics", "EPJA. European Physical Journal A", "EPJAP European Physical Journal Applied Physics", "EPJAS European Physical Journal A Supplement", "EPJB. European Physical Journal B", "EPJC. European Physical Journal C", "EPJCS European Physical Journal C Supplement", "EPJD. European Physical Journal D", "EPJE. European Physical Journal E", "EPJH. European Physical Journal H", "EPJP. European Physical Journal Plus", "EPJST European Physical Journal Special Topics", "EuRv. European Review", "ESN.. European Science Notes", "ESOAR European Southern Observatory Annual Reports", "ESOB. European Southern Observatory ESO Bulletin", "ESOSP European Southern Observatory Scientific Preprints", "ESOSR European Southern Observatory Scientific Report", "ETTRT European Transactions Telecommunications Related Technologies", "ERST. Europe Report Science Technology", "EL... Europhysics Letters", "ENews Europhysics News", "EXOSA EXOSAT Express", "ExA.. Experimental Astronomy", "EEyeR Experimental Eye Research", "ExHT. Experimental Heat Transfer", "ExM.. Experimental Mechanics", "ExMPS Experimental Methods in the Physical Sciences", "ExT.. Experimental Techniques", "ExTFS Experimental Thermal Fluid Science", "ExFl. Experiments in Fluids", "ExG.. Exploration Geophysics", "Extr. Extraction", "PMtv. Facultad de Humanidades y Ciencias Universidad de la Republica Montevideo", "FaDi. Faraday Discussions", "FaTr. Faraday Transactions", "FFEMS Fatigue and Fracture of Engineering Materials and Structures", "FerNo Fermilab Note", "Fer.. Ferroelectrics", "FerLS Ferroelectrics Letters Section", "FBS.. Few-Body Systems", "FiIO. Fiber and Integrated Optics", "Filom Filomat", "FeMik Finommechanika Mikrotechnika", "FiBr. First Break", "FizEl Fizicheskaia Elektronika", "FiMek Fizicheskaia Mekhanika", "Fiz.. Fizika", "FizA. Fizika A", "FizAS Fizika Aerodispersnykh Sistem", "FizB. Fizika B", "FizGV Fizika Goreniia i Vzryva", "FizKO Fizika i Khimiia Obrabotki Materialov", "FizTV Fizika i Tekhnika Vysokikh Davlenii", "FizMM Fizika Metallov i Metallovedenie", "FizMS Fizika Mnogochastichnykh Sistem", "FizNT Fizika Nizkikh Temperatur", "FizPl Fizika Plazmy", "FizSz Fizika Sz.", "FizTT Fizika Tverdogo Tela", "FizZS Fizika Zhidkogo Sostoianiia", "FizAt Fiziki Atmosfery", "FizKM Fiziko Khimicheskaia Mekhanika Materialov", "FizCh Fizyki i Chemii Seria Fizyka", "FliIn Flight International", "FNL.. Fluctuation and Noise Letters", "FRFI. Flug Revue Flugwelt International", "FlDy. Fluid Dynamics", "FlDyR Fluid Dynamics Research", "FlDyT Fluid Dynamics Transactions", "Fluid Fluidika", "FMAG. Fluid Mechanics of Astrophysics and Geophysics", "FlMSR Fluid Mechanics Soviet Research", "FluQ. Fluids Quarterly", "FBP.. Food and Bioproducts Processing. Part C, Transactions of the Institution of Chemical Engineers", "ForPh Fortschritte der Physik", "FoGeo Fotointerpretacja w Geografii", "FoPh. Foundations of Physics", "FoPhL Foundations of Physics Letters", "Fract Fractals", "Freq. Frequenz", "FrES. Frontiers of Earth Science", "FrMS. Frontiers of Materials Science", "FrME. Frontiers of Mechanical Engineering", "FrPhy Frontiers of Physics", "FrPhC Frontiers of Physics in China", "IzFru Frunze Izdatel Ilim", "FSTJ. Fujitsu Scientific Technical Journal", "FST.. Fullerene Science and Technology", "FAAp. Functional Analysis and Its Applications", "FML.. Functional Materials Letters", "FACM. Functiones et Approximatio Commentarii Mathematici", "FInfo Fundamenta Informaticae", "FANP. Fundamental and Applied Nuclear Physics Series", "OOPS. Fundamental nye Osnovy Opticheskoi Pamiati i Sredy", "FCPh. Fundamentals of Cosmic Physics", "FTP.. Fundamental Theories of Physics", "Futur Future Spring", "GCNew Galactic Center Newsletter", "galxp GALEX Proposal", "GalEl Galilean Electrodynamics", "GEB.. Games and Economic Behavior", "GGMit Gauss-Gesellschaft e.V. Göttingen, Mitteilungen", "GVPOO Gauthier-Villars Paris Observatory Observations", "GazA. Gazette Astronomique", "GazAM Gazette Astronomique Memoires", "GazT. Gazodinamika i Teploobmen", "GCNR. GCN Report", "GECJR GEC Journal Research", "Gelio Geliotekhnika", "Gemin GEMINI Newsletter Royal Greenwich Observatory", "GHA.. General History of Astronomy", "GPB.. General Physiology and Biophysics", "GReGr General Relativity and Gravitation", "Gen.. Genetica", "GeoIn Geocarto International", "GeocJ Geochemical Journal", "Geoch Geochemistry", "GGG.. Geochemistry, Geophysics, Geosystems", "GeocI Geochemistry International", "GeCoA Geochimica et Cosmochimica Acta", "GeCAS Geochimica et Cosmochimica Acta Supplement", "GeCar Geodesy and Cartography", "GeAer Geodeziia i Aerofotos", "GeKar Geodeziia i Kartografiia", "GKA.. Geodeziia i Kartografiia Aehrofotosemka, L'vov", "GeKaA Geodeziia Kartografiia i Aerofotos", "GeoK. Geodezja i Kartografia", "GeoAc Geodinamica Acta", "GeofI Geofisica Internacional", "GeoPA Geofisica Pura e Applicata", "GeoSb Geofizicheskii Sbornik", "GeoZh Geofizicheskii Zhurnal", "GeoAA Geografiska Annaler, Series A: Physical Geography", "GeoAB Geografiska Annaler, Series B: Human Geography", "GeIss Geoinformation Issues", "Geokh Geokhimiia", "GCarp Geologica Carpathica", "GeolJ Geological Journal", "GeoM. Geological Magazine", "GeoSJ Geological Society Journal", "GSAMB Geological Society of America Bulletin", "GSAMm Geological Society of America Memoir", "GSASP Geological Society of America Special Papers", "GSLSP Geological Society of London Special Publications", "Geolo Geologija", "GeoRu Geologische Rundschau", "Geolg Geologos", "Geo.. Geology", "GeoOD Geology of Ore Deposits", "GeoIs Geomagnitnye Issledovaniia", "GML.. Geo-Marine Letters", "GeoD. Geometriae Dedicata", "GeomJ Geomicrobiology Journal", "Geomo Geomorphology", "Geoph Geophysica", "GeGe. Geophysica et Geodaetica", "GApFD Geophysical and Astrophysical Fluid Dynamics", "GDS.. Geophysical Developments Series", "GeoJ. Geophysical Journal", "GeoJI Geophysical Journal International", "GeopP Geophysical Prospecting", "GeopR Geophysical References", "GeoRL Geophysical Research Letters", "GeoSu Geophysical Surveys", "GeoNr Geophysica Norvegica", "Geop. Geophysics", "GAM.. Geophysics and Astrophysics Monographs", "GeoOM Georgetown Observatory Monogram", "GeoRe Georgetown Observatory Reprints", "GMD.. Geoscientific Model Development", "GMDD. Geoscientific Model Development Discussions", "GEOCE GEOS Circular on Eclipsing Binaries", "GEOCR GEOS Circular on RR Lyr Type Variables", "GEOCA GEOS Circular on Small-Amplitude Variables", "GEOSN GEOS Note Circulaire", "Geote Geotectonics", "TrGRC Geothermal Resources Council Transactions", "Geoth Geothermics", "Geot. Geotimes", "Gerb. Gerbertvs, International Academic Publication on History of Medieval Science", "GBzG. Gerlands Beitraege zur Geophysik", "GUL.. Geschichte und Lichtwechsel der Veraenderlichen Sterne (Potsdam)", "GATAN Gesellschaft Aerosolforschung Tagung ueber Aerosole Naturwissenschaft Medizin und Technik Messtechnik und technische Anwendung", "GMMWJ Gesellschaft angewandte Mathematik und Mechanik Jahrestagung Goettingen West Germany Zeitschrift Flugwissenschaften", "GaMuM Gesellschaft Angewandte Mathematik und Mechanik Workshop Paris France", "GMuD. Gesellschaft Mathematik und Datenverarbeitung mbH Multigrid Methods Special Topics Applications", "GVMK. Gibridnye Vychislitel nye Mashiny i Kompleksy", "Gidro Gidromekhanika", "GiGi. Gidroprivod i Gidropnevmoavtomatika", "GiSan Gigiena i Sanitariia", "GTPZ. Gigiena Truda i Professional nye Zabolevaniia", "GAst. Giornale di Astronomia", "GlMaJ Glasgow Mathematical Journal", "GPC.. Global and Planetary Change", "GBioC Global Biogeochemical Cycles", "GLORe Goethe Link Observatory Reprints", "GPSW. GPS World", "GMIP. Graphical Models and Image Processing", "GrCo. Gravitation and Cosmology", "GrCoS Gravitation and Cosmology Supplement", "GrTOn Gravitatsiia i Teoriia Otnositel nosti", "GCN.. GRB Coordinates Network", "GGMM. Greenhouse Gas Measurement &", "GriO. Griffith Observer", "GrAeH Grumman Aerospace Horizons", "Grund Grundwasser", "GICi. Gruppo Italiano RV Tauri Circolare", "HalRe Hale Observatories Reprints", "HadJ. Hadronic Journal", "HadJS Hadronic Journal Supplement", "BSD.. Hamburger Sternwarte Bergedorf", "HamS. Hamburger Sternwarte Sonderdrucke", "LS... Hamburger Sternw. Warner &", "HAAG. Handbook of Astronomy Astrophysics and Geophysics", "HBP.. Handbook of Biological Physics", "HGE.. Handbook of Geophysical Exploration", "HPlPh Handbook of Plasma Physics", "HPCRE Handbook on the Physics and Chemistry of Rare Earths", "HDA.. Handbuch der Astrophysik", "HDP.. Handbuch der Physik", "HarZi Harthaer Beobachtungs-Zirkular", "HarAC Harvard College Observatory Announcement Card", "HarAR Harvard College Observatory Annual Report", "BHarO Harvard College Observatory Bulletin", "HarCi Harvard College Observatory Circular", "HarPa Harvard College Observatory Papers", "HarRe Harvard College Observatory Reprints", "HarMi Harvard Observatory Mimeograms", "HarMo Harvard Observatory Monographs", "HeaPh Health Physics", "HMT.. Heat and Mass Transfer", "HTrEn Heat Transfer Engineering", "HTJR. Heat Transfer Japanese Research", "HTSR. Heat Transfer Soviet Research", "Heavn Heavens", "HWM.. Helgoländer Wissenschaftliche Meeresuntersuchungen", "HMR.. Helgoland Marine Research", "AcHCh Helvetica Chimica Acta", "AcHPh Helvetica Physica Acta", "AcHPS Helvetica Physica Acta Supplementum", "HelOB Helwan Institute of Astronomy and Geophysics Bulletins", "HemD. Hemel en Dampkring", "HECh. High Energy Chemistry", "HEDP. High Energy Density Physics", "HEPNP High Energy Physics and Nuclear Physics", "HiA.. Highlights of Astronomy", "HPP.. High Performance Polymers", "HPR.. High Pressure Research", "HiTec High Technology", "HTHP. High Temperatures and High Pressures", "HTemS High Temperature Science", "HARSB Histoire de l'Academie Royale des Sciences et des Belles-Lettres de Berlin", "HSPBS Historical Studies in the Physical and Biological Sciences", "HGeo. History of Geophysics", "HGSS. History of Geo- and Space Sciences", "HisSc History of Science", "HUFEB Hokkaido University Faculty Engineering Bulletin", "HUFEM Hokkaido University Faculty Engineering Memoirs", "Holz. Holzforschung", "HBB.. Horizons in Biochemistry and Biophysics", "HWP.. Horizons in World Physics", "HCHy. Hovering Craft and Hydrofoil", "HGT.. Human Gene Therapy", "HvaOB Hvar Observatory Bulletin", "HvOBS Hvar Observatory Bulletin Supplement", "HyBio Hydrobiologia", "HydJ. Hydrogeology Journal", "HyPr. Hydrological Processes", "HESS. Hydrology and Earth System Sciences", "HESSD Hydrology and Earth System Sciences Discussions", "HyInt Hyperfine Interactions", "IadEn Iadernaia Energiia", "IAGBu IAGA Bulletin", "IaIaF Iakutsk Iakutskii Filial SO AN SSSR", "BSEEA Iasi Institutul Politehnic Buletinul Sectia Electrotehnica Electronica Automatizari", "BSMMT Iasi Institutul Politehnic Buletinul Sectia Matematica Mecanica Teoretica Fizica", "BSMT. Iasi Institutul Politehnic Buletinul Sectia Mecanica Tehnica", "IAUCB IAU Commission on Close Binary Stars", "IAUDS IAU Commission on Double Stars", "IAUIn IAU Commission on Instruments", "IAUGA IAU General Assembly", "IAUIB IAU Information Bulletin", "IAUSS IAU Special Session", "WFINw IAU Working Group on Wide-Field Imaging, Newsletter", "IBMJ. IBM Journal of Research and Development", "ICAOB ICAO Bulletin", "Icar. Icarus", "IAESM IEEE Aerospace Electronic Systems Magazine", "IAWPL IEEE Antennas and Wireless Propagation Letters", "IAPM. IEEE Antennas Propagation Magazine", "IASSP IEEE ASSP Magazine", "ICiSM IEEE Circuits Systems Magazine", "IComM IEEE Communications Magazine", "ICSEn IEEE Computational Science and Engineering", "ICGA. IEEE Computer Graphics Applications", "ICSM. IEEE Computer Systems Magazine", "IDTC. IEEE Design Test Computers", "IEDL. IEEE Electron Device Letters", "IExp. IEEE Expert", "IGRSL IEEE Geoscience and Remote Sensing Letters", "IISys IEEE Intelligent Systems", "IJOE. IEEE Journal of Oceanic Engineering", "IJQE. IEEE Journal of Quantum Electronics", "IJRA. IEEE Journal of Robotics Automation", "ISTSP IEEE Journal of Selected Topics in Signal Processing", "IJSSC IEEE Journal of Solid-State Circuits", "IJSAC IEEE Journal on Selected Areas in Communications", "ILCSM IEEE LCS Magazine", "ILTS. IEEE LTS", "IMGWL IEEE Microwave and Guided Wave Letters", "IMMag IEEE Microwave Magazine", "IEEEN IEEE Network", "IPTL. IEEE Photonics Technology Letters", "IEEEP IEEE Proceedings", "ISPL. IEEE Signal Processing Letters", "ISPM. IEEE Signal Processing Magazine", "IEEES IEEE Spectrum", "ISysJ IEEE Systems Journal", "ITASS IEEE Transactions on Acoustics Speech and Signal Processing", "ITAES IEEE Transactions on Aerospace Electronic Systems", "ITAP. IEEE Transactions on Antennas and Propagation", "ITAS. IEEE Transactions on Applied Superconductivity", "ITAC. IEEE Transactions on Automatic Control", "ITBE. IEEE Transactions on Biomedical Engineering", "ITB.. IEEE Transactions on Broadcasting", "ITCS. IEEE Transactions on Circuits Systems", "ITCom IEEE Transactions on Communications", "ITCHM IEEE Transactions on Components Hybrids and Manufacturing Technology", "ITCAD IEEE Transactions on Computer Aided Design", "ITCmp IEEE Transactions on Computers", "ITDEI IEEE Transactions on Dielectrics and Electrical Insulation", "ITEdu IEEE Transactions on Education", "ITEI. IEEE Transactions on Electrical Insulation", "ITElC IEEE Transactions on Electromagnetic Compatibility", "ITED. IEEE Transactions on Electron Devices", "ITEnC IEEE Transactions on Energy Conversion", "ITEM. IEEE Transactions on Engineering Management", "ITGRS IEEE Transactions on Geoscience and Remote Sensing", "ITGE. IEEE Transactions on Geoscience Electronics", "ITIP. IEEE Transactions on Image Processing", "ITIE. IEEE Transactions on Industrial Electronics", "ITIEC IEEE Transactions on Industrial Electronics and Control Instrumentation", "ITIA. IEEE Transactions on Industry Applications", "ITIT. IEEE Transactions on Information Theory", "ITIM. IEEE Transactions on Instrumentation Measurement", "ITM.. IEEE Transactions on Magnetics", "ITMI. IEEE Transactions on Medical Imaging", "ITMTT IEEE Transactions on Microwave Theory Techniques", "ITME. IEEE Transactions on Military Electronics", "ITNan IEEE Transactions on Nanotechnology", "ITNN. IEEE Transactions on Neural Networks", "ITNS. IEEE Transactions on Nuclear Science", "ITPHP IEEE Transactions on Parts Hybrids and Packaging", "ITPAM IEEE Transactions on Pattern Analysis and Machine Intelligence", "ITPS. IEEE Transactions on Plasma Science", "ITPAS IEEE Transactions on Power Apparatus Systems", "ITPD. IEEE Transactions on Power Delivery", "ITPE. IEEE Transactions on Power Electronics", "ITR.. IEEE Transactions on Reliability", "ITRA. IEEE Transactions on Robotics Automation", "ITSTQ IEEE Transactions on Selected Topics in Quantum Electronics", "ITSM. IEEE Transactions on Semiconduct M", "ITSP. IEEE Transactions on Signal Processing", "ITSE. IEEE Transactions on Software Engineering", "ITSU. IEEE Transactions on Sonics Ultrasonics", "ITSMC IEEE Transactions on Systems Man and Cybernetics", "ITUFF IEEE Transactions on Ultrasonics Ferroelectrics and Frequency Control", "ITVT. IEEE Transactions on Vehicular Technology", "JMOA. IEE Journal of Microwaves Optics and Acoustics", "JSSED IEE Journal of Solid-State Electron Devices", "ITEIS IEEJ Transactions on Electronics, Information and Systems", "IJTFM IEEJ Transactions on Fundamentals and Materials", "IJTIA IEEJ Transactions on Industry Applications", "IJTPE IEEJ Transactions on Power and Energy", "IJTSM IEEJ Transactions on Sensors and Micromachines", "IPEPA IEE Proceedings B: Electric Power Applications", "IPGTD IEE Proceedings C: Generation Transmission Distribution", "IPCSV IEE Proceedings: Communications Speech and Vision", "IPCTA IEE Proceedings D: Control Theory Applications", "IPCDT IEE Proceedings E: Computers and Digital Techniques", "IPCRS IEE Proceedings F: Communications Radar and Signal Processing", "IPRSP IEE Proceedings F: Radar and Signal Processing", "IPMAP IEE Proceedings H: Microwaves Antennas and Propagation", "IPMOA IEE Proceedings H: Microwaves Optics and Antennas", "IPOpt IEE Proceedings J: Optoelectronics", "IPPSM IEE Proceedings: Physical Science Measurement and Instrumentation Management and Education Reviews", "IPSSE IEE Proceedings: Solid-State Electron Devices", "IEERv IEE Reviews", "IEIEE IEICE Electronics Express", "ESSFR IEICE ESS Fundamentals Review", "IEITC IEICE Transactions on Communications", "IEITE IEICE Transactions on Electronics", "IEITF IEICE Transactions on Fundamentals of Electronics Communications and Computer Sciences", "IEITI IEICE Transactions on Information and Systems", "ITN.. IERS Technical Note", "IESJ. IES Journal", "IHWN. IHW Newsletter", "JApMa IMA Journal of Applied Mathematics", "IJNA. IMA Journal of Numerical Analysis", "IVMA. IMA Volumes in Mathematics and its Applications", "IMEPA IME Proceedings. Part A: Journal of Power and Energy", "IMEPB IME Proceedings. Part B: Journal of Engineering Manufacture", "IMEPC IME Proceedings. Part C: Journal of Mechanical Engineering Science", "IMEPD IME Proceedings. Part D: Journal of Automobile Engineering", "IMEPE IME Proceedings. Part E: Journal of Process Mechanical Engineering", "IMEPG IME Proceedings. Part G: Journal of Aerospace Engineering", "IMEPH IME Proceedings. Part H: Journal of Engineering in Medicine", "IMEPI IME Proceedings. Part I: Journal of Systems and Control Engineering", "IMEPK IME Proceedings. Part K: Journal of Multibody Dynamics", "ICSE. Impact of Computing in Science and Engineering", "InEPS Indian Academy of Sciences Proceedings: Earth and Planetary Sciences", "InMS. Indian Academy of Sciences Proceedings Mathematical Sciences", "InASP Indian Academy of Sciences Proceedings Section", "InES. Indian Academy of Sciences Proceedings: Section C Engineering Sciences", "IUMJ. Indiana University Mathematics Journal", "IIApN Indian Institute of Astrophysics Newsletter", "InISJ Indian Institute of Science Journal", "InISA Indian Institute of Science Journal of Aeronomical Society of India", "ITJSE Indian Institute of Technology Journal on Section Engineering Technology", "InJAE Indian Journal of Aerospace Engineering Division", "InJBB Indian Journal of Biochemistry and Biophysics", "InJET Indian Journal of Electronics Telecommunication Engineering Division", "InJME Indian Journal of Mechanical Engineering Division", "IJMHG Indian Journal of Meteorology Hydrology and Geophysics", "InJPh Indian Journal of Physics", "InJP. Indian Journal of Physics and Proceedings of the Indian Assocatiation for the Cultivation of Science", "InJPA Indian Journal of Physics Section A", "InJPB Indian Journal of Physics Section B", "IJPAM Indian Journal of Pure and Applied Mathematics", "IJPAP Indian Journal of Pure and Applied Physics", "IJRSP Indian Journal of Radio and Space Physics", "InJHS Indian Journal of the History of Science", "InJTP Indian Journal of Theoretical Physics", "INSAP Indian National Science Academy Proceedings Supplement", "IDAQP Infinite Dimensional Analysis, Quantum Probability and Related Topics", "IBSH. Informational Bulletin of the Southern Hemisphere", "IBUAA Informational Bulletin of the Ukrainian Astronomical Association", "InCo. Information and Computation", "IBVS. Information Bulletin on Variable Stars", "InfCo Information Control", "InfD. Information Display", "IPM.. Information Processing and Management", "IPL.. Information Processing Letters", "ISNL. Information Systems Newsletter", "IRA.. Infrared Astronomy", "InfPh Infrared Physics", "InPhT Infrared Physics and Technology", "Ingeg Ingegneria", "IngAr Ingenieur Archiv", "InCh. Inorganic Chemistry", "IAL1K Institut d'Astronomie de Lausanne", "IMA.. Institute for Mathematics and Its Applications", "InFuJ Institute Fuel Journal", "JIECE Institute of Electronics Communication Engineers of Japan Transactions Section E English", "IPASA Institute of Physics Academia Sinica Annual Report", "ISASS Institute of Space and Astronautical Science Report", "ITABO Institute of Theoretical Astrophysics, Blindern-Oslo", "OslR. Institute of Theoretical Astrophysics Blindern Oslo Reports", "IEAEE Institution Engineers Australia Electrical Engineering Transactions", "IEEP. Institution of Electrical Engineers Proceedings", "IEREJ Institution of Electronic Radio Engineers Journal", "IETE. Institution of Electronics Telecommunication Engineers", "IAFET Instituto de Astronomia y Fisica del Espacio Buenos Aires", "MerRe Instituto Venezolano de Astronomia Merida Venezuela", "IRMBP Institut Royal Meteorologique de Belgique Publications Serie", "ITAB. Institut Teoreticheskoi Astronomii Byulleten", "TrITA Institut Teoreticheskoi Astronomii Trudy", "IET.. Instruments and Experimental Techniques", "InLoP Instytut Lotnictwa Prace", "InMPP Instytut Maszyn Przeplywowych Prace", "IntaC Inta Conie", "ITSF. Integral Transforms and Special Functions", "ICAE. Integrated Computer-Aided Engineering", "InFer Integrated Ferroelectrics", "Inter Interavia", "IntSM Interavia Space Markets", "ISRv. Interdisciplinary Science Reviews", "IFB.. Interfaces and Free Boundaries", "IPAUC INTERKOSMOS Prague Astronomicky Ustav Ceskoslovenske Akademie Ved", "IANT. International Advances in Nondestructive Testing", "IntAg International Agrophysics", "IAPPP International Amateur-Professional Photoelectric Photometry Communications", "IAM.. International Applied Mechanics", "IAUC. International Astronomical Union Circular", "ICQ.. International Comet Quarterly", "ICHMT International Communications in Heat and Mass Transfer", "IrPH. International Conference Infrared Physics Zurich Switzerland", "ICML. International Conference on Machine Learning", "IER.. Internationale Elektronische Rundschau", "InGeo International Geophysics Series", "IJCEM International Journal for Computational Methods in Engineering Science and Mechanics", "IJNAM International Journal for Numerical and Analytical Methods in Geomechanics", "IJNME International Journal for Numerical Methods in Engineering", "IJNMF International Journal for Numerical Methods in Fluids", "IJRPC International Journal for Radiation Physics and Chemistry", "IJACS International Journal of Adaptive Control and Signal Processing", "IJAdA International Journal of Adhesion Adhesives", "IJASS International Journal of Aeronautical and Space Sciences", "IJAEM International Journal of Analytical and Experimental Modal Analysis", "IJAEO International Journal of Applied Earth Observation and Geoinformation", "IJApE International Journal of Electromagnetics and Mechanics", "IJAIS International Journal of Applied Information Systems", "IJAM. International Journal of Applied Mechanics", "IJAsB International Journal of Astrobiology", "IJAA. International Journal of Astronomy and Astrophysics", "IJAP. International Journal of Aviation Psychology", "IJBC. International Journal of Bifurcation and Chaos", "IJBB. International Journal of Bioclimatology Biometeorology", "IJBm. International Journal of Biometeorology", "IJCli International Journal of Climatology", "IJCES International Journal of Computational Engineering Science", "IJCFD International Journal of Computational Fluid Dynamics", "IJCMS International Journal of Computational Materials Science and Engineering", "IJCA. International Journal of Computer Applications", "IJCAT International Journal of Computer Applications and Technology", "IJCMB International Journal of Computer Mathematics Section B", "IJCV. International Journal of Computer Vision", "IJC.. International Journal of Control", "IJDM. International Journal of Damage Mechanics", "IJDE. International Journal of Digital Earth", "IJDF. International Journal of Dynamics of Fluids", "IJEaS International Journal of Earth Sciences", "IJE.. International Journal of Electronics", "IJER. International Journal of Energy Research", "IJEFM International Journal of Engineering and Fluid Mechanics Spring", "IJES. International Journal of Engineering Science", "IJFa. International Journal of Fatigue", "IJFD. International Journal of Fluid Dynamics", "IJFr. International Journal of Fracture", "IJFE. International Journal of Fusion Energy", "IJGS. International Journal of General Systems", "IJGA. International Journal of Geomagnetism and Aeronomy", "IJGMM International Journal of Geometric Methods in Modern Physics", "IJGeo International Journal of Geophysics", "IJGNP International Journal of Green Nanotechnology Physics and Chemistry", "IJHFF International Journal of Heat and Fluid Flow", "IJHMT International Journal of Heat and Mass Transfer", "IJHSC International Journal of High Speed Computing", "IJHSE International Journal of High Speed Electronics and Systems", "IJHM. International Journal of Hybrid Microelectronics Fall", "IJHE. International Journal of Hydrogen Energy", "IJHy. International Journal of Hyperthermia", "IJIDF International Journal of Image and Data Fusion", "IJIG. International Journal of Image and Graphics", "IJIST International Journal of Imaging Systems Technology", "IJIE. International Journal of Impact Engineering", "IJIMW International Journal of Infrared and Millimeter Waves", "IJICS International Journal of Intelligent Control and Systems", "IJMSE International Journal of Mars Science and Exploration", "IJMSp International Journal of Mass Spectrometry", "IJMSI International Journal of Mass Spectrometry and Ion Processes", "IJMES International Journal of Mathematical Education in Science and Technology", "IJM.. International Journal of Mathematics", "IJMS. International Journal of Mechanical Sciences", "IJMW. International Journal of Mine Water", "IJMM. International Journal of Mini Microcomputers", "IJMoS International Journal of Modelling and Simulation", "IJMPA International Journal of Modern Physics A", "IJMPB International Journal of Modern Physics B", "IJMPC International Journal of Modern Physics C", "IJMPS International Journal of Modern Physics Conference Series", "IJMPD International Journal of Modern Physics D", "IJMPE International Journal of Modern Physics E", "IJMF. International Journal of Multiphase Flow", "IJN.. International Journal of Nanoscience", "IJNT. International Journal of Nanotechnology", "IJNS. International Journal of Neural Systems", "IJNLM International Journal of Non Linear Mechanics", "IJNOP International Journal of Nonlinear Optical Physics", "IJNMH International Journal of Numerical Methods for Heat &", "IJOpt International Journal of Optics", "IJOMS International Journal of Oral and Maxillofacial Surgery", "IJPRS International Journal of Photogrammetry and Remote Sensing", "IJPES International Journal of Physical and Engineering Sciences", "IJP.. International Journal of Plasticity", "IJPM. International Journal of Polymeric Materials", "IJPG. International Journal of Population Geography", "IJPR. International Journal of Production Research", "IJQC. International Journal of Quantum Chemistry", "IJRAI International Journal of Radiation Applications and Instrumentation D Nuclear Tracks and Radiation Measurements", "IJRB. International Journal of Radiation Biology", "IJRQS International Journal of Reliability, Quality and Safety Engineering", "IJRS. International Journal of Remote Sensing", "IJRR. International Journal of Robotics Research", "IJSC. International Journal of Satellite Communications", "IJSME International Journal of Science and Mathematics Education", "IJSEd International Journal of Science Education", "IJSE. International Journal of Solar Energy", "IJSS. International Journal of Solids and Structures", "IJSSD International Journal of Structural Stability and Dynamics", "IJScA International Journal of Supercomputer Applications", "IJSyS International Journal of Systems Science", "IJTP. International Journal of Theoretical Physics", "IJT.. International Journal of Thermophysics", "IJTJE International Journal of Turbo Jet Engines", "IMRv. International Materials Reviews", "IMeRv International Metals Reviews", "IREdu International Review of Education", "IRH.. International Review of Hydrobiology", "IRNP. International Review of Nuclear Physics", "IRPC. International Reviews in Physical Chemistry", "ISBRv International Space Business Review", "IUGG. International Union of Geodesy and Geophysics General Assembly", "IPNPR Interplanetary Network Progress Report", "IMPA. Interscience Monographs in Physics and Astronomy", "ITPA. Interscience Tracts on Physics and Astronomy", "InMat Inventiones Mathematicae", "InvPr Inverse Problems", "IGeo. Investigations in Geophysics", "InFiZ Inzhenerno Fizicheskii Zhurnal", "IonIs Ionosfernye Issledovaniia", "Iono. Ionosphere", "Ippa. Ipparchos", "IrJST Iranian Journal of Science Technology", "IRETE IRE Transactions on Education", "IrAJ. Irish Astronomical Journal", "IrAJS Irish Astronomical Journal Supplement", "ISAP. ISA Proceedings", "ISAT. ISA Transactions", "IHERv Ishikawajima Harima Engineering Review", "Isis. Isis. Journal of the History of Science Society", "IPBS. Isotopes in the Physical and Biomedical Sciences", "IsJT. Israel Journal of Technology", "IsSRT Israel Space Research and Technology Information Bulletin", "ISRAA ISRN Astronomy and Astrophysics", "ISCJS ISRO Satellite Centre Journal of Spacecraft Technology", "ISSIR ISSI Scientific Reports Series", "ISSIR ISSI Scientific Reports Series", "IssZK Issledovanie Zemli Fiz Kosmosa", "IGAFS Issledovaniia Geomagnetizmu Aeronomii i Fizike Solntsa", "IsMTD Issledovaniia Mekhanike i Teploobmenu Dvukhfaznykh Sred", "IssUP Issledovaniia Uprugosti i Plastichnosti", "ISKZ. Issledovaniya Solntsa i Krasnykh Zvezd", "IST.. Issues in Science and Technology", "IsJAP Istanbul University Faculty of Science Journal of Astronomy Physics", "IsRvC Istanbul University Faculty Science Review Serie C", "IINA. Istituto Italiano di Navigazione Atti", "IAIss Istoriko-Astronomicheskie Issledovaniya", "ITCJ. ITC Journal", "INTSA Itogi Nauki i Tekhniki Seriia Astronomiia", "INTSF Itogi Nauki i Tekhniki Seriia Fizika Plazmy", "INTSI Itogi Nauki i Tekhniki Seriia Issledovanie Kosmicheskogo Prostranstva", "INTMK Itogi Nauki i Tekhniki Seriia Meteorologiia i Klimatologiia", "INTSO Itogi Nauki i Tekhniki Seriia Okeanologiia", "INTSR Itogi Nauki i Tekhniki Seriia Radiotekhnika", "INTSS Itogi Nauki i Tekhniki Seriia Sovremennye Problemy Matematiki", "INTSV Itogi Nauki i Tekhniki Seriia Vozdushnyi Transport", "ITUTJ ITU Telecommunication Journal", "IUEEN IUE ESA Newsletter", "IUENN IUE NASA Newsletter", "IzTad Izvestiia Akademiia Nauk TadzhSSR", "IzSF. Izvestiia Akademii Nauk Seriya Fizicheskaya", "IzGla Izvestiia Glavnoi rossiiskoi astronomicheskoi observatorii", "IzVGA Izvestiia vuzov. Geodeziia Aehrofotosemka", "IzVF. Izvestiia Vysshaia Uchebn. Zaved., Fizika", "IzVUZ Izvestiia Vysshaia Uchebn. Zaved., Radiofizika", "IzAsh Izvestiya Akademii Nauk Turkmenskoj SSR Ashkhabad", "IzArm Izvestiya Akademiya Nauk Armyanskoi", "IzAlm Izvestiya Astrofizicheskogo Instituta Alma-Ata", "IzEhn Izvestiya Astronomicheskoj Engel'gardt obskoj Observatorii Kazan", "IzAOP Izvestiya Atmospheric and Oceanic Physics", "IzKie Izvestiya Glavnoj Astronomicheskoj Observatorii Kiev", "IzPul Izvestiya Glavnoj Astronomicheskoj Observatorii v Pulkove", "IzMat Izvestiya: Mathematics", "IzAne Izvestiya na Fizicheskiya Institut s Aneb", "IzKry Izvestiya Ordena Trudovogo Krasnogo Znameni Krymskoj Astrofizicheskoj Observatorii", "IzPSE Izvestiya Physics of the Solid Earth", "IzAvT Izvestiya VUZ Aviatsionnaya Tekhnika", "IzRad Izvestiya VUZ Radiofizika", "IzNic Izviestiia Nikolaevskoi glavnoi astronomicheskoi observatorii", "JWUDF Jahns Wöchentliche Unterhaltungen Für Dilettanten und Freunde der Astronomie, Georgraphie und Witterungskunde", "JRE.. Jahrbuch der Radioaktivität und Elektronik", "JASAC Japan Astronomical Study Association Circulars", "JaJAP Japanese Journal of Applied Physics", "JJAPL Japanese Journal of Applied Physics Letters B", "JJAPR Japanese Journal of Applied Physics Regular Papers Short Notes and Review Papers", "JJAPS Japanese Journal of Applied Physics Supplement", "JaJAG Japanese Journal of Astronomy and Geophysics", "JMMPS Japanese Magazine of Mineralogical and Petrological Sciences", "JaIMJ Japan Institute of Metals Journal", "JSASS Japan Society of Aeronautical Space Sciences", "JSAST Japan Society of Aeronautical Space Sciences Transactions", "JSAPJ Japan Society of Air Pollution Journal", "JSCMJ Japan Society of Composite Materials Journal", "JSLEJ Japan Society of Lubrication Engineers Journal", "JSMSJ Japan Society of Materials Science Journal", "JSPS. Japan Society of Promotion Science", "JSMAJ JASMA Japan Society of Microgravity Application Journal", "JMeOp Jemna Mechanika Optika", "JenRu Jenaer Rundschau", "JenRv Jena Review", "JBAn. Jodrell Bank Annals", "JBASP Jodrell Bank Ann Ser Pt", "JBRe. Jodrell Bank Reprints", "JHATD Johns Hopkins APL Technical Digest", "JOM.. JOM - Journal of the Minerals, Metals and Materials Society", "RSNSW Journal and Proceedings of the Royal Society of New South Wales", "JAco. Journal d'Acoustique", "JCP.. Journal de Chimie Physique", "JCPPC Journal de Chimie Physique et de Physico-Chimie Biologique", "JMec. Journal de Mecanique", "JMecA Journal de Mecanique Appliquee", "JMecT Journal de Mecanique Theorique et Appliquee", "JMTAS Journal de Mecanique Theorique et Appliquee Supplement", "JPhys Journal de Physique", "JPhyC Journal de Physique Colloque", "JPR.. Journal de Physique et le Radium", "JPhy1 Journal de Physique I", "JPhy2 Journal de Physique II", "JPhy3 Journal de Physique III", "JPhy4 Journal de Physique IV", "JPhyL Journal de Physique Lettres", "JPhTA Journal de Physique Theorique et Apliquee", "JReAt Journal de Recherches Atmospheriques", "JAF.. Journal des Astronomes Francais", "JO... Journal des Observateurs", "JOp.. Journal d'Optique", "JTP.. Journal for Technology of Plasticity", "JHA.. Journal for the History of Astronomy", "JHAS. Journal for the History of Astronomy Supplement", "JRAM. Journal fur die reine und angewandte Mathematik", "JNanU Journal Nanjing Univ", "JNIRE Journal NIRE", "JAE.. Journal of Acoustic Emission", "JAMDS Journal of Advanced Mechanical Design, Systems, and Manufacturing", "JAMES Journal of Advances in Modeling Earth Systems", "JAerS Journal of Aerosol Science", "JAerE Journal of Aerospace Engineering", "JAerP Journal of Aerospace Power", "JAfES Journal of African Earth Sciences", "JAER. Journal of Agricultural Engineering Research", "JAir. Journal of Aircraft", "JAlg. Journal of Algebra", "JAlgC Journal of Algebraic Combinatorics", "JAlgo Journal of Algorithms", "JAllC Journal of Alloys and Compounds", "JACS. Journal of American Ceramic Society", "JAAS. Journal of Analytical Atomic Spectrometry", "JApCr Journal of Applied Crystallography", "JApEl Journal of Applied Electrochemistry", "JAG.. Journal of Applied Geophysics", "JApMM Journal of Applied Mathematics and Mechanics", "JAM.. Journal of Applied Mechanics", "JAMTP Journal of Applied Mechanics and Technical Physics", "JApMw Journal of Applied Metalworking", "JApMe Journal of Applied Meteorology", "JApMC Journal of Applied Meteorology and Climatology", "JAPE. Journal of Applied Photographic Engineering", "JAP.. Journal of Applied Physics", "JAPh. Journal of Applied Physiology", "JARS. Journal of Applied Remote Sensing", "JASE. Journal of Applied Science and Engineering Section on Electrical Power and Information Systems", "JApSc Journal of Applied Sciences", "JApSp Journal of Applied Spectroscopy", "JApS. Journal of Applied Statistics", "JApT. Journal of Approximation Theory", "JAESc Journal of Asian Earth Sciences", "JAD.. Journal of Astronomical Data", "JAHH. Journal of Astronomical History and Heritage", "JAI.. Journal of Astronomical Instrumentation", "JAsPh Journal of Astronomy and Physics (Turkey)", "JASS. Journal of Astronomy and Space Sciences", "JApA. Journal of Astrophysics and Astronomy", "JApAS Journal of Astrophysics and Astronomy Supplement", "JAtOT Journal of Atmospheric and Oceanic Technology", "JASTP Journal of Atmospheric and Solar-Terrestrial Physics", "JATP. Journal of Atmospheric and Terrestrial Physics", "JAtC. Journal of Atmospheric Chemistry", "JAtS. Journal of Atmospheric Sciences", "JAMOP Journal of Atomic, Molecular and Optical Physics", "JAES. Journal of Audio Engineering Society", "JAuGG Journal of Australian Geology and Geophysics", "JAuR. Journal of Automated Reasoning", "JBall Journal of Ballistics", "JBBM. Journal of Biochemical and Biophysical Methods", "JBB.. Journal of Bioenergetics and Biomembranes", "JBC.. Journal of Biological Chemistry", "JBP.. Journal of Biological Physics", "JBiom Journal of Biomechanics", "JBO.. Journal of Biomedical Optics", "JBNMR Journal of Biomolecular NMR", "JBBC. Journal of Biophysical and Biochemical Cytology", "JBiop Journal of Biophysics", "JBiBi Journal of Biophysique et Biomecanique", "JBMN. Journal of Biophysique et Medecine Nucleaire", "JBMR. Journal of Bone and Mineral Research", "JBR.. Journal of Breath Research", "JCat. Journal of Catalysis", "JChEd Journal of Chemical Education", "JChPh Journal of Chemical Physics", "JChS. Journal of Chromatographic Science", "JCh.. Journal of Chromatography", "JCSC. Journal of Circuits, Systems and Computers", "JCli. Journal of Climate", "JCAM. Journal of Climate and Applied Meteorology", "JClim Journal of Climatology", "JCS.. Journal of Clinical Microbiology", "JClP. Journal of Clinical Pharmacology", "JCS.. Journal of Cluster Science", "JCScT Journal of College Science Teaching", "JCIS. Journal of Colloid and Interface Science", "JCoSc Journal of Colloid Science", "JCTA. Journal of Combinatorial Theory, Series A", "JCTB. Journal of Combinatorial Theory, Series B", "JCom. Journal of Communications", "CoNet Journal of Communications and Networks", "JComp Journal of Complexity", "JCoMa Journal of Composite Materials", "JCTR. Journal of Composites and Technology Research", "JCA.. Journal of Computational Acoustics", "JTCN. Journal of Computational and Theoretical Nanoscience", "JCoAM Journal of Computational and Applied Mathematics", "JCoB. Journal of Computational Biology", "JCoCh Journal of Computational Chemistry", "JCM.. Journal of Computational Mathematics", "JCoN. Journal of Computational Neuroscience", "JCoPh Journal of Computational Physics", "JCST. Journal of Computational Science and Technology", "JCMD. Journal of Computer-Aided Materials Design", "JCAMD Journal of Computer-Aided Molecular Design", "JCoSS Journal of Computer and System Sciences", "JCHyd Journal of Contaminant Hydrology", "JConP Journal of Contemporary Physics (Armenian Academy of Sciences)", "JCos. Journal of Cosmology", "JCAP. Journal of Cosmology and Astro-Particle Physics", "JCrGr Journal of Crystal Growth", "JDR.. Journal of Dairy Research", "JDE.. Journal of Differential Equations", "JDGeo Journal of Differential Geometry", "JoDI. Journal of Digital Information", "JDST. Journal of Dispersion Science and Technology", "JDisT Journal of Display Technology", "JDSO. Journal of Double Star Observations", "JDCS. Journal of Dynamical and Control Systems", "JDDE. Journal of Dynamics and Differential Equations", "JESS. Journal of Earth System Science", "JElas Journal of Elasticity", "JEEEA Journal of Electrical and Electronics Engineering Australia", "JEE.. Journal of Electrical Engineering", "JElec Journal of Electroceramics", "JEAA. Journal of Electromagnetic Analysis and Application", "JEWA. Journal of Electromagnetic Waves and Applications", "JECS. Journal of Electronic Circuits and Systems", "JEI.. Journal of Electronic Imaging", "JEMat Journal of Electronic Materials", "JEPub Journal of Electronic Publishing", "JECTC Journal of Electronics Cooling and Thermal Control", "JElM. Journal of Electronics Manufacturing", "JEMT. Journal of Electron Microscopy Technique", "JESRP Journal of Electron Spectroscopy and Related Phenomena", "JESEd Journal of Elementary Science Education", "JEner Journal of Energy", "JEAS. Journal of Engineering and Applied Sciences", "JEnMa Journal of Engineering and Mathematics", "JEngM Journal of Engineering and Mechanics", "JETh. Journal of Engineering and Thermophysics", "JEER. Journal of Engineering Education Research", "JEP.. Journal of Engineering Physics", "JEPT. Journal of Engineering Physics and Thermophysics", "JEngS Journal of Engineering Sciences", "JEEM. Journal of Environmental and Economics Management", "JECE. Journal of Environmental Conservation Engineering", "JEnvS Journal of Environmental Sciences", "JExB. Journal of Experimental Botany", "JENan Journal of Experimental Nanoscience", "JFF.. Journal of Fire Flammability", "JFC.. Journal of Fluid Control", "JFM.. Journal of Fluid Mechanics", "JFS.. Journal of Fluids and Structures", "JFST. Journal of Fluid Science and Technology", "JFlu. Journal of Fluorescence", "JFAA. Journal of Fourier Analysis and Applications", "JFuA. Journal of Functional Analysis", "JGeod Journal of Geodesy", "JGeo. Journal of Geodynamics", "JGS.. Journal of Geographical Systems", "JGIS. Journal of Geographic Information System", "JG... Journal of Geology", "JGG.. Journal of Geomagnetism and Geoelectricity", "JGGS. Journal of Geomagnetism and Geoelectricity Supplement", "JGP.. Journal of Geometry and Physics", "JGR.. Journal of Geophysical Research", "JGRD. Journal of Geophysical Research (Atmospheres)", "JGRG. Journal of Geophysical Research (Biogeosciences)", "JGRF. Journal of Geophysical Research (Earth Surface)", "JGRC. Journal of Geophysical Research (Oceans)", "JGRE. Journal of Geophysical Research (Planets)", "JGRB. Journal of Geophysical Research (Solid Earth)", "JGRA. Journal of Geophysical Research (Space Physics)", "JGRS. Journal of Geophysical Research Supplement", "JGE.. Journal of Geophysics and Engineering", "JGZG. Journal of Geophysics Zeitschrift Geophysik", "JGeEd Journal of Geoscience Education", "JGlac Journal of Glaciology", "JGO.. Journal of Global Optimization", "JGrPh Journal of Gravitational Physics", "JGHyd Journal of Groundwater Hydrology", "JGuC. Journal of Guidance Control", "JGCD. Journal of Guidance Control Dynamics", "JHeu. Journal of Heuristics", "JHENP Journal of High Energy and Nuclear Physics", "JHEP. Journal of High Energy Physics", "JHEPC Journal of High Energy Physics Conference Proceedings", "JHSN. Journal of High Speed Networks", "JHTS. Journal of High Temperature Society", "JHyd. Journal of Hydrology", "JHyMe Journal of Hydrometeorology", "JHyn. Journal of Hydronautics", "JIST. Journal of Imaging Science and Technology", "JIPM. Journal of Information Processing and Management", "JInfo Journal of Informetrics", "JIMW. Journal of Infrared and Millimeter Waves", "JInst Journal of Instrumentation", "JIntS Journal of Integer Sequences", "JIEq. Journal of Integral Equations", "JIRS. Journal of Intelligent and Robotic Systems", "JIMSS Journal of Intelligent Material Systems and Structures", "JIEx. Journal of Ion Exchange", "JJAEE Journal of Japan Association for Earthquake Engineering", "JJAHS Journal of Japanese Association of Hydrological Sciences", "JJSEE Journal of Japanese Society for Engineering Education", "JSCSE Journal of Japan Society of Civil Engineers, Ser. A1 (Structural Engineering &", "JSCAM Journal of Japan Society of Civil Engineers, Ser. A2 (Applied Mechanics (AM))", "JSCHE Journal of Japan Society of Civil Engineers, Ser. B1 (Hydraulic Engineering)", "JSCGE Journal of Japan Society of Civil Engineers, Ser. C (Geosphere Engineering)", "JSCAI Journal of Japan Society of Civil Engineers, Ser. D1 (Architecture of Infrastructure and Environment)", "JSCHS Journal of Japan Society of Civil Engineers, Ser. D2 (Historical Studies in Civil Engineering)", "JSCIP Journal of Japan Society of Civil Engineers, Ser. D3 (Infrastructure Planning and Management)", "JSCPE Journal of Japan Society of Civil Engineers, Ser. E1 (Pavement Engineering)", "JSCMC Journal of Japan Society of Civil Engineers, Ser. E2 (Materials and Concrete Structures)", "JSCTE Journal of Japan Society of Civil Engineers, Ser. F1 (Tunnel Engineering)", "JSCUS Journal of Japan Society of Civil Engineers, Ser. F2 (Underground Space Research)", "JSCCE Journal of Japan Society of Civil Engineers, Ser. F3 (Civil Engineering Informatics)", "JSCCM Journal of Japan Society of Civil Engineers, Ser. F4 (Construction and Management)", "JSCPP Journal of Japan Society of Civil Engineers, Ser. F5 (Professional Practices in Civil Engineering)", "JSCSP Journal of Japan Society of Civil Engineers, Ser. F6 (Safety Problem)", "JSCER Journal of Japan Society of Civil Engineers, Ser. G (Environmental Research)", "JKTR. Journal of Knot Theory and its Ramifications", "JKAS. Journal of Korean Astronomical Society", "JKASS Journal of Korean Astronomical Society Supplement", "JKPS. Journal of Korean Physical Society", "JLCMe Journal of Laboratory and Clinical Medicine", "JLasA Journal of Laser Applications", "JLCM. Journal of Less Common Metals", "JLVEn Journal of Light &", "JLwT. Journal of Lightwave Technology", "JLTP. Journal of Low Temperature Physics", "JLum. Journal of Luminescence", "JMSB. Journal of Macromolecular Science, Part B: Physics", "JMSC. Journal of Macromolecular Science, Part C: Reviews in Macromolecular Chemistry and Physics", "JMagR Journal of Magnetic Resonance", "JMMM. Journal of Magnetism and Magnetic Materials", "JMR.. Journal of Marine Research", "JMSA. Journal of Marine Science and Application", "JMS.. Journal of Marine Systems", "JMarA Journal of Maritime Archaeology", "JMES. Journal of Materials and Energy Systems", "JMCh. Journal of Materials Chemistry", "JMEP. Journal of Materials Engineering and Performance", "JMPMS Journal of Materials Processing and Manufacturing Science", "JMatR Journal of Materials Research", "JMatS Journal of Materials Science", "JMSME Journal of Materials Science and Materials Electronics", "JMSL. Journal of Materials Science Letters", "JMSMM Journal of Materials Science: Materials in Medicine", "JMSP. Journal of Materials Synthesis and Processing", "JMAA. Journal of Mathematical Analysis and Applications", "JMCS. Journal of Mathematical and Computational Science", "JMPS. Journal of Mathematical and Physical Sciences", "JMaCh Journal of Mathematical Chemistry", "JMFM. Journal of Mathematical Fluid Mechanics", "JMIV. Journal of Mathematical Imaging and Vision", "JMP.. Journal of Mathematical Physics", "JMPsy Journal of Mathematical Psychology", "JMaSc Journal of Mathematical Sciences", "JMSo. Journal of Mathematical Sociology", "JMaMe Journal of Mathematics and Mechanics", "JMaPh Journal of Mathematics and Physics", "JMecE Journal of Mechanical and Engineering Science", "JMBM. Journal of Mechanical Behavior and Materials", "JMSTL Journal of Mechanical Systems for Transportation and Logistics", "JMPSo Journal of Mechanics Physics of Solids", "JMNB. Journal of Medecine Nucleaire et Biophysique", "JMet. Journal of Metals", "JMemS Journal of Microelectromechanical Systems", "JMiMi Journal of Micromechanics and Microengineering", "JMic. Journal of Microscopy", "JMPeS Journal of Mineralogical and Petrological Sciences", "JMOp. Journal of Modern Optics", "JMPh. Journal of Modern Physics", "JMBio Journal of Molecular Biology", "JMoEl Journal of Molecular Electronics", "JMolE Journal of Molecular Evolution", "JMoSp Journal of Molecular Spectroscopy", "JMoSt Journal of Molecular Structure", "JMA.. Journal of Multivariate Analysis", "JNUNS Journal of Nanjing University (Natural Sciences)", "JNR.. Journal of Nanoparticle Research", "JNano Journal of Nanophotonics", "JNav. Journal of Navigation", "JNIS. Journal of Near Infrared Spectroscopy", "JNEng Journal of Neural Engineering", "JNeur Journal of Neurochemistry", "JNO.. Journal of Neuro-Oncology", "JNCS. Journal of Non Crystalline Solids", "JNE.. Journal of Nondestructive Evaluation", "JNET. Journal of Non Equilibrium Thermodynamics", "JNMP. Journal of Nonlinear Mathematical Physics", "JNLM. Journal of Non Linear Mechanics", "JNOPM Journal of Nonlinear Optical Physics and Materials", "JNS.. Journal of NonLinear Science", "JNuE. Journal of Nuclear Energy", "JNuM. Journal of Nuclear Materials", "JNT.. Journal of Number Theory", "JOUC. Journal of Ocean University of China", "JOC.. Journal of Optical Communications", "JON.. Journal of Optical Networking", "JOptT Journal of Optical Technology", "JOpt. Journal of Optics", "JOptA Journal of Optics A: Pure and Applied Optics", "JOptB Journal of Optics B: Quantum and Semiclassical Optics", "JOTA. Journal of Optimization Theory Applications", "JOMS. Journal of Oral and Maxillofacial Surgery", "JOR.. Journal of Oral Rehabilitation", "JPal. Journal of Paleontology", "JPDC. Journal of Parallel and Distributed Computing", "JPet. Journal of Petrology", "JPhPh Journal of Pharmacy and Pharmacology", "JPCRD Journal of Physical and Chemical Reference Data", "JPCC. Journal of Physical and Colloid Chemistry", "JPhCh Journal of Physical Chemistry", "JPCA. Journal of Physical Chemistry A", "JPCB. Journal of Physical Chemistry B", "JPO.. Journal of Physical Oceanography", "JPhSt Journal of Physical Studies", "JPhA. Journal of Physics A Mathematical General", "JPCS. Journal of Physics and Chemistry of Solids", "JPhB. Journal of Physics B Atomic Molecular Physics", "JPCM. Journal of Physics Condensed Matter", "JPhCS Journal of Physics Conference Series", "JPhC. Journal of Physics C Solid State Physics", "JPhD. Journal of Physics D Applied Physics", "JPhE. Journal of Physics E Scientific Instruments", "JPhF. Journal of Physics F Metal Physics", "JPhG. Journal of Physics G Nuclear Physics", "JPhGS Journal of Physics G Nuclear Physics Supplement", "JPE.. Journal of Physics of the Earth", "JPTEO Journal of Physics Teacher Education Online", "JPhsg Journal of Physiology", "JPFR. Journal of Plasma and Fusion Research", "JPlPh Journal of Plasma Physics", "JPoSc Journal of Polymer Science", "JPoSA Journal of Polymer Science A Polymer Chemistry", "JPoSB Journal of Polymer Science B Polymer Physics", "JPoSL Journal of Polymer Science: Polymer Letters Edition", "JPMat Journal of Porous Materials", "JPES. Journal of Power and Energy Systems", "JPS.. Journal of Power Sources", "JPAS. Journal of Practical Applications in Space", "JPP.. Journal of Propulsion and Power", "JPT.. Journal of Propulsion Technology", "JPrCh Journal of Protein Chemistry", "JPApS Journal of Pure Applied Sciences", "JQT.. Journal of Quality Technology", "JQSRT Journal of Quantitative Spectroscopy and Radiative Transfer", "JQS.. Journal of Quaternary Science", "JRNC. Journal of Radioanalytical and Nuclear Chemistry", "JRAC. Journal of Radioanalytical Chemistry", "JRP.. Journal of Radiological Protection", "JRSp. Journal of Raman Spectroscopy", "JRPC. Journal of Reinforced Plastics and Composites", "JRes. Journal of Research", "JRPhy Journal of Research in Physics", "JRScT Journal of Research in Science Teaching", "JRIST Journal of Research Institute of Science and Technology, College of Science and Technology, Nihon University", "JRNBS Journal of Research of the National Bureau of Standards", "JRNBA Journal of Research of the National Bureau of Standards A Physica and Chemsitry", "JRNBB Journal of Research of the National Bureau of Standards B Mathematical Sciences", "JRTEd Journal of Research on Technology in Education", "JResB Journal of Research Section B Mathematical Sciences B", "JRheo Journal of Rheology", "JRoS. Journal of Robotic Systems", "JRLR. Journal of Russian Laser Research", "JSEdT Journal of Science Education and Technology", "JSTEd Journal of Science Teacher Education", "JSCom Journal of Scientific Computing", "JScI. Journal of Scientific Instruments", "JSIPI Journal of Scientific Instruments and of Physics in Industry", "JSR.. Journal of Sea Research", "JSedR Journal of Sedimentary Research", "JSeis Journal of Seismology", "JSemi Journal of Semiconductors", "JSGeo Journal of Series Geophysics", "JShR. Journal of Ship Research", "JSGST Journal of Sol-Gel Science and Technology", "JSMME Journal of Solid Mechanics and Materials Engineering", "JSSCh Journal of Solid State Chemistry France", "JSCh. Journal of Solution Chemistry", "JSV.. Journal of Sound Vibration", "JSAES Journal of South American Earth Sciences", "JSLR. Journal of Soviet Laser Research", "JSAR. Journal of Space Astronomy Research", "JSpRo Journal of Spacecraft and Rockets", "JSpT. Journal of Spacecraft Technology", "JSpEn Journal of Space Engineering", "JSWSC Journal of Space Weather and Space Climate", "JSCS. Journal of Statistical Computation and Simulation", "JSMTE Journal of Statistical Mechanics: Theory and Experiment", "JSP.. Journal of Statistical Physics", "JStA. Journal of Strain Analysis and Engineering Design", "JSG.. Journal of Structural Geology", "JSM.. Journal of Structural Mechanics", "JSup. Journal of Superconductivity", "JSymC Journal of Symbolic Computation", "JSDD. Journal of System Design and Dynamics", "JTePh Journal of Technical Physics", "JTech Journal of Technology", "JTeEv Journal of Testing Evaluation", "JASJa Journal of the Acoustical Society of Japan", "JAVSO Journal of the American Association of Variable Star Observers (JAAVSO)", "JAChS Journal of the American Chemical Society", "JAMS. Journal of the American Mathematical Society", "JASIS Journal of the American Society for Information Science and Technology", "JASCE Journal of the American Society of Civil Engineers", "JAWRA Journal of the American Water Resources Association", "JALPO Journal of the Association of Lunar and Planetary Observers, the Strolling Astronomer", "JAnSc Journal of the Astronautical Sciences", "JASEg Journal of the Astronomical Society of Egypt", "JASSA Journal of the Astronomical Society of Southern Africa", "JASV. Journal of the Astronomical Society of Victoria Melbourne", "JASWA Journal of the Astronomical Society of Western Australia", "JBAA. Journal of the British Astronomical Association", "JBAS. Journal of the British Astronomical Society", "JBIS. Journal of the British Interplanetary Society", "JCSS. Journal of the Chinese Silicate Society", "JElS. Journal of the Electrochemical Society", "FrInJ Journal of The Franklin Institute", "JGSJ. Journal of the Geodetic Society of Japan", "JIISB Journal of the Indian Institute of Science Section B Physical and Chemical Series", "JIEEJ Journal of The Institute of Electrical Engineers of Japan", "JIMIA Journal of the Institute of Mathematics and Its Applications", "JIPNT Journal of the Institute of Positioning, Navigation and Timing of Japan", "JIETE Journal of the Institution of Electronics and Telecommunication Engineers", "JJSMS Journal of the Japan Society for Marine Surveys and Technology", "JLMS. Journal of the London Mathematical Society", "JORS. Journal of the Operational Research Society", "JOSA. Journal of the Optical Society of America (1917-1983)", "JOSAA Journal of the Optical Society of America A", "JOSAB Journal of the Optical Society of America B Optical Physics", "JTAM. Journal of Theoretical and Applied Mechanics", "JTBio Journal of Theoretical Biology", "JPSJ. Journal of the Physical Society of Japan", "JPSJS Journal of the Physical Society of Japan Supplement", "JTAC. Journal of Thermal Analysis and Calorimetry", "JThSc Journal of Thermal Science", "JJTST Journal of Thermal Science and Technology", "JTST. Journal of Thermal Spray Technology", "JThSt Journal of Thermal Stresses", "JTh.. Journal of Thermodynamics", "JTHT. Journal of Thermophysics and Heat Transfer", "JThCM Journal of Thermoplastic Composite Materials", "JRASA Journal of the Royal Aeronautical Society of London", "JRASC Journal of the Royal Astronomical Society of Canada", "JRASN Journal of the Royal Astronomical Society of New Zealand", "JRCSE Journal of the Royal College of Surgeons of Edinburgh", "JRSSD Journal of the Royal Statistical Society: Series D (The Statistician)", "JSRP. Journal of the Society for Radiological Protection", "JSPST Journal of The Society of Photographic Science and Technology of Japan", "JSARA Journal of the Southeastern Association for Research in Astronomy", "JSD.. Journal of the Structural Division, American Society of Civil Engineers", "JVSJ Journal of the Vacuum Society of Japan", "JWasA Journal of the Washington Academy of Sciences", "JTF.. Journal of Time and Frequency", "JTurb Journal of Turbulence", "JVST. Journal of Vacuum Science Technology", "JVSTA Journal of Vacuum Science Technology A: Vacuum Surfaces and Films", "JVSTB Journal of Vacuum Science Technology B: Microelectronics and Nanometer Structures", "JVC.. Journal of Vibration and Control", "JVE.. Journal of Vibration Engineering", "JVCIR Journal of Visual Communication and Image Representation", "JVGR. Journal of Volcanology and Geothermal Research", "JWMSE Journal of Women and Minorities in Science and Engineering", "JXST. Journal of X-Ray Science and Technology", "RpScT JPRS Report Science Technology USSR Space", "JSMB. JSME Bulletin", "JSMEJ JSME International Journal", "JSMEA JSME International Journal Series A", "JSMEB JSME International Journal Series B", "JSMEC JSME International Journal Series C", "JSMET JSME Transactions", "KKR.. Kagaku Kogaku Ronbunshu", "MmKMO Kakioka Magnetic Observatory Memoirs", "KEIJ. Kansei Engineering International Journal", "GroR. Kapteyn Astronomical Laboratory Groningen Reports", "KIzKU Kazan Izdatel Kazanskogo Universiteta", "MeeRe Kenneth Mees Observatory Reprints", "KernR Kernforschungsanlage Rept Res Results Solid State Nucl Phys", "KexT. Kexue Tongbao", "Khago Khagol", "KharI Kharkov Izdanie IRE AN USSR", "KTTM. Khimiia i Tekhnologiia Topliv i Masel", "KhPl. Khimiia Plazmy", "KVnT. Kibernetika i Vychislitel naia Tekhnika", "KiInF Kiev Institut Fiziki AN USSR", "KiInM Kiev Institut Matematiki AN USSR", "KIPME Kiev Institut Problem Modelirovaniia Energetike AN USSR", "KIzIM Kiev Izdanie Instituta Matematiki AN USSR", "KiIND Kiev Izdatel Naukova Dumka", "KiIzT Kiev Izdatel Tekhnika", "KIzVS Kiev Izdatel Vishcha Shkola", "KiePr Kievskij Ordena Lenina Gosudarstvennyj Universitet Shevchenko Astronomicheskaya Observatoriya - Preprint", "KPCB. Kinematics and Physics of Celestial Bodies", "KPCBS Kinematics and Physics of Celestial Bodies, Supplement", "KFNT. Kinematika i Fizika Nebesnykh Tel", "KFNTS Kinematika i Fizika Nebesnykh Tel Supplement", "KiCat Kinetics and Catalysis", "KIzS. Kishinev Izdatel Shtiintsa", "KPNON Kitt Peak National Observatory Newsletter", "KVeBB Kleine Veroeffentlichungen der Universitaetssternwarte zu Berlin Babelsberg", "KlBer Kleinheubacher Berichte", "KodOB Kodaikanal Observatory Bulletins", "KodRe Kodaikanal Observatory Reprints", "KomTs Kometnyj Tsirkulyar", "KomMe Komety i Meteory", "KNAB. Koninklijke Nederlandse Akademie van Weteschappen Proceedings Series B Physical Sciences", "KIMMJ Korean Institute of Metals and Materials Journal", "KNT.. Kosmicheskaia Nauka i Tekhnika", "KosIs Kosmicheskie Issledovaniia", "KosIU Kosmicheskie Issledovaniia Ukraine", "KosLu Kosmicheskie Luchi", "KosNT Kosmichna Nauka i Tekhnologiya", "Kozmo Kozmos", "KT... K-Theory", "KSVH. Kungl. Svenska Vetenskapsakademiens Handlingar", "KvanE Kvantovaia Elektronika Moscow", "Kyb.. Kybernetes", "KyoMe Kyoto University Faculty Engineering Memoirs", "KyITB Kyushu Institute Technology Bulletin", "KUFEM Kyushu University Faculty Engineering Memoirs", "KyUAM Kyushu University Research Institute Applied Mechanics Reports", "KyUSR Kyushu University Research Institute Industrial Science Reports", "KyUTR Kyushu University Technology Reports", "LChip Lab on a Chip", "AerAs L'Aeronautique et L'Astronautique", "AerMS L'Aerotecnica Missili e Spazio", "LHBl. La Houille Blanche", "Meteo La Meteorologie", "LDD.. Land Degradation &", "LanB. Landolt Börnstein", "Langm Langmuir", "LaJ.. Lapidary Journal", "Rech. La Recherche", "ReAer La Recherche Aerospatiale", "ReAeB La Recherche Aerospatiale Bimonthly Bulletin ESA", "ReSp. La Recherche Spatiale", "LPB.. Laser and Particle Beams", "LaEO. Laser Elektro Optik", "LaFoc Laser Focus", "LasJ. Laser Journal", "LaPhy Laser Physics", "LaPhL Laser Physics Letters", "LaPhR Laser Physics Review", "Astrf L'Astrofilo Bolletino Trimestral del Gruppo Astrofili Villaggio Sereno Brescia", "LAstr L'Astronomie", "LTerm La Termotecnica", "LatJP Latvian Journal of Physics and Technical Sciences", "LatME Latviiskii Matematicheskii Ezhegodnik", "LawOB Laws Observatory Bulletin, University of Missouri", "LBLRR LBL Research Review", "ASPL. Leaflet of the Astronomical Society of the Pacific", "ASPLS Leaflet of the Astronomical Society of the Pacific (Supplement)", "LePub Learned Publishing", "LERec L'Echo des Recherches", "Ciel. Le Ciel", "LNEA. Lecture Notes and Essays in Astrophysics", "LNSP. Lecture Notes and Supplements in Physics", "LNCS. Lecture Notes in Computer Science", "LNES. Lecture Notes in Earth Sciences, Berlin Springer Verlag", "LNEn. Lecture Notes in Engineering, Berlin Springer Verlag", "LNM.. Lecture Notes in Mathematics, Berlin Springer Verlag", "LNP.. Lecture Notes in Physics, Berlin Springer Verlag", "LNPAM Lecture Notes in Pure and Applied Mathematics", "LeBAN Leningrad Biblioteka Akademii Nauk SSSR", "LeEne Leningrad Energoizdat", "LeGid Leningrad Gidrometeoizdat", "PrAtO Leningrad Gidrometeoizdat Sovremennye Problemy Atmosfernoi Optiki", "LeIzE Leningrad Izdatel Energiia", "LeIzG Leningrad Izdatel Gidrometeoizdat", "LeIzK Leningrad Izdatel Khimiia", "LeIzU Leningrad Izdatel Leningradskogo Universiteta", "LeIzM Leningrad Izdatel Mashinostroenie", "LeIzN Leningrad Izdatel Nauka", "LIzNe Leningrad Izdatel Nedra", "IzLen Leningrad, Izdatel'stvo Nauka", "LeIzS Leningrad Izdatel Sudostroenie", "LeLen Leningrad Lenizdat", "LGUPM Leningradskii Gosudarstvennyi Universitet Problemy Matematicheskoi Fiziki", "VeLen Leningradskii Universitet Vestnik Matematika Mekhanika Astronomiia", "LeRad Le Radium", "Leo.. Leonardo", "LFTR. LEST Foundation, Technical Report", "LHMT. Letters Heat Mass Transfer", "LAES. Letters in Applied and Engineering Sciences", "LMaPh Letters in Mathematical Physics", "LicOB Lick Observatory Bulletin", "LFR.. Lietuvos Fizikos Rinkinys", "LDA.. Lifetime Data Analysis", "LLabJ Lincoln Laboratory Journal", "LiCr. Liquid Crystals", "Litho Lithos", "LitJP Lithuanian Journal of Physics and Technical Sciences", "LRR.. Living Reviews in Relativity", "LRSP. Living Reviews in Solar Physics", "LockH Lockheed Horizons", "LOEle L'Onde Electrique", "LowOB Lowell Observatory Bulletin", "LTP.. Low Temperature Physics", "LPIBu LPI Bulletin", "LPICo LPI Contributions", "LubEn Lubrication Engineering", "LR... Luft und Raumfahrt", "LuRaQ Luft und Raumfahrt Quarter", "LPSC. Lunar and Planetary Science Conference Proceedings", "LCEC. Luxembourg Commission European Communities", "LIVS. Lvov Izdatel Vishcha Shkola", "LvoTs L'vovskij Ordena Lenina Gosudarstvennyj Universitet Tsirkulyar", "MaDes Machine Design", "MLear Machine Learning", "MmCP. Macromolecular Chemistry and Physics", "MaMol Macromolecules", "MadOO Madras Observatory Astronomical Observations", "MadOb Madras Observatory Observations", "MagFE Magnetic Fusion Energy", "MRMed Magnetic Resonance in Medicine", "MRMPB Magnetic Resonance Materials in Physics Biology and Medicine", "MRRev Magnetic Resonance Review", "MHD.. Magnetohydrodynamics", "MagGi Magnitnaia Gidrodinamika", "MagIs Magnitosfernye Issledovaniia", "MTACI Magyar Tudomanyos Akademia Csillagvizsgalo Intezetenek koezlemenyei", "MAWMN Mainz Akademie Wissenschaften Mathematisch Naturwissenschaftliche Klasse", "Lapa. Majalah LAPAN", "MWGBI Mannheim West Germany Bibliographisches Institut AG", "MaTeJ ManTech Journal", "MGeo. Manuscr. Geod.", "ManGe Manuscripta Geodaetica", "MarRv Marconi Review", "MarGe Marine Geodesy", "MarGR Marine Geophysical Research", "MarPG Marine Petroleum Geology", "Mars. Mars", "Mashi Mashinostroenie", "MsT.. Masters Thesis", "MaFiz Matematicheskaia Fizika", "MFiNM Matematicheskaia Fizika i Nelineinaia Mekhanika", "MatIs Matematicheskie Issledovaniia", "MMFMP Matematicheskie Metody i Fiziko Mekhanicheskie Polia", "MISTr Matematicheskii Institut imeni Steklova Trudy", "MMTET Matematicheskoe Modelirovanie i Teoriia Elektricheskikh Tsepei", "MatVe Matematichki Vesnik", "Mater Materialpruefung", "Mate. Materials", "MMP.. Materials and Manufacturing Processes", "MCP.. Materials Chemistry and Physics", "MaHT. Materials at High Temperatures", "MatEv Materials Evaluation", "MatL. Materials Letters", "MaRBu Materials Research Bulletin", "MRSSP Materials Research Society Symposia Proceedings", "MSEng Materials Science and Engineering", "MSEnA Materials Science and Engineering A", "MSEnB Materials Science and Engineering B", "MSEnC Materials Science and Engineering C", "MSEnR Materials Science and Engineering R Reports", "MSTec Materials Science and Technology", "MSF.. Materials Science Forum", "MatSP Materials Science Poland", "MatST Materials Science Technology", "MatTr Materials Transactions JIM", "MatTe Materiaux et Techniques", "MComM Mathematical and Computer Modelling", "MEI.. Mathematical Engineering Industry", "MaFi. Mathematical Finance", "MatG. Mathematical Geology", "MMAS. Mathematical Methods in the Applied Sciences", "MatM. Mathematical Modelling", "MMNA. Mathematical Modelling Numerical Analysis", "M3AS. Mathematical Models and Methods in Applied Sciences", "MPAG. Mathematical Physics, Analysis and Geometry", "MPAM. Mathematical Physics and Applied Mathematics", "MaPEJ Mathematical Physics Electronic Journal", "MaPhS Mathematical Physics Studies", "MaPr. Mathematical Proceedings", "MPCPS Mathematical Proceedings of the Cambridge Philosophical Society", "MatPr Mathematical Programming", "MatRv Mathematical Reviews", "MMS.. Mathematics and Mechanics of Solids", "MEdRJ Mathematics Education Research Journal", "MaCom Mathematics of Computation", "Mat.. Mathematika", "MatAn Mathematische Annalen", "MatNa Mathematische Nachrichten", "MatZe Mathematische Zeitschrift", "MitAe Max Planck Institut Aeronomie Mitteilungen", "MPARp Max Planck Institut fur Astrophysik Report", "Meas. Measurements", "MeScT Measurement Science and Technology", "MeScR Measurement Science Review", "Mecc. Meccanica", "MecEn Mechanical Engineering", "MSSP. Mechanical Systems and Signal Processing", "MPDS. Mechanics and Physics of Discrete Systems", "MCMS. Mechanics of Composite Materials", "MSM.. Mechanics of Structures and Machines", "MTDM. Mechanics of Time-Dependent Materials", "MeReC Mechanics Research Communications", "MeTeS Mechanika Teoretyczna i Stosowana", "MeMaT Mechanism and Machine Theory", "MeUpp Meddelanden fran Astronomiska Observatorium Uppsala", "MeLu1 Meddelanden fran Lunds Astronomiska Observatorium Serie I", "MeLu2 Meddelanden fran Lunds Astronomiska Observatorium Serie II", "MeAar Meddelser fra Ole Romer Observatoriet Aarhus", "MeGen Mededelingen Universiteit te Gent Sterrenkundig Instituut", "MeLeu Mededelingen van het Astronomisch Instituut van de Katholieke Universiteit Leuven", "MedPh Medical Physics", "MekGS Mekhanika Giroskopicheskikh Sistem", "MekKM Mekhanika Kompozitnykh Materialov", "MekP. Mekhanika Polimerov", "MekTT Mekhanika Tverdogo Tela", "MelAR Melbourne Observatory Annual Report", "MelOO Melbourne Observatory Observations", "MmEbr Memoires de l'Observatoire de l'Ebre", "MmARB Memoires of the Academie Royale de Belgique", "MmMtS Memoires of the Mount Stromlo Observervatory", "MSRSL Memoires of the Societe Royale des Sciences de Liege", "MeSRM Memoires Scientifiques de la Revue de Metallurgie", "MmKyo Memoirs Faculty of Sciences University of Kyoto", "MmASI Memoirs of the Astronomical Society of India", "MmBAA Memoirs of the British Astronomical Association", "MmRAS Memoirs of the Royal Astronomical Society", "MmSAI Memorie della Societa Astronomica Italiana", "MSAIS Memorie della Societa Astronomica Italiana Supplementi", "MmSSI Memorie della Societa Degli Spettroscopisti Italiani", "MmSS. Memorie della Societa Degli Spettroscopisti Italiani, serie 2", "MmSGI Memorie della Societa Geologica Italiana", "MmNap Memorie del R. Osservatorio di Capodimonte in Napoli", "MeCom Mendeleev Communications", "Mercu Mercury", "MeAut Meres es Automatika", "MeRAu Mesures Regulation Automatisme", "Metal Metallofizika", "MTObM Metallovedenie i Termicheskaia Obrabotka Metallov", "MMTA. Metallurgical and Materials Transactions A", "MMTB. Metallurgical and Materials Transactions B", "MTA.. Metallurgical Transactions A", "MTB.. Metallurgical Transactions B", "MTPMM Metallurgical Transactions Physical Metallurgy Materials Science", "MetaM Metamaterials", "MTRMA Meteor Forschungsergebnisse Reihe B Meteorologie und Aeronomie", "Metit Meteorites", "Met.. Meteorite - The International Quarterly of Meteorites and Meteorite Science", "Metic Meteoritics", "Metik Meteoritika", "MetRR Meteornoe Rasprostranenie Radiovoln", "MetIs Meteornye Issledovaniia", "MeApp Meteorological Applications", "MetMa Meteorological Magazine", "MetMo Meteorological Monographs", "MSCTN Meteorological Satellite Center Technical Note", "MeSJJ Meteorological Society of Japan Journal", "MetZp Meteorologicke Zpravy", "MeGid Meteorologiia i Gidrologiia", "MetRu Meteorologische Rundschau", "MetZe Meteorologische Zeitschrift", "MAP.. Meteorology and Atmospheric Physics", "MetAP Meteorology Atmospheric Physics", "MetHy Meteorology Hydrology JPRS", "MeRR. Meteor. rasprostr. radiovoln, Kazan", "MVMP. Methoden und Verfahren der Mathematischen Physik", "MCME. Methods: A Companion to Methods in Enzymology", "MApAn Methods and Applications of Analysis", "MComP Methods in Computational Physics", "MGG.. Methods in Geochemistry and Geophysics", "MSB.. Methods in Subnuclear Physics", "MExP. Methods of Experimental Physics", "MetVy Metody Vychislenii", "Metro Metrologia", "MicEc Microbial Ecology", "MPFD. Microdevices: Physics and Fabrication Technologies", "MiEng Microelectronic Engineering", "MiI.. Microelectronics International", "MiRe. Microelectronics Reliability", "MicgQ Microgravity Quarterly", "MiST. Microgravity Science and Technology", "MTEng Microscale Thermophysical Engineering", "MiMic Microscopy and Microanalysis", "MiOTL Microwave and Optical Technology Letters", "MiJo. Microwave Journal", "MicWa Microwaves", "AcMik Mikrochimica Acta", "Mikro Mikroelektronika", "MikSb Mikroelektronika Sbornik", "MAIMT Milan Associazione Italiana di Meccanica Teorica ed Applicata", "MSMFR Milano Seminario Matematico e Fisico Rendiconti", "MiElC Military Electronics Countermeasures", "MiLa. Mind and Language", "MinDe Mineralium Deposita", "Miner Mineralogia", "MinM. Mineralogical Magazine", "MinPe Mineralogy and Petrology", "MinPh Mineral Physics", "MWE.. Mine Water and The Environment", "MPBu. Minor Planet Bulletin", "MPC.. Minor Planet Circulars", "MPEC. Minor Planet Electronic Circulars", "IzMin Minsk Izdatel BGU", "MiINT Minsk Izdatel Nauka i Tekhnika", "MisSp Missiles Spacecraft", "MAPSE Mission Analysis Program Solar Electric Propulsion MAPSEP", "MHITR Mitsubishi Heavy Industries Technical Review", "MitAG Mitteilungen der Astronomischen Gesellschaft Hamburg", "MiBon Mitteilungen der Astronomischen Institute der Universitaet Bonn", "MiBas Mitteilungen der Astronomisch-Meteorologischen Anstalt der Universitaet Basel Astronomische Reihe", "MiHar Mitteilungen der Bruno-H.-Buergel-Sternwarte Hartha DDR", "MiHam Mitteilungen der Hamburger Sternwarte in Bergedorf", "MiKon Mitteilungen der Konkoly Sternwarte Budapest-Szabadsaghegy", "MiPul Mitteilungen der Nikolai-Hauptsternwarte zu Pulkowo", "MiBud Mitteilungen der Sternwarte der Ungarischen Akademie der Wissenschaften Budapest", "MiInn Mitteilungen der Sternwarte Innsbruck", "MiMun Mitteilungen der Sternwarte Munchen", "MiSon Mitteilungen der Sternwarte zu Sonneberg", "MiGra Mitteilungen der Universitaets-Sternwarte Graz", "MiWie Mitteilungen der Universitaets-Sternwarte Wien", "MiJen Mitteilungen der Universitaets-Sternwarte zu Jena", "MiTue Mitteilungen des Astronomischen Instituts der Universitaet Tuebingen", "MiMue Mitteilungen des Astronomischen Instituts des Universitaet Munster", "MiPot Mitteilungen des Astrophysikalischen Observatoriums Potsdam", "MiGIR Mitteilungen Geod. Institut Rheinischen Friedrich-Wilhelms-Universitaets. Bonn", "MSMSE Modelling Simul. Mater. Sci. Eng.", "MAG.. Modern Approaches in Geophysics", "ModGe Modern Geology", "ModIn Modern Instrumentation", "MIMPE Modern Instrumentation and Measurements in Physics and Engineering", "ModPh Modern Physics", "MPLA. Modern Physics Letters A", "MPLB. Modern Physics Letters B", "MJPS. Moldavian Journal of the Physical Sciences", "MBB.. Molecular Biology and Biophysics", "MBBB. Molecular Biology Biochemistry and Biophysics", "MCLC. Molecular Crystals and Liquid Crystals", "MGM.. Molecular Genetics and Metabolism", "MolPh Molecular Physics", "MoPhR Molecular Physics Reports", "MoSim Molecular Simulation", "MCBEH Monatliche Correspondenz zur Beforderung der Erd- und Himmels-kunde", "WisBB Monatsber. Deutsch. Akad Wissenschaftliche Berlin", "MEEP. Monographs on Environment, Earth and Planets", "MNSSJ Monthly notes of the Astronomical Society of South Africa", "MNSSA Monthly Notes of the Astronomical Society of South Africa", "MNRAS Monthly Notices of the Royal Astronomical Society", "MWRv. Monthly Weather Review", "Moon. Moon", "MorGI Morskie Gidrofizicheskie Issledovaniia", "MAtom Moscow Atomizdat", "MoEBA Moscow Energoatomizdat Biblioteka Automatike", "MEner Moscow Energoizdat", "MoGid Moscow Gidrometeoizdat", "MoIKI Moscow Institut Kosmicheskikh Issledovanii AN SSSR", "MoIPM Moscow Institut Prikladnoi Matematiki AN SSSR", "MoIzA Moscow Izdatel Atomizdat", "MoIzE Moscow Izdatel Energiia", "MIEBA Moscow Izdatel Energiia Biblioteka Avtomatike", "MIEBR Moscow Izdatel Energiia Biblioteka Radioelektronike", "MoIzK Moscow Izdatel Khimiia", "MIzLI Moscow Izdatel Legkaia Industriia", "MIzMa Moscow Izdatel Mashinostroenie", "MIzMe Moscow Izdatel Metallurgiia", "MoIzM Moscow Izdatel Moskovskogo Universiteta", "MIzMU Moscow Izdatel Moskovskogo Universiteta Pt", "MoIzN Moscow Izdatel Nauka", "MINFI Moscow Izdatel Nauka AN SSR Fizicheskii Institut Trudy", "MINCV Moscow Izdatel Nauka AN SSSR Chteniia imeni Vernadskogo", "MoINA Moscow Izdatel Nauka AN SSSR Fizicheskii Institut Trudy", "MINGI Moscow Izdatel Nauka AN SSSR Geologicheskoi Institut Trudy", "MINMI Moscow Izdatel Nauka AN SSSR Matematicheskii Institut Trudy", "MoINI Moscow Izdatel Nauka Issledovaniia Geomagnetizmu Aeronomii i Fizike Solntsa", "MINTF Moscow Izdatel Nauka Teoreticheskaia Fizika", "MINVS Moscow Izdatel Nauka Vychislitel naia Seismologiia", "MIzNe Moscow Izdatel Nedra", "MIzRS Moscow Izdatel Radio Sviaz", "MIzSR Moscow Izdatel Sovetskoe Radio", "MISRI Moscow Izdatel Sovetskoe Radio Ionosfernye Issledovaniia", "MoIzS Moscow Izdatel Sviaz", "MISST Moscow Izdatel Sviaz Statisticheskaia Teoriia sviazi", "MoIzT Moscow Izdatel Transport", "MoIzV Moscow Izdatel VINITI", "MIzVS Moscow Izdatel Vysshaia Shkola", "MoIzZ Moscow Izdatel Znanie", "MIZNZ Moscow Izdatel Znanie Novoe Zhizni Nauke Tekhnike Seriia Fizika", "MosIZ Moscow IZMIRAN", "MoMTN Moscow Mezhdunarodnyi Tsentr Nauchnoi i Tekhnicheskoi Informatsii", "MoMGK Moscow Mezhduvedomstvennyi Geofizicheskii Komitet", "MUPB. Moscow University Physics Bulletin", "MoVIN Moscow VINITI", "MosVo Moscow Voenizdat", "MosVI Moscow Voennoe Izdatel", "MoVNT Moscow Vychislitel nyi Tsentr AN SSSR", "MoVyS Moscow Vysshaia Shkola", "MoLLP Moshchnye lazery i lazernaia plazma", "MoEIT Moskovskii Energeticheskii Institut Trudy", "MGUMN Moskovskii Gosudarstvennyi Universitet Institut Mekhaniki Nauchnye Trudy", "MGIMO Moskovskii Gosudarstvennyi Universitet Institut Mekhaniki Otchet", "MVSFA Moskovskii Universitet Vestnik Seriia Fizika Astronomiia", "MUVSK Moskovskii Universitet Vestnik Seriia Khimiia", "MVSMM Moskovskii Universitet Vestnik Seriia Matematika Mekhanika", "MGTVM Moskovskij Gosudarstvennyj Tekhnicheskij Universitet Vestnik Seriya Mashinostroenie", "MGTVP Moskovskij Gosudarstvennyj Tekhnicheskij Universitet Vestnik Seriya Priborostroenie", "MotZe Motortechnische Zeitschrift", "MtSOM Mount Stromlo Observatory Mimeographs", "MtSRe Mount Stromlo Observatory Reprints", "MtWAR Mount Wilson and Palomar Observatory Annual Report", "MtWRe Mount Wilson and Palomar Observatory Reprints", "MWOAR Mount Wilson Observatory Annual Report", "MPERp MPE Report", "MRSBu MRS Bulletin", "MUSS. Muenchen Universitaets Schriften Serie", "MROVG Munich R Oldenbourg Verlag GmbH", "NISZ. Nabliudeniia Iskusstvennykh Sputnikov Zemli", "NINT. Nablyud. Iskusstvennykh Nebesnykh Tel", "NAZ.. Nachrichtenblatt der Astronomischen Zentralstelle Heidelberg", "NVS.. Nachrichtenblatt der Vereinigung der Sternfreunde", "NacEl Nachrichten Elektronik", "NGFAW Nachrichtentechnische Gesellschaft Fachtagung ueber Antennen", "NacZe Nachrichtentechnische Zeitschrift", "NOGB. Nachr. Olbers-Ges. Bremen", "NUFEM Nagoya University Faculty Engineering Memoirs", "NURIA Nagoya University Research Institute of Atmospherics Proceedings", "NUSEM Nagoya University School Engineering Memoirs", "NaAIJ Nanjing Aeronautical Institute Journal", "NUAAJ Nanjing University Aeronautics and Astronautics Journal", "NanoL Nano Letters", "Nanos Nanoscale", "NRL.. Nanoscale Research Letters", "Nanot Nanotechnology", "NIUNA Napoli Istituto Universitario Navale Annali", "NASCL NASA Circular Letter", "PDSS. NASA Planetary Data System", "NASRP NASA Reference Publication", "NASSP NASA Special Publication", "STIA. NASA STI/Recon Technical Report A", "STIN. NASA STI/Recon Technical Report N", "NASTM NASA Technical Memo", "NBSSP National Bureau of Standards Special Publication", "NBSTN National Bureau of Standards Technical Note", "NaGe. National Geographic", "NISTJ National Institute of Standards and Technology Journal of Research", "PolRe National Institute Polar Research Memoirs", "BAth. National Observatory of Athens Greece Bulletin of the Astronomical Institute", "NRAON National Radio Astronomy Observatory Newsletter", "NRAOR National Radio Astronomy Observatory Reprints", "NRAOW National Radio Astronomy Observatory Workshop", "NUDTJ National University Defense Technology Journal", "NHESS Natural Hazards and Earth System Sciences", "NatH. Natural History", "NatSc Natural Science", "Natur Nature", "NatBi Nature Biotechnology", "NatCh Nature Chemistry", "NatCC Nature Climate Change", "NatCo Nature Communications", "NatGe Nature Geoscience", "NatMa Nature Materials", "NatNa Nature Nanotechnology", "NaPho Nature Photonics", "NPhS. Nature Physical Science", "NatPh Nature Physics", "NatSR Nature Scientific Reports", "NW... Naturwissenschaften", "NInfo Nauchnye Informatsii", "NRRv. Naval Research Reviews", "Navig Navigation", "NavAu Navigation Australia", "NavPa Navigation Paris", "NVVSR Nederlandse Vereiniging voor Weer en Sterrenkunde Werkgroep veranderlijke Sterren Reports", "NCNS. Network: Computation in Neural Systems", "NSpEc Networks and Spatial Economics", "AnBog Neue Annalen der Koeniglichen Sternwarte in Bogenhausen bei Muenchen", "NJMM. Neues Jahrbuch Mineralogie Monatshefte", "NeCom Neural Computation", "NN... Neural Networks", "NeuL. Neuroscience Letters", "NPNDS Neutron Physics and Nuclear Data in Science and Technology", "NewA. New Astronomy", "NewAR New Astronomy Reviews", "NJCh. New Journal of Chemistry", "NJPh. New Journal of Physics", "NewSc New Scientist", "ASNYN News Letter of the Astronomical Society of New York", "ICHIN Newsletters of the Interdivisional Commission on History of the IAGA", "NTN.. New Technology News", "NZJGG New Zealand Journal Geology and Geophysics", "NZJS. New Zealand Journal of Science", "NKG.. Nihon Kessho Gakkaishi", "NOHIC Nizamiah JAPAL Rangapur Observatories Hyderabad India Contributions", "NizRe Nizamiah Observatory Reprints", "NCE.. Noise Control Engineering Journal", "NTE.. Nondestructive Testing and Evaluation", "NDTI. Nondestructive Testing and Evaluation International", "NTCo. Nondestructive Testing Communications", "NPPSB Nonequilibrium Problems in the Physical Sciences and Biology", "NATM. Nonlinear Analysis Theory Methods Applications", "Nonli Nonlinearity", "NlOpt Nonlinear Optics", "NPGeo Nonlinear Processes in Geophysics", "NSAP. Nonlinear, Statistical and Applied Physics", "NTA.. Nonlinear Theory and Its Applications, IEICE", "NATi. Nordisk Astronomisk Tidsskrift", "SApMM North Holland Series Applied Mathematical Mechanics", "NHCWP North Hollywood Calif Western Periodicals Co", "NPUJ. Northwestern Polytechnical University Journal", "NoDef Not Defined", "NoPar Notes et Informations", "NROpt Nouvelle Revue d'Optique", "NROA. Nouvelle Revue d'Optique Appliquee", "UGC.. Nova Acta Regiae Soc. Sci. Upsaliensis Ser. V", "NTvA. Novaya tekhn. v astron.", "NoIGG Novosibirsk Institut Geologii i Geofiziki SO AN SSSR", "NovIG Novosibirsk Institut Gidrodinamiki SO AN SSSR Dinamika Sploshnoi Sredy", "NoIzN Novosibirsk Izdatel Nauka", "NSSDC NSSDC Publication", "NTTRv NTT Review", "NDS.. Nuclear Data Sheets", "NDT.. Nuclear Data Tables", "NuEnD Nuclear Engineering and Design", "NucFu Nuclear Fusion", "NucFS Nuclear Fusion Special Supplement", "NuGeo Nuclear Geophysics", "NucIM Nuclear Instruments and Methods", "NIMPR Nuclear Instruments and Methods in Physics Research", "NIMPA Nuclear Instruments and Methods in Physics Research A", "NIMPB Nuclear Instruments and Methods in Physics Research B", "NucPh Nuclear Physics", "NuPhA Nuclear Physics A", "NuPhB Nuclear Physics B", "NuPhS Nuclear Physics B Proceedings Supplements", "NSE.. Nuclear Science Engineering", "NucTe Nuclear Technology", "NucTF Nuclear Technology Fusion", "NAR.. Nucleic Acids Research", "NuAlg Numerical Algorithms", "NFAO. Numerical Functional Analysis and Optimization", "NumHT Numerical Heat Transfer", "NHTA. Numerical Heat Transfer Part A - Applications", "NHTB. Numerical Heat Transfer Part B - Fundamentals", "NuMat Numerische Mathematik", "NCimA Nuovo Cimento A Serie", "NCimB Nuovo Cimento B Serie", "NCimC Nuovo Cimento C Geophysics Space Physics C", "NCimD Nuovo Cimento D Serie", "NCimL Nuovo Cimento Lettere", "NCimR Nuovo Cimento Rivista Serie", "NCimS Nuovo Cimento Serie", "OCSC. OAA Compututer Section Circular", "OSUC. Observationes Astronomicas Insitutas in Specula Universitatis Caesareae Dorpatensis", "OVS.. Observation of Variable Stars", "Obser Observation pi", "OAORP Observations astronomiques faites a l'Observatoire royal de Paris", "USNOO Observations made at the U.S. Naval Observatory", "OOVRO Observations Owens Valley Radio Observatory", "Bes1K Observatoire de Besancon", "OBN1K Observatoire de Besancon - CNES", "Gen1K Observatoire de Geneve", "OSFOT Observatoire de la Société Astronomique de France Observations et Travaux", "LyoRe Observatoire de Lyon Reprints", "Meu1K Observatoire de Meudon", "Nic1K Observatoire de Nice", "CORB. Observatoire Royal de Belgique Communications Serie B", "LPlaC Observatorio Astronomico de La Plata Circular", "LPlaS Observatorio Astronomico de La Plata Separata Astronomica", "RosOB Observatorio Astronomico Municipal de Rosario Argentia Boletin", "RioB. Observatorio Nacional Publicacoes do Servico Astronomico Rio de Janeiro", "HelR. Observatory and Astrophysics Laboratory University of Helsinki Report", "PLPla Observatory Astronomical La Plata Series Astronomies", "ObVyS Obzory Vysokotemperaturnoi Sverkhprovodimosti", "ONRAS Occasional Notes of the Royal Astronomical Society", "ORROE Occasional Reports of the Royal Observatory Edinburgh", "OccN. Occultation Newsletter, International Occultation Timing Association (IOTA)", "OcDyn Ocean Dynamics", "OcEng Ocean Engineering", "OcMod Ocean Modelling", "OSJaJ Oceanographical Society of Japan Journal", "AcOC. Oceanologica Acta", "Ocgy. Oceanology", "OcPhE Ocean Physics and Engineering", "OcSci Ocean Science", "OcScD Ocean Science Discussions", "OSJ.. Ocean Science Journal", "Ocean Oceanus Summer", "OAP.. Odessa Astronomical Publications", "BOOde Odesskij Gosudarstvennyi Universitet im. I. I. Mechnikova Byulletin Astronomicheskoj Observatorii", "IzOde Odesskij Gosudarstvennyi Universitet im. I. I. Mechnikova Izvestiya Astronomicheskoj Observatorii", "OAWMN Oesterreichische Akademie Wissenschaften Mathematisch naturwissenschaftliche Klasse Sitzungsberichte Abteilung", "Oikos Oikos", "Okean Okeanologiia", "ONCP. Old and New Concepts of Physics", "OCzAS Ondrejov Czechoslovakia Czechoslovak Academy Sciences CAS Astronomical Institute Publications", "ONERA ONERA TP", "OEJV. Open European Journal on Variable Stars", "OJA.. Open Journal of Acoustics", "OJAS. Open Journal of Applied Sciences", "OJBp. Open Journal of Biophysics", "OJFD. Open Journal of Fluid Dynamics", "OJGeo Open Journal of Geology", "OJMic Open Journal of Microphysics", "OLear Open Learning", "OSID. Open Systems and Information Dynamics", "AcOpt Optica Acta", "OQE.. Optical and Quantum Electronics", "OptEn Optical Engineering", "OptFT Optical Fiber Technology", "OptMa Optical Materials", "OptPE Optical Physics and Engineering", "OptQE Optical Quantum Electronics", "OptRv Optical Review", "OpSCN Optical Sciences Center Newsletter", "OSAJI Optical Society of America Journal Optics and Image Science", "OptPN Optics &", "OptLE Optics and Lasers in Engineering", "OPJ.. Optics and Photonics Journal", "OptSp Optics and Spectroscopy", "OptCo Optics Communications", "OExpr Optics Express", "OptLT Optics Laser Technology", "OptL. Optics Letters", "OptN. Optics News", "Optik Optik", "OpAt. Optika Atmosfery", "OpAtO Optika Atmosfery i Okeana", "OpSp. Optika i Spektroskopiia", "OpMeP Optiko Mekhanicheskaia Promyshlennost", "OCAM. Optimal Control Applications and Methods", "OptEL Optoelectronics Letters", "OERv. Opto-Electronics Review", "OpPuT Optoelektronika i Poluprovodnikovaia Tekhnika", "OrGeo Organic Geochemistry", "OrLi. Origins of Life", "OLEB. Origins of Life and Evolution of the Biosphere", "Ori.. Orione", "Orion Orion: Zeitschrift für Amateur-Astronomie", "IGS.. Orlando FL Academic Press Inc International Geophysics Series", "OrNav Ortung und Navigation", "BuENS Osaka Prefecture University Bulletin Series Engineering Natural Sciences", "OsUTR Osaka University Technology Reports", "Osir. Osiris", "NapCo Osservatorio Astronomico di Capodimonte Napoli Contributi Astronomici", "TerCo Osservatorio Astronomico di Collurania Teramo Contributi", "TerMm Osservatorio Astronomico di Collurania Teramo Memorie ed Osservazioni", "TerNC Osservatorio Astronomico di Collurania Teramo Note e Comunicazioni", "PadCR Osservatorio Astronomico di Padova Comunicazioni e Rassegne", "RomCo Osservatorio Astronomico di Roma su Monte Mario Contributi Scientifici", "TriP. Osservatorio Astronomico di Trieste Pubblicazioni", "TreP. Osservatorio Privato Specola Ariel Treviso Italia Pubblicazione", "MmArc Osservazioni e memorie dell'Osservatorio astrofisico di Arcetri", "MmArS Osservazioni e memorie dell'Osservatorio astrofisico di Arcetri - Appendici", "OsCar Osteoarthritis and Cartilage", "OtObI Otbor i Obrabotka Informatsii", "OtPI. Otbor i Peredacha Informatsii", "OISNP Oxford Pergamon Press International Series on Natural Philosophy", "OISTS Oxford Pergamon Press International Tables Selected Constants", "OxfOO Oxford University Observatory Observations", "OxM.. Oxidation of Metals", "OzSE. Ozone: Science &", "Palb. Paleobiology", "PalOc Paleoceanography", "PMetR Papers in Meteorological Research", "PPh.. Papers in Physics", "PMG.. Papers Meteorology Geophysics", "PGC.. Papers on Global Change IGBP", "ParC. Parallel Computing", "Paras Parasitology", "ParAc Particle Accelerators", "PPhI. Particle Physics Insights", "PaReL Pattern Recognition Letters", "PerMS Perceptual Motor Skills", "PZ... Peremennye Zvezdy", "PZP.. Peremennye Zvezdy Prilozhenie", "PMHu. Periodica Mathematica Hungarica", "PPEE. Periodica Polytechnica Electrical Engineering", "PPME. Periodica Polytechnica Mechanical Engineering", "PPTE. Periodica Polytechnica Transportation Engineering", "PerCo Perkins Observatory Contributions", "PMO.. Perth Meridien Observations", "PTMJ. Phase Transitions: A Multinational Journal", "PhDT. Ph.D. Thesis", "PhiJR Philips Journal Research", "PhiRR Philips Research Reports", "PhiTR Philips Technical Review", "PMag. Philosophical Magazine", "PMagL Philosophical Magazine Letters", "PMagA Philosophical Magazine, Part A", "PMagB Philosophical Magazine, Part B", "PFP.. Philosophy and Foundations of Physics", "Phoen Phoenix Mitteilungsblatt fuer Veraenderlichenbeobachter", "PcPb. Photochemistry and Photobiology", "Pg... Photogrammetria", "PgE.. Photogrammetric Engineering", "PgERS Photogrammetric Engineering and Remote Sensing", "PhInt Photo Interpretation", "PhNan Photonics and Nanostructures", "PhSen Photonic Sensors", "PhoSp Photonics Spectra", "PsynR Photosynthesis Research", "Psyn. Photosynthetica", "PhyOJ Physcs Online Journal", "Phy.. Physica", "PhyA. Physica A Statistical Mechanics and its Applications", "PhyBC Physica B+C", "PhyB. Physica B Condensed Matter", "PhyC. Physica C Superconductivity", "PhyD. Physica D Nonlinear Phenomena", "PhyE. Physica E Low-Dimensional Systems and Nanostructures", "PEFPN Physica Energiae Fortis et Physica Nuclearis", "PhAco Physical Acoustics", "PhBio Physical Biology", "PCESR Physical Chemical and Earth Sciences Research Reports", "PCCP. Physical Chemistry Chemical Physics (Incorporating Faraday Transactions)", "PCSE. Physical Chemistry: Science and Engineering", "PhGeo Physical Geography", "PPHTS Physical Properties of High Temperature Superconductors", "PhyR. Physical Research", "PhRv. Physical Review", "PhRvA Physical Review A", "PhRvB Physical Review B", "PhRvC Physical Review C", "PhRvD Physical Review D", "PhRvE Physical Review E", "PhRvL Physical Review Letters", "PhRvI Physical Review Series I", "PhRvS Physical Review Special Topics Accelerators and Beams", "PRSTP Physical Review Special Topics Physics Education", "PhRvX Physical Review X", "PSD.. Physical Sciences Data", "PSCEC Physical Sciences Series of the Commission of European Communities", "PhyNr Physica Norvegica", "PhyS. Physica Scripta", "PhySB Physica Scripta B", "PhST. Physica Scripta Volume T", "PSSAR Physica Status Solidi Applied Research", "PSSBR Physica Status Solidi B Basic Research", "PSSCR Physica Status Solidi C Current Topics", "PSSRR Physica Status Solidi Rapid Research Letters", "PhySS Physica Status Solids", "PhyL. Physic Letters", "PhChH PhysicoChemical Hydrodynamics", "Physi Physics", "PCS.. Physics and Chemistry in Space", "PhChE Physics and Chemistry of Earth", "PCL.. Physics and Chemistry of Liquids", "PCMLD Physics and Chemistry of Materials with Low-Dimensional Structures", "PCMLA Physics and Chemistry of Materials with Low-Dimensional Structures Series A", "PCMLB Physics and Chemistry of Materials with Low-Dimensional Structures Series B", "PCMLC Physics and Chemistry of Materials with Low-Dimensional Structures Series C", "PCM.. Physics and Chemistry of Minerals", "PCE.. Physics and Chemistry of the Earth", "PCEA. Physics and Chemistry of the Earth A", "PCEB. Physics and Chemistry of the Earth B", "PCEC. Physics and Chemistry of the Earth C", "PCED. Physics and Chemistry of the Earth Delta", "PEEI. Physics and Evolution of the Earth's Interior", "PhApp Physics and its Applications", "PTPPB Physics and Technology of Particle and Photon Beams", "PhB.. Physics Bulletin", "DokPh Physics - Doklady", "PhyEd Physics Education", "PhyEs Physics Essays", "PCHEI Physics in Collision: High-Energy ee/ep/pp Interactions", "PMB.. Physics in Medicine and Biology", "PhP.. Physics in Perspective", "PhTec Physics in Technology", "PhyIn Physics International", "PhLF. Physics Laser Fusion", "PhL.. Physics Letters", "PhLA. Physics Letters A", "PhLB. Physics Letters B", "PhLC. Physics Letters Section C Physics Reports C", "PhyNY Physics New York", "PhyN. Physics Notes", "PAN.. Physics of Atomic Nuclei", "PAM.. Physics of Atoms and Molecules", "PhFl. Physics of Fluids", "PhFlB Physics of Fluids B", "PhLRv Physics of Life Reviews", "PLDS. Physics of Low-Dimensional Structures", "PhMet Physics of Metals", "PMM.. Physics of Metals and Metallography", "PPN.. Physics of Particles and Nuclei", "PPNL. Physics of Particles and Nuclei Letters", "PhPl. Physics of Plasmas", "PhQE. Physics of Quantum Electronics", "PSL.. Physics of Solids and Liquids", "PEPI. Physics of the Earth and Planetary Interiors", "PhSS. Physics of the Solid State", "PTF.. Physics of Thin Films", "PWP.. Physics of Wave Phenomena", "PhR.. Physics Reports", "PRI.. Physics Research International", "PhT.. Physics Today", "PhyU. Physics Uspekhi", "PhyW. Physics World", "PCTM. Physikalisch-Chemische Trenn- und Messmethoden", "PhyBl Physikalische Blötter", "PhyG. Physikalische Gesellschaft", "PhyGZ Physikalische Gesellschaft Zürich", "PhyZ. Physikalische Zeitschrift", "PKM.. Physik der Kondensierten Materie", "PhuZ. Physik in unserer Zeit", "PhyCP Physiological Chemistry and Physics", "PhyM. Physiological Measurement", "PhylS Physiologist Supplement", "PAZh. Pis ma Astronomicheskii Zhurnal", "PZETF Pis ma Zhurnal Eksperimental noi i Teoreticheskoi Fiziki", "PZhTF Pis ma Zhurnal Tekhnischeskoi Fiziki", "PlAst Planetary Astronomy", "PlR.. Planetary Report", "PlSci Planetary Science", "PSRD. Planetary Science Research Discoveries", "PCPhy Plant and Cell Physiology", "PFR.. Plasma and Fusion Research", "PCPP. Plasma Chemistry and Plasma Processing", "PlPh. Plasma Physics", "PPCF. Plasma Physics and Controlled Fusion", "PlPhR Plasma Physics Reports", "PlPo. Plasmas and Polymers", "PlST. Plasma Science and Technology", "PSST. Plasma Sources Science Technology", "PRFVT Plastiques Renforces Fibres de Verre Textile", "PLoSB PLoS Biology", "PLoSC PLoS Clinical Trials", "PLSCB PLoS Computational Biology", "PLoSG PLoS Genetics", "PLoSM PLoS Medicine", "PLoSN PLoS Neglected Tropical Diseases", "PLoSO PLoS ONE", "PLoSP PLoS Pathogens", "PMCPA PMC Physics A", "PMCPB PMC Physics B", "PMCPC PMC Physics C", "PMTF. PMTF Zhurnal Prikladnoi Mekhaniki i Tekhnicheskoi Fiziki", "nraop National Radio Astronomy Observatory Press Release", "PnGid Pnevmatika i Gidravlika", "noaop NOAO Proposal", "PolSc Polar Science", "PolSi Poliarnye Siianiia", "PSSNN Poliarnye Siianiia i Svechenie Nochnogo Neba", "PASAM Polish Academy of Science Arch Mech", "PASAS Polish Academy of Science Artificial Satellites", "PASIG Polish Academy of Sciences Institute of Geophysics Publications", "PASTA Polish Academy of Sciences Theory Aggregation Coagulation", "PJMPE Polish Journal of Medical Physics And Engineering", "PCZNN Politechnika Czestochowska Zeszyty Naukowe Nauki Techniczne Mechanika", "PGZNM Politechnika Gdanska Zeszyty Naukowe Mechanika", "PSZNM Politechnika Slaska Zeszyty Naukowe Mechanika", "PolAt Pollution Atmospherique", "CraR. Polskie Towarzyslwo Milosnikow Astronomii", "PolTM Poluprovodnikovaia Tekhnika i Mikroelektronika", "PolPP Poluprovodnikovye Pribory i ikh Primenenie", "Poly. Polymer", "PoCom Polymer Composites", "PolPh Polymer Physics", "PPTEn Polymer-Plastics Technology and Engineering", "PomAK Pomiary Automatyka Kontrola", "PATi. Popular Astronomisk Tidsskrift", "PA... Popular Astronomy", "PorMe Poroshkovaia Metallurgiia", "PoAn. Postepy Astronautyki", "PoAst Postepy Astronomii Krakow", "PSci. Pour la Science", "PDiff Powder Diffraction", "PUAMA Poznan Uniwersytet im Adama Mickiewicza Seria Akustyka", "PUAMF Poznan Uniwersytet im Adama Mickiewicza Seria Fizyka", "PrAst Practical Astronomy", "NaiRe Pradesh State Observatory Naini Tal Insia Reprints", "PraAc Prague Academia", "Prama Pramana", "PreR. Precambrian Research", "Prib. Priborostroenie", "PriTE Pribory i Tekhnika Eksperimenta", "PriMM Prikladnaia Matematika i Mekhanika", "PriMP Prikladnaia Matematika i Programmirovanie", "PriM. Prikladnaia Mekhanika", "PPPLR Princeton Plasma Physics Laboratory Report", "Prir. Priroda", "Priv. Private Communication", "PrEM. Probabilistic Engineering Mechanics", "PrAiA Problemy Arktiki i Antarktiki", "PrBio Problemy Bioniki", "PrDRV Problemy Difraktsii i Rasprostraneniia Voln", "PrFA. Problemy Fiziki Atmosfery", "PrFKL Problemy Iadernoi Fiziki i Kosmicheskikh Luchei", "PrKFi Problemy Kosmicheskoi Fiziki", "PrMas Problemy Mashinostroeniia", "PrPro Problemy Prochnosti", "PrSP. Problemy Sluchainogo Poiska", "PrTE. Problemy Tekhnicheskoi Elektrodinamiki", "PrTGE Problemy Teorii Gravitatsii i Elementarnykh Chastits", "PrTPT Problemy Teploenergetiki i Prikladnoi Teplofiziki", "PJA.. Proceeding of the Japan Academy", "PJAA. Proceeding of the Japan Academy, Series A", "PJAB. Proceeding of the Japan Academy, Series B", "PBioS Proceedings: Biological Sciences", "PMPES Proceedings: Mathematical, Physical and Engineering Sciences", "PAMS. Proceedings of the American Mathematical Society", "PAPhS Proceedings of the American Philosophical Society", "PASAu Proceedings of the Astronomical Society of Australia", "PCAS. Proceedings of the California Academy of Sciences", "PCPS. Proceedings of the Cambridge Philosophical Society", "PEMS. Proceedings of the Edinburgh Mathematical Society", "PIASE Proceedings of the Indian Academy of Science, Earth and Planetary Sciences", "PINSA Proceedings of the Indian National Science Academy Part A", "PINSB Proceedings of the Indian National Science Academy Part B", "PIGP. Proceedings of the Institute of General Physics, Adademy of the Sciences of Russia", "PILOM Proceedings of the International Latitude Observatory at Mizusawa", "PIRE. Proceedings of the IRE", "PNAS. Proceedings of the National Academy of Sciences", "PNAS. Proceedings of the National Academy of Sciences USA", "PNAS. Proceedings of the National Academy of Sciences of the USA", "PNSC. Proceedings of the National Science Council", "PNSBP Proceedings of the National Society of Black Physicists", "PPS.. Proceedings of the Physical Society", "PPSA. Proceedings of the Physical Society A", "PPSB. Proceedings of the Physical Society B", "PPSL. Proceedings of the Physical Society of London", "PRIAN Proceedings of the Research Institute of Atmospherics, Nagoya University", "PRIAA Proceedings of the Royal Irish Academy Section A", "PRNAS Proceedings of the Royal Netherlands Academy of Arts and Sciences", "PSEBM Proceedings of the Society for Experimental Biology and Medicine", "PrVP. Proceedings of Vibration Problems", "PELIS Program: electronic library &", "PrAeS Progress in Aerospace Sciences", "PrAA. Progress in Astronautics and Aeronautics", "PrA.. Progress in Astronomy", "PABei Progress in Astronomy", "PBB.. Progress in Biochemistry and Biophysics", "PBBC. Progress in Biophysics and Biophysical Chemistry", "PBMB. Progress in Biophysics and Molecular Biology", "PrECS Progress in Energy and Combustion Science", "PLTP. Progress in Low Temperature Physics", "PrMS. Progress in Materials Science", "PMatP Progress in Mathematical Physics", "PMRP. Progress in Medical Radiation Physics", "PMetP Progress in Metal Physics", "PNSci Progress in Natural Science", "PrOce Progress in Oceanography", "POrCo Progress in Organic Coatings", "PrPNP Progress in Particle and Nuclear Physics", "PPcPp Progress in Photochemistry and Photophysics", "PPGeo Progress in Physical Geography", "PrPh. Progress in Physics", "PQE.. Progress in Quantum Electronics", "PrSS. Progress In Surface Science", "PTCP. Progress in Theoretical Chemistry and Physics", "PTEP. Progress of Theoretical and Experimental Physics", "PThPh Progress of Theoretical Physics", "PThPS Progress of Theoretical Physics Supplement", "ProTe Promyshlennaia Teplotekhnika", "PrEx. Propellants and Explosives", "PrExP Propellants and Explosives Pyrotechnics", "PMMin Proper Motion Survey, University of Minnesota", "rxte pRXTE Proposal", "sptz pSpitzer Proposal", "suba pSubaru Proposal", "PUFir Pubblicazioni della R. Universita degli studi di Firenze", "PSAIL Pubblicazioni della Stazione Astronomica Internazionale di Latitudine", "POMil Pubblicazioni dell'Osservatorio Astronomico di Milano-Merate", "POPad Pubblicazioni dell'Osservatorio Astronomico di Padova", "POPal Pubblicazioni dell'Osservatorio Astronomico di Palermo", "POTor Pubblicazioni Varie Fuori Serie dell'Osservatorio Astronomico di Torino", "PKCat Publ. House Czech. Acad. Sci.", "PMad. Publicacion Facultad de Ciencias Madrid", "POClu Publicatiile Observatorului Astronomical Universitatii din Cluj", "POPar Publication de l'Observatoire de Paris Notes et Informations", "POStr Publication de l'Observatoire de Strasbourg", "PUSK. Publication der Koeniglichen Sternwarte in Kiel", "PULei Publicationen der K. Universitoats-Sternwarte zu Leipzig", "PCARS Publication of COMU Astrophysics Research Center", "PKAS. Publication of Korean Astronomical Society", "PPCAS Publication of the Pomona College Astronomical Society", "PIAGL Publications de l'Institut d'Astronomie et de Geophysique Georges Lemaitre", "POBeo Publications de l'Observatoire Astronomique de Beograd", "POBor Publications de l'Observatoire de l'Universite de Bordeaux", "POTou Publications de l'Observatoire de Toulouse", "PLAGL Publications du Laboratoire d'Astronomie et de Geodesie de l'Universite de Louvain", "PDHO. Publications of Debrecen Heliophysical Observatory", "POBol Publications of dell'Osservatorio Astronomie de Bologna", "PLawO Publications of Laws Observatory, University of Missouri", "PLicO Publications of Lick Observatory", "POMic Publications of Michigan Observatory", "PCat. Publications of Osservatorio Astrofisico di Catania", "PASK. Publications of the Academy of Science Kasakstan Sect. Astrobotanics", "PAllO Publications of the Allegheny Observatory of the University of Pittsburgh", "PAASA Publications of the Astronomical and Astrophysical Society of America", "PAICU Publications of the Astronomical Institute of the Charles University", "PAICz Publications of the Astronomical Institute of the Czechoslovak Academy of Sciences", "PUAms Publications of the Astronomical Institute of the University of Amsterdam", "PBrn. Publications of the Astronomical Institute of the University of Borneo", "POHel Publications of the Astronomical Observatory Helsinki", "PAOS. Publications of the Astronomical Observatory of Sarajevo", "POMin Publications of the Astronomical Observatory University of Minnesota", "PASA. Publications of the Astronomical Society of Australia", "PASJ. Publications of the Astronomical Society of Japan", "PASP. Publications of the Astronomical Society of the Pacific", "PASPS Publications of the Astronomical Society of the Pacific Supplement", "PASRB Publications of the Astronomical Society Rudjer Boskovic", "PADEU Publications of the Astronomy Department of the Eotvos Lorand University", "PAIB. Publications of the Astronomy Institute of Bonn", "PAB.. Publications of The Astrophysics Branch Ottawa", "PBeiO Publications of the Beijing Astronomical Observatory", "PBosO Publications of the Bosscha Observatory Lembang Indonesia", "PCinO Publications of the Cincinnati Observatory", "PCooO Publications of the Cook Observatory", "PDDO. Publications of the David Dunlap Observatory", "PDAUC Publications of the Department of Astronomy University of Chile", "PDAO. Publications of the Dominion Astrophysical Observatory Victoria", "PDO.. Publications of the Dominion Observatory Ottawa", "PDreO Publications of the Dresden Observatory", "PFAO. Publications of the Flower Astronomical Observatory", "PGLO. Publications of the Goethe Link Observatory", "PGooO Publications of the Goodsell Observatory, Carleton College", "ILOMP Publications of the International Latitude Observatory at Mizusawa", "PIstO Publications of the Istanbul University Observatory", "PGro. Publications of the Kapteyn Astronomical Laboratory Groningen", "PKirO Publications of the Kirkwood Observatory of Indiana University", "PAth. Publications of the Laborotory of Astronomy University of Athens", "PMcCO Publications of the Leander McCormick Observatory", "PManO Publications of the Manila Observatory", "PMunO Publications of the Munich Observatory", "PNAOC Publications of the National Astronomical Observatories of China", "PNAOJ Publications of the National Astronomical Observatory of Japan", "POLyo Publications of the Observatoire de Lyon", "PGenA Publications of the Observatoire Geneve Series A", "PGenB Publications of the Observatoire Geneve Series B", "POHP. Publications of the Observatoire Haute-Provence", "POANC Publications of the Observatorie Astronomie Nacional Cerro Calan", "POIst Publications of the Observatory Astronomie University Istambul", "POslO Publications of the Oslo Observatory", "POVRO Publications of the Owens Valley Observatory", "PPMtO Publications of the Purple Mountain Observatory", "PRCO. Publications of the Riverview College Observatory", "PROE. Publications of the Royal Observatory of Edinburgh", "PSAO. Publications of the Shaanxi Astronomical Observatory", "PShaO Publications of the Shaanxi Astronomy Observatory", "PSprO Publications of the Sproul Observatory", "PSSAI Publications of the Sternberg State Astronomical Institute", "PTarO Publications of the Tartu Astrofizica Observatory", "PTasO Publications of the Tashkent Astronomical Observatory", "PUPFA Publications of the University of Pennsylvania Flower Astronomical Observatory", "PUSNO Publications of the U.S. Naval Observatory Second Series", "PVVO. Publications of the Van Vleck Observatory", "PVasO Publications of the Vassar College Observatory", "PWasO Publications of the Washburn Observatory", "PYerO Publications of the Yerkes Observatory", "PYunO Publications of the Yunnan Observatory", "PWHHO Publications of West Hendon House Observatory, Sunderland", "PSCDS Publication Speciale du Centre de Donnees Stellaires", "POxf. Publications University of Oxford Department of Astrophysics", "PUS.. Public Understanding of Science", "PKUJ. Publikationen der Kaiserlichen Universitaets-Sternwarte Jurjew", "PAIKH Publikationen des Astrophysikalischen Instituts Koenigstuhl-Heidelberg", "POPot Publikationen des Astrophysikalischen Observatoriums zu Potsdam", "PCopO Publikationer og mindre Meddeler fra Kobenhavns Observatorium", "PGAOI Pulkovo Glavnaia Astronomicheskaia Observatoriia Izvestiia", "PApCh Pure &", "PApGe Pure and Applied Geophysics", "PApPh Pure and Applied Physics", "PApOp Pure Applied Optics", "QUnJ. Qinghua University Journal", "xmm.. XMM-Newton Press Release", "xmm.. XMM-Newton Proposal", "QREI. Quality Reliability Engineering International", "QuFin Quantitative Finance", "QuSOp Quantum and Semiclassical Optics", "QuEle Quantum Electronics", "QuIP. Quantum Information Processing", "QuOpt Quantum Optics", "QBSA. Quarterly Bulletin on Solar Activity", "QJMAM Quarterly Journal of Mechanics and Applied Mathematics", "QJRAS Quarterly Journal of the Royal Astronomical Society", "QJRMS Quarterly Journal of the Royal Meteorological Society", "QApMa Quarterly of Applied Mathematics", "QRBio Quarterly Reviews of Biophysics", "QuInt Quaternary International", "QuRes Quaternary Research", "QSRv. Quaternary Science Reviews", "Quest Quest", "RadRe Radcliffe Observatory Pretoria South Africa Reprints", "Rad.. Radiant, Journal of the Dutch Meteor Society", "REB.. Radiation and Environmental Biophysics", "RadEf Radiation Effects", "REDS. Radiation Effects and Defects in Solids", "RaPC. Radiation Physics and Chemistry", "RaRe. Radiation Research", "RaEE. Radio and Electronic Engineer", "Radel Radioehlektronika", "REEP. Radio Engineering and Electronic Physics", "RaF.. Radiofizika", "RaSol Radioizluchenie Solntsa", "RPRA. Radio Physics and Radio Astronomy", "RaRLJ Radio Research Laboratory, Journal", "RaRLR Radio Research Laboratory, Review", "RaSc. Radio Science", "RaScB Radio Science Bulletin", "RaScS Radio Science Supplement", "RaT.. Radioteknika", "RaEl. Radiotekhnika i Elektronika", "RERE. Radiotekhnika i Elektronika Radio Engineering Electronic Physics", "RatK. Radiotekhnika Kharkov", "RTRE. Radiotekhnika Tecommunications Radio Engineering Radio Engineering", "RaPro Raschety Prochnost", "RF... Raumfahrtforschung", "RCAEn RCA Engineer", "RCARv RCA Review", "RTI.. Real-Time Imaging", "RDCMP Recent Development in Condensed Matter Physics", "RRDAP Recent Research Development in Applied Physics", "RRDBC Recent Research Development in Biophysical Chemistry", "RRDBB Recent Research Development in Biophysics and Biochemistry", "RRDCP Recent Research Development in Chemical Physics", "RRDPC Recent Research Development in Physical Chemistry", "RRDP. Recent Research Development in Physics", "RRDPF Recent Research Development in Physics of Fluids", "RRDSP Recent Research Development in Statistical Physics", "ReAA. Recherches Aeronautiques et Aerospatiales", "RAOU. Recherches Astronomiques de l'Observatoire d'Utrecht", "RZh.. Referationyj Zhurnal", "RJEHM Regional Journal of Energy Heat and Mass Transfer", "RCD.. Regular and Chaotic Dynamics", "RemS. Remote Sensing", "RSEMS Remote Sensing Electro Magnetic Spectrum", "RSEnv Remote Sensing of Environment", "RSQ.. Remote Sensing Quarterly", "Renor Renormalization", "RISRJ Report Ionosphere Space Research Japan", "HarOR Report of the Committee of the Overseers of Harvard College appointed to visit the Observatory", "RNAOJ Report of the National Astronomical Observatory of Japan", "RSPUT Report Series of the Department of Physics and Science, University of Turku", "YalRY Reports for the year presented by the Board of Managers of the Observatory of Yale University to the President and Fellows", "ROLun Reports of the Lund Observatory", "RpMP. Reports on Mathematical Physics", "RPPh. Reports on Progress in Physics", "RTAMS Representation Theory of the American Mathematical Society", "BeiRe Reprints Beijing Astronomical Observatory Academia Sinica", "ROCi. Republic Observatory Johannesburg Circular", "ChPAS Republic of China National Science Council Proceedings Applied Sciences", "RBSEJ Research Based Science Education Journal", "RAA.. Research in Astronomy and Astrophysics", "ReNEv Research in Nondestructive Evaluation", "RSTEd Research in Science and Technological Education", "RScEd Research in Science Education", "RJPh. Research Journal of Physics", "RLEMR Research Laboratory Engineering Materials Report", "RLPME Research Laboratory Precision Machinery Electronics Bulletin", "RLOpt Research Letters in Optics", "RLPhy Research Letters in Physics", "RMA.. Research Measurement Approach", "RNOST Research News &", "RPFSU Research Papers Faculty of Materials Science and Technology Slovak University of Technology", "RRP.. Research Reports in Physics", "RTP.. Research Trends in Physics", "RNAO. Resultados del Observatorio Nacional Argentino", "ROCor Resultados del Observatorio Nacional Argentino en Cordoba", "ResPh Results in Physics", "RAROC Results of Astronomical Observations made at the Royal Observatory, Cape of Good Hope", "RMROC Results of Meridian Observations made at the Royal Observatory, Cape of Good Hope", "RDR.. Review of Derivatives Research", "RvPCJ Review of Physical Chemistry of Japan", "RvPT. Review of Physics in Technology", "RScI. Review of Scientific Instruments", "RvAqS Reviews in Aquatic Sciences", "RvMaP Reviews in Mathematical Physics", "RvMA. Reviews in Modern Astronomy", "RvGeo Reviews of Geophysics", "RvGSP Reviews of Geophysics and Space Physics", "RvGeS Reviews of Geophysics Supplement", "RvMin Reviews of Mineralogy", "RvMP. Reviews of Modern Physics", "RvMPS Reviews of Modern Physics Supplement", "RvOp. Reviews of Optics", "RvPP. Reviews of Plasma Physics", "RvRRL Reviews of the Radio Research Laboratory", "RvA.. Revista Astronomica Organo de la Asociacion Argengina Amigos de la Astronomia Buenos Aires", "RBrFi Revista Brasileira de Fisica", "RvCF. Revista Colombiana de Fisica", "IORP. Revista do observatorio : publicacao mensal do Imperial Observatorio do Rio de Janeiro", "RMxAA Revista Mexicana de Astronomia y Astrofisica", "RMxF. Revista Mexicana de Fisica", "RMxFE Revista Mexicana de Fisica E", "RMxFS Revista Mexicana de Fisica Supplement", "RvMad Revista Real Acad. Ciencias Exact. Fis. Nat. Madrid", "RTrTe Revista Transporturilor si Telecomunicatiilor", "AerRv Revue Aerospatiale", "RvAc. Revue d'Acoustique", "RvGPG Revue de Geographie Physique et de Geologie Dynamique", "RvGDG Revue de Geologie Dynamique et de Geographie Physique", "RvPA. Revue de Physique Appliquee", "RvPD. Revue du Palais de la Decouverte", "RvFEQ Revue Francaise de l'Electricite Quarter", "RFrM. Revue Francaise de Mecanique", "RFrMQ Revue Francaise de Mecanique Quarter", "RRMPA Revue Roumaine de Mathematiques Pures et Appliquees", "RvRP. Revue Roumaine de Physique", "RvRST Revue Roumaine des Sciences Techniques Serie de Mecanique Appliquee", "RST.. Revue Scientifique et Technique CECLES CERS", "RvT.. Revue Technique Thomson CSF", "RNISZ Rezul taty Nabliudenii Iskusstvennykh Sputnikov Zemli", "RWTHA Rheinisch Westfaelische Technische Hochschule Aerodynamisches Institut Abhandlungen", "AcRhe Rheologica Acta", "RA... Ricerche Astronomiche", "RIzZi Riga Izdatel Zinatne", "Rise. Rise Hvezd", "RRA.. River Research and Applications", "RIG.. Rivista Italiana di Geofisica", "RIGSA Rivista Italiana di Geofisica e Scienze Affini", "RvTS. Rivista Tecnica Selenia", "Robot Robotica", "RMRE. Rock Mechanics and Rock Engineering", "RMFMR Rock Mechanics Felsmechanik Mecanique des Roches", "Roczn Rocznik Astronomiczny Observatorjum Krakowskiego Krakow", "RoAJ. Romanian Astronomical Journal", "RoJPh Romanian Journal of Physics", "RoRPh Romanian Reports in Physics", "RoIE. Rossiiskaia Akademiia Nauk Izvestiia Energetika", "RoIMZ Rossiiskaia Akademiia Nauk Izvestiia Mekhanika Zhidkosti i Gaza", "RoISF Rossiiskaia Akademiia Nauk Izvestiia Seriia Fizicheskaia", "RoDok Rossijskaya Akademiya Nauk Doklady", "RoIMT Rossijskaya Akademiya Nauk Izvestiya Mekhanika Tverdogo Tela", "RoIzF Rossijskaya Akademiya Nauk Izvestiya Seriya Fizicheskaya", "RWPWZ Rostock Wilhelm Pieck Universitaet Wissenschaftliche Zeitschrift Mathematisch Naturwissenschaftliche Reihe", "PVSS. Royal Astronomical Society of New Zealand Publications of Variable Star Section", "VSSCi Royal Astronomical Society of New Zealand Variable Star Section Circulars", "VSSRe Royal Astronomical Society of New Zealand Variable Star Section Reprints", "VSSSC Royal Astronomical Society of New Zealand Variable Star Section Special Circulars", "RGOB. Royal Greenwich Observatory Bulletin", "RGOO. Royal Greenwich Observatory Observations", "ROAn. Royal Observatory Annals", "CapMi Royal Observatory Cape Mimeogram", "CoRSE Royal Society Edinburgh Communications Physical Sciences", "RSCT. Royal Society of Canada Transactions", "RSEPS Royal Society of Edinburgh Proceedings Section", "RSET. Royal Society of Edinburgh Transactions", "RSPTA Royal Society of London Philosophical Transactions Series A", "RSPTB Royal Society of London Philosophical Transactions Series B", "RSPT. Royal Society of London Philosophical Transactions Series I", "RSPSA Royal Society of London Proceedings Series A", "RSPSB Royal Society of London Proceedings Series B", "RSPS. Royal Society of London Proceedings Series I", "RoIn. Rozprawy Inzynierskie", "RoIET Rozprawy Inzynierskie Engineering Transactions", "asc.. Space Telescope ASC Instrument Science Report", "nicm. Space Telescope NICMOS Instrument Science Report", "stis. Space Telescope STIS Instrument Science Report", "wfc.. Space Telescope WFC Instrument Science Report", "wfpc. Space Telescope WFPC2 Instrument Science Report", "Ruimt Ruimtevaart", "RuCRv Russian Chemical Reviews", "RuGG. Russian Geology and Geophysics", "RJET. Russian Journal of Engineering Thermophysics", "RJMP. Russian Journal of Mathematical Physics", "RJPC. Russian Journal Physical Chemistry", "RJPCA Russian Journal Physical Chemistry A", "RJTAM Russian Journal Theoretical and Applied Mechanics", "RuMaS Russian Mathematical Surveys", "RuMet Russian Metallurgy", "RuPhJ Russian Physics Journal", "RALR. Rutherford Appleton Laboratory Report", "Sadha Sadhana", "STVF. Samoletostroenie Tekhnika Vozdushnogo Flota", "SAMPJ SAMPE Journal", "SAMPQ SAMPE Quarterly", "UISTS San Diego CA Univelt Inc Science Technology Series", "MaMeA Sankt Peterburgskii Universitet Vestnik Seriia Matematika Mekhanika Astronomiia", "SAOSR SAO Special Report", "asd.. Astrophysics Software Database", "ascl. Astrophysics Source Code Library", "SatCo Satellite Communications", "SBARM SBARMO Bulletin", "SbMat Sbornik: Mathematics", "SJMet Scandinavian Journal of Metallurgy", "SUVSR Scandinavian Union of Amateur Astronomers Variable Star Section", "ScReE Scholarly Research Exchange", "SNG.. Schweizerische Naturforschende Gesellschaft", "Sci.. Science", "SCSA. Science and Culture Series: Astrophysics", "SCSP. Science and Culture Series: Physics", "SECM. Science and Engineering of Composite Materials", "STAdM Science and Technology of Advanced Materials", "SCSMP Science China Series Mathematics Physics Astronomy Technological Sciences", "SciDi Science Dimension", "SciEd Science Education", "ScEdR Science Education Research", "SFCh. Science Foundation in China", "ScChA Science in China A: Mathematics", "ScChB Science in China B: Chemistry", "ScChC Science in China C: Life Sciences", "ScChD Science in China D: Earth Sciences", "ScChE Science in China E: Technological Sciences", "ScChF Science in China F: Information Sciences", "ScChG Science in China G: Physics and Astronomy", "SISN. Science Information Systems Newsletter", "SciN. Science News", "ScTEn Science of the Total Environment", "ScPr. Science Progress", "Scis. Sciences", "SciB. Scientia (Bologna)", "SciSn Scientia Sinica", "SSPMA Scientia Sinica Physica, Mechanica &", "SSSMP Scientia Sinica Series Mathematical Physical Technical Sciences", "SciAm Scientific American", "SMS.. Scientific Modeling and Simulation SMNS", "Scim. Scientometrics", "SRToh Sci. Rep. Tohoku Univ. Eighth Ser.", "SFSN. Scripta Faculty Science Nat. Ujep Brunensis Physica", "ScM.. Scripta Metallurgica", "ScMM. Scripta Metallurgica et Materialia", "SedG. Sedimentary Geology", "Sedim Sedimentology", "SeiKa Seikei-Kakou", "BSSA. Seismological Society America Bulletin", "SEGeo Seismology and Exploration Geophysics", "STSSP Selected Topics in Solid State Physics", "Semic Semiconductors", "SeScT Semiconductor Science Technology", "SeSTS Semiconductor Science Technology Supplement", "TrKra Seminar Kraevym Zadacham Trudy", "SCB.. Seminars in Cancer Biology", "SDia. Seminars in Dialysis", "GEOCS Semi-Regular Variables", "SenAR Sendai Astronomiaj Raportoj", "SenIm Sensing and Imaging", "SPTS. Sensor Physics and Technology Series", "SeRv. Sensor Review", "SeAc. Sensors and Actuators", "SeAcA Sensors and Actuators A Physical", "SeAcB Sensors and Actuators B Chemical", "SAERI Seoul Korea Atomic Energy Research Institute", "SanS. Separata Universidad de Chile Departamento de Astronomia Santiago", "SerAJ Serbian Astronomical Journal", "AnShO Shanghai Observatory Annals", "SV... Shock and Vibration", "SVD.. Shock Vibration Digest", "SVICB Shock Vibration Information Center Shock Vibration Bulletin", "SVICP Shock Vibration Information Center Shock Vibration Computer Programs", "SVICD Shock Vibration Information Center Shock Vibration Digest", "SVICI Shock Vibration Information Center Shock Vibration Inform Digest", "ShWav Shock Waves", "SJAM. SIAM Journal of Applied Mathematics", "SJCO. SIAM Journal of Control Optimization", "SJMA. SIAM Journal of Mathematical Analysis", "SJADS SIAM Journal on Applied Dynamical Systems", "SJNA. SIAM Journal on Numerical Analysis", "SIAMR SIAM Review", "SiMaJ Siberian Mathematical Journal", "SiFTZ Sibirskii Fiziko Tekhnicheskii Zhurnal", "JCMSI SICE Journal of Control, Measurement, and System Integration", "SidM. Sidereal Messenger", "SIDPQ SID Proceedings Quarter", "SiFoE Siemens Forschungs und Entwicklungsberichte", "SIGMA SIGMA", "Sig.. Signal", "SigPr Signal Processing", "Simul Simulation", "SiMol Single Molecules", "SZPA. SIRIUS. Zeitschrift fuer Populaere Astronomie", "Situ. Situ", "SkInq Skeptical Inquirer", "SRT.. Skin Research and Technology", "SkyN. Sky News", "SlaOb Slaboproudy Obzor", "SJCE. Slovak Journal of Civil Engineering", "SBE.. Small Business Economics", "SMaS. Smart Material Structures", "Smith Smithsonian", "SCoA. Smithsonian Contributions to Astrophysics", "SCoK. Smithsonian Contributions to Knowledge", "SmCES Smithsonian Contributions to the Earth Sciences", "SSS.. Social Studies of Science", "MSAIQ Societa Astronomica Italiana Memorie Quarter", "SFPTB Societe Francaise de Photogrammetrie et de Teledetection Bulletin", "SASS. Society for Astronomical Sciences Annual Symposium", "SEEJ. Society of Environmental Engineers Journal", "SIAM. Society of Industrial and Applied Mathematics", "SIBAN Sofia Izdatel Bolgarskoi Akademii Nauk", "SMat. Soft Matter", "SSSAJ Soil Science Society of America Journal", "SoCe. Solar Cells", "SoEn. Solar Energy", "SoEnM Solar Energy Materials", "SoPh. Solar Physics", "SoSyR Solar System Research", "STERJ Solar Terrestrial and Environmental Research Japan", "SolE. Solid Earth", "SolED Solid Earth Discussions", "SMArc Solid Mechanics Archives", "SSCom Solid State Communications", "SSEle Solid State Electronics", "SSIon Solid State Ionics", "SSNMR Solid State Nuclear Magnetic Resonance", "SSPAR Solid State Physics Advances in Research and Applications", "SSPAS Solid State Physics Advances in Research and Applications Supplement", "SSSci Solid State Sciences", "SSTec Solid State Technology", "BSolD Solnechnye Dann. Bull. Akad. Nauk SSSR", "SoKie Sonderdrucke der Sternwarte Kiel", "SoMue Sonderdrucke Universitaet Muenster Astronomisches Institut", "Sonne Sonne", "SoShe Soobshchenie Shemakhinskoj Astrofizicheskoj Observatorii", "SoByu Soobshcheniya Byurakanskoj Observatorii Akademiya Nauk Armyanskoj SSR Erevan", "SoSht Soobshcheniya Gosudarstvennogo Astronomicheskogo Instituta", "SoSAO Soobshcheniya Spetsial'noj Astrofizicheskoj Observatorii", "SMTS. Soprotivlenie Materialov i Teoriia Sooruzhenii", "SSHMP Sources and Studies in the History of Mathematics and Physical Sciences", "SHMPS Sources in the History of Mathematics and Physical Sciences", "SAAOC South African Astronomical Observatory Circular", "SAAOR South African Astronomical Observatory Republic", "SAJPh South African Journal of Physics", "SAJSc South African Journal of Science", "SouSt Southern Stars", "IBSAE Sovetskaia Antarkticheskaia Ekspeditsiia Informatsionnyi Byulleten", "SovAe Soviet Aeronomii", "SvApM Soviet Applied Mechanics", "SvA.. Soviet Astronomy", "SvAL. Soviet Astronomy Letters", "JETP. Soviet Journal of Experimental and Theoretical Physics", "JETPL Soviet Journal of Experimental and Theoretical Physics Letters", "SvJNP Soviet Journal of Nuclear Physics", "SvJOT Soviet Journal of Optical Technology", "SvJPP Soviet Journal of Plasma Physics", "SvJQE Soviet Journal of Quantum Electronics", "SvPAC Soviet Physics Acoustics", "SvPhA Soviet Physics Astronomy", "SvPC. Soviet Physics Crystallography", "SPhD. Soviet Physics Doklady", "SvPhJ Soviet Physics Journal", "SvPS. Soviet Physics Semiconductors", "SvPSS Soviet Physics Solid State", "SPTP. Soviet Physics Technical Physics", "SvPhU Soviet Physics Uspekhi", "SvRP. Soviet Radiophysics", "SSRvA Soviet Scientific Reviews A Physics Reviews", "SSRvC Soviet Scientific Reviews C Mathematical Physics Reviews", "SSRvD Soviet Scientific Reviews D Physicochemical Biology Reviews", "SSRvE Soviet Scientific Reviews E Astrophysics and Space Physics Reviews", "SvTRv Soviet Technology Reviews", "Space Space", "SSPRv Space and Solar Power Review", "SpCoB Space Communication Broadcasting", "SpCom Space Communications", "SpEd. Space Education", "SpFl. Spaceflight", "SLSci Space Life Sciences", "SpMar Space Markets", "SpMME Space Medicine Medical Engineering", "SpPol Space Policy", "SpPow Space Power", "SPRMD Space Power - Resources, Manufacturing and Development", "SpRBu Space Research Bulgaria", "SpReT Space Research Today", "SSI.. Space Science Instrumentation", "SSRv. Space Science Reviews", "SpT.. Space Technology", "STICA Space Technology Industrial and Commercial Applications", "STECF Space Telescope European Coordinating Facility Newsletter", "Spvw. Spaceview", "SpWea Space Weather", "SpWd. Space World", "SpWdU Space World U", "SpWdW Space World W", "SpWdY Space World Y", "Spark Spark, the AAS Education Newsletter", "VatAR Specola Astronomica Vaticana Annual Reports", "AtlSV Specola Astronomica Vaticana Atlas Stellarum Variabilium", "VatCo Specola Astronomica Vaticana Comunicazione", "VatMA Specola Astronomica Vaticana Miscellanea Astronomica", "VatPS Specola Astronomica Vaticana Pubblicazioni Serie Seconda", "VatRS Specola Astronomica Vaticana Ricerche Spettroscopiche", "VatRA Specola Astronomica Vaticana Richerche Astronomiche", "AcSpe Spectrochimica Acta", "AcSpA Spectrochimica Acta Part A: Molecular Spectroscopy", "SpecL Spectroscopy Letters", "SRMO. Specula Regia Monachiensi Observationes astronomicae", "SScT. Speculations in Science and Technology", "Spika Spika", "SpEng Sports Engineering", "SSSSc Springer Series in Surface Sciences", "STMP. Springer Tracts in Modern Physics", "SSCP. Springer Verlag Springer Series on Chemical Physics", "SSEp. Springer Verlag Springer Series on Electrophysics", "SSGSR Springer Verlag Springer Series on Group Geophysics Space Research", "SSOS. Springer Verlag Springer Series on Optical Sciences", "SVPCS Springer Verlag Springer Series on Physics Chemistry Space", "SSSSS Springer Verlag Springer Series on Solid State Sciences", "SSSyn Springer Verlag Springer Series on Synergetics", "SSWP. Springer Verlag Springer Series on Wave Phenomena", "SprRe Sproul Observatory Reprints", "SrLJP Sri Lankan Journal of Physics", "SANUG Srpska Akademiia Nauka i Umetnosti Glas Odeljenje Tekhnichkikh Nauka", "SRXPh SRX Physics", "StarD StarDate Magazine", "StSky Star Sky", "StMet Statistical Methodology", "StaSc Statistical Science", "StCom Statistics and Computing", "StReL Staub Reinhaltung Luft", "SMSPS Stephan Mueller Special Publication Series", "Sterz Sternzeit Mitteilungen der Astrnomischen Vereinigungen Aachen", "IEWS. Stevenage Herts England Peter Peregrinus Ltd IEE Electromagnetic Waves Series", "SteRe Steward Observatory Reprints", "TriTr STLE Tribology Transactions", "SAA.. Stochastic Analysis and Applications", "SHH.. Stochastic Hydrology and Hydraulics", "SSRp. Stochastics and Stochastics Reports", "StoAn Stockholms Observatoriums Annaler", "StoMe Stockholms Observatoriums Meddelande", "StoOR Stockholms Observatoriums Reports", "Strab Strabismus", "Strai Strain", "SGC.. Stratigraphy and Geological Correlation", "Stroj Strojarstvo", "StAst Strolling Astronomer", "StrOp Structural Optimization", "SASn. Studia Astronomica Sinica", "StBio Studia Biophysica", "StGG. Studia Geophysica et Geodaetica", "StuMa Studia Mathematica", "SSTor Studia Societatis Scientiarum Torunensis Sectio F Astronomia", "StAM. Studies in Applied Mathematics", "SCMP. Studies in Condensed Matter Physics", "SGORS Studies in Geophysical Optics and Remote Sensing", "StGeo Studies in Geophysics", "StHEP Studies in High Energy Physics", "StHCG Studies in High Energy Physics Cosmology and Gravitation", "StMaP Studies in Mathematical Physics", "StPTC Studies in Physical and Theoretical Chemistry", "SScEd Studies in Science Education", "StHPM Studies in the History and Philosophy of Modern Physics", "StHMP Studies in the History of Mathematics and the Physical Sciences", "Sttur Studies in turbulence", "SCA.. Studii si Cercetari de Astronomie Bucuresti", "StCeF Studii si Cercetari de Fizica", "StCeM Studii si Cercetari Matematice", "StCMA Studii si Cercetary de Mecanica Aplicata", "SSTA. Subsurface Sensing Technologies and Applications", "SunGe Sun and Geosphere", "Sunwo Sunworld", "SuScT Superconductor Science Technology", "SuMi. Superlattices and Microstructures", "JPhSu Supplement au Journal de Physique", "AnMuS Supplementband zu den Annalen der Munchener Sternwarte", "SAnAp Supplements aux Annales d'Astrophysique", "SuCT. Surface and Coatings Technology", "SurIA Surface and Interface Analysis", "SRL.. Surface Review and Letters", "SurSc Surface Science", "SurSL Surface Science Letter", "SurSR Surface Science Reports", "SurSS Surface Science Spectra", "SGeo. Surveys in Geophysics", "SHEP. Surveys in High Energy Physics", "SvPro Svarochnoe Proizvodstvo", "SvUNT Sverdlovsk Ural skii Nauchnyi Tsentr AN SSSR", "SydOP Sydney Observatory Papers", "SynMe Synthetic Metals", "SAMS. Systems Analysis Modelling Simulation", "SyTec Systems Technology", "TMPGO Tagung ueber Mathematische Probleme Geodaesie Oberwolfach West Germany Bulleting Geodesique", "TANEs Tartu Akademiia Nauk Estonskoi SSR", "TarPr Tartu Astrofizicheskoj Observatorii Preprint", "TarOT Tartu Astrofuusika Observatoorium Teated", "IzTas Tashkent Izdatel Fan", "IzGeo Tbilisi Georgian SSR Izdatel Metsniereba", "TIzSS Tbilisi Izdatel Sabchota Sakartvelo", "TecN. Technical News", "TePhL Technical Physics Letters", "TeLoA Technika Lotnicza i Astronautyczna", "TBBM. Techniques of Biochemical and Biophysical Morphology", "TPhy. Techniques of Physics", "TMKF. Technische Mitteilungen Krupp Forschungsberichte", "TUnGG Technische Univ Geodesy Global Geodyn", "ToIzL Technisch oekonomische Informationen zivilen Luftfahrt", "Tech. Technology", "TeCu. Technology and Culture", "TecRv Technology Review", "Tecto Tectonics", "Tectp Tectonophysics", "TekEl Tekhnicheskaia Elektrodinamika", "TJAu. Telecommunication Journal of Australia", "TDAPR Telecommunications and Data Acquisition Progress Report", "TMOPR Telecommunications and Mission Operations Progress Report", "TRET. Telecommunications and Radio Engineering Telecommunications", "TelIn Telematics Informatics", "Telet Telettra S", "Tell. Tellus", "TellA Tellus Series A", "TellB Tellus Series B Chemical and Physical Meteorology B", "TSDMO Tellus Series Dynamic Meteorology and Oceanography", "TeoEl Teoreticheskaia Elektrotekhnika", "TeoPM Teoreticheskaia i Prikladnaia Mekhanika", "TFFAP Teoriia Funktsii Funktsional nyi Analiz i ikh Prilozheniia", "TeoVP Teoriia Veroiatnostei i ee Primeneniia", "Teplo Teploenergetika", "Tepsg Teplofizicheskie svoistva gazov", "TepT. Teplofizika i Teplotekhnika", "TepVT Teplofizika Vysokikh Temperatur", "TFizG Teploobmen i Fizicheskaia Gazodinamika", "TNEK. Teplovye Napriazheniia Elementakh Konstruktsii", "TeMAE Terrestrial Magnetism and Atmospheric Electricity (Journal of Geophysical Research)", "TeMag Terrestrial Magnetism (Journal of Geophysical Research)", "Tesla TESLA Electronics", "TTPhy Teubner Texte zur Physik", "TexMi Textures and Microstructures", "Ana.. The Analyst", "Agrph The Astrograph", "Astr. The Astronomer", "ATel. The Astronomer's Telegram", "AJ... The Astronomical Journal", "AJS.. The Astronomical Journal Supplement", "AstRv The Astronomical Review", "ApJ.. The Astrophysical Journal", "ApJL. The Astrophysical Journal Letters", "ApJS. The Astrophysical Journal Supplement Series", "BJHS. The British Journal for the History of Science", "BJPS. The British Journal for the Philosophy of Science", "BuSSA The Bulletin of the Seismological Society of America", "ComRv The Communication Review", "CompJ The Computer Journal", "TCD.. The Cryosphere Discussions", "EMBO. The EMBO Journal", "JAS.. The Journal of Agricultural Science", "JChTh The Journal of Chemical Thermodynamics", "JFin. The Journal of Finance", "MatMo The Mathematical Monthly", "Msngr The Messenger", "Neuro The Neuroscientist", "INGN. The Newsletter of the Isaac Newton Group of Telescopes", "Obs.. The Observatory", "OAcJ. The Open Acoustics Journal", "OAeEJ The Open Aerospace Engineering Journal", "OAPJ. The Open Applied Physics Journal", "OAJ.. The Open Astronomy Journal", "OASJ. The Open Atmospheric Science Journal", "OCPJ. The Open Chemical Physics Journal", "OCMPJ The Open Condensed Matter Physics Journal", "OGC.. The Open Geology Journal", "OHJ.. The Open Hydrology Journal", "OMEJ. The Open Mechanical Engineering Journal", "OMJ.. The Open Mechanics Journal", "OMnJ. The Open Mineralogy Journal", "OMPJ. The Open Mineral Processing Journal", "ONJ.. The Open Nanoscience Journal", "ONPPJ The Open Nuclear &", "ONMJ. The Open Numerical Methods Journal", "OOcJ. The Open Oceanagraphy Journalurnal", "OOEJ. The Open Ocean Engineering Journal", "OOJ.. The Open Optics Journal", "OPalJ The Open Paleontology Journal", "OPCJ. The Open Physical Chemistry Journal", "OPPJ. The Open Plasma Physics Journal", "ORSJ. The Open Remote Sensing Journal", "OREJ. The Open Renewable Energy Journal", "OSPJ. The Open Signal Processing Journal", "OSpeJ The Open Spectroscopy Journal", "OSuJ. The Open Superconductors Journal", "OSSJ. The Open Surface Science Journal", "AcTC. Theoretica Chimica Acta", "ThApC Theoretical and Applied Climatology", "ThAFM Theoretical and Applied Fracture Mechanics", "TAM.. Theoretical and Applied Mechanics", "ThCFD Theoretical and Computational Fluid Dynamics", "TMP.. Theoretical and Mathematical Physics", "ThAst Theoretical Astrophysics", "TPAG. Theory and Practice of Applied Geophysics", "PhTea The Physics Teacher", "PlJ.. The Plant Journal", "QJMat The Quarterly Journal of Mathematics", "QJPAM The Quarterly Journal of Pure and Applied Mathematics", "RamJ. The Ramaujan Journal", "RvES. The Review of Economic Studies", "ThEng Thermal Engineering", "TSE.. Thermal Science and Engineering", "SJCLI The Scandinavian Journal of Clinical and Laboratory Investigation", "SciMo The Scientific Monthly", "TSF.. Thin Solid Films", "TETB. Thyssen Edelstahl Technische Berichte", "TrTIM Tiflis Izdatel Metsniereba Akademiia Nauk Gruzinskoi SSR Institut Geofiziki Trudy", "TrGru Tiflis Izdatel Metsniereba Akademiia Nauk Gruzinskoi SSR Matematicheskii Institut Trudy", "IzTif Tiflis Izdatel Tbilisskogo Universiteta", "CorTi Tirada Aparte Universidad Nacional de Cordoba Argentina Observatorio Astronomico", "TiEng Tissue Engineering", "TNKS. Tochnost i Nadezhnost Kiberneticheskikh Sistem", "TSRSG Tohoku University Science Reports Series Geophysics", "TokAB Tokyo Astronomical Bulletin", "TokRe Tokyo Astronomical Observatory Reprints", "TUFER Tokyo Denki University Faculty of Engineering Research Reports", "TAEMm Tokyo Metropolitan College Aeronautical Engineering Memoirs", "TUFEJ Tokyo University Faculty of Engineering Journal Series", "TUISR Tokyo University Institute Industrial Science Report", "TUASB Tokyo University Institute of Space and Aeronautical Science Bulletin", "TUASR Tokyo University Institute of Space and Aeronautical Science Report", "TIOA. Tomsk Institut Optiki Atmosfery CO AN SSSR", "TApPh Topics in Applied Physics", "TAASS Topics in Astrophysics, Astrononmy, and Space Science", "ToCat Topics in Catalysis", "TCPh. Topics in Current Physics", "TPhCh Topics in Physical Chemistry", "ToASC Torino Accademia delle Scienze Classe di Scienze Fisiche Matematiche e Naturali Atti", "TosRv Toshiba Review", "TouCE Toulouse Cepadues Editions", "TrSpT Transactions of Space Technology Japan", "TAGU. Transactions of the American Geophysical Union", "TAMS. Transactions of the American Mathematical Society", "TAPS. Transactions of the American Philosophical Society", "TOYal Transactions of the Astronomical Observatory of Yale University", "TCaPS Transactions of the Cambridge Philosophical Society", "TIMC. Transactions of the Institute of Measurement and Control", "TISCI Transactions of the Institute of Systems, Control and Information Engineers", "IAUTA Transactions of the International Astronomical Union, Series A", "IAUTB Transactions of the International Astronomical Union, Series B", "TIUCS Transactions of the International Union for Cooperation in Solar Research", "TJSAI Transactions of the Japanese Society for Artificial Intelligence", "TATJ. Transactions of the Japanese Society for Artificial Intelligence, Aerospace Technology Japan", "TJSIE Transactions of The Japanese Society of Irrigation, Drainage and Rural Engineering", "TRACE Transactions of the Japan Society of Refrigerating and Air Conditioning Engineers", "TLHSQ Transactions of the Literary and Historical Society of Quebec", "TrOS. Transactions of the Optical Society", "TSICE Transactions of the Society of Instrument and Control Engineers", "TPM.. Transport in Porous Media", "TTSP. Transport Theory and Statistical Physics", "TvOC. Transvaal Observatory Circular", "TSSLW Travaux de la Societe des Sciences et des Letters de Wroclaw", "TOMar Travaux de l'Observatoire de Marseille", "TraGe Travaux Geophysiques", "TrGeo Treatise on Geochemistry", "TTP.. Trends in Theoretical Physics", "TriL. Tribology Letters", "TrLit Trudy Akademiia Nauk Litovskoi", "TrSSR Trudy Akademiia Nauk SSSR Fizicheskii Institut", "TrAlm Trudy Astrofizicheskogo Instituta Alma-Ata", "TrRig Trudy Astrofiz. Lab. Riga", "TrLen Trudy Astronomicheskoj Observatorii Leningrad", "TrPul Trudy Glavnoj Astronomicheskoj Observatorii v Pulkovo", "TrSht Trudy Gosudarstvennogo Astronomicheskogo Instituta", "TrDus Trudy Instituta Astrofiziki Dushanbe", "TrSta Trudy Instituta Astrofiziki Stalinabad", "TrKaz Trudy Kazanskaia Gorodkoj Astronomicheskoj Observatorii", "TrMMO Trudy Moskovskoe Matematicheskoe Obshchestvo", "TrPet Trudy Seminar imeni G Petrovskogo", "TrTas Trudy Tashkentskoj Astronomicheskoj Observatorii", "TrTsA TsAGI Trudy", "ZaTsA TsAGI Uchenye Zapiski", "TrTsI TsIAM Trudy", "TsHUJ Tsing Hua University Journal", "TITas Tsirkulyar Astronomicheskogo Instituta Akademiya Nauk Uzbekskoj SSR", "TsLvo Tsirkulyar Astronomicheskoj Observatorii Lvov", "TsShe Tsirkulyar Shemakhinskoj Astrofizicheskoj Observatorii", "TsSta Tsirkulyar Stalinabadskoj Astronomicheskoj Observatorii", "TsTas Tsirkulyar Tashkentskoj Astronomicheskoj Observatorii", "TsVse Tsirkulyar Vses. astron.-geod. o-va", "TsPul Tsirkulyary Glavnoj Astronomicheskoj Observatorii i Pulkove", "TUAID Tuebingen Universitaet Astronomisches Institut Diplomarbeit", "TJJPT Tuijin Jishu Journal of Propulsion Technology", "TurTe Turbulentnye techeniia", "TJPh. Turkish Journal of Physics", "UkJPO Ukrainian Journal of Physical Optics", "UkFiZ Ukrainskii Fizicheskii Zhurnal", "UkMaZ Ukrainskii Matematicheskii Zhurnal", "Ultmi Ultramicroscopy", "UltIm Ultrasonic Imaging", "Ultra Ultrasonics", "Umsch Umschau", "USOC. Unified System Orbit Computation USOC", "UMIB. Unione Matematica Italiana Bollettino", "UNPSA United Nations Programme on Space Applications", "UniCl Universe Classroom", "UNAer Universita di Napoli Aeritalia S", "UCAFR Universitas Comeniana Acta Facultatis Rerum Naturalium Physica", "UMt1K Universite de Montpellier", "UECBu University Electro Communications Bulletin", "UnECR University Electro Communications Reports", "StARe University Observatory St. Andrews Scotland Reprints", "HawRe University of Hawaii Reprints", "ADUrb University of Illinois Astronomy Department Urbana Illinois", "MicRe University of Michigan Observatory Reprints", "XXFD. University of Minnesota 1969 (XXFD)", "LP... University of Minnesota Minneapolis", "OklRe University of Oklahoma Observatory Reprints", "MAUTx University of Texas Monographs in Astronomy", "PAUTx University of Texas Publications in Astronomy", "Unpub Unpublished", "UAPET Updates in Applied Physics and Electrical Technology", "UppAn Uppsala Astronomical Observatory Annals", "UppOR Uppsala Astronomical Observatory Reports", "USM.. Upravliaiushchie Sistemy i Mashiny", "UrBar Urania (Bracelona)", "Urani Urania (Krakow)", "UrMad Urania (Madrid)", "UGSJR U S Geological Survey Journal Research", "USNOC U.S. Naval Observatory Circulars", "USNOR U.S. Naval Observatory Reports", "UsFiN Uspekhi Fizicheskikh Nauk", "UMAM. Uspekhi Mekhaniki Advances Mechanics", "RpCCA USSR Report Cybernetics Computers Automation Technology JPRS UCC", "RpESc USSR Report Earth Sciences JPRS UES", "RpSpR USSR Report Space", "RpBAM USSR Report Space Biology Aerospace Medicine JPRS USB", "RpEEE USSR Rept Electron Elec Eng JPRS UEE", "RpEn. USSR Rept Energy JPRS UEN", "RpEE. USSR Rept Eng Equipment JPRS UEQ", "RLSBB USSR Rept Life Sci Biomed Behavioral Sci JPRS", "RMTME USSR Rept Machine Tools Metalworking Equipment JPRS UMM", "RpMSM USSR Rept Mater Sci Met JPRS", "RpPhM USSR Rept Phys Math JPRS UPM", "RSBAM USSR Rept Space Biol Aerospace Med Jun JPRS", "RpSBA USSR Rept Space Biol Aerospace Med Sep", "RpTr. USSR Rept Transportation JPRS UTR", "UtMat Utilitas Mathematica", "UtrOv Utrechtse Sterrekundige Overdrukken", "Vacuu Vacuum", "VVORe Van Vleck Observatory Reprints", "VSOLB Variable Star Observers League in Japan - Bulletin", "Vasio Vasiona", "VatOP Vatican Observatory Publications", "VDIF. VDI Forschungsheft", "VDIZ. VDI Z", "VDIZF VDI Zeitschriften Fortschritt Berichte Reihe Stroemungstechnik", "VSD.. Vehicle System Dynamics", "VKAWA Verhandelingen der Koninklijke Akademie van Wetenschappen te Amsterdam", "Verme Vermessungstechnik", "VeWFS Veroeffentlichung der Wilhelm Foerster Sterwarte", "ViHei Veroeffentlichungen der Badischen Landes-Sternwarte zu Heidelberg", "VeHei Veroeffentlichungen der Badischen Sternwarte zu Heidelberg", "VeGG. Veroeffentlichungen der Geod. Geophys", "VeKar Veroeffentlichungen der Grossherzoglichen Sternwarte zu Karlsruhe", "VeBam Veroeffentlichungen der Remeis-Sternwarte zu Bamberg", "VeBab Veroeffentlichungen der Sternwarte Babelsberg", "VeMun Veroeffentlichungen der Sternwarte Munchen", "VeSon Veroeffentlichungen der Sternwarte Sonneberg", "VeKie Veroeffentlichungen der Universitaets-Sternwarte Kiel", "VeKoe Veroeffentlichungen der Universitaets-Sternwarte Koenigsberg Pr.", "VeBB. Veroeffentlichungen der Universitaetssternwarte zu Berlin-Babelsberg", "VeGoe Veroeffentlichungen der Universitaets-Sternwarte zu Goettingen", "VeJen Veroeffentlichungen der Universitaets-Sternwarte zu Jena", "VeLei Veroeffentlichungen der Universitaetssternwarte zu Leipzig", "VeBoc Veroeffentlichungen des Astronomischen Instituts der Ruhr-Universitaet Bochum", "VeARI Veroeffentlichungen des Astronomischen Rechen-Instituts Heidelberg", "VeABD Veroeffentlichungen des Astronomischen Rechen-Instituts zu Berlin-Dahlem", "VeBon Veroeffentlichungen des Astronomisches Institute der Universitaet Bonn", "VeFra Veroeffentlichungen des Astronomisches Institute der Universitaet Frankfurt", "VeBKI Veroeffentlichungen des Bayerische Kommission Int. Erdmessung", "VeKAB Veroeffentlichungen des Koeniglichen Astronomischen Rechen-Instituts zu Berlin", "VeZPE Veroffentlichungen des Zentralinstituts Physik der Erde", "VMKAN Verslagen en Mededeelingen der Kon. Academie van Wetenschappen, Afd. Natuurkunde", "VeLdn Verslag van den staat der Sterrewacht te Leiden", "Vert. Vertica", "Vertf Vertiflite", "Vesmi Vesmir", "VKha. Vestnik Khar'kovskogo Universiteta", "VeKha Vestnik Khar'kov Universitet", "VKie. Vestnik Kievskogo Universiteta Seriya Astronomii", "VeLGU Vestnik LGU", "VeMos Vestnik Moskovskogo Universiteta Seriya 3 Fizika Astronomiya", "VISBD Vibration Inst Shock Vibration Digest", "VIAEA Vienna International Atomic Energy Agency", "VAG.. Vierteljahresschrift der Astronomischen Gesellschaft", "VMed. Vierteljahrschrift für Gerichtliche Medizin und Öffentliches Sanitätswesen", "VNG.. Vierteljahrsschrift der Naturforschenden Gesellschaft in Zürich", "VilCo Villanova University Observatory Contributions", "VilOB Vilnius Astronomijos Observatorijos Biuletenis", "IzVil Vilnius Izdatel Mokslas", "VJS.. Virginia Journal of Science", "VisKi Visnik Kiiv. Univ., Fiz.-Mat. Nauki, Astron", "ViGeo Vissha Geodeziia", "VA... Vistas in Astronomy", "VTJ.. Vitro Technical Journal", "yCat. VizieR Online Data Catalog", "yCatp VizieR Online Data Catalog", "VADVS VKI Advanced Design of Ventilation Systems", "VICFD VKI An Introduction to Computational Fluid Dynamics", "VIMT. VKI An Introduction to Modeling Turbulence", "VAFC. VKI Axial Flow Compressors", "VBLT. VKI Boundary Layers in Turbomachines", "VCCPP VKI Combined Cycles for Power Plants", "VCFD. VKI Computational Fluid Dynamics", "VCFDI VKI Computational Fluid Dynamics for Industrial Flows", "VCGFV VKI Computer Graphics Flow Visualization and Computational Fluid Dynamics", "VGTET VKI Gas Turbine Engine Transient Behaviour", "VIHE. VKI Industrial Heat Exchangers", "VKILV VKI Laser Velocimetry", "VKIMT VKI Measurement and Techniques", "VMTA. VKI Measurement Techniques in Aerodynamics", "VMHT. VKI Methodology Hypersonic Testing", "VMATP VKI Modeling and Applications of Transport Phenomena in Porous Media", "VADMT VKI New Approaches in the Description and Modeling of Turbulence", "VNGG. VKI Numerical Grid Generation", "VNMFT VKI Numerical Methods for Flows in Turbomachinery", "VPIDV VKI Particle Image Displacement Velocimetry", "VKIRT VKI Radial Turbines", "VKISP VKI Spacecraft Propulsion", "VTSF. VKI Turbulent Shear Flows", "VVRD. VKI Vibration Rotor Dynamics", "VLSID VLSI Design", "VAC.. Voies Aviation Civile Fall Winter", "VANTS Voprosy Atomnoi Nauki i Tekhniki Seriia Fizika Plazmy i Problemy Upravliaemykh Termoiadernykh Reaktsii", "VopDP Voprosy Dinamiki i Prochnosti", "VETT. Voprosy Elektroniki Tverdogo Tela", "VopGA Voprosy Gidrodinamiki Atmosfery", "VopK. Voprosy Kibernetiki", "VMOIP Voprosy Metrologicheskogo Obespecheniia Izmereniia Parametrov Tekhnologicheskikh Lazerov", "VoTAS Voprosy Teorii Atomnykh Stolknovenii", "VopTP Voprosy Teorii Plazmy", "VTSAU Voprosy Teorii Sistem Avtomaticheskogo Upravleniia", "VossZ Vossische Zeitung", "IzYak Vsesoiuznaia Konferentsiia Kosmicheskim Lucham Yakutsk USSR Akademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "IzYer Vsesoiuznaia Konferentsiia Kosmicheskim Lucham Yerevan Armenian SSR Aademiia Nauk SSSR Izvestiia Seriia Fizicheskaia", "RaUkr Vsesoiuznyi Simpozium Difraktsii i Rasprostraneniiu Voln Lvov Ukrainian SSR Radiofizika", "VnPM. Vychislitel naia i Prikladnaia Matematika", "VnMP. Vychislitel nye Metody i Programmirovanie", "VyGeo Vyssha Geodeziia", "WarRe Warsaw University Reprints", "WasOA Washburn Observatory Astrophysics", "GMS.. Washington DC American Geophysical Union Geophysical Monograph Series", "WRR.. Water Resources Research", "WavEl Wave Electronics", "WaMot Wave Motion", "WRCM. Waves in Random and Complex Media", "WRM.. Waves in Random Media", "Wear. Wear", "WearB Wear B", "Wthr. Weather", "WtFor Weather and Forecasting", "WeiEn Weight Engineering", "WeldJ Welding Journal", "Werk. Werkgroepnieuws", "JIMO. WGN, Journal of the International Meteor Organization", "WilOO Williamstown Observatory Observations", "WiEn. Wind Energy", "WiEng Wind Engineering", "WisBT Wissenschaftliche Berichte AEG Telefunken", "WisZe Wissenschaftliche Zeitschrift", "WSAAA Workshop Series of the Asociacion Argentina de Astronomia", "WCRp. World Climate Report", "WJCMP World Journal of Condensed Matter Physics", "WJM.. World Journal of Mechanics", "WJNSE World Journal of Nano Science and Engineering", "WJNST World Journal of Nuclear Science and Technology", "WroRe Wroclaw Astronomical Observatory Reprints", "Wuli. Wuli", "YaFiz Yadernaya Fizika", "YalOY Yale University Observatory Reports for the Year", "YUFEM Yamaguchi University Faculty of Engineering Memoirs", "YUTR. Yamaguchi University Technology Reports", "YamC. Yamamoto Circular", "ZaDN. Zagadnienia Drgan Nieliniowych", "JAMP. ZAMP Journal of Applied Mathematics and Physics", "ZaLab Zavodskaia Laboratoriia", "ZaMM. Zeitschrift Angewandte Mathematik und Mechanik", "ZaMP. Zeitschrift Angewandte Mathematik und Physik", "ZFHDG Zeitschrift der Fachsektion Hydrogeologie in der Deutschen Geologischen Gesellschaft", "ZeIE. Zeitschrift elektrische Informations und Energietechnik", "ZAGeo Zeitschrift fur Angewandte Geographie", "ZAPhy Zeitschrift fur Angewandte Physik", "ZAAC. Zeitschrift fur Anorganische und Allgemeine Chemie", "ZA... Zeitschrift fur Astrophysik", "ZEVGA Zeitschrift fur Eisenbahnwesen und Verkehrstechnik Glasers Annalen", "ZEAPC Zeitschrift für Elektrochemie und Angewandte Physikalische Chemie", "ZFlu. Zeitschrift fur Flugwissenschaften", "ZFlWe Zeitschrift fur Flugwissenschaften und Weltraumforschung", "ZGm.. Zeitschrift fur Geomorphologie", "ZGmS. Zeitschrift fur Geomorphologie Supplement", "ZGeo. Zeitschrift fur Geophysik", "ZGlGl Zeitschrift fur Gletscherkunde und Glazialgeologie", "ZK... Zeitschrift fur Kristallographie", "ZKMP. Zeitschrift fur Kristallographie Mineralogie und Petrographie", "ZKS.. Zeitschrift fur Kristallographie Supplements", "ZMP.. Zeitschrift für Mathematik und Physik", "ZMetl Zeitschrift fur Metallkunde", "ZeMet Zeitschrift fur Meteorologie", "ZPhy. Zeitschrift fur Physik", "ZPhyA Zeitschrift fur Physik A Hadrons and Nuclei", "ZPC.. Zeitschrift fur Physikalische Chemie", "ZPCF. Zeitschrift fur Physikalische Chemie Frankfurt", "ZPCL. Zeitschrift fur Physikalische Chemie Leipzig", "ZPCNF Zeitschrift fur Physikalische Chemie Neue Folge", "ZPCW. Zeitschrift fur Physikalische Chemie Wiesbaden", "ZPhyB Zeitschrift fur Physik B Condensed Matter", "ZPhyC Zeitschrift fur Physik C Particles and Fields", "ZPhyD Zeitschrift fur Physik D Atoms Molecules Clusters", "ZNatA Zeitschrift Naturforschung Teil A", "ZNatB Zeitschrift Naturforschung Teil B", "ZePAN Zeitschrift Physik Atomic Nuclei", "ZVer. Zeitschrift Vermessungswes.", "ZWer. Zeitschrift Werkstofftechnik", "ZemVs Zemlia i Vselennaia", "Zenit Zenit", "MiTau Zentralinstitut fuer Astrophysik Mitteilungen des Karl-Schwarzschild-Observatoriums Tautenburg", "MitVS Zentralinstitut fuer Astrophysik Sternwarte Sonneberg Mitteilungen ueber Veraenderliche Sterne", "ZhPmR ZhETF Pis ma Redaktsiiu", "ZhETF Zhurnal Eksperimental noi i Teoreticheskoi Fiziki", "ZhFK. Zhurnal Fizicheskoi Khimii", "ZNPFK Zhurnal Nauchnoi i Prikladnoi Fotografii i Kinematografii", "ZhPhy Zhurnal Physik", "ZhPS. Zhurnal Prikladnoi Spektroskopii", "ZhTFi Zhurnal Tekhnicheskoi Fiziki", "ZVMMF Zhurnal Vychislitel noi Matematiki i Matematicheskoi Fiziki", "ZiZa. Ziran Zazhi", "Zprav Zpravodaj VZLU", "ZvDeb Zvaigsnota Debess", }; static const int njournals = sizeof( journals ) / sizeof( journals[0] ); hs-bibutils-6.7.0.0/bibutils/bibcore.c0000644000000000000000000006235700000000000015641 0ustar0000000000000000/* * bibcore.c * * Copyright (c) Chris Putnam 2005-2018 * * Source code released under the GPL version 2 * */ #include #include #include "bibutils.h" /* internal includes */ #include "reftypes.h" #include "charsets.h" #include "str_conv.h" #include "is_ws.h" /* illegal modes to pass in, but use internally for consistency */ #define BIBL_INTERNALIN (BIBL_LASTIN+1) #define BIBL_INTERNALOUT (BIBL_LASTOUT+1) #define debug_set( p ) ( p->verbose > 1 ) #define verbose_set( p ) ( p->verbose ) static void report_params( FILE *fp, const char *f, param *p ) { fprintf( fp, "-------------------params start for %s\n", f ); fprintf( fp, "\tprogname='%s'\n\n", p->progname ); fprintf( fp, "\treadformat=%d", p->readformat ); switch ( p->readformat ) { case BIBL_INTERNALIN: fprintf( fp, " (BIBL_INTERNALIN)\n" ); break; case BIBL_MODSIN: fprintf( fp, " (BIBL_MODSIN)\n" ); break; case BIBL_BIBTEXIN: fprintf( fp, " (BIBL_BIBTEXIN)\n" ); break; case BIBL_RISIN: fprintf( fp, " (BIBL_RISIN)\n" ); break; case BIBL_ENDNOTEIN: fprintf( fp, " (BIBL_ENDNOTEIN)\n" ); break; case BIBL_COPACIN: fprintf( fp, " (BIBL_COPACIN)\n" ); break; case BIBL_ISIIN: fprintf( fp, " (BIBL_ISIIN)\n" ); break; case BIBL_MEDLINEIN: fprintf( fp, " (BIBL_MEDLINEIN)\n" ); break; case BIBL_ENDNOTEXMLIN: fprintf( fp, " (BIBL_ENDNOTEXMLIN)\n" ); break; case BIBL_BIBLATEXIN: fprintf( fp, " (BIBL_BIBLATEXIN)\n" ); break; case BIBL_EBIIN: fprintf( fp, " (BIBL_EBIIN)\n" ); break; case BIBL_WORDIN: fprintf( fp, " (BIBL_WORDIN)\n" ); break; case BIBL_NBIBIN: fprintf( fp, " (BIBL_NBIBIN)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tcharsetin=%d\n", p->charsetin ); fprintf( fp, "\tcharsetin_src=%d", p->charsetin_src ); switch ( p->charsetin_src ) { case BIBL_SRC_DEFAULT: fprintf( fp, " (BIBL_SRC_DEFAULT)\n" ); break; case BIBL_SRC_FILE: fprintf( fp, " (BIBL_SRC_FILE)\n" ); break; case BIBL_SRC_USER: fprintf( fp, " (BIBL_SRC_USER)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tutf8in=%d\n", p->utf8in ); fprintf( fp, "\tlatexin=%d\n", p->latexin ); fprintf( fp, "\txmlin=%d\n\n", p->xmlin ); fprintf( fp, "\twriteformat=%d", p->writeformat ); switch ( p->writeformat ) { case BIBL_INTERNALOUT: fprintf( fp, " (BIBL_INTERNALOUT)\n" ); break; case BIBL_ADSABSOUT: fprintf( fp, " (BIBL_ADSABSOUT)\n" ); break; case BIBL_BIBTEXOUT: fprintf( fp, " (BIBL_BIBTEXOUT)\n" ); break; case BIBL_ENDNOTEOUT: fprintf( fp, " (BIBL_ENDNOTEOUT)\n" ); break; case BIBL_ISIOUT: fprintf( fp, " (BIBL_ISIOUT)\n" ); break; case BIBL_MODSOUT: fprintf( fp, " (BIBL_MODSOUT)\n" ); break; case BIBL_NBIBOUT: fprintf( fp, " (BIBL_NBIBOUT)\n" ); break; case BIBL_RISOUT: fprintf( fp, " (BIBL_RISOUT)\n" ); break; case BIBL_WORD2007OUT: fprintf( fp, " (BIBL_WORD2007OUT)\n" ); break; default: fprintf( fp, " (Illegal value)\n"); break; } fprintf( fp, "\tcharsetout=%d\n", p->charsetout ); fprintf( fp, "\tcharsetout_src=%d", p->charsetout_src ); switch ( p->charsetout_src ) { case BIBL_SRC_DEFAULT: fprintf( fp, " (BIBL_SRC_DEFAULT)\n" ); break; case BIBL_SRC_FILE: fprintf( fp, " (BIBL_SRC_FILE)\n" ); break; case BIBL_SRC_USER: fprintf( fp, " (BIBL_SRC_USER)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tutf8out=%d\n", p->utf8out ); fprintf( fp, "\tutf8bom=%d\n", p->utf8bom ); fprintf( fp, "\tlatexout=%d\n", p->latexout ); fprintf( fp, "\txmlout=%d\n", p->xmlout ); fprintf( fp, "-------------------params end for %s\n", f ); fflush( fp ); } /* bibl_duplicateparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_duplicateparams( param *np, param *op ) { int status; slist_init( &(np->asis) ); slist_init( &(np->corps) ); status = slist_copy( &(np->asis), &(op->asis ) ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; status = slist_copy( &(np->corps), &(op->corps ) ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; if ( !op->progname ) np->progname = NULL; else { np->progname = strdup( op->progname ); if ( !np->progname ) return BIBL_ERR_MEMERR; } np->readformat = op->readformat; np->writeformat = op->writeformat; np->charsetin = op->charsetin; np->charsetin_src = op->charsetin_src; np->utf8in = op->utf8in; np->latexin = op->latexin; np->xmlin = op->xmlin; np->charsetout = op->charsetout; np->charsetout_src = op->charsetout_src; np->utf8out = op->utf8out; np->utf8bom = op->utf8bom; np->latexout = op->latexout; np->xmlout = op->xmlout; np->nosplittitle = op->nosplittitle; np->verbose = op->verbose; np->format_opts = op->format_opts; np->addcount = op->addcount; np->output_raw = op->output_raw; np->singlerefperfile = op->singlerefperfile; np->readf = op->readf; np->processf = op->processf; np->cleanf = op->cleanf; np->typef = op->typef; np->convertf = op->convertf; np->headerf = op->headerf; np->footerf = op->footerf; np->writef = op->writef; np->all = op->all; np->nall = op->nall; return BIBL_OK; } /* bibl_setreadparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_setreadparams( param *np, param *op ) { int status; status = bibl_duplicateparams( np, op ); if ( status == BIBL_OK ) { np->utf8out = 1; np->charsetout = BIBL_CHARSET_UNICODE; np->charsetout_src = BIBL_SRC_DEFAULT; np->xmlout = BIBL_XMLOUT_FALSE; np->latexout = 0; np->writeformat = BIBL_INTERNALOUT; } return status; } /* bibl_setwriteparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_setwriteparams( param *np, param *op ) { int status; status = bibl_duplicateparams( np, op ); if ( status == BIBL_OK ) { np->xmlin = 0; np->latexin = 0; np->utf8in = 1; np->charsetin = BIBL_CHARSET_UNICODE; np->charsetin_src = BIBL_SRC_DEFAULT; np->readformat = BIBL_INTERNALIN; } return status; } void bibl_freeparams( param *p ) { if ( p ) { slist_free( &(p->asis) ); slist_free( &(p->corps) ); if ( p->progname ) free( p->progname ); } } int bibl_readasis( param *p, char *f ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !f ) return BIBL_ERR_BADINPUT; status = slist_fill( &(p->asis), f, 1 ); if ( status == SLIST_ERR_CANTOPEN ) return BIBL_ERR_CANTOPEN; else if ( status == SLIST_ERR_MEMERR ) return BIBL_ERR_MEMERR; return BIBL_OK; } int bibl_readcorps( param *p, char *f ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !f ) return BIBL_ERR_BADINPUT; status = slist_fill( &(p->corps), f, 1 ); if ( status == SLIST_ERR_CANTOPEN ) return BIBL_ERR_CANTOPEN; else if ( status == 0 ) return BIBL_ERR_MEMERR; return BIBL_OK; } /* bibl_addtoasis() * * Returns BIBL_OK or BIBL_ERR_MEMERR */ int bibl_addtoasis( param *p, char *d ) { str *s; if ( !p ) return BIBL_ERR_BADINPUT; if ( !d ) return BIBL_ERR_BADINPUT; s = slist_addc( &(p->asis), d ); return ( s==NULL )? BIBL_ERR_MEMERR : BIBL_OK; } /* bibl_addtocorps() * * Returns BIBL_OK or BIBL_ERR_MEMERR */ int bibl_addtocorps( param *p, char *d ) { str *s; if ( !p ) return BIBL_ERR_BADINPUT; if ( !d ) return BIBL_ERR_BADINPUT; s = slist_addc( &(p->corps), d ); return ( s==NULL )? BIBL_ERR_MEMERR : BIBL_OK; } void bibl_reporterr( int err ) { fprintf( stderr, "Bibutils: " ); switch( err ) { case BIBL_OK: fprintf( stderr, "No error." ); break; case BIBL_ERR_BADINPUT: fprintf( stderr, "Bad input." ); break; case BIBL_ERR_MEMERR: fprintf( stderr, "Memory error." ); break; case BIBL_ERR_CANTOPEN: fprintf( stderr, "Can't open." ); break; default: fprintf( stderr, "Cannot identify error code %d.", err ); break; } fprintf( stderr, "\n" ); } static int bibl_illegalinmode( int mode ) { if ( mode < BIBL_FIRSTIN || mode > BIBL_LASTIN ) return 1; else return 0; } static int bibl_illegaloutmode( int mode ) { if ( mode < BIBL_FIRSTOUT || mode > BIBL_LASTOUT ) return 1; else return 0; } static void bibl_verbose2( fields *f, char *filename, long nrefs ) { int i, n; n = fields_num( f ); fprintf( stderr, "======== %s %ld : converted\n", filename, nrefs ); for ( i=0; inrefs; ++i ) bibl_verbose2( bin->ref[i], "", i+1 ); } /* extract_tag_value * * Extract the tag and the value for ALWAYS/DEFAULT * entries like: "GENRE:BIBUTILS|Masters thesis" * * tag = "GENRE:BIBUTILS" * value = "Masters thesis" */ static int extract_tag_value( str *tag, str *value, char *p ) { str_empty( tag ); while ( p && *p && *p!='|' ) { str_addchar( tag, *p ); p++; } if ( str_memerr( tag ) ) return BIBL_ERR_MEMERR; if ( p && *p=='|' ) p++; str_empty( value ); while ( p && *p ) { str_addchar( value, *p ); p++; } if ( str_memerr( tag ) ) return BIBL_ERR_MEMERR; return BIBL_OK; } /* process_defaultadd() * * Add tag/value pairs that have "DEFAULT" processing * unless a tag/value pair with the same tag has already * been adding during reference processing. */ static int process_defaultadd( fields *f, int reftype, param *r ) { int i, n, process, level, status, ret = BIBL_OK; str tag, value; char *p; strs_init( &tag, &value, NULL ); for ( i=0; iall[reftype].ntags; ++i ) { process = ((r->all[reftype]).tags[i]).processingtype; if ( process!=DEFAULT ) continue; level = ((r->all[reftype]).tags[i]).level; p = ((r->all[reftype]).tags[i]).newstr; status = extract_tag_value( &tag, &value, p ); if ( status!=BIBL_OK ) { ret = status; goto out; } n = fields_find( f, tag.data, level ); if ( n==FIELDS_NOTFOUND ) { status = fields_add( f, tag.data, value.data, level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &tag, &value, NULL ); return ret; } /* process_alwaysadd() * * Add tag/value pair to reference from the ALWAYS * processing type without exception (the difference from * DEFAULT processing). */ static int process_alwaysadd( fields *f, int reftype, param *r ) { int i, process, level, status, ret = BIBL_OK; str tag, value; char *p; strs_init( &tag, &value, NULL ); for ( i=0; iall[reftype].ntags; ++i ) { process = ((r->all[reftype]).tags[i]).processingtype; if ( process!=ALWAYS ) continue; level = ((r->all[reftype]).tags[i]).level; p = ((r->all[reftype]).tags[i]).newstr; status = extract_tag_value( &tag, &value, p ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = fields_add( f, tag.data, value.data, level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &tag, &value, NULL ); return ret; } static int read_ref( FILE *fp, bibl *bin, char *filename, param *p ) { int nrefs = 0, bufpos = 0, ok, ret=BIBL_OK, fcharset;/* = CHARSET_UNKNOWN;*/ str reference, line; char buf[256]=""; fields *ref; str_init( &reference ); str_init( &line ); while ( p->readf( fp, buf, sizeof(buf), &bufpos, &line, &reference, &fcharset ) ) { if ( reference.len==0 ) continue; ref = fields_new(); if ( !ref ) { ret = BIBL_ERR_MEMERR; bibl_free( bin ); goto out; } if ( p->processf( ref, reference.data, filename, nrefs+1, p )){ ok = bibl_addref( bin, ref ); if ( !ok ) { ret = BIBL_ERR_MEMERR; bibl_free( bin ); fields_delete( ref ); goto out; } } else { fields_delete( ref ); } str_empty( &reference ); if ( fcharset!=CHARSET_UNKNOWN ) { /* charset from file takes priority over default, but * not user-specified */ if ( p->charsetin_src!=BIBL_SRC_USER ) { p->charsetin_src = BIBL_SRC_FILE; p->charsetin = fcharset; if ( fcharset!=CHARSET_UNICODE ) p->utf8in = 0; } } } if ( p->charsetin==CHARSET_UNICODE ) p->utf8in = 1; out: str_free( &line ); str_free( &reference ); return ret; } /* Don't manipulate latex for URL's and the like */ static int bibl_notexify( char *tag ) { char *protected[] = { "DOI", "URL", "REFNUM", "FILEATTACH" }; int i, nprotected = sizeof( protected ) / sizeof( protected[0] ); for ( i=0; icharsetin, 0, p->utf8in, p->xmlin, p->charsetout, 0, p->utf8out, p->xmlout ); } else { ok = str_convert( data, p->charsetin, p->latexin, p->utf8in, p->xmlin, p->charsetout, p->latexout, p->utf8out, p->xmlout ); } if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* bibl_fixcharsets() * * returns BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_fixcharsets( bibl *b, param *p ) { int status = BIBL_OK; long i; for ( i=0; inrefs && status==BIBL_OK; ++i ) status = bibl_fixcharsetdata( b->ref[i], p ); return status; } static int build_refnum( fields *f, long nrefs, int *n ) { char *year, *author, *p, num[512]; int status, ret = BIBL_OK; str refnum; *n = -1; str_init( &refnum ); year = fields_findv( f, LEVEL_MAIN, FIELDS_CHRP_NOUSE, "DATE:YEAR" ); if ( !year ) year = fields_findv_firstof( f, LEVEL_ANY, FIELDS_CHRP_NOUSE, "DATE:YEAR", "PARTDATE:YEAR", NULL ); author = fields_findv( f, LEVEL_MAIN, FIELDS_CHRP_NOUSE, "AUTHOR" ); if ( !author ) author = fields_findv_firstof( f, LEVEL_ANY, FIELDS_CHRP_NOUSE, "AUTHOR", "AUTHOR:CORP", "AUTHOR:ASIS", NULL ); if ( year && author ) { p = author; while ( *p && *p!='|' ) str_addchar( &refnum, *p++ ); p = year; while ( *p && *p!=' ' && *p!='\t' ) str_addchar( &refnum, *p++ ); } else { sprintf( num, "%ld", nrefs ); str_mergestrs( &refnum, "ref", num, NULL ); } if ( str_memerr( &refnum ) ) { ret = BIBL_ERR_MEMERR; goto out; } status = fields_add( f, "REFNUM", refnum.data, LEVEL_MAIN ); if ( status!=FIELDS_OK ) ret = BIBL_ERR_MEMERR; else *n = fields_find( f, "REFNUM", LEVEL_MAIN ); out: str_free( &refnum ); return ret; } static int bibl_checkrefid( bibl *b, param *p ) { char buf[512]; int n, status; fields *ref; long i; for ( i=0; inrefs; ++i ) { ref = b->ref[i]; n = fields_find( ref, "REFNUM", LEVEL_MAIN ); if ( n==FIELDS_NOTFOUND ) { status = build_refnum( ref, i+1, &n ); if ( status!=BIBL_OK ) return status; } if ( p->addcount ) { sprintf( buf, "_%ld", i+1 ); str_strcatc( &(ref->data[n]), buf ); if ( str_memerr( &(ref->data[n]) ) ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int generate_citekey( fields *f, int nref ) { int n1, n2, status, ret; char *p, buf[100]; str citekey; str_init( &citekey ); n1 = fields_find( f, "AUTHOR", LEVEL_MAIN ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR", LEVEL_ANY ); n2 = fields_find( f, "DATE:YEAR", LEVEL_MAIN ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "DATE:YEAR", LEVEL_ANY ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "PARTDATE:YEAR", LEVEL_MAIN ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "PARTDATE:YEAR", LEVEL_ANY ); if ( n1!=FIELDS_NOTFOUND && n2!=FIELDS_NOTFOUND ) { p = f->data[n1].data; while ( p && *p && *p!='|' ) { if ( !is_ws( *p ) ) str_addchar( &citekey, *p ); p++; } p = f->data[n2].data; while ( p && *p ) { if ( !is_ws( *p ) ) str_addchar( &citekey, *p ); p++; } if ( str_memerr( &citekey ) ) { ret = -1; goto out; } status = fields_add( f, "REFNUM", citekey.data, 0 ); if ( status!=FIELDS_OK ) { ret = -1; goto out; } } else { sprintf( buf, "ref%d\n", nref ); str_strcpyc( &citekey, buf ); } ret = fields_find( f, "REFNUM", LEVEL_ANY ); out: str_free( &citekey ); return ret; } static int resolve_citekeys( bibl *b, slist *citekeys, int *dup ) { const char abc[]="abcdefghijklmnopqrstuvwxyz"; int nsame, ntmp, n, i, j, status = BIBL_OK; str tmp; str_init( &tmp ); for ( i=0; in; ++i ) { if ( dup[i]==-1 ) continue; nsame = 0; for ( j=i; jn; ++j ) { if ( dup[j]!=i ) continue; str_strcpy( &tmp, slist_str( citekeys, j ) ); if ( str_memerr( &tmp ) ) { status = BIBL_ERR_MEMERR; goto out; } ntmp = nsame; while ( ntmp >= 26 ) { str_addchar( &tmp, 'a' ); ntmp -= 26; } if ( ntmp<26 && ntmp>=0 ) str_addchar( &tmp, abc[ntmp] ); if ( str_memerr( &tmp ) ) { status = BIBL_ERR_MEMERR; goto out; } nsame++; dup[j] = -1; n = fields_find( b->ref[j], "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { str_strcpy(&((b->ref[j])->data[n]),&tmp); if ( str_memerr( &((b->ref[j])->data[n]) ) ) { status = BIBL_ERR_MEMERR; goto out; } } } } out: str_free( &tmp ); return status; } static int get_citekeys( bibl *b, slist *citekeys ) { fields *f; int i, n; str *s; for ( i=0; inrefs; ++i ) { f = b->ref[i]; n = fields_find( f, "REFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) n = generate_citekey( f, i ); if ( n!=FIELDS_NOTFOUND && f->data[n].data ) { s = slist_add( citekeys, &(f->data[n]) ); if ( !s ) return BIBL_ERR_MEMERR; } else { s = slist_addc( citekeys, "" ); if ( !s ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int dup_citekeys( bibl *b, slist *citekeys ) { int i, j, status = BIBL_OK, *dup, ndup=0; dup = ( int * ) malloc( sizeof( int ) * citekeys->n ); if ( !dup ) return BIBL_ERR_MEMERR; for ( i=0; in; ++i ) dup[i] = -1; for ( i=0; in-1; ++i ) { if ( dup[i]!=-1 ) continue; for ( j=i+1; jn; ++j ) { if ( !strcmp( slist_cstr( citekeys, i ), slist_cstr( citekeys, j ) ) ) { dup[i] = i; dup[j] = i; ndup++; } } } if ( ndup ) status = resolve_citekeys( b, citekeys, dup ); free( dup ); return status; } static int uniqueify_citekeys( bibl *b ) { slist citekeys; int status; slist_init( &citekeys ); status = get_citekeys( b, &citekeys ); if ( status!=BIBL_OK ) goto out; status = dup_citekeys( b, &citekeys ); out: slist_free( &citekeys ); return status; } static int clean_ref( bibl *bin, param *p ) { if ( p->cleanf ) return p->cleanf( bin, p ); else return BIBL_OK; } static int convert_ref( bibl *bin, char *fname, bibl *bout, param *p ) { fields *rin, *rout; int reftype = 0, ok, status; long i; for ( i=0; inrefs; ++i ) { rin = bin->ref[i]; rout = fields_new(); if ( !rout ) return BIBL_ERR_MEMERR; if ( p->typef ) reftype = p->typef( rin, fname, i+1, p ); status = p->convertf( rin, rout, reftype, p ); if ( status!=BIBL_OK ) return status; if ( p->all ) { status = process_alwaysadd( rout, reftype, p ); if ( status!=BIBL_OK ) return status; status = process_defaultadd( rout, reftype, p ); if ( status!=BIBL_OK ) return status; } ok = bibl_addref( bout, rout ); if ( !ok ) return BIBL_ERR_MEMERR; } if ( debug_set( p ) ) { fflush( stdout ); fprintf( stderr, "-------------------start for convert_ref\n"); bibl_verbose0( bout ); fprintf( stderr, "-------------------end for convert_ref\n" ); fflush( stderr ); } status = uniqueify_citekeys( bout ); return status; } int bibl_read( bibl *b, FILE *fp, char *filename, param *p ) { int ok, status; param lp; bibl bin; if ( !b ) return BIBL_ERR_BADINPUT; if ( !fp ) return BIBL_ERR_BADINPUT; if ( !p ) return BIBL_ERR_BADINPUT; if ( bibl_illegalinmode( p->readformat ) ) { if ( debug_set( p ) ) { fflush( stdout ); report_params( stderr, "bibl_read", p ); } return BIBL_ERR_BADINPUT; } status = bibl_setreadparams( &lp, p ); if ( status!=BIBL_OK ) { if ( debug_set( p ) ) { fflush( stdout ); report_params( stderr, "bibl_read", p ); } return status; } bibl_init( &bin ); status = read_ref( fp, &bin, filename, &lp ); if ( status!=BIBL_OK ) { if ( debug_set( p ) ) { fflush( stdout ); report_params( stderr, "bibl_read", &lp ); } bibl_freeparams( &lp ); return status; } if ( debug_set( p ) ) { fflush( stdout ); report_params( stderr, "bibl_read", &lp ); fprintf( stderr, "-------------------raw_input start for bibl_read\n"); bibl_verbose0( &bin ); fprintf( stderr, "-------------------raw_input end for bibl_read\n" ); fflush( stderr ); } if ( !lp.output_raw || ( lp.output_raw & BIBL_RAW_WITHCHARCONVERT ) ) { status = bibl_fixcharsets( &bin, &lp ); if ( status!=BIBL_OK ) return status; if ( debug_set( p ) ) { fprintf( stderr, "-------------------post_fixcharsets start for bibl_read\n"); bibl_verbose0( &bin ); fprintf( stderr, "-------------------post_fixcharsets end for bibl_read\n" ); fflush( stderr ); } } if ( !lp.output_raw ) { status = clean_ref( &bin, &lp ); if ( status!=BIBL_OK ) return status; if ( debug_set( p ) ) { fprintf( stderr, "-------------------post_clean_ref start for bibl_read\n"); bibl_verbose0( &bin ); fprintf( stderr, "-------------------post_clean_ref end for bibl_read\n" ); fflush( stderr ); } ok = convert_ref( &bin, filename, b, &lp ); if ( ok!=BIBL_OK ) return ok; if ( debug_set( p ) ) { fprintf( stderr, "-------------------post_convert_ref start for bibl_read\n"); bibl_verbose0( &bin ); fprintf( stderr, "-------------------post_convert_ref end for bibl_read\n" ); fflush( stderr ); } } else { if ( debug_set( p ) ) { fprintf( stderr, "-------------------here1 start for bibl_read\n"); bibl_verbose0( &bin ); fprintf( stderr, "-------------------here1 end for bibl_read\n" ); fflush( stderr ); } ok = bibl_copy( b, &bin ); if ( !ok ) { bibl_freeparams( &lp ); return BIBL_ERR_MEMERR; } } if ( !lp.output_raw || ( lp.output_raw & BIBL_RAW_WITHMAKEREFID ) ) bibl_checkrefid( b, &lp ); bibl_free( &bin ); bibl_freeparams( &lp ); return BIBL_OK; } static FILE * singlerefname( fields *reffields, long nref, int mode ) { char outfile[2048]; char suffix[5] = "xml"; FILE *fp; long count; int found; if ( mode==BIBL_ADSABSOUT ) strcpy( suffix, "ads" ); else if ( mode==BIBL_BIBTEXOUT ) strcpy( suffix, "bib" ); else if ( mode==BIBL_ENDNOTEOUT ) strcpy( suffix, "end" ); else if ( mode==BIBL_ISIOUT ) strcpy( suffix, "isi" ); else if ( mode==BIBL_MODSOUT ) strcpy( suffix, "xml" ); else if ( mode==BIBL_RISOUT ) strcpy( suffix, "ris" ); else if ( mode==BIBL_WORD2007OUT ) strcpy( suffix, "xml" ); found = fields_find( reffields, "REFNUM", LEVEL_MAIN ); /* find new filename based on reference */ if ( found!=-1 ) { sprintf( outfile,"%s.%s",reffields->data[found].data, suffix ); } else sprintf( outfile,"%ld.%s",nref, suffix ); count = 0; fp = fopen( outfile, "r" ); while ( fp ) { fclose(fp); count++; if ( count==60000 ) return NULL; if ( found!=-1 ) sprintf( outfile, "%s_%ld.%s", reffields->data[found].data, count, suffix ); else sprintf( outfile,"%ld_%ld.%s",nref, count, suffix ); fp = fopen( outfile, "r" ); } return fopen( outfile, "w" ); } static int bibl_writeeachfp( FILE *fp, bibl *b, param *p ) { int status; long i; for ( i=0; inrefs; ++i ) { fp = singlerefname( b->ref[i], i, p->writeformat ); if ( !fp ) return BIBL_ERR_CANTOPEN; if ( p->headerf ) p->headerf( fp, p ); status = p->writef( b->ref[i], fp, p, i ); if ( p->footerf ) p->footerf( fp ); fclose( fp ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int bibl_writefp( FILE *fp, bibl *b, param *p ) { int status = BIBL_OK; long i; if ( p->headerf ) p->headerf( fp, p ); for ( i=0; inrefs; ++i ) { status = p->writef( b->ref[i], fp, p, i ); if ( status!=BIBL_OK ) break; } if ( p->footerf ) p->footerf( fp ); return status; } int bibl_write( bibl *b, FILE *fp, param *p ) { int status; param lp; if ( !b ) return BIBL_ERR_BADINPUT; if ( !p ) return BIBL_ERR_BADINPUT; if ( bibl_illegaloutmode( p->writeformat ) ) return BIBL_ERR_BADINPUT; if ( !fp && !p->singlerefperfile ) return BIBL_ERR_BADINPUT; status = bibl_setwriteparams( &lp, p ); if ( status!=BIBL_OK ) return status; status = bibl_fixcharsets( b, &lp ); if ( status!=BIBL_OK ) return status; if ( debug_set( p ) ) { report_params( stderr, "bibl_write", &lp ); fflush( stdout ); fprintf( stderr, "-------------------start for bibl_write\n"); bibl_verbose0( b ); fprintf( stderr, "-------------------end for bibl_write\n" ); fflush( stderr ); } if ( p->singlerefperfile ) status = bibl_writeeachfp( fp, b, &lp ); else status = bibl_writefp( fp, b, &lp ); bibl_freeparams( &lp ); return status; } hs-bibutils-6.7.0.0/bibutils/bibcore.c0000755000000000000000000006235700000000000015644 0ustar0000000000000000/* * bibcore.c * * Copyright (c) Chris Putnam 2005-2018 * * Source code released under the GPL version 2 * */ #include #include #include "bibutils.h" /* internal includes */ #include "reftypes.h" #include "charsets.h" #include "str_conv.h" #include "is_ws.h" /* illegal modes to pass in, but use internally for consistency */ #define BIBL_INTERNALIN (BIBL_LASTIN+1) #define BIBL_INTERNALOUT (BIBL_LASTOUT+1) #define debug_set( p ) ( p->verbose > 1 ) #define verbose_set( p ) ( p->verbose ) static void report_params( FILE *fp, const char *f, param *p ) { fprintf( fp, "-------------------params start for %s\n", f ); fprintf( fp, "\tprogname='%s'\n\n", p->progname ); fprintf( fp, "\treadformat=%d", p->readformat ); switch ( p->readformat ) { case BIBL_INTERNALIN: fprintf( fp, " (BIBL_INTERNALIN)\n" ); break; case BIBL_MODSIN: fprintf( fp, " (BIBL_MODSIN)\n" ); break; case BIBL_BIBTEXIN: fprintf( fp, " (BIBL_BIBTEXIN)\n" ); break; case BIBL_RISIN: fprintf( fp, " (BIBL_RISIN)\n" ); break; case BIBL_ENDNOTEIN: fprintf( fp, " (BIBL_ENDNOTEIN)\n" ); break; case BIBL_COPACIN: fprintf( fp, " (BIBL_COPACIN)\n" ); break; case BIBL_ISIIN: fprintf( fp, " (BIBL_ISIIN)\n" ); break; case BIBL_MEDLINEIN: fprintf( fp, " (BIBL_MEDLINEIN)\n" ); break; case BIBL_ENDNOTEXMLIN: fprintf( fp, " (BIBL_ENDNOTEXMLIN)\n" ); break; case BIBL_BIBLATEXIN: fprintf( fp, " (BIBL_BIBLATEXIN)\n" ); break; case BIBL_EBIIN: fprintf( fp, " (BIBL_EBIIN)\n" ); break; case BIBL_WORDIN: fprintf( fp, " (BIBL_WORDIN)\n" ); break; case BIBL_NBIBIN: fprintf( fp, " (BIBL_NBIBIN)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tcharsetin=%d\n", p->charsetin ); fprintf( fp, "\tcharsetin_src=%d", p->charsetin_src ); switch ( p->charsetin_src ) { case BIBL_SRC_DEFAULT: fprintf( fp, " (BIBL_SRC_DEFAULT)\n" ); break; case BIBL_SRC_FILE: fprintf( fp, " (BIBL_SRC_FILE)\n" ); break; case BIBL_SRC_USER: fprintf( fp, " (BIBL_SRC_USER)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tutf8in=%d\n", p->utf8in ); fprintf( fp, "\tlatexin=%d\n", p->latexin ); fprintf( fp, "\txmlin=%d\n\n", p->xmlin ); fprintf( fp, "\twriteformat=%d", p->writeformat ); switch ( p->writeformat ) { case BIBL_INTERNALOUT: fprintf( fp, " (BIBL_INTERNALOUT)\n" ); break; case BIBL_ADSABSOUT: fprintf( fp, " (BIBL_ADSABSOUT)\n" ); break; case BIBL_BIBTEXOUT: fprintf( fp, " (BIBL_BIBTEXOUT)\n" ); break; case BIBL_ENDNOTEOUT: fprintf( fp, " (BIBL_ENDNOTEOUT)\n" ); break; case BIBL_ISIOUT: fprintf( fp, " (BIBL_ISIOUT)\n" ); break; case BIBL_MODSOUT: fprintf( fp, " (BIBL_MODSOUT)\n" ); break; case BIBL_NBIBOUT: fprintf( fp, " (BIBL_NBIBOUT)\n" ); break; case BIBL_RISOUT: fprintf( fp, " (BIBL_RISOUT)\n" ); break; case BIBL_WORD2007OUT: fprintf( fp, " (BIBL_WORD2007OUT)\n" ); break; default: fprintf( fp, " (Illegal value)\n"); break; } fprintf( fp, "\tcharsetout=%d\n", p->charsetout ); fprintf( fp, "\tcharsetout_src=%d", p->charsetout_src ); switch ( p->charsetout_src ) { case BIBL_SRC_DEFAULT: fprintf( fp, " (BIBL_SRC_DEFAULT)\n" ); break; case BIBL_SRC_FILE: fprintf( fp, " (BIBL_SRC_FILE)\n" ); break; case BIBL_SRC_USER: fprintf( fp, " (BIBL_SRC_USER)\n" ); break; default: fprintf( fp, " (Illegal value)\n" ); break; } fprintf( fp, "\tutf8out=%d\n", p->utf8out ); fprintf( fp, "\tutf8bom=%d\n", p->utf8bom ); fprintf( fp, "\tlatexout=%d\n", p->latexout ); fprintf( fp, "\txmlout=%d\n", p->xmlout ); fprintf( fp, "-------------------params end for %s\n", f ); fflush( fp ); } /* bibl_duplicateparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_duplicateparams( param *np, param *op ) { int status; slist_init( &(np->asis) ); slist_init( &(np->corps) ); status = slist_copy( &(np->asis), &(op->asis ) ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; status = slist_copy( &(np->corps), &(op->corps ) ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; if ( !op->progname ) np->progname = NULL; else { np->progname = strdup( op->progname ); if ( !np->progname ) return BIBL_ERR_MEMERR; } np->readformat = op->readformat; np->writeformat = op->writeformat; np->charsetin = op->charsetin; np->charsetin_src = op->charsetin_src; np->utf8in = op->utf8in; np->latexin = op->latexin; np->xmlin = op->xmlin; np->charsetout = op->charsetout; np->charsetout_src = op->charsetout_src; np->utf8out = op->utf8out; np->utf8bom = op->utf8bom; np->latexout = op->latexout; np->xmlout = op->xmlout; np->nosplittitle = op->nosplittitle; np->verbose = op->verbose; np->format_opts = op->format_opts; np->addcount = op->addcount; np->output_raw = op->output_raw; np->singlerefperfile = op->singlerefperfile; np->readf = op->readf; np->processf = op->processf; np->cleanf = op->cleanf; np->typef = op->typef; np->convertf = op->convertf; np->headerf = op->headerf; np->footerf = op->footerf; np->writef = op->writef; np->all = op->all; np->nall = op->nall; return BIBL_OK; } /* bibl_setreadparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_setreadparams( param *np, param *op ) { int status; status = bibl_duplicateparams( np, op ); if ( status == BIBL_OK ) { np->utf8out = 1; np->charsetout = BIBL_CHARSET_UNICODE; np->charsetout_src = BIBL_SRC_DEFAULT; np->xmlout = BIBL_XMLOUT_FALSE; np->latexout = 0; np->writeformat = BIBL_INTERNALOUT; } return status; } /* bibl_setwriteparams() * * Returns status of BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_setwriteparams( param *np, param *op ) { int status; status = bibl_duplicateparams( np, op ); if ( status == BIBL_OK ) { np->xmlin = 0; np->latexin = 0; np->utf8in = 1; np->charsetin = BIBL_CHARSET_UNICODE; np->charsetin_src = BIBL_SRC_DEFAULT; np->readformat = BIBL_INTERNALIN; } return status; } void bibl_freeparams( param *p ) { if ( p ) { slist_free( &(p->asis) ); slist_free( &(p->corps) ); if ( p->progname ) free( p->progname ); } } int bibl_readasis( param *p, char *f ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !f ) return BIBL_ERR_BADINPUT; status = slist_fill( &(p->asis), f, 1 ); if ( status == SLIST_ERR_CANTOPEN ) return BIBL_ERR_CANTOPEN; else if ( status == SLIST_ERR_MEMERR ) return BIBL_ERR_MEMERR; return BIBL_OK; } int bibl_readcorps( param *p, char *f ) { int status; if ( !p ) return BIBL_ERR_BADINPUT; if ( !f ) return BIBL_ERR_BADINPUT; status = slist_fill( &(p->corps), f, 1 ); if ( status == SLIST_ERR_CANTOPEN ) return BIBL_ERR_CANTOPEN; else if ( status == 0 ) return BIBL_ERR_MEMERR; return BIBL_OK; } /* bibl_addtoasis() * * Returns BIBL_OK or BIBL_ERR_MEMERR */ int bibl_addtoasis( param *p, char *d ) { str *s; if ( !p ) return BIBL_ERR_BADINPUT; if ( !d ) return BIBL_ERR_BADINPUT; s = slist_addc( &(p->asis), d ); return ( s==NULL )? BIBL_ERR_MEMERR : BIBL_OK; } /* bibl_addtocorps() * * Returns BIBL_OK or BIBL_ERR_MEMERR */ int bibl_addtocorps( param *p, char *d ) { str *s; if ( !p ) return BIBL_ERR_BADINPUT; if ( !d ) return BIBL_ERR_BADINPUT; s = slist_addc( &(p->corps), d ); return ( s==NULL )? BIBL_ERR_MEMERR : BIBL_OK; } void bibl_reporterr( int err ) { fprintf( stderr, "Bibutils: " ); switch( err ) { case BIBL_OK: fprintf( stderr, "No error." ); break; case BIBL_ERR_BADINPUT: fprintf( stderr, "Bad input." ); break; case BIBL_ERR_MEMERR: fprintf( stderr, "Memory error." ); break; case BIBL_ERR_CANTOPEN: fprintf( stderr, "Can't open." ); break; default: fprintf( stderr, "Cannot identify error code %d.", err ); break; } fprintf( stderr, "\n" ); } static int bibl_illegalinmode( int mode ) { if ( mode < BIBL_FIRSTIN || mode > BIBL_LASTIN ) return 1; else return 0; } static int bibl_illegaloutmode( int mode ) { if ( mode < BIBL_FIRSTOUT || mode > BIBL_LASTOUT ) return 1; else return 0; } static void bibl_verbose2( fields *f, char *filename, long nrefs ) { int i, n; n = fields_num( f ); fprintf( stderr, "======== %s %ld : converted\n", filename, nrefs ); for ( i=0; inrefs; ++i ) bibl_verbose2( bin->ref[i], "", i+1 ); } /* extract_tag_value * * Extract the tag and the value for ALWAYS/DEFAULT * entries like: "GENRE:BIBUTILS|Masters thesis" * * tag = "GENRE:BIBUTILS" * value = "Masters thesis" */ static int extract_tag_value( str *tag, str *value, char *p ) { str_empty( tag ); while ( p && *p && *p!='|' ) { str_addchar( tag, *p ); p++; } if ( str_memerr( tag ) ) return BIBL_ERR_MEMERR; if ( p && *p=='|' ) p++; str_empty( value ); while ( p && *p ) { str_addchar( value, *p ); p++; } if ( str_memerr( tag ) ) return BIBL_ERR_MEMERR; return BIBL_OK; } /* process_defaultadd() * * Add tag/value pairs that have "DEFAULT" processing * unless a tag/value pair with the same tag has already * been adding during reference processing. */ static int process_defaultadd( fields *f, int reftype, param *r ) { int i, n, process, level, status, ret = BIBL_OK; str tag, value; char *p; strs_init( &tag, &value, NULL ); for ( i=0; iall[reftype].ntags; ++i ) { process = ((r->all[reftype]).tags[i]).processingtype; if ( process!=DEFAULT ) continue; level = ((r->all[reftype]).tags[i]).level; p = ((r->all[reftype]).tags[i]).newstr; status = extract_tag_value( &tag, &value, p ); if ( status!=BIBL_OK ) { ret = status; goto out; } n = fields_find( f, tag.data, level ); if ( n==FIELDS_NOTFOUND ) { status = fields_add( f, tag.data, value.data, level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &tag, &value, NULL ); return ret; } /* process_alwaysadd() * * Add tag/value pair to reference from the ALWAYS * processing type without exception (the difference from * DEFAULT processing). */ static int process_alwaysadd( fields *f, int reftype, param *r ) { int i, process, level, status, ret = BIBL_OK; str tag, value; char *p; strs_init( &tag, &value, NULL ); for ( i=0; iall[reftype].ntags; ++i ) { process = ((r->all[reftype]).tags[i]).processingtype; if ( process!=ALWAYS ) continue; level = ((r->all[reftype]).tags[i]).level; p = ((r->all[reftype]).tags[i]).newstr; status = extract_tag_value( &tag, &value, p ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = fields_add( f, tag.data, value.data, level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &tag, &value, NULL ); return ret; } static int read_ref( FILE *fp, bibl *bin, char *filename, param *p ) { int nrefs = 0, bufpos = 0, ok, ret=BIBL_OK, fcharset;/* = CHARSET_UNKNOWN;*/ str reference, line; char buf[256]=""; fields *ref; str_init( &reference ); str_init( &line ); while ( p->readf( fp, buf, sizeof(buf), &bufpos, &line, &reference, &fcharset ) ) { if ( reference.len==0 ) continue; ref = fields_new(); if ( !ref ) { ret = BIBL_ERR_MEMERR; bibl_free( bin ); goto out; } if ( p->processf( ref, reference.data, filename, nrefs+1, p )){ ok = bibl_addref( bin, ref ); if ( !ok ) { ret = BIBL_ERR_MEMERR; bibl_free( bin ); fields_delete( ref ); goto out; } } else { fields_delete( ref ); } str_empty( &reference ); if ( fcharset!=CHARSET_UNKNOWN ) { /* charset from file takes priority over default, but * not user-specified */ if ( p->charsetin_src!=BIBL_SRC_USER ) { p->charsetin_src = BIBL_SRC_FILE; p->charsetin = fcharset; if ( fcharset!=CHARSET_UNICODE ) p->utf8in = 0; } } } if ( p->charsetin==CHARSET_UNICODE ) p->utf8in = 1; out: str_free( &line ); str_free( &reference ); return ret; } /* Don't manipulate latex for URL's and the like */ static int bibl_notexify( char *tag ) { char *protected[] = { "DOI", "URL", "REFNUM", "FILEATTACH" }; int i, nprotected = sizeof( protected ) / sizeof( protected[0] ); for ( i=0; icharsetin, 0, p->utf8in, p->xmlin, p->charsetout, 0, p->utf8out, p->xmlout ); } else { ok = str_convert( data, p->charsetin, p->latexin, p->utf8in, p->xmlin, p->charsetout, p->latexout, p->utf8out, p->xmlout ); } if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* bibl_fixcharsets() * * returns BIBL_OK or BIBL_ERR_MEMERR */ static int bibl_fixcharsets( bibl *b, param *p ) { int status = BIBL_OK; long i; for ( i=0; inrefs && status==BIBL_OK; ++i ) status = bibl_fixcharsetdata( b->ref[i], p ); return status; } static int build_refnum( fields *f, long nrefs, int *n ) { char *year, *author, *p, num[512]; int status, ret = BIBL_OK; str refnum; *n = -1; str_init( &refnum ); year = fields_findv( f, LEVEL_MAIN, FIELDS_CHRP_NOUSE, "DATE:YEAR" ); if ( !year ) year = fields_findv_firstof( f, LEVEL_ANY, FIELDS_CHRP_NOUSE, "DATE:YEAR", "PARTDATE:YEAR", NULL ); author = fields_findv( f, LEVEL_MAIN, FIELDS_CHRP_NOUSE, "AUTHOR" ); if ( !author ) author = fields_findv_firstof( f, LEVEL_ANY, FIELDS_CHRP_NOUSE, "AUTHOR", "AUTHOR:CORP", "AUTHOR:ASIS", NULL ); if ( year && author ) { p = author; while ( *p && *p!='|' ) str_addchar( &refnum, *p++ ); p = year; while ( *p && *p!=' ' && *p!='\t' ) str_addchar( &refnum, *p++ ); } else { sprintf( num, "%ld", nrefs ); str_mergestrs( &refnum, "ref", num, NULL ); } if ( str_memerr( &refnum ) ) { ret = BIBL_ERR_MEMERR; goto out; } status = fields_add( f, "REFNUM", refnum.data, LEVEL_MAIN ); if ( status!=FIELDS_OK ) ret = BIBL_ERR_MEMERR; else *n = fields_find( f, "REFNUM", LEVEL_MAIN ); out: str_free( &refnum ); return ret; } static int bibl_checkrefid( bibl *b, param *p ) { char buf[512]; int n, status; fields *ref; long i; for ( i=0; inrefs; ++i ) { ref = b->ref[i]; n = fields_find( ref, "REFNUM", LEVEL_MAIN ); if ( n==FIELDS_NOTFOUND ) { status = build_refnum( ref, i+1, &n ); if ( status!=BIBL_OK ) return status; } if ( p->addcount ) { sprintf( buf, "_%ld", i+1 ); str_strcatc( &(ref->data[n]), buf ); if ( str_memerr( &(ref->data[n]) ) ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int generate_citekey( fields *f, int nref ) { int n1, n2, status, ret; char *p, buf[100]; str citekey; str_init( &citekey ); n1 = fields_find( f, "AUTHOR", LEVEL_MAIN ); if ( n1==FIELDS_NOTFOUND ) n1 = fields_find( f, "AUTHOR", LEVEL_ANY ); n2 = fields_find( f, "DATE:YEAR", LEVEL_MAIN ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "DATE:YEAR", LEVEL_ANY ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "PARTDATE:YEAR", LEVEL_MAIN ); if ( n2==FIELDS_NOTFOUND ) n2 = fields_find( f, "PARTDATE:YEAR", LEVEL_ANY ); if ( n1!=FIELDS_NOTFOUND && n2!=FIELDS_NOTFOUND ) { p = f->data[n1].data; while ( p && *p && *p!='|' ) { if ( !is_ws( *p ) ) str_addchar( &citekey, *p ); p++; } p = f->data[n2].data; while ( p && *p ) { if ( !is_ws( *p ) ) str_addchar( &citekey, *p ); p++; } if ( str_memerr( &citekey ) ) { ret = -1; goto out; } status = fields_add( f, "REFNUM", citekey.data, 0 ); if ( status!=FIELDS_OK ) { ret = -1; goto out; } } else { sprintf( buf, "ref%d\n", nref ); str_strcpyc( &citekey, buf ); } ret = fields_find( f, "REFNUM", LEVEL_ANY ); out: str_free( &citekey ); return ret; } static int resolve_citekeys( bibl *b, slist *citekeys, int *dup ) { const char abc[]="abcdefghijklmnopqrstuvwxyz"; int nsame, ntmp, n, i, j, status = BIBL_OK; str tmp; str_init( &tmp ); for ( i=0; in; ++i ) { if ( dup[i]==-1 ) continue; nsame = 0; for ( j=i; jn; ++j ) { if ( dup[j]!=i ) continue; str_strcpy( &tmp, slist_str( citekeys, j ) ); if ( str_memerr( &tmp ) ) { status = BIBL_ERR_MEMERR; goto out; } ntmp = nsame; while ( ntmp >= 26 ) { str_addchar( &tmp, 'a' ); ntmp -= 26; } if ( ntmp<26 && ntmp>=0 ) str_addchar( &tmp, abc[ntmp] ); if ( str_memerr( &tmp ) ) { status = BIBL_ERR_MEMERR; goto out; } nsame++; dup[j] = -1; n = fields_find( b->ref[j], "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { str_strcpy(&((b->ref[j])->data[n]),&tmp); if ( str_memerr( &((b->ref[j])->data[n]) ) ) { status = BIBL_ERR_MEMERR; goto out; } } } } out: str_free( &tmp ); return status; } static int get_citekeys( bibl *b, slist *citekeys ) { fields *f; int i, n; str *s; for ( i=0; inrefs; ++i ) { f = b->ref[i]; n = fields_find( f, "REFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) n = generate_citekey( f, i ); if ( n!=FIELDS_NOTFOUND && f->data[n].data ) { s = slist_add( citekeys, &(f->data[n]) ); if ( !s ) return BIBL_ERR_MEMERR; } else { s = slist_addc( citekeys, "" ); if ( !s ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int dup_citekeys( bibl *b, slist *citekeys ) { int i, j, status = BIBL_OK, *dup, ndup=0; dup = ( int * ) malloc( sizeof( int ) * citekeys->n ); if ( !dup ) return BIBL_ERR_MEMERR; for ( i=0; in; ++i ) dup[i] = -1; for ( i=0; in-1; ++i ) { if ( dup[i]!=-1 ) continue; for ( j=i+1; jn; ++j ) { if ( !strcmp( slist_cstr( citekeys, i ), slist_cstr( citekeys, j ) ) ) { dup[i] = i; dup[j] = i; ndup++; } } } if ( ndup ) status = resolve_citekeys( b, citekeys, dup ); free( dup ); return status; } static int uniqueify_citekeys( bibl *b ) { slist citekeys; int status; slist_init( &citekeys ); status = get_citekeys( b, &citekeys ); if ( status!=BIBL_OK ) goto out; status = dup_citekeys( b, &citekeys ); out: slist_free( &citekeys ); return status; } static int clean_ref( bibl *bin, param *p ) { if ( p->cleanf ) return p->cleanf( bin, p ); else return BIBL_OK; } static int convert_ref( bibl *bin, char *fname, bibl *bout, param *p ) { fields *rin, *rout; int reftype = 0, ok, status; long i; for ( i=0; inrefs; ++i ) { rin = bin->ref[i]; rout = fields_new(); if ( !rout ) return BIBL_ERR_MEMERR; if ( p->typef ) reftype = p->typef( rin, fname, i+1, p ); status = p->convertf( rin, rout, reftype, p ); if ( status!=BIBL_OK ) return status; if ( p->all ) { status = process_alwaysadd( rout, reftype, p ); if ( status!=BIBL_OK ) return status; status = process_defaultadd( rout, reftype, p ); if ( status!=BIBL_OK ) return status; } ok = bibl_addref( bout, rout ); if ( !ok ) return BIBL_ERR_MEMERR; } if ( debug_set( p ) ) { fflush( stdout ); fprintf( stderr, "-------------------start for convert_ref\n"); bibl_verbose0( bout ); fprintf( stderr, "-------------------end for convert_ref\n" ); fflush( stderr ); } status = uniqueify_citekeys( bout ); return status; } int bibl_read( bibl *b, FILE *fp, char *filename, param *p ) { int ok, status; param lp; bibl bin; if ( !b ) return BIBL_ERR_BADINPUT; if ( !fp ) return BIBL_ERR_BADINPUT; if ( !p ) return BIBL_ERR_BADINPUT; if ( bibl_illegalinmode( p->readformat ) ) { if ( debug_set( p ) ) { fflush( stdout ); report_params( stderr, "bibl_read", p ); } return BIBL_ERR_BADINPUT; } status = bibl_setreadparams( &lp, p ); if ( status!=BIBL_OK ) { if ( debug_set( p ) ) { fflush( stdout ); report_params( stderr, "bibl_read", p ); } return status; } bibl_init( &bin ); status = read_ref( fp, &bin, filename, &lp ); if ( status!=BIBL_OK ) { if ( debug_set( p ) ) { fflush( stdout ); report_params( stderr, "bibl_read", &lp ); } bibl_freeparams( &lp ); return status; } if ( debug_set( p ) ) { fflush( stdout ); report_params( stderr, "bibl_read", &lp ); fprintf( stderr, "-------------------raw_input start for bibl_read\n"); bibl_verbose0( &bin ); fprintf( stderr, "-------------------raw_input end for bibl_read\n" ); fflush( stderr ); } if ( !lp.output_raw || ( lp.output_raw & BIBL_RAW_WITHCHARCONVERT ) ) { status = bibl_fixcharsets( &bin, &lp ); if ( status!=BIBL_OK ) return status; if ( debug_set( p ) ) { fprintf( stderr, "-------------------post_fixcharsets start for bibl_read\n"); bibl_verbose0( &bin ); fprintf( stderr, "-------------------post_fixcharsets end for bibl_read\n" ); fflush( stderr ); } } if ( !lp.output_raw ) { status = clean_ref( &bin, &lp ); if ( status!=BIBL_OK ) return status; if ( debug_set( p ) ) { fprintf( stderr, "-------------------post_clean_ref start for bibl_read\n"); bibl_verbose0( &bin ); fprintf( stderr, "-------------------post_clean_ref end for bibl_read\n" ); fflush( stderr ); } ok = convert_ref( &bin, filename, b, &lp ); if ( ok!=BIBL_OK ) return ok; if ( debug_set( p ) ) { fprintf( stderr, "-------------------post_convert_ref start for bibl_read\n"); bibl_verbose0( &bin ); fprintf( stderr, "-------------------post_convert_ref end for bibl_read\n" ); fflush( stderr ); } } else { if ( debug_set( p ) ) { fprintf( stderr, "-------------------here1 start for bibl_read\n"); bibl_verbose0( &bin ); fprintf( stderr, "-------------------here1 end for bibl_read\n" ); fflush( stderr ); } ok = bibl_copy( b, &bin ); if ( !ok ) { bibl_freeparams( &lp ); return BIBL_ERR_MEMERR; } } if ( !lp.output_raw || ( lp.output_raw & BIBL_RAW_WITHMAKEREFID ) ) bibl_checkrefid( b, &lp ); bibl_free( &bin ); bibl_freeparams( &lp ); return BIBL_OK; } static FILE * singlerefname( fields *reffields, long nref, int mode ) { char outfile[2048]; char suffix[5] = "xml"; FILE *fp; long count; int found; if ( mode==BIBL_ADSABSOUT ) strcpy( suffix, "ads" ); else if ( mode==BIBL_BIBTEXOUT ) strcpy( suffix, "bib" ); else if ( mode==BIBL_ENDNOTEOUT ) strcpy( suffix, "end" ); else if ( mode==BIBL_ISIOUT ) strcpy( suffix, "isi" ); else if ( mode==BIBL_MODSOUT ) strcpy( suffix, "xml" ); else if ( mode==BIBL_RISOUT ) strcpy( suffix, "ris" ); else if ( mode==BIBL_WORD2007OUT ) strcpy( suffix, "xml" ); found = fields_find( reffields, "REFNUM", LEVEL_MAIN ); /* find new filename based on reference */ if ( found!=-1 ) { sprintf( outfile,"%s.%s",reffields->data[found].data, suffix ); } else sprintf( outfile,"%ld.%s",nref, suffix ); count = 0; fp = fopen( outfile, "r" ); while ( fp ) { fclose(fp); count++; if ( count==60000 ) return NULL; if ( found!=-1 ) sprintf( outfile, "%s_%ld.%s", reffields->data[found].data, count, suffix ); else sprintf( outfile,"%ld_%ld.%s",nref, count, suffix ); fp = fopen( outfile, "r" ); } return fopen( outfile, "w" ); } static int bibl_writeeachfp( FILE *fp, bibl *b, param *p ) { int status; long i; for ( i=0; inrefs; ++i ) { fp = singlerefname( b->ref[i], i, p->writeformat ); if ( !fp ) return BIBL_ERR_CANTOPEN; if ( p->headerf ) p->headerf( fp, p ); status = p->writef( b->ref[i], fp, p, i ); if ( p->footerf ) p->footerf( fp ); fclose( fp ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int bibl_writefp( FILE *fp, bibl *b, param *p ) { int status = BIBL_OK; long i; if ( p->headerf ) p->headerf( fp, p ); for ( i=0; inrefs; ++i ) { status = p->writef( b->ref[i], fp, p, i ); if ( status!=BIBL_OK ) break; } if ( p->footerf ) p->footerf( fp ); return status; } int bibl_write( bibl *b, FILE *fp, param *p ) { int status; param lp; if ( !b ) return BIBL_ERR_BADINPUT; if ( !p ) return BIBL_ERR_BADINPUT; if ( bibl_illegaloutmode( p->writeformat ) ) return BIBL_ERR_BADINPUT; if ( !fp && !p->singlerefperfile ) return BIBL_ERR_BADINPUT; status = bibl_setwriteparams( &lp, p ); if ( status!=BIBL_OK ) return status; status = bibl_fixcharsets( b, &lp ); if ( status!=BIBL_OK ) return status; if ( debug_set( p ) ) { report_params( stderr, "bibl_write", &lp ); fflush( stdout ); fprintf( stderr, "-------------------start for bibl_write\n"); bibl_verbose0( b ); fprintf( stderr, "-------------------end for bibl_write\n" ); fflush( stderr ); } if ( p->singlerefperfile ) status = bibl_writeeachfp( fp, b, &lp ); else status = bibl_writefp( fp, b, &lp ); bibl_freeparams( &lp ); return status; } hs-bibutils-6.7.0.0/bibutils/bibformats.h0000755000000000000000000000263300000000000016363 0ustar0000000000000000/* * bibformats.h * * Copyright (c) Chris Putnam 2007-2018 * * Source code released under the GPL version 2 * */ #ifndef BIBFORMATS_H #define BIBFORMATS_H #include "bibutils.h" void adsout_initparams ( param *p, const char *progname ); void biblatexin_initparams( param *p, const char *progname ); void bibtexin_initparams ( param *p, const char *progname ); void bibtexout_initparams ( param *p, const char *progname ); void copacin_initparams ( param *p, const char *progname ); void ebiin_initparams ( param *p, const char *progname ); void endin_initparams ( param *p, const char *progname ); void endout_initparams ( param *p, const char *progname ); void endxmlin_initparams ( param *p, const char *progname ); void isiin_initparams ( param *p, const char *progname ); void isiout_initparams ( param *p, const char *progname ); void medin_initparams ( param *p, const char *progname ); void modsin_initparams ( param *p, const char *progname ); void modsout_initparams ( param *p, const char *progname ); void nbibin_initparams ( param *p, const char *progname ); void nbibout_initparams ( param *p, const char *progname ); void risin_initparams ( param *p, const char *progname ); void risout_initparams ( param *p, const char *progname ); void wordin_initparams ( param *p, const char *progname ); void wordout_initparams ( param *p, const char *progname ); #endif hs-bibutils-6.7.0.0/bibutils/bibl.c0000644000000000000000000000361600000000000015135 0ustar0000000000000000/* * bibl.c * * Copyright (c) Chris Putnam 2005-2018 * * Source code released under the GPL version 2 * */ #include #include #include "bibl.h" void bibl_init( bibl *b ) { b->nrefs = b->maxrefs = 0L; b->ref = NULL; } static int bibl_malloc( bibl * b ) { int alloc = 50; b->nrefs = 0; b->ref = ( fields ** ) malloc( sizeof( fields* ) * alloc ); if ( b->ref ) { b->maxrefs = alloc; return 1; } else { fprintf( stderr, "%s: allocation error\n", __FUNCTION__ ); return 0; } } static int bibl_realloc( bibl * b ) { int alloc = b->maxrefs * 2; fields **more; more = ( fields ** ) realloc( b->ref, sizeof( fields* ) * alloc ); if ( more ) { b->ref = more; b->maxrefs = alloc; return 1; } else { fprintf( stderr, "%s: allocation error\n", __FUNCTION__ ); return 0; } } int bibl_addref( bibl *b, fields *ref ) { int ok = 1; if ( b->maxrefs==0 ) ok = bibl_malloc( b ); else if ( b->nrefs >= b->maxrefs ) ok = bibl_realloc( b ); if ( ok ) { b->ref[ b->nrefs ] = ref; b->nrefs++; } return ok; } void bibl_free( bibl *b ) { long i; for ( i=0; inrefs; ++i ) fields_delete( b->ref[i] ); if ( b->ref ) free( b->ref ); b->ref = NULL; b->nrefs = b->maxrefs = 0; } /* bibl_copy() * * returns 1 on success, 0 on failure (memory error) */ int bibl_copy( bibl *bout, bibl *bin ) { fields *refin, *refout; int i, j, n, status, ok, level; char *tag, *value; for ( i=0; inrefs; ++i ) { refin = bin->ref[i]; refout = fields_new(); if ( !refout ) return 0; n = fields_num( refin ); for ( j=0; j #include #include "bibl.h" void bibl_init( bibl *b ) { b->nrefs = b->maxrefs = 0L; b->ref = NULL; } static int bibl_malloc( bibl * b ) { int alloc = 50; b->nrefs = 0; b->ref = ( fields ** ) malloc( sizeof( fields* ) * alloc ); if ( b->ref ) { b->maxrefs = alloc; return 1; } else { fprintf( stderr, "%s: allocation error\n", __FUNCTION__ ); return 0; } } static int bibl_realloc( bibl * b ) { int alloc = b->maxrefs * 2; fields **more; more = ( fields ** ) realloc( b->ref, sizeof( fields* ) * alloc ); if ( more ) { b->ref = more; b->maxrefs = alloc; return 1; } else { fprintf( stderr, "%s: allocation error\n", __FUNCTION__ ); return 0; } } int bibl_addref( bibl *b, fields *ref ) { int ok = 1; if ( b->maxrefs==0 ) ok = bibl_malloc( b ); else if ( b->nrefs >= b->maxrefs ) ok = bibl_realloc( b ); if ( ok ) { b->ref[ b->nrefs ] = ref; b->nrefs++; } return ok; } void bibl_free( bibl *b ) { long i; for ( i=0; inrefs; ++i ) fields_delete( b->ref[i] ); if ( b->ref ) free( b->ref ); b->ref = NULL; b->nrefs = b->maxrefs = 0; } /* bibl_copy() * * returns 1 on success, 0 on failure (memory error) */ int bibl_copy( bibl *bout, bibl *bin ) { fields *refin, *refout; int i, j, n, status, ok, level; char *tag, *value; for ( i=0; inrefs; ++i ) { refin = bin->ref[i]; refout = fields_new(); if ( !refout ) return 0; n = fields_num( refin ); for ( j=0; j #include "str.h" #include "fields.h" #include "reftypes.h" typedef struct { long nrefs; long maxrefs; fields **ref; } bibl; extern void bibl_init( bibl *b ); extern int bibl_addref( bibl *b, fields *ref ); extern void bibl_free( bibl *b ); extern int bibl_copy( bibl *bout, bibl *bin ); #endif hs-bibutils-6.7.0.0/bibutils/biblatexin.c0000644000000000000000000011144700000000000016350 0ustar0000000000000000/* * biblatexin.c * * Copyright (c) Chris Putnam 2008-2018 * Copyright (c) Johannes Wilm 2010-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "strsearch.h" #include "str.h" #include "utf8.h" #include "str_conv.h" #include "fields.h" #include "slist.h" #include "name.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants biblatex_all[]; extern int biblatex_nall; static slist find = { 0, 0, 0, NULL }; static slist replace = { 0, 0, 0, NULL }; /***************************************************** PUBLIC: void biblatexin_initparams() *****************************************************/ static int biblatexin_convertf( fields *bibin, fields *info, int reftype, param *p ); static int biblatexin_processf( fields *bibin, char *data, char *filename, long nref, param *p ); static int biblatexin_cleanf( bibl *bin, param *p ); static int biblatexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int biblatexin_typef( fields *bibin, char *filename, int nrefs, param *p ); void biblatexin_initparams( param *p, const char *progname ) { p->readformat = BIBL_BIBLATEXIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 1; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = biblatexin_readf; p->processf = biblatexin_processf; p->cleanf = biblatexin_cleanf; p->typef = biblatexin_typef; p->convertf = biblatexin_convertf; p->all = biblatex_all; p->nall = biblatex_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int biblatexin_readf() *****************************************************/ /* * readf can "read too far", so we store this information in line, thus * the next new text is in line, either from having read too far or * from the next chunk obtained via str_fget() * * return 1 on success, 0 on error/end-of-file * */ static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } /* * readf() * * returns zero if cannot get reference and hit end of-file * returns 1 if last reference in file, 2 if reference within file */ static int biblatexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0; char *p; while ( haveref!=2 && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( line->len == 0 ) continue; /* blank line */ p = &(line->data[0]); p = skip_ws( p ); if ( *p == '%' ) { /* commented out line */ str_empty( line ); continue; } if ( *p == '@' ) haveref++; if ( haveref && haveref<2 ) { str_strcatc( reference, p ); str_addchar( reference, '\n' ); str_empty( line ); } else if ( !haveref ) str_empty( line ); } *fcharset = CHARSET_UNKNOWN; return haveref; } /***************************************************** PUBLIC: int biblatexin_processf() *****************************************************/ static char * process_biblatextype( char *p, str *type ) { str tmp; str_init( &tmp ); if ( *p=='@' ) p++; p = str_cpytodelim( &tmp, p, "{( \t\r\n", 0 ); p = skip_ws( p ); if ( *p=='{' || *p=='(' ) p++; p = skip_ws( p ); if ( str_has_value( &tmp ) ) str_strcpy( type, &tmp ); else str_empty( type ); str_free( &tmp ); return p; } static char * process_biblatexid( char *p, str *id ) { char *start_p = p; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, p, ",", 1 ); if ( str_has_value( &tmp ) ) { if ( strchr( tmp.data, '=' ) ) { /* Endnote writes biblatex files w/o fields, try to * distinguish via presence of an equal sign.... if * it's there, assume that it's a tag/data pair instead * and roll back. */ p = start_p; str_empty( id ); } else { str_strcpy( id, &tmp ); } } else { str_empty( id ); } str_free( &tmp ); return skip_ws( p ); } static char * biblatex_tag( char *p, str *tag ) { p = str_cpytodelim( tag, skip_ws( p ), "= \t\r\n", 0 ); return skip_ws( p ); } static char * biblatex_data( char *p, fields *bibin, slist *tokens, long nref, param *pm ) { unsigned int nbracket = 0, nquotes = 0; char *startp = p; str tok, *s; str_init( &tok ); while ( p && *p ) { if ( !nquotes && !nbracket ) { if ( *p==',' || *p=='=' || *p=='}' || *p==')' ) goto out; } if ( *p=='\"' && nbracket==0 && ( p==startp || *(p-1)!='\\' ) ) { nquotes = !nquotes; str_addchar( &tok, *p ); if ( !nquotes ) { s = slist_add( tokens, &tok ); if ( !s ) { p = NULL; goto outerr; } str_empty( &tok ); } } else if ( *p=='#' && !nquotes && !nbracket ) { if ( str_has_value( &tok ) ) { s = slist_add( tokens, &tok ); if ( !s ) { p = NULL; goto outerr; } } str_strcpyc( &tok, "#" ); s = slist_add( tokens, &tok ); if ( !s ) { p = NULL; goto outerr; } str_empty( &tok ); } else if ( *p=='{' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket++; str_addchar( &tok, *p ); } else if ( *p=='}' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket--; str_addchar( &tok, *p ); if ( nbracket==0 ) { s = slist_add( tokens, &tok ); if ( !s ) { p = NULL; goto outerr; } str_empty( &tok ); } } else if ( !is_ws( *p ) || nquotes || nbracket ) { if ( !is_ws( *p ) ) str_addchar( &tok, *p ); else { if ( tok.len!=0 && *p!='\n' && *p!='\r' ) str_addchar( &tok, *p ); else if ( tok.len!=0 && (*p=='\n' || *p=='\r')) { str_addchar( &tok, ' ' ); while ( is_ws( *(p+1) ) ) p++; } } } else if ( is_ws( *p ) ) { if ( str_has_value( &tok ) ) { s = slist_add( tokens, &tok ); if ( !s ) { p = NULL; goto outerr; } str_empty( &tok ); } } p++; } out: if ( nbracket!=0 ) { fprintf( stderr, "%s: Mismatch in number of brackets in reference %ld\n", pm->progname, nref ); } if ( nquotes!=0 ) { fprintf( stderr, "%s: Mismatch in number of quotes in reference %ld\n", pm->progname, nref ); } if ( str_has_value( &tok ) ) { s = slist_add( tokens, &tok ); if ( !s ) p = NULL; } outerr: str_free( &tok ); return p; } /* replace_strings() * * do string replacement -- only if unprotected by quotation marks or curly brackets */ static void replace_strings( slist *tokens, fields *bibin, long nref, param *pm ) { int i, n, ok; char *q; str *s; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( s->data, "#" ) ) { } else if ( s->data[0]!='\"' && s->data[0]!='{' ) { n = slist_find( &find, s ); if ( n!=-1 ) { str_strcpy( s, slist_str( &replace, n ) ); } else { q = s->data; ok = 1; while ( *q && ok ) { if ( !isdigit( *q ) ) ok = 0; q++; } if ( !ok ) { fprintf( stderr, "%s: Warning: Non-numeric " "BibTeX elements should be in quotations or " "curly brackets in reference %ld\n", pm->progname, nref ); } } } i++; } } static int string_concatenate( slist *tokens, fields *bibin, long nref, param *pm ) { int i, status; str *s, *t; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( str_cstr( s ), "#" ) ) { if ( i==0 || i==tokens->n-1 ) { fprintf( stderr, "%s: Warning: Stray string concatenation " "('#' character) in reference %ld\n", pm->progname, nref ); status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; continue; } s = slist_str( tokens, i-1 ); if ( s->data[0]!='\"' && s->data[s->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); t = slist_str( tokens, i+1 ); if ( t->data[0]!='\"' && t->data[s->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); if ( ( s->data[s->len-1]=='\"' && t->data[0]=='\"') || (s->data[s->len-1]=='}' && t->data[0]=='{') ) { str_trimend( s, 1 ); str_trimbegin( t, 1 ); str_strcat( s, t ); } else { str_strcat( s, t ); } status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } else i++; } return BIBL_OK; } static char * process_biblatexline( char *p, str *tag, str *data, uchar stripquotes, long nref, param *pm ) { int i, status; slist tokens; str *s; str_empty( data ); p = biblatex_tag( p, tag ); if ( str_is_empty( tag ) ) { /* ...skip this line */ while ( *p && *p!='\n' && *p!='\r' ) p++; while ( *p=='\n' || *p=='\r' ) p++; return p; } slist_init( &tokens ); if ( *p=='=' ) p = biblatex_data( p+1, NULL, &tokens, nref, pm ); replace_strings( &tokens, NULL, nref, pm ); status = string_concatenate( &tokens, NULL, nref, pm ); if ( status!=BIBL_OK ) { p = NULL; goto out; } for ( i=0; idata[0]=='\"' && s->data[s->len-1]=='\"' ) || ( s->data[0]=='{' && s->data[s->len-1]=='}' ) ) { str_trimbegin( s, 1 ); str_trimend( s, 1 ); } str_strcat( data, slist_str( &tokens, i ) ); } out: slist_free( &tokens ); return p; } static int process_cite( fields *bibin, char *p, char *filename, long nref, param *pm ) { int fstatus, status = BIBL_OK; str type, id, tag, data; strs_init( &type, &id, &tag, &data, NULL ); p = process_biblatextype( p, &type ); p = process_biblatexid( p, &id ); if ( str_is_empty( &type ) || str_is_empty( &id ) ) goto out; fstatus = fields_add( bibin, "INTERNAL_TYPE", str_cstr( &type ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( bibin, "REFNUM", str_cstr( &id ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p ) { p = process_biblatexline( p, &tag, &data, 1, nref, pm ); if ( !p ) { status = BIBL_ERR_MEMERR; goto out; } /* no anonymous or empty fields allowed */ if ( str_has_value( &tag ) && str_has_value( &data ) ) { fstatus = fields_add( bibin, str_cstr( &tag ), str_cstr( &data ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } strs_empty( &tag, &data, NULL ); } out: strs_free( &type, &id, &tag, &data, NULL ); return status; } /* process_string() * * Handle lines like: * * '@STRING{TL = {Tetrahedron Lett.}}' * * p should point to just after '@STRING' * * In BibTeX, if a string is defined several times, the last one is kept. * */ static int process_string( char *p, long nref, param *pm ) { int n, status = BIBL_OK; str s1, s2, *s; strs_init( &s1, &s2, NULL ); while ( *p && *p!='{' && *p!='(' ) p++; if ( *p=='{' || *p=='(' ) p++; (void) process_biblatexline( skip_ws( p ), &s1, &s2, 0, nref, pm ); if ( str_has_value( &s2 ) ) { str_findreplace( &s2, "\\ ", " " ); if ( str_memerr( &s2 ) ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &s1 ) ) { n = slist_find( &find, &s1 ); if ( n==-1 ) { s = slist_add( &find, &s1 ); if ( s==NULL ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s2 ) ) s = slist_add( &replace, &s2 ); else s = slist_addc( &replace, "" ); if ( s==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } else { if ( str_has_value( &s2 ) ) s = slist_set( &replace, n, &s2 ); else s = slist_setc( &replace, n, "" ); if ( s==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &s1, &s2, NULL ); return status; } static int biblatexin_processf( fields *bibin, char *data, char *filename, long nref, param *p ) { if ( !strncasecmp( data, "@STRING", 7 ) ) { process_string( data+7, nref, p ); return 0; } else { process_cite( bibin, data, filename, nref, p ); return 1; } } /***************************************************** PUBLIC: void biblatexin_cleanf() *****************************************************/ static void biblatex_process_tilde( str *s ) { char *p, *q; int n = 0; p = q = s->data; if ( !p ) return; while ( *p ) { if ( *p=='~' ) { *q = ' '; } else if ( *p=='\\' && *(p+1)=='~' ) { n++; p++; *q = '~'; } else { *q = *p; } p++; q++; } *q = '\0'; s->len -= n; } static void biblatex_process_bracket( str *s ) { char *p, *q; int n = 0; p = q = s->data; if ( !p ) return; while ( *p ) { if ( *p=='\\' && ( *(p+1)=='{' || *(p+1)=='}' ) ) { n++; p++; *q = *p; q++; } else if ( *p=='{' || *p=='}' ) { n++; } else { *q = *p; q++; } p++; } *q = '\0'; s->len -= n; } static int biblatex_cleantoken( str *s ) { /* 'textcomp' annotations */ str_findreplace( s, "\\textit", "" ); str_findreplace( s, "\\textbf", "" ); str_findreplace( s, "\\textsl", "" ); str_findreplace( s, "\\textsc", "" ); str_findreplace( s, "\\textsf", "" ); str_findreplace( s, "\\texttt", "" ); str_findreplace( s, "\\textsubscript", "" ); str_findreplace( s, "\\textsuperscript", "" ); str_findreplace( s, "\\emph", "" ); str_findreplace( s, "\\url", "" ); /* Other text annotations */ str_findreplace( s, "\\it ", "" ); str_findreplace( s, "\\em ", "" ); str_findreplace( s, "\\%", "%" ); str_findreplace( s, "\\$", "$" ); while ( str_findreplace( s, " ", " " ) ) {} /* 'textcomp' annotations that we don't want to substitute on output*/ str_findreplace( s, "\\textdollar", "$" ); str_findreplace( s, "\\textunderscore", "_" ); biblatex_process_bracket( s ); biblatex_process_tilde( s ); if ( !str_memerr( s ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static int biblatex_split( slist *tokens, str *s ) { int i, n = s->len, nbrackets = 0, status = BIBL_OK; str tok, *t; str_init( &tok ); for ( i=0; idata[i]=='{' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets++; str_addchar( &tok, '{' ); } else if ( s->data[i]=='}' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets--; str_addchar( &tok, '}' ); } else if ( !is_ws( s->data[i] ) || nbrackets ) { str_addchar( &tok, s->data[i] ); } else if ( is_ws( s->data[i] ) ) { if ( str_memerr( &tok ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &tok ) ) { t = slist_add( tokens, &tok ); if ( !t ) { status = BIBL_ERR_MEMERR; goto out; } } str_empty( &tok ); } } if ( str_has_value( &tok ) ) { if ( str_memerr( &tok ) ) { status = BIBL_ERR_MEMERR; goto out; } t = slist_add( tokens, &tok ); if ( !t ) { status = BIBL_ERR_MEMERR; goto out; } } for ( i=0; in; ++i ) { t = slist_str( tokens, i ); str_trimstartingws( t ); str_trimendingws( t ); if ( str_memerr( t ) ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &tok ); return status; } static int biblatexin_addtitleurl( fields *info, str *in ) { int fstatus, status = BIBL_OK; char *p; str s; str_init( &s ); /* skip past "\href{" */ p = str_cpytodelim( &s, in->data + 6, "}", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( info, "URL", s.data, 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } (void) str_cpytodelim( &s, p, "", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } str_swapstrings( &s, in ); out: str_free( &s ); return status; } static int is_name_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "author" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editor" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editorb" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editorc" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "director" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "producer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "execproducer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "writer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "redactor" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "annotator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "commentator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "translator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "foreword" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "afterword" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "introduction" ) ) return 1; } return 0; } static int is_url_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "url" ) ) return 1; } return 0; } static int biblatexin_cleandata( str *tag, str *s, fields *info, param *p ) { slist tokens; str *tok; int i, status = BIBL_OK; if ( str_is_empty( s ) ) return status; /* protect url from undergoing any parsing */ if ( is_url_tag( tag ) ) return status; slist_init( &tokens ); biblatex_split( &tokens, s ); for ( i=0; ilatexin && !is_name_tag( tag ) ) { status = biblatex_cleantoken( slist_str( &tokens, i ) ); if ( status!=BIBL_OK ) goto out; } } str_empty( s ); for ( i=0; i0 ) str_addchar( s, ' ' ); str_strcat( s, tok ); } out: slist_free( &tokens ); return status; } static long biblatexin_findref( bibl *bin, char *citekey ) { int n; long i; for ( i=0; inrefs; ++i ) { n = fields_find( bin->ref[i], "refnum", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; if ( !strcmp( bin->ref[i]->data[n].data, citekey ) ) return i; } return -1; } static void biblatexin_nocrossref( bibl *bin, long i, int n, param *p ) { int n1 = fields_find( bin->ref[i], "REFNUM", LEVEL_ANY ); if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find cross-reference '%s'", bin->ref[i]->data[n].data); if ( n1!=FIELDS_NOTFOUND ) fprintf( stderr, " for reference '%s'", bin->ref[i]->data[n1].data ); fprintf( stderr, "\n" ); } static int biblatexin_crossref_oneref( fields *ref, fields *cross ) { int j, nl, ntype, fstatus; char *type, *nt, *nd; ntype = fields_find( ref, "INTERNAL_TYPE", LEVEL_ANY ); type = ( char * ) fields_value( ref, ntype, FIELDS_CHRP_NOUSE ); for ( j=0; jn; ++j ) { nt = ( char * ) fields_tag( cross, j, FIELDS_CHRP_NOUSE ); if ( !strcasecmp( nt, "INTERNAL_TYPE" ) ) continue; if ( !strcasecmp( nt, "REFNUM" ) ) continue; if ( !strcasecmp( nt, "TITLE" ) ) { if ( !strcasecmp( type, "Inproceedings" ) || !strcasecmp( type, "Incollection" ) ) nt = "booktitle"; } nd = ( char * ) fields_value( cross, j, FIELDS_CHRP_NOUSE ); nl = fields_level( cross, j ) + 1; fstatus = fields_add( ref, nt, nd, nl ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int biblatexin_crossref( bibl *bin, param *p ) { int n, ncross, status = BIBL_OK; fields *ref, *cross; long i; for ( i=0; inrefs; ++i ) { ref = bin->ref[i]; n = fields_find( ref, "CROSSREF", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; fields_setused( ref, n ); ncross = biblatexin_findref(bin, (char*)fields_value(ref,n, FIELDS_CHRP_NOUSE)); if ( ncross==-1 ) { biblatexin_nocrossref( bin, i, n, p ); continue; } cross = bin->ref[ncross]; status = biblatexin_crossref_oneref( ref, cross ); if ( status!=BIBL_OK ) return status; } return status; } static int biblatexin_cleanref( fields *bibin, param *p ) { int i, n, status; str *t, *d; n = fields_num( bibin ); for ( i=0; inrefs; ++i ) { status = biblatexin_cleanref( bin->ref[i], p ); if ( status!=BIBL_OK ) return status; } status = biblatexin_crossref( bin, p ); return status; } /***************************************************** PUBLIC: void biblatexin_typef() *****************************************************/ static int biblatexin_typef( fields *bibin, char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename=""; ntypename = fields_find( bibin, "INTERNAL_TYPE", LEVEL_MAIN ); nrefname = fields_find( bibin, "REFNUM", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( bibin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( bibin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int biblatexin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* get_title_elements() * * find all of the biblatex title elements for the current level * internal "TITLE" -> "title", "booktitle", "maintitle" * internal "SUBTITLE" -> "subtitle", "booksubtitle", "mainsubtitle" * internal "TITLEADDON" -> "titleaddon", "booktitleaddon", "maintitleaddon" * * place in ttl, subttl, and ttladdon strings * * return 1 if an element is found, 0 if not */ static int get_title_elements( fields *bibin, int currlevel, int reftype, variants *all, int nall, str *ttl, str *subttl, str *ttladdon ) { int nfields, process, level, i; str *t, *d; char *newtag; strs_empty( ttl, subttl, ttladdon, NULL ); nfields = fields_num( bibin ); for ( i=0; ilen == 0 ) continue; if ( !translate_oldtag( t->data, reftype, all, nall, &process, &level, &newtag ) ) continue; if ( process != TITLE ) continue; if ( level != currlevel ) continue; fields_setused( bibin, i ); if ( !strcasecmp( newtag, "TITLE" ) ) { if ( str_has_value( ttl ) ) str_addchar( ttl, ' ' ); str_strcat( ttl, d ); } else if ( !strcasecmp( newtag, "SUBTITLE" ) ) { if ( str_has_value( subttl ) ) str_addchar( subttl, ' ' ); str_strcat( subttl, d ); } else if ( !strcasecmp( newtag, "TITLEADDON" ) ) { if ( str_has_value( ttladdon ) ) str_addchar( ttladdon, ' ' ); str_strcat( ttladdon, d ); } } return ( ttl->len>0 || subttl->len > 0 || ttladdon->len > 0 ); } /* attach_subtitle() * * Add subtitle (if exists) to the title */ static void attach_subtitle( str *title, str *subtitle ) { if ( str_has_value( subtitle ) ) { if ( str_has_value( title ) ) { if ( title->data[title->len-1]!=':' && title->data[title->len-1]!='?' ) str_addchar( title, ':' ); str_addchar( title, ' ' ); } str_strcat( title, subtitle ); } } /* attach_addon() * * Add titleaddon (if exists) to the title. */ static void attach_addon( str *title, str *addon ) { if ( str_has_value( addon ) ) { if ( str_has_value( title ) ) { if ( title->data[title->len-1]!='.' ) str_addchar( title, '.' ); str_addchar( title, ' ' ); } str_strcat( title, addon ); } } static int process_combined_title( fields *info, str *ttl, str *subttl, str *ttladdon, int currlevel ) { int fstatus, status = BIBL_OK; str combined; str_init( &combined ); str_strcpy( &combined, ttl ); attach_subtitle( &combined, subttl ); attach_addon( &combined, ttladdon ); if ( str_memerr( &combined ) ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( info, "TITLE", combined.data, currlevel ); if ( fstatus==FIELDS_OK ) status = BIBL_ERR_MEMERR; out: str_free( &combined ); return status; } static int process_separated_title( fields *info, str *ttl, str *subttl, str *ttladdon, int currlevel ) { int fstatus; if ( str_has_value( ttladdon ) ) { if ( subttl->len ) attach_addon( subttl, ttladdon ); else attach_addon( ttl, ttladdon ); } if ( str_has_value( ttl ) ) { fstatus = fields_add( info, "TITLE", str_cstr( ttl ), currlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( str_has_value( subttl ) ) { fstatus = fields_add( info, "SUBTITLE", str_cstr( subttl ), currlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int process_title_all( fields *bibin, fields *info, int reftype, param *p ) { int currlevel, found, status = BIBL_OK; str ttl, subttl, ttladdon; strs_init( &ttl, &subttl, &ttladdon, NULL ); for ( currlevel = 0; currlevelall, p->nall, &ttl, &subttl, &ttladdon ); if ( !found ) continue; if ( p->nosplittitle ) status = process_combined_title( info, &ttl, &subttl, &ttladdon, currlevel ); else status = process_separated_title( info, &ttl, &subttl, &ttladdon, currlevel ); if ( status!=BIBL_OK ) goto out; } out: strs_free( &ttl, &subttl, &ttladdon, NULL ); return status; } static int biblatex_matches_list( fields *info, char *tag, char *suffix, str *data, int level, slist *names, int *match ) { int i, fstatus, status = BIBL_OK; str newtag; *match = 0; if ( names->n==0 ) return status; str_init( &newtag ); for ( i=0; in; ++i ) { if ( strcmp( str_cstr( data ), slist_cstr( names, i ) ) ) continue; str_initstrc( &newtag, tag ); str_strcatc( &newtag, suffix ); fstatus = fields_add( info, str_cstr( &newtag ), str_cstr( data ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } *match = 1; goto out; } out: str_free( &newtag ); return status; } static int biblatex_names( fields *info, char *tag, str *data, int level, slist *asis, slist *corps ) { int begin, end, ok, n, etal, i, match, status = BIBL_OK; slist tokens; /* If we match the asis or corps list add and bail. */ status = biblatex_matches_list( info, tag, ":ASIS", data, level, asis, &match ); if ( match==1 || status!=BIBL_OK ) return status; status = biblatex_matches_list( info, tag, ":CORP", data, level, corps, &match ); if ( match==1 || status!=BIBL_OK ) return status; slist_init( &tokens ); biblatex_split( &tokens, data ); for ( i=0; idata; int fstatus = FIELDS_OK; /* type in the @thesis is used to distinguish Ph.D. and Master's thesis */ if ( !strncasecmp( p, "phdthesis", 9 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Ph.D. thesis", level ); } else if ( !strncasecmp( p, "mastersthesis", 13 ) || !strncasecmp( p, "masterthesis", 12 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Masters thesis", level ); } else if ( !strncasecmp( p, "mathesis", 8 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Masters thesis", level ); } else if ( !strncasecmp( p, "diploma", 7 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Diploma thesis", level ); } else if ( !strncasecmp( p, "habilitation", 12 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Habilitation thesis", level ); } if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static int biblatexin_bteprint( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int neprint, netype, fstatus; char *eprint = NULL, *etype = NULL; neprint = fields_find( bibin, "eprint", LEVEL_ANY ); netype = fields_find( bibin, "eprinttype", LEVEL_ANY ); if ( neprint!=FIELDS_NOTFOUND ) eprint = bibin->data[neprint].data; if ( netype!=FIELDS_NOTFOUND ) etype = bibin->data[netype].data; if ( eprint && etype ) { if ( !strncasecmp( etype, "arxiv", 5 ) ) { fstatus = fields_add( bibout, "ARXIV", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "jstor", 5 ) ) { fstatus = fields_add( bibout, "JSTOR", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "pubmed", 6 ) ) { fstatus = fields_add( bibout, "PMID", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "medline", 7 ) ) { fstatus = fields_add( bibout, "MEDLINE", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else { fstatus = fields_add( bibout, "EPRINT", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fstatus = fields_add( bibout, "EPRINTTYPE", etype, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } fields_setused( bibin, neprint ); fields_setused( bibin, netype ); } else if ( eprint ) { fstatus = fields_add( bibout, "EPRINT", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fields_setused( bibin, neprint ); } else if ( etype ) { fstatus = fields_add( bibout, "EPRINTTYPE", etype, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fields_setused( bibin, netype ); } return BIBL_OK; } static int biblatexin_btgenre( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( fields_add( bibout, "GENRE:BIBUTILS", str_cstr( invalue ), level ) == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* biblatexin_howpublished() * * howpublished={}, * * Normally indicates the manner in which something was * published in lieu of a formal publisher, so typically * 'howpublished' and 'publisher' will never be in the * same reference. * * Occasionally, people put Diploma thesis information * into this field, so check for that first. */ static int biblatexin_howpublished( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus; if ( !strncasecmp( str_cstr( invalue ), "Diplom", 6 ) ) fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Diploma thesis", level ); else if ( !strncasecmp( str_cstr( invalue ), "Habilitation", 13 ) ) fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Habilitation thesis", level ); else fstatus = fields_add( bibout, "PUBLISHER", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* * biblatex has multiple editor fields "editor", "editora", "editorb", "editorc", * each of which can be modified from a type of "EDITOR" via "editortype", * "editoratype", "editorbtype", "editorctype". * * Defined types: * "editor" * "collaborator" * "compiler" * "redactor" * * "reviser" ? * "founder" ? * "continuator" ? * * bibtex-chicago * * "director" * "producer" * "conductor" * "none" (for performer) */ static int biblatexin_blteditor( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *editor_fields[] = { "editor", "editora", "editorb", "editorc" }; char *editor_types[] = { "editortype", "editoratype", "editorbtype", "editorctype" }; int i, n = 0, ntype, neditors = sizeof( editor_fields ) / sizeof( editor_fields[0] ); char *type, *usetag = "EDITOR"; for ( i=1; idata, editor_fields[i] ) ) n = i; ntype = fields_find( bibin, editor_types[n], LEVEL_ANY ); if ( ntype!=FIELDS_NOTFOUND ) { type = fields_value( bibin, ntype, FIELDS_CHRP_NOUSE ); if ( !strcasecmp( type, "collaborator" ) ) usetag = "COLLABORATOR"; else if ( !strcasecmp( type, "compiler" ) ) usetag = "COMPILER"; else if ( !strcasecmp( type, "redactor" ) ) usetag = "REDACTOR"; else if ( !strcasecmp( type, "director" ) ) usetag = "DIRECTOR"; else if ( !strcasecmp( type, "producer" ) ) usetag = "PRODUCER"; else if ( !strcasecmp( type, "none" ) ) usetag = "PERFORMER"; } return biblatex_names( bibout, usetag, invalue, level, &(pm->asis), &(pm->corps) ); } static int biblatexin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return biblatex_names( bibout, outtag, invalue, level, &(pm->asis), &(pm->corps) ); } static void biblatexin_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "INTERNAL_TYPE" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, " Cannot find tag '%s'\n", tag ); } } static int biblatexin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ PAGES ] = generic_pages, [ NOTES ] = generic_notes, [ PERSON ] = biblatexin_person, [ BLT_EDITOR ] = biblatexin_blteditor, [ HOWPUBLISHED ] = biblatexin_howpublished, [ URL ] = generic_url, [ GENRE ] = biblatexin_btgenre, [ BT_EPRINT ] = biblatexin_bteprint, [ BLT_THESIS_TYPE ] = biblatexin_bltthesistype, [ BLT_SCHOOL ] = biblatexin_bltschool, [ BLT_SUBTYPE ] = biblatexin_bltsubtype, [ BLT_SKIP ] = generic_skip, [ TITLE ] = generic_null, /* delay processing until later */ }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; idata, reftype, p->all, p->nall, &process, &level, &outtag ) ) { biblatexin_notag( p, intag->data ); continue; } status = convertfns[ process ]( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; if ( convertfns[ process ] != generic_null ) fields_setused( bibin, i ); } status = process_title_all( bibin, bibout, reftype, p ); if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stdout ); return status; } hs-bibutils-6.7.0.0/bibutils/biblatexin.c0000755000000000000000000011144700000000000016353 0ustar0000000000000000/* * biblatexin.c * * Copyright (c) Chris Putnam 2008-2018 * Copyright (c) Johannes Wilm 2010-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "strsearch.h" #include "str.h" #include "utf8.h" #include "str_conv.h" #include "fields.h" #include "slist.h" #include "name.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants biblatex_all[]; extern int biblatex_nall; static slist find = { 0, 0, 0, NULL }; static slist replace = { 0, 0, 0, NULL }; /***************************************************** PUBLIC: void biblatexin_initparams() *****************************************************/ static int biblatexin_convertf( fields *bibin, fields *info, int reftype, param *p ); static int biblatexin_processf( fields *bibin, char *data, char *filename, long nref, param *p ); static int biblatexin_cleanf( bibl *bin, param *p ); static int biblatexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int biblatexin_typef( fields *bibin, char *filename, int nrefs, param *p ); void biblatexin_initparams( param *p, const char *progname ) { p->readformat = BIBL_BIBLATEXIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 1; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = biblatexin_readf; p->processf = biblatexin_processf; p->cleanf = biblatexin_cleanf; p->typef = biblatexin_typef; p->convertf = biblatexin_convertf; p->all = biblatex_all; p->nall = biblatex_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int biblatexin_readf() *****************************************************/ /* * readf can "read too far", so we store this information in line, thus * the next new text is in line, either from having read too far or * from the next chunk obtained via str_fget() * * return 1 on success, 0 on error/end-of-file * */ static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } /* * readf() * * returns zero if cannot get reference and hit end of-file * returns 1 if last reference in file, 2 if reference within file */ static int biblatexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0; char *p; while ( haveref!=2 && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( line->len == 0 ) continue; /* blank line */ p = &(line->data[0]); p = skip_ws( p ); if ( *p == '%' ) { /* commented out line */ str_empty( line ); continue; } if ( *p == '@' ) haveref++; if ( haveref && haveref<2 ) { str_strcatc( reference, p ); str_addchar( reference, '\n' ); str_empty( line ); } else if ( !haveref ) str_empty( line ); } *fcharset = CHARSET_UNKNOWN; return haveref; } /***************************************************** PUBLIC: int biblatexin_processf() *****************************************************/ static char * process_biblatextype( char *p, str *type ) { str tmp; str_init( &tmp ); if ( *p=='@' ) p++; p = str_cpytodelim( &tmp, p, "{( \t\r\n", 0 ); p = skip_ws( p ); if ( *p=='{' || *p=='(' ) p++; p = skip_ws( p ); if ( str_has_value( &tmp ) ) str_strcpy( type, &tmp ); else str_empty( type ); str_free( &tmp ); return p; } static char * process_biblatexid( char *p, str *id ) { char *start_p = p; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, p, ",", 1 ); if ( str_has_value( &tmp ) ) { if ( strchr( tmp.data, '=' ) ) { /* Endnote writes biblatex files w/o fields, try to * distinguish via presence of an equal sign.... if * it's there, assume that it's a tag/data pair instead * and roll back. */ p = start_p; str_empty( id ); } else { str_strcpy( id, &tmp ); } } else { str_empty( id ); } str_free( &tmp ); return skip_ws( p ); } static char * biblatex_tag( char *p, str *tag ) { p = str_cpytodelim( tag, skip_ws( p ), "= \t\r\n", 0 ); return skip_ws( p ); } static char * biblatex_data( char *p, fields *bibin, slist *tokens, long nref, param *pm ) { unsigned int nbracket = 0, nquotes = 0; char *startp = p; str tok, *s; str_init( &tok ); while ( p && *p ) { if ( !nquotes && !nbracket ) { if ( *p==',' || *p=='=' || *p=='}' || *p==')' ) goto out; } if ( *p=='\"' && nbracket==0 && ( p==startp || *(p-1)!='\\' ) ) { nquotes = !nquotes; str_addchar( &tok, *p ); if ( !nquotes ) { s = slist_add( tokens, &tok ); if ( !s ) { p = NULL; goto outerr; } str_empty( &tok ); } } else if ( *p=='#' && !nquotes && !nbracket ) { if ( str_has_value( &tok ) ) { s = slist_add( tokens, &tok ); if ( !s ) { p = NULL; goto outerr; } } str_strcpyc( &tok, "#" ); s = slist_add( tokens, &tok ); if ( !s ) { p = NULL; goto outerr; } str_empty( &tok ); } else if ( *p=='{' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket++; str_addchar( &tok, *p ); } else if ( *p=='}' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket--; str_addchar( &tok, *p ); if ( nbracket==0 ) { s = slist_add( tokens, &tok ); if ( !s ) { p = NULL; goto outerr; } str_empty( &tok ); } } else if ( !is_ws( *p ) || nquotes || nbracket ) { if ( !is_ws( *p ) ) str_addchar( &tok, *p ); else { if ( tok.len!=0 && *p!='\n' && *p!='\r' ) str_addchar( &tok, *p ); else if ( tok.len!=0 && (*p=='\n' || *p=='\r')) { str_addchar( &tok, ' ' ); while ( is_ws( *(p+1) ) ) p++; } } } else if ( is_ws( *p ) ) { if ( str_has_value( &tok ) ) { s = slist_add( tokens, &tok ); if ( !s ) { p = NULL; goto outerr; } str_empty( &tok ); } } p++; } out: if ( nbracket!=0 ) { fprintf( stderr, "%s: Mismatch in number of brackets in reference %ld\n", pm->progname, nref ); } if ( nquotes!=0 ) { fprintf( stderr, "%s: Mismatch in number of quotes in reference %ld\n", pm->progname, nref ); } if ( str_has_value( &tok ) ) { s = slist_add( tokens, &tok ); if ( !s ) p = NULL; } outerr: str_free( &tok ); return p; } /* replace_strings() * * do string replacement -- only if unprotected by quotation marks or curly brackets */ static void replace_strings( slist *tokens, fields *bibin, long nref, param *pm ) { int i, n, ok; char *q; str *s; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( s->data, "#" ) ) { } else if ( s->data[0]!='\"' && s->data[0]!='{' ) { n = slist_find( &find, s ); if ( n!=-1 ) { str_strcpy( s, slist_str( &replace, n ) ); } else { q = s->data; ok = 1; while ( *q && ok ) { if ( !isdigit( *q ) ) ok = 0; q++; } if ( !ok ) { fprintf( stderr, "%s: Warning: Non-numeric " "BibTeX elements should be in quotations or " "curly brackets in reference %ld\n", pm->progname, nref ); } } } i++; } } static int string_concatenate( slist *tokens, fields *bibin, long nref, param *pm ) { int i, status; str *s, *t; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( str_cstr( s ), "#" ) ) { if ( i==0 || i==tokens->n-1 ) { fprintf( stderr, "%s: Warning: Stray string concatenation " "('#' character) in reference %ld\n", pm->progname, nref ); status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; continue; } s = slist_str( tokens, i-1 ); if ( s->data[0]!='\"' && s->data[s->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); t = slist_str( tokens, i+1 ); if ( t->data[0]!='\"' && t->data[s->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); if ( ( s->data[s->len-1]=='\"' && t->data[0]=='\"') || (s->data[s->len-1]=='}' && t->data[0]=='{') ) { str_trimend( s, 1 ); str_trimbegin( t, 1 ); str_strcat( s, t ); } else { str_strcat( s, t ); } status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } else i++; } return BIBL_OK; } static char * process_biblatexline( char *p, str *tag, str *data, uchar stripquotes, long nref, param *pm ) { int i, status; slist tokens; str *s; str_empty( data ); p = biblatex_tag( p, tag ); if ( str_is_empty( tag ) ) { /* ...skip this line */ while ( *p && *p!='\n' && *p!='\r' ) p++; while ( *p=='\n' || *p=='\r' ) p++; return p; } slist_init( &tokens ); if ( *p=='=' ) p = biblatex_data( p+1, NULL, &tokens, nref, pm ); replace_strings( &tokens, NULL, nref, pm ); status = string_concatenate( &tokens, NULL, nref, pm ); if ( status!=BIBL_OK ) { p = NULL; goto out; } for ( i=0; idata[0]=='\"' && s->data[s->len-1]=='\"' ) || ( s->data[0]=='{' && s->data[s->len-1]=='}' ) ) { str_trimbegin( s, 1 ); str_trimend( s, 1 ); } str_strcat( data, slist_str( &tokens, i ) ); } out: slist_free( &tokens ); return p; } static int process_cite( fields *bibin, char *p, char *filename, long nref, param *pm ) { int fstatus, status = BIBL_OK; str type, id, tag, data; strs_init( &type, &id, &tag, &data, NULL ); p = process_biblatextype( p, &type ); p = process_biblatexid( p, &id ); if ( str_is_empty( &type ) || str_is_empty( &id ) ) goto out; fstatus = fields_add( bibin, "INTERNAL_TYPE", str_cstr( &type ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( bibin, "REFNUM", str_cstr( &id ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p ) { p = process_biblatexline( p, &tag, &data, 1, nref, pm ); if ( !p ) { status = BIBL_ERR_MEMERR; goto out; } /* no anonymous or empty fields allowed */ if ( str_has_value( &tag ) && str_has_value( &data ) ) { fstatus = fields_add( bibin, str_cstr( &tag ), str_cstr( &data ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } strs_empty( &tag, &data, NULL ); } out: strs_free( &type, &id, &tag, &data, NULL ); return status; } /* process_string() * * Handle lines like: * * '@STRING{TL = {Tetrahedron Lett.}}' * * p should point to just after '@STRING' * * In BibTeX, if a string is defined several times, the last one is kept. * */ static int process_string( char *p, long nref, param *pm ) { int n, status = BIBL_OK; str s1, s2, *s; strs_init( &s1, &s2, NULL ); while ( *p && *p!='{' && *p!='(' ) p++; if ( *p=='{' || *p=='(' ) p++; (void) process_biblatexline( skip_ws( p ), &s1, &s2, 0, nref, pm ); if ( str_has_value( &s2 ) ) { str_findreplace( &s2, "\\ ", " " ); if ( str_memerr( &s2 ) ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &s1 ) ) { n = slist_find( &find, &s1 ); if ( n==-1 ) { s = slist_add( &find, &s1 ); if ( s==NULL ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s2 ) ) s = slist_add( &replace, &s2 ); else s = slist_addc( &replace, "" ); if ( s==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } else { if ( str_has_value( &s2 ) ) s = slist_set( &replace, n, &s2 ); else s = slist_setc( &replace, n, "" ); if ( s==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &s1, &s2, NULL ); return status; } static int biblatexin_processf( fields *bibin, char *data, char *filename, long nref, param *p ) { if ( !strncasecmp( data, "@STRING", 7 ) ) { process_string( data+7, nref, p ); return 0; } else { process_cite( bibin, data, filename, nref, p ); return 1; } } /***************************************************** PUBLIC: void biblatexin_cleanf() *****************************************************/ static void biblatex_process_tilde( str *s ) { char *p, *q; int n = 0; p = q = s->data; if ( !p ) return; while ( *p ) { if ( *p=='~' ) { *q = ' '; } else if ( *p=='\\' && *(p+1)=='~' ) { n++; p++; *q = '~'; } else { *q = *p; } p++; q++; } *q = '\0'; s->len -= n; } static void biblatex_process_bracket( str *s ) { char *p, *q; int n = 0; p = q = s->data; if ( !p ) return; while ( *p ) { if ( *p=='\\' && ( *(p+1)=='{' || *(p+1)=='}' ) ) { n++; p++; *q = *p; q++; } else if ( *p=='{' || *p=='}' ) { n++; } else { *q = *p; q++; } p++; } *q = '\0'; s->len -= n; } static int biblatex_cleantoken( str *s ) { /* 'textcomp' annotations */ str_findreplace( s, "\\textit", "" ); str_findreplace( s, "\\textbf", "" ); str_findreplace( s, "\\textsl", "" ); str_findreplace( s, "\\textsc", "" ); str_findreplace( s, "\\textsf", "" ); str_findreplace( s, "\\texttt", "" ); str_findreplace( s, "\\textsubscript", "" ); str_findreplace( s, "\\textsuperscript", "" ); str_findreplace( s, "\\emph", "" ); str_findreplace( s, "\\url", "" ); /* Other text annotations */ str_findreplace( s, "\\it ", "" ); str_findreplace( s, "\\em ", "" ); str_findreplace( s, "\\%", "%" ); str_findreplace( s, "\\$", "$" ); while ( str_findreplace( s, " ", " " ) ) {} /* 'textcomp' annotations that we don't want to substitute on output*/ str_findreplace( s, "\\textdollar", "$" ); str_findreplace( s, "\\textunderscore", "_" ); biblatex_process_bracket( s ); biblatex_process_tilde( s ); if ( !str_memerr( s ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static int biblatex_split( slist *tokens, str *s ) { int i, n = s->len, nbrackets = 0, status = BIBL_OK; str tok, *t; str_init( &tok ); for ( i=0; idata[i]=='{' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets++; str_addchar( &tok, '{' ); } else if ( s->data[i]=='}' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets--; str_addchar( &tok, '}' ); } else if ( !is_ws( s->data[i] ) || nbrackets ) { str_addchar( &tok, s->data[i] ); } else if ( is_ws( s->data[i] ) ) { if ( str_memerr( &tok ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &tok ) ) { t = slist_add( tokens, &tok ); if ( !t ) { status = BIBL_ERR_MEMERR; goto out; } } str_empty( &tok ); } } if ( str_has_value( &tok ) ) { if ( str_memerr( &tok ) ) { status = BIBL_ERR_MEMERR; goto out; } t = slist_add( tokens, &tok ); if ( !t ) { status = BIBL_ERR_MEMERR; goto out; } } for ( i=0; in; ++i ) { t = slist_str( tokens, i ); str_trimstartingws( t ); str_trimendingws( t ); if ( str_memerr( t ) ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &tok ); return status; } static int biblatexin_addtitleurl( fields *info, str *in ) { int fstatus, status = BIBL_OK; char *p; str s; str_init( &s ); /* skip past "\href{" */ p = str_cpytodelim( &s, in->data + 6, "}", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( info, "URL", s.data, 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } (void) str_cpytodelim( &s, p, "", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } str_swapstrings( &s, in ); out: str_free( &s ); return status; } static int is_name_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "author" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editor" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editorb" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editorc" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "director" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "producer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "execproducer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "writer" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "redactor" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "annotator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "commentator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "translator" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "foreword" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "afterword" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "introduction" ) ) return 1; } return 0; } static int is_url_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "url" ) ) return 1; } return 0; } static int biblatexin_cleandata( str *tag, str *s, fields *info, param *p ) { slist tokens; str *tok; int i, status = BIBL_OK; if ( str_is_empty( s ) ) return status; /* protect url from undergoing any parsing */ if ( is_url_tag( tag ) ) return status; slist_init( &tokens ); biblatex_split( &tokens, s ); for ( i=0; ilatexin && !is_name_tag( tag ) ) { status = biblatex_cleantoken( slist_str( &tokens, i ) ); if ( status!=BIBL_OK ) goto out; } } str_empty( s ); for ( i=0; i0 ) str_addchar( s, ' ' ); str_strcat( s, tok ); } out: slist_free( &tokens ); return status; } static long biblatexin_findref( bibl *bin, char *citekey ) { int n; long i; for ( i=0; inrefs; ++i ) { n = fields_find( bin->ref[i], "refnum", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; if ( !strcmp( bin->ref[i]->data[n].data, citekey ) ) return i; } return -1; } static void biblatexin_nocrossref( bibl *bin, long i, int n, param *p ) { int n1 = fields_find( bin->ref[i], "REFNUM", LEVEL_ANY ); if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find cross-reference '%s'", bin->ref[i]->data[n].data); if ( n1!=FIELDS_NOTFOUND ) fprintf( stderr, " for reference '%s'", bin->ref[i]->data[n1].data ); fprintf( stderr, "\n" ); } static int biblatexin_crossref_oneref( fields *ref, fields *cross ) { int j, nl, ntype, fstatus; char *type, *nt, *nd; ntype = fields_find( ref, "INTERNAL_TYPE", LEVEL_ANY ); type = ( char * ) fields_value( ref, ntype, FIELDS_CHRP_NOUSE ); for ( j=0; jn; ++j ) { nt = ( char * ) fields_tag( cross, j, FIELDS_CHRP_NOUSE ); if ( !strcasecmp( nt, "INTERNAL_TYPE" ) ) continue; if ( !strcasecmp( nt, "REFNUM" ) ) continue; if ( !strcasecmp( nt, "TITLE" ) ) { if ( !strcasecmp( type, "Inproceedings" ) || !strcasecmp( type, "Incollection" ) ) nt = "booktitle"; } nd = ( char * ) fields_value( cross, j, FIELDS_CHRP_NOUSE ); nl = fields_level( cross, j ) + 1; fstatus = fields_add( ref, nt, nd, nl ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int biblatexin_crossref( bibl *bin, param *p ) { int n, ncross, status = BIBL_OK; fields *ref, *cross; long i; for ( i=0; inrefs; ++i ) { ref = bin->ref[i]; n = fields_find( ref, "CROSSREF", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; fields_setused( ref, n ); ncross = biblatexin_findref(bin, (char*)fields_value(ref,n, FIELDS_CHRP_NOUSE)); if ( ncross==-1 ) { biblatexin_nocrossref( bin, i, n, p ); continue; } cross = bin->ref[ncross]; status = biblatexin_crossref_oneref( ref, cross ); if ( status!=BIBL_OK ) return status; } return status; } static int biblatexin_cleanref( fields *bibin, param *p ) { int i, n, status; str *t, *d; n = fields_num( bibin ); for ( i=0; inrefs; ++i ) { status = biblatexin_cleanref( bin->ref[i], p ); if ( status!=BIBL_OK ) return status; } status = biblatexin_crossref( bin, p ); return status; } /***************************************************** PUBLIC: void biblatexin_typef() *****************************************************/ static int biblatexin_typef( fields *bibin, char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename=""; ntypename = fields_find( bibin, "INTERNAL_TYPE", LEVEL_MAIN ); nrefname = fields_find( bibin, "REFNUM", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( bibin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( bibin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int biblatexin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* get_title_elements() * * find all of the biblatex title elements for the current level * internal "TITLE" -> "title", "booktitle", "maintitle" * internal "SUBTITLE" -> "subtitle", "booksubtitle", "mainsubtitle" * internal "TITLEADDON" -> "titleaddon", "booktitleaddon", "maintitleaddon" * * place in ttl, subttl, and ttladdon strings * * return 1 if an element is found, 0 if not */ static int get_title_elements( fields *bibin, int currlevel, int reftype, variants *all, int nall, str *ttl, str *subttl, str *ttladdon ) { int nfields, process, level, i; str *t, *d; char *newtag; strs_empty( ttl, subttl, ttladdon, NULL ); nfields = fields_num( bibin ); for ( i=0; ilen == 0 ) continue; if ( !translate_oldtag( t->data, reftype, all, nall, &process, &level, &newtag ) ) continue; if ( process != TITLE ) continue; if ( level != currlevel ) continue; fields_setused( bibin, i ); if ( !strcasecmp( newtag, "TITLE" ) ) { if ( str_has_value( ttl ) ) str_addchar( ttl, ' ' ); str_strcat( ttl, d ); } else if ( !strcasecmp( newtag, "SUBTITLE" ) ) { if ( str_has_value( subttl ) ) str_addchar( subttl, ' ' ); str_strcat( subttl, d ); } else if ( !strcasecmp( newtag, "TITLEADDON" ) ) { if ( str_has_value( ttladdon ) ) str_addchar( ttladdon, ' ' ); str_strcat( ttladdon, d ); } } return ( ttl->len>0 || subttl->len > 0 || ttladdon->len > 0 ); } /* attach_subtitle() * * Add subtitle (if exists) to the title */ static void attach_subtitle( str *title, str *subtitle ) { if ( str_has_value( subtitle ) ) { if ( str_has_value( title ) ) { if ( title->data[title->len-1]!=':' && title->data[title->len-1]!='?' ) str_addchar( title, ':' ); str_addchar( title, ' ' ); } str_strcat( title, subtitle ); } } /* attach_addon() * * Add titleaddon (if exists) to the title. */ static void attach_addon( str *title, str *addon ) { if ( str_has_value( addon ) ) { if ( str_has_value( title ) ) { if ( title->data[title->len-1]!='.' ) str_addchar( title, '.' ); str_addchar( title, ' ' ); } str_strcat( title, addon ); } } static int process_combined_title( fields *info, str *ttl, str *subttl, str *ttladdon, int currlevel ) { int fstatus, status = BIBL_OK; str combined; str_init( &combined ); str_strcpy( &combined, ttl ); attach_subtitle( &combined, subttl ); attach_addon( &combined, ttladdon ); if ( str_memerr( &combined ) ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( info, "TITLE", combined.data, currlevel ); if ( fstatus==FIELDS_OK ) status = BIBL_ERR_MEMERR; out: str_free( &combined ); return status; } static int process_separated_title( fields *info, str *ttl, str *subttl, str *ttladdon, int currlevel ) { int fstatus; if ( str_has_value( ttladdon ) ) { if ( subttl->len ) attach_addon( subttl, ttladdon ); else attach_addon( ttl, ttladdon ); } if ( str_has_value( ttl ) ) { fstatus = fields_add( info, "TITLE", str_cstr( ttl ), currlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( str_has_value( subttl ) ) { fstatus = fields_add( info, "SUBTITLE", str_cstr( subttl ), currlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int process_title_all( fields *bibin, fields *info, int reftype, param *p ) { int currlevel, found, status = BIBL_OK; str ttl, subttl, ttladdon; strs_init( &ttl, &subttl, &ttladdon, NULL ); for ( currlevel = 0; currlevelall, p->nall, &ttl, &subttl, &ttladdon ); if ( !found ) continue; if ( p->nosplittitle ) status = process_combined_title( info, &ttl, &subttl, &ttladdon, currlevel ); else status = process_separated_title( info, &ttl, &subttl, &ttladdon, currlevel ); if ( status!=BIBL_OK ) goto out; } out: strs_free( &ttl, &subttl, &ttladdon, NULL ); return status; } static int biblatex_matches_list( fields *info, char *tag, char *suffix, str *data, int level, slist *names, int *match ) { int i, fstatus, status = BIBL_OK; str newtag; *match = 0; if ( names->n==0 ) return status; str_init( &newtag ); for ( i=0; in; ++i ) { if ( strcmp( str_cstr( data ), slist_cstr( names, i ) ) ) continue; str_initstrc( &newtag, tag ); str_strcatc( &newtag, suffix ); fstatus = fields_add( info, str_cstr( &newtag ), str_cstr( data ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } *match = 1; goto out; } out: str_free( &newtag ); return status; } static int biblatex_names( fields *info, char *tag, str *data, int level, slist *asis, slist *corps ) { int begin, end, ok, n, etal, i, match, status = BIBL_OK; slist tokens; /* If we match the asis or corps list add and bail. */ status = biblatex_matches_list( info, tag, ":ASIS", data, level, asis, &match ); if ( match==1 || status!=BIBL_OK ) return status; status = biblatex_matches_list( info, tag, ":CORP", data, level, corps, &match ); if ( match==1 || status!=BIBL_OK ) return status; slist_init( &tokens ); biblatex_split( &tokens, data ); for ( i=0; idata; int fstatus = FIELDS_OK; /* type in the @thesis is used to distinguish Ph.D. and Master's thesis */ if ( !strncasecmp( p, "phdthesis", 9 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Ph.D. thesis", level ); } else if ( !strncasecmp( p, "mastersthesis", 13 ) || !strncasecmp( p, "masterthesis", 12 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Masters thesis", level ); } else if ( !strncasecmp( p, "mathesis", 8 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Masters thesis", level ); } else if ( !strncasecmp( p, "diploma", 7 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Diploma thesis", level ); } else if ( !strncasecmp( p, "habilitation", 12 ) ) { fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Habilitation thesis", level ); } if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static int biblatexin_bteprint( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int neprint, netype, fstatus; char *eprint = NULL, *etype = NULL; neprint = fields_find( bibin, "eprint", LEVEL_ANY ); netype = fields_find( bibin, "eprinttype", LEVEL_ANY ); if ( neprint!=FIELDS_NOTFOUND ) eprint = bibin->data[neprint].data; if ( netype!=FIELDS_NOTFOUND ) etype = bibin->data[netype].data; if ( eprint && etype ) { if ( !strncasecmp( etype, "arxiv", 5 ) ) { fstatus = fields_add( bibout, "ARXIV", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "jstor", 5 ) ) { fstatus = fields_add( bibout, "JSTOR", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "pubmed", 6 ) ) { fstatus = fields_add( bibout, "PMID", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strncasecmp( etype, "medline", 7 ) ) { fstatus = fields_add( bibout, "MEDLINE", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else { fstatus = fields_add( bibout, "EPRINT", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fstatus = fields_add( bibout, "EPRINTTYPE", etype, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } fields_setused( bibin, neprint ); fields_setused( bibin, netype ); } else if ( eprint ) { fstatus = fields_add( bibout, "EPRINT", eprint, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fields_setused( bibin, neprint ); } else if ( etype ) { fstatus = fields_add( bibout, "EPRINTTYPE", etype, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; fields_setused( bibin, netype ); } return BIBL_OK; } static int biblatexin_btgenre( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( fields_add( bibout, "GENRE:BIBUTILS", str_cstr( invalue ), level ) == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* biblatexin_howpublished() * * howpublished={}, * * Normally indicates the manner in which something was * published in lieu of a formal publisher, so typically * 'howpublished' and 'publisher' will never be in the * same reference. * * Occasionally, people put Diploma thesis information * into this field, so check for that first. */ static int biblatexin_howpublished( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus; if ( !strncasecmp( str_cstr( invalue ), "Diplom", 6 ) ) fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Diploma thesis", level ); else if ( !strncasecmp( str_cstr( invalue ), "Habilitation", 13 ) ) fstatus = fields_replace_or_add( bibout, "GENRE:BIBUTILS", "Habilitation thesis", level ); else fstatus = fields_add( bibout, "PUBLISHER", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* * biblatex has multiple editor fields "editor", "editora", "editorb", "editorc", * each of which can be modified from a type of "EDITOR" via "editortype", * "editoratype", "editorbtype", "editorctype". * * Defined types: * "editor" * "collaborator" * "compiler" * "redactor" * * "reviser" ? * "founder" ? * "continuator" ? * * bibtex-chicago * * "director" * "producer" * "conductor" * "none" (for performer) */ static int biblatexin_blteditor( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *editor_fields[] = { "editor", "editora", "editorb", "editorc" }; char *editor_types[] = { "editortype", "editoratype", "editorbtype", "editorctype" }; int i, n = 0, ntype, neditors = sizeof( editor_fields ) / sizeof( editor_fields[0] ); char *type, *usetag = "EDITOR"; for ( i=1; idata, editor_fields[i] ) ) n = i; ntype = fields_find( bibin, editor_types[n], LEVEL_ANY ); if ( ntype!=FIELDS_NOTFOUND ) { type = fields_value( bibin, ntype, FIELDS_CHRP_NOUSE ); if ( !strcasecmp( type, "collaborator" ) ) usetag = "COLLABORATOR"; else if ( !strcasecmp( type, "compiler" ) ) usetag = "COMPILER"; else if ( !strcasecmp( type, "redactor" ) ) usetag = "REDACTOR"; else if ( !strcasecmp( type, "director" ) ) usetag = "DIRECTOR"; else if ( !strcasecmp( type, "producer" ) ) usetag = "PRODUCER"; else if ( !strcasecmp( type, "none" ) ) usetag = "PERFORMER"; } return biblatex_names( bibout, usetag, invalue, level, &(pm->asis), &(pm->corps) ); } static int biblatexin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return biblatex_names( bibout, outtag, invalue, level, &(pm->asis), &(pm->corps) ); } static void biblatexin_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "INTERNAL_TYPE" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, " Cannot find tag '%s'\n", tag ); } } static int biblatexin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ PAGES ] = generic_pages, [ NOTES ] = generic_notes, [ PERSON ] = biblatexin_person, [ BLT_EDITOR ] = biblatexin_blteditor, [ HOWPUBLISHED ] = biblatexin_howpublished, [ URL ] = generic_url, [ GENRE ] = biblatexin_btgenre, [ BT_EPRINT ] = biblatexin_bteprint, [ BLT_THESIS_TYPE ] = biblatexin_bltthesistype, [ BLT_SCHOOL ] = biblatexin_bltschool, [ BLT_SUBTYPE ] = biblatexin_bltsubtype, [ BLT_SKIP ] = generic_skip, [ TITLE ] = generic_null, /* delay processing until later */ }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; idata, reftype, p->all, p->nall, &process, &level, &outtag ) ) { biblatexin_notag( p, intag->data ); continue; } status = convertfns[ process ]( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; if ( convertfns[ process ] != generic_null ) fields_setused( bibin, i ); } status = process_title_all( bibin, bibout, reftype, p ); if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stdout ); return status; } hs-bibutils-6.7.0.0/bibutils/bibtexin.c0000644000000000000000000010364200000000000016031 0ustar0000000000000000/* * bibtexin.c * * Copyright (c) Chris Putnam 2003-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "utf8.h" #include "str_conv.h" #include "fields.h" #include "slist.h" #include "name.h" #include "title.h" #include "url.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" static slist find = { 0, 0, 0, NULL }; static slist replace = { 0, 0, 0, NULL }; extern variants bibtex_all[]; extern int bibtex_nall; /***************************************************** PUBLIC: void bibtexin_initparams() *****************************************************/ static int bibtexin_convertf( fields *bibin, fields *info, int reftype, param *p ); static int bibtexin_processf( fields *bibin, char *data, char *filename, long nref, param *p ); static int bibtexin_cleanf( bibl *bin, param *p ); static int bibtexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int bibtexin_typef( fields *bibin, char *filename, int nrefs, param *p ); void bibtexin_initparams( param *p, const char *progname ) { p->readformat = BIBL_BIBTEXIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 1; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = bibtexin_readf; p->processf = bibtexin_processf; p->cleanf = bibtexin_cleanf; p->typef = bibtexin_typef; p->convertf = bibtexin_convertf; p->all = bibtex_all; p->nall = bibtex_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int bibtexin_readf() *****************************************************/ /* * readf can "read too far", so we store this information in line, thus * the next new text is in line, either from having read too far or * from the next chunk obtained via str_fget() * * return 1 on success, 0 on error/end-of-file * */ static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } /* * readf() * * returns zero if cannot get reference and hit end of-file * returns 1 if last reference in file, 2 if reference within file */ static int bibtexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( haveref!=2 && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( line->len == 0 ) continue; /* blank line */ p = &(line->data[0]); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } p = skip_ws( p ); if ( *p == '%' ) { /* commented out line */ str_empty( line ); continue; } if ( *p == '@' ) haveref++; if ( haveref && haveref<2 ) { str_strcatc( reference, p ); str_addchar( reference, '\n' ); str_empty( line ); } else if ( !haveref ) str_empty( line ); } return haveref; } /***************************************************** PUBLIC: int bibtexin_processf() *****************************************************/ static char* process_bibtextype( char *p, str *type ) { str tmp; str_init( &tmp ); if ( *p=='@' ) p++; p = str_cpytodelim( &tmp, p, "{( \t\r\n", 0 ); p = skip_ws( p ); if ( *p=='{' || *p=='(' ) p++; p = skip_ws( p ); if ( str_has_value( &tmp ) ) str_strcpy( type, &tmp ); else str_empty( type ); str_free( &tmp ); return p; } static char* process_bibtexid( char *p, str *id ) { char *start_p = p; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, p, ",", 1 ); if ( str_has_value( &tmp ) ) { if ( strchr( tmp.data, '=' ) ) { /* Endnote writes bibtex files w/o fields, try to * distinguish via presence of an equal sign.... if * it's there, assume that it's a tag/data pair instead * and roll back. */ p = start_p; str_empty( id ); } else { str_strcpy( id, &tmp ); } } else { str_empty( id ); } str_free( &tmp ); return skip_ws( p ); } static char * bibtex_tag( char *p, str *tag ) { p = str_cpytodelim( tag, skip_ws( p ), "= \t\r\n", 0 ); if ( str_memerr( tag ) ) return NULL; return skip_ws( p ); } static char * bibtex_data( char *p, fields *bibin, slist *tokens, long nref, param *pm ) { unsigned int nbracket = 0, nquotes = 0; char *startp = p; str tok, *t; str_init( &tok ); while ( p && *p ) { if ( !nquotes && !nbracket ) { if ( *p==',' || *p=='=' || *p=='}' || *p==')' ) goto out; } if ( *p=='\"' && nbracket==0 && ( p==startp || *(p-1)!='\\' ) ) { nquotes = !nquotes; str_addchar( &tok, *p ); if ( !nquotes ) { if ( str_memerr( &tok ) ) { p=NULL; goto out; } t = slist_add( tokens, &tok ); if ( !t ) { p=NULL; goto out0; } str_empty( &tok ); } } else if ( *p=='#' && !nquotes && !nbracket ) { if ( str_has_value( &tok ) ) { if ( str_memerr( &tok ) ) { p=NULL; goto out; } t = slist_add( tokens, &tok ); if ( !t ) { p=NULL; goto out0; } } str_strcpyc( &tok, "#" ); t = slist_add( tokens, &tok ); if ( !t ) { p=NULL; goto out0; } str_empty( &tok ); } else if ( *p=='{' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket++; str_addchar( &tok, *p ); } else if ( *p=='}' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket--; str_addchar( &tok, *p ); if ( nbracket==0 ) { if ( str_memerr( &tok ) ) { p=NULL; goto out; } t = slist_add( tokens, &tok ); if ( !t ) { p=NULL; goto out; } str_empty( &tok ); } } else if ( !is_ws( *p ) || nquotes || nbracket ) { if ( !is_ws( *p ) ) str_addchar( &tok, *p ); else { if ( tok.len!=0 && *p!='\n' && *p!='\r' ) str_addchar( &tok, *p ); else if ( tok.len!=0 && (*p=='\n' || *p=='\r')) { str_addchar( &tok, ' ' ); while ( is_ws( *(p+1) ) ) p++; } } } else if ( is_ws( *p ) ) { if ( tok.len ) { if ( str_memerr( &tok ) ) { p=NULL; goto out; } t = slist_add( tokens, &tok ); if ( !t ) { p=NULL; goto out; } str_empty( &tok ); } } p++; } out: if ( nbracket!=0 ) { fprintf( stderr, "%s: Mismatch in number of brackets in reference %ld.\n", pm->progname, nref ); } if ( nquotes!=0 ) { fprintf( stderr, "%s: Mismatch in number of quotes in reference %ld.\n", pm->progname, nref ); } if ( str_has_value( &tok ) ) { if ( str_memerr( &tok ) ) { p = NULL; goto out; } t = slist_add( tokens, &tok ); if ( !t ) p = NULL; } out0: str_free( &tok ); return p; } /* replace_strings() * * do string replacement -- only if unprotected by quotation marks or curly brackets */ static void replace_strings( slist *tokens, fields *bibin, param *pm ) { int i, n, ok; char *q; str *s; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( s->data, "#" ) ) { } else if ( s->data[0]!='\"' && s->data[0]!='{' ) { n = slist_find( &find, s ); if ( n!=-1 ) { str_strcpy( s, slist_str( &replace, n ) ); } else { q = s->data; ok = 1; while ( *q && ok ) { if ( !isdigit( *q ) ) ok = 0; q++; } } } i++; } } static int string_concatenate( slist *tokens, fields *bibin, long nref, param *pm ) { int i, status; str *s, *t; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( s->data, "#" ) ) { if ( i==0 || i==tokens->n-1 ) { fprintf( stderr, "%s: Warning: Stray string concatenation " "('#' character) in reference %ld\n", pm->progname, nref ); status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; continue; } s = slist_str( tokens, i-1 ); if ( s->data[0]!='\"' && s->data[s->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); t = slist_str( tokens, i+1 ); if ( t->data[0]!='\"' && t->data[s->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); if ( ( s->data[s->len-1]=='\"' && t->data[0]=='\"') || (s->data[s->len-1]=='}' && t->data[0]=='{') ) { str_trimend( s, 1 ); str_trimbegin( t, 1 ); str_strcat( s, t ); } else { str_strcat( s, t ); } status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } else i++; } return BIBL_OK; } /* return NULL on memory error */ static char * process_bibtexline( char *p, str *tag, str *data, uchar stripquotes, fields *bibin, long nref, param *pm ) { int i, status; slist tokens; str *s; str_empty( data ); p = bibtex_tag( p, tag ); if ( str_is_empty( tag ) ) { /* ...skip this line */ while ( *p && *p!='\n' && *p!='\r' ) p++; while ( *p=='\n' || *p=='\r' ) p++; return p; } slist_init( &tokens ); if ( *p=='=' ) { p = bibtex_data( p+1, bibin, &tokens, nref, pm ); if ( p==NULL ) goto out; } replace_strings( &tokens, bibin, pm ); status = string_concatenate( &tokens, bibin, nref, pm ); if ( status!=BIBL_OK ) { p = NULL; goto out; } for ( i=0; idata[0]=='\"' && s->data[s->len-1]=='\"' ) || ( s->data[0]=='{' && s->data[s->len-1]=='}' ) ) { str_trimbegin( s, 1 ); str_trimend( s, 1 ); } str_strcat( data, slist_str( &tokens, i ) ); } out: slist_free( &tokens ); return p; } /* process_cite() * */ static int process_cite( fields *bibin, char *p, char *filename, long nref, param *pm ) { int fstatus, status = BIBL_OK; str type, id, tag, data; strs_init( &type, &id, &tag, &data, NULL ); p = process_bibtextype( p, &type ); p = process_bibtexid( p, &id ); if ( str_is_empty( &type ) || str_is_empty( &id ) ) goto out; fstatus = fields_add( bibin, "INTERNAL_TYPE", str_cstr( &type ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( bibin, "REFNUM", str_cstr( &id), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p ) { p = process_bibtexline( p, &tag, &data, 1, bibin, nref, pm ); if ( p==NULL ) { status = BIBL_ERR_MEMERR; goto out; } /* no anonymous or empty fields allowed */ if ( str_has_value( &tag ) && str_has_value( &data ) ) { fstatus = fields_add( bibin, str_cstr( &tag ), str_cstr( &data ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } strs_empty( &tag, &data, NULL ); } out: strs_free( &type, &id, &tag, &data, NULL ); return status; } /* process_string() * * Handle lines like: * * '@STRING{TL = {Tetrahedron Lett.}}' * * p should point to just after '@STRING' * * In BibTeX, if a string is defined several times, the last one is kept. * */ static int process_string( char *p, long nref, param *pm ) { int n, status = BIBL_OK; str s1, s2, *t; strs_init( &s1, &s2, NULL ); while ( *p && *p!='{' && *p!='(' ) p++; if ( *p=='{' || *p=='(' ) p++; p = process_bibtexline( skip_ws( p ), &s1, &s2, 0, NULL, nref, pm ); if ( p==NULL ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s2 ) ) { str_findreplace( &s2, "\\ ", " " ); } if ( str_has_value( &s1 ) ) { n = slist_find( &find, &s1 ); if ( n==-1 ) { t = slist_add( &find, &s1 ); if ( t==NULL ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s2 ) ) t = slist_add( &replace, &s2 ); else t = slist_addc( &replace, "" ); if ( t==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } else { if ( str_has_value( &s2 ) ) t = slist_set( &replace, n, &s2 ); else t = slist_setc( &replace, n, "" ); if ( t==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &s1, &s2, NULL ); return status; } /* bibtexin_processf() * * Handle '@STRING', '@reftype', and ignore '@COMMENT' */ static int bibtexin_processf( fields *bibin, char *data, char *filename, long nref, param *p ) { if ( !strncasecmp( data, "@STRING", 7 ) ) { process_string( data+7, nref, p ); return 0; } else if ( !strncasecmp( data, "@COMMENT", 8 ) ) { /* Not sure if these are real Bibtex, but not references */ return 0; } else { process_cite( bibin, data, filename, nref, p ); return 1; } } /***************************************************** PUBLIC: void bibtexin_cleanf() *****************************************************/ static int bibtex_protected( str *data ) { if ( data->data[0]=='{' && data->data[data->len-1]=='}' ) return 1; if ( data->data[0]=='\"' && data->data[data->len-1]=='\"' ) return 1; return 0; } static int bibtex_split( slist *tokens, str *s ) { int i, n = s->len, nbrackets = 0, status = BIBL_OK; str tok, *t; str_init( &tok ); for ( i=0; idata[i]=='{' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets++; str_addchar( &tok, '{' ); } else if ( s->data[i]=='}' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets--; str_addchar( &tok, '}' ); } else if ( !is_ws( s->data[i] ) || nbrackets ) { str_addchar( &tok, s->data[i] ); } else if ( is_ws( s->data[i] ) ) { if ( str_has_value( &tok ) ) { t = slist_add( tokens, &tok ); if ( !t ) { status = BIBL_ERR_MEMERR; goto out; } } str_empty( &tok ); } } if ( str_has_value( &tok ) ) { t = slist_add( tokens, &tok ); if ( !t ) { status = BIBL_ERR_MEMERR; goto out; } } for ( i=0; in; ++i ) { str_trimstartingws( slist_str( tokens, i ) ); str_trimendingws( slist_str( tokens, i ) ); } out: str_free( &tok ); return status; } static int bibtex_addtitleurl( fields *info, str *in ) { int fstatus, status = BIBL_OK; str s; char *p; str_init( &s ); /* ...skip past "\href{" and copy to "}" */ p = str_cpytodelim( &s, in->data + 6, "}", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } /* ...add to URL */ fstatus = fields_add( info, "URL", s.data, 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } /* ...return deleted fragment to str in */ (void) str_cpytodelim( &s, p, "", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } str_swapstrings( &s, in ); out: str_free( &s ); return status; } static int is_url_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "url" ) ) return 1; } return 0; } static int is_name_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "author" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editor" ) ) return 1; } return 0; } static void bibtex_process_tilde( str *s ) { char *p, *q; int n = 0; p = q = s->data; if ( !p ) return; while ( *p ) { if ( *p=='~' ) { *q = ' '; } else if ( *p=='\\' && *(p+1)=='~' ) { n++; p++; *q = '~'; } else { *q = *p; } p++; q++; } *q = '\0'; s->len -= n; } static void bibtex_process_bracket( str *s ) { char *p, *q; int n = 0; p = q = s->data; if ( !p ) return; while ( *p ) { if ( *p=='\\' && ( *(p+1)=='{' || *(p+1)=='}' ) ) { n++; p++; *q = *p; q++; } else if ( *p=='{' || *p=='}' ) { n++; } else { *q = *p; q++; } p++; } *q = '\0'; s->len -= n; } static void bibtex_cleantoken( str *s ) { /* 'textcomp' annotations */ str_findreplace( s, "\\textit", "" ); str_findreplace( s, "\\textbf", "" ); str_findreplace( s, "\\textsl", "" ); str_findreplace( s, "\\textsc", "" ); str_findreplace( s, "\\textsf", "" ); str_findreplace( s, "\\texttt", "" ); str_findreplace( s, "\\textsubscript", "" ); str_findreplace( s, "\\textsuperscript", "" ); str_findreplace( s, "\\emph", "" ); str_findreplace( s, "\\url", "" ); str_findreplace( s, "\\mbox", "" ); /* Other text annotations */ str_findreplace( s, "\\it ", "" ); str_findreplace( s, "\\em ", "" ); str_findreplace( s, "\\%", "%" ); str_findreplace( s, "\\$", "$" ); while ( str_findreplace( s, " ", " " ) ) {} /* 'textcomp' annotations that we don't want to substitute on output*/ str_findreplace( s, "\\textdollar", "$" ); str_findreplace( s, "\\textunderscore", "_" ); bibtex_process_bracket( s ); bibtex_process_tilde( s ); } static int bibtex_cleandata( str *tag, str *s, fields *info, param *p ) { int i, status; slist tokens; str *tok; if ( str_is_empty( s ) ) return BIBL_OK; /* protect url from undergoing any parsing */ if ( is_url_tag( tag ) ) return BIBL_OK; slist_init( &tokens ); status = bibtex_split( &tokens, s ); if ( status!=BIBL_OK ) goto out; for ( i=0; idata,"\\href{", 6)) { bibtex_addtitleurl( info, tok ); } } if ( p->latexin && !is_name_tag( tag ) && !is_url_tag( tag ) ) bibtex_cleantoken( tok ); } str_empty( s ); for ( i=0; i0 ) str_addchar( s, ' ' ); str_strcat( s, tok ); } out: slist_free( &tokens ); return status; } static int bibtexin_cleanref( fields *bibin, param *p ) { int i, n, status; str *t, *d; n = fields_num( bibin ); for ( i=0; inrefs; ++i ) { n = fields_find( bin->ref[i], "refnum", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; if ( !strcmp( bin->ref[i]->data[n].data, citekey ) ) return i; } return -1; } static void bibtexin_nocrossref( bibl *bin, long i, int n, param *p ) { int n1 = fields_find( bin->ref[i], "REFNUM", LEVEL_ANY ); if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find cross-reference '%s'", bin->ref[i]->data[n].data ); if ( n1!=FIELDS_NOTFOUND ) fprintf( stderr, " for reference '%s'\n", bin->ref[i]->data[n1].data ); fprintf( stderr, "\n" ); } static int bibtexin_crossref_oneref( fields *bibref, fields *bibcross ) { int j, n, nl, ntype, fstatus, status = BIBL_OK; char *type, *nt, *nv; ntype = fields_find( bibref, "INTERNAL_TYPE", LEVEL_ANY ); type = ( char * ) fields_value( bibref, ntype, FIELDS_CHRP_NOUSE ); n = fields_num( bibcross ); for ( j=0; jnrefs; ++i ) { bibref = bin->ref[i]; n = fields_find( bibref, "CROSSREF", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; fields_setused( bibref, n ); ncross = bibtexin_findref( bin, (char*) fields_value( bibref, n, FIELDS_CHRP ) ); if ( ncross==-1 ) { bibtexin_nocrossref( bin, i, n, p ); continue; } bibcross = bin->ref[ncross]; status = bibtexin_crossref_oneref( bibref, bibcross ); if ( status!=BIBL_OK ) goto out; } out: return status; } static int bibtexin_cleanf( bibl *bin, param *p ) { int status = BIBL_OK; long i; for ( i=0; inrefs; ++i ) status = bibtexin_cleanref( bin->ref[i], p ); bibtexin_crossref( bin, p ); return status; } /***************************************************** PUBLIC: int bibtexin_typef() *****************************************************/ static int bibtexin_typef( fields *bibin, char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename = ""; ntypename = fields_find( bibin, "INTERNAL_TYPE", LEVEL_MAIN ); nrefname = fields_find( bibin, "REFNUM", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( bibin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( bibin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int bibtexin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ static int bibtex_matches_list( fields *bibout, char *tag, char *suffix, str *data, int level, slist *names, int *match ) { int i, fstatus, status = BIBL_OK; str newtag; *match = 0; if ( names->n==0 ) return status; str_init( &newtag ); for ( i=0; in; ++i ) { if ( strcmp( str_cstr( data ), slist_cstr( names, i ) ) ) continue; str_initstrc( &newtag, tag ); str_strcatc( &newtag, suffix ); fstatus = fields_add( bibout, str_cstr( &newtag ), str_cstr( data ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } *match = 1; goto out; } out: str_free( &newtag ); return status; } /**** bibtexin_btorg ****/ /* * BibTeX uses 'organization' in lieu of publisher if that field is missing. * Otherwise output as * * The organization * * organizer of meeting * * */ static int bibtexin_btorg( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int n, fstatus; n = fields_find( bibin, "publisher", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) fstatus = fields_add( bibout, "PUBLISHER", str_cstr( invalue ), level ); else fstatus = fields_add( bibout, "ORGANIZER:CORP", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /**** bibtexin_btsente() ****/ /* * sentelink = {file://localhost/full/path/to/file.pdf,Sente,PDF} * * Sente is an academic reference manager for MacOSX and Apple iPad. */ static int bibtexin_btsente( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str link; str_init( &link ); str_cpytodelim( &link, skip_ws( invalue->data ), ",", 0 ); str_trimendingws( &link ); if ( str_memerr( &link ) ) status = BIBL_ERR_MEMERR; if ( status==BIBL_OK && link.len ) { fstatus = fields_add( bibout, "FILEATTACH", str_cstr( &link ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } str_free( &link ); return status; } /**** bibtexin_linkedfile() ****/ static int count_colons( char *p ) { int n = 0; while ( *p ) { if ( *p==':' ) n++; p++; } return n; } static int first_colon( char *p ) { int n = 0; while ( p[n] && p[n]!=':' ) n++; return n; } static int last_colon( char *p ) { int n = strlen( p ) - 1; while ( n>0 && p[n]!=':' ) n--; return n; } /* * file={Description:/full/path/to/file.pdf:PDF} */ static int bibtexin_linkedfile( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; char *p = invalue->data; int i, n, n1, n2; str link; n = count_colons( p ); if ( n > 1 ) { /* A DOS file can contain a colon ":C:/....pdf:PDF" */ /* Extract after 1st and up to last colons */ n1 = first_colon( p ) + 1; n2 = last_colon( p ); str_init( &link ); for ( i=n1; idata, level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } else if ( !strcmp( prefix, "jstor" ) ) { fstatus = fields_add( bibout, "JSTOR", value->data, level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } else if ( !strcmp( prefix, "medline" ) ) { fstatus = fields_add( bibout, "MEDLINE", value->data, level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } else if ( !strcmp( prefix, "pubmed" ) ) { fstatus = fields_add( bibout, "PMID", value->data, level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } /* ...if this is unknown prefix, merge prefix & eprint */ else { str_init( &merge ); str_mergestrs( &merge, prefix, ":", value->data, NULL ); fstatus = fields_add( bibout, "URL", merge.data, level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; str_free( &merge ); } return status; } static int process_eprint_without_prefix( fields *bibout, str *value, int level ) { int fstatus; /* ...no archivePrefix, need to handle just 'eprint' tag */ fstatus = fields_add( bibout, "URL", value->data, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int bibtexin_eprint( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *prefix; int n; /* ...do we have an archivePrefix too? */ n = fields_find( bibin, "ARCHIVEPREFIX", level ); if ( n==FIELDS_NOTFOUND ) n = fields_find( bibin, "EPRINTTYPE", level ); if ( n!=FIELDS_NOTFOUND ) { prefix = fields_value( bibin, n, FIELDS_CHRP ); return process_eprint_with_prefix( bibout, prefix, invalue, level ); } /* ...no we don't */ return process_eprint_without_prefix( bibout, invalue, level ); } /**** bibtexin_keyword() ****/ /* Split keywords="" with semicolons. * Commas are also frequently used, but will break * entries like: * keywords="Microscopy, Confocal" * Returns BIBL_OK or BIBL_ERR_MEMERR */ static int bibtexin_keyword( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str keyword; char *p; p = invalue->data; str_init( &keyword ); while ( *p ) { p = str_cpytodelim( &keyword, skip_ws( p ), ";", 1 ); str_trimendingws( &keyword ); if ( str_memerr( &keyword ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( keyword.len ) { fstatus = fields_add( bibout, "KEYWORD", keyword.data, level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: str_free( &keyword ); return status; } /* * bibtex_names( bibout, newtag, field, level); * * split names in author list separated by and's (use '|' character) * and add names * * returns BIBL_OK on success, BIBL_ERR_MEMERR on memory error */ static int bibtexin_person( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int begin, end, ok, n, etal, i, status, match; slist tokens; /* If we match the asis or corps list add and bail. */ status = bibtex_matches_list( bibout, outtag, ":ASIS", invalue, level, &(pm->asis), &match ); if ( match==1 || status!=BIBL_OK ) return status; status = bibtex_matches_list( bibout, outtag, ":CORP", invalue, level, &(pm->corps), &match ); if ( match==1 || status!=BIBL_OK ) return status; slist_init( &tokens ); bibtex_split( &tokens, invalue ); for ( i=0; idata ) ) level=LEVEL_MAIN; ok = title_process( bibout, "TITLE", invalue->data, level, pm->nosplittitle ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static void bibtexin_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "INTERNAL_TYPE" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'\n", tag ); } } static int bibtexin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = bibtexin_title, [ PERSON ] = bibtexin_person, [ PAGES ] = generic_pages, [ KEYWORD ] = bibtexin_keyword, [ EPRINT ] = bibtexin_eprint, [ HOWPUBLISHED ] = bibtexin_howpublished, [ LINKEDFILE ] = bibtexin_linkedfile, [ NOTES ] = generic_notes, [ GENRE ] = generic_genre, [ BT_SENTE ] = bibtexin_btsente, [ BT_ORG ] = bibtexin_btorg, [ URL ] = generic_url }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { bibtexin_notag( p, str_cstr( intag ) ); continue; } status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.7.0.0/bibutils/bibtexin.c0000755000000000000000000010364200000000000016034 0ustar0000000000000000/* * bibtexin.c * * Copyright (c) Chris Putnam 2003-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "utf8.h" #include "str_conv.h" #include "fields.h" #include "slist.h" #include "name.h" #include "title.h" #include "url.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" static slist find = { 0, 0, 0, NULL }; static slist replace = { 0, 0, 0, NULL }; extern variants bibtex_all[]; extern int bibtex_nall; /***************************************************** PUBLIC: void bibtexin_initparams() *****************************************************/ static int bibtexin_convertf( fields *bibin, fields *info, int reftype, param *p ); static int bibtexin_processf( fields *bibin, char *data, char *filename, long nref, param *p ); static int bibtexin_cleanf( bibl *bin, param *p ); static int bibtexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int bibtexin_typef( fields *bibin, char *filename, int nrefs, param *p ); void bibtexin_initparams( param *p, const char *progname ) { p->readformat = BIBL_BIBTEXIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 1; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = bibtexin_readf; p->processf = bibtexin_processf; p->cleanf = bibtexin_cleanf; p->typef = bibtexin_typef; p->convertf = bibtexin_convertf; p->all = bibtex_all; p->nall = bibtex_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int bibtexin_readf() *****************************************************/ /* * readf can "read too far", so we store this information in line, thus * the next new text is in line, either from having read too far or * from the next chunk obtained via str_fget() * * return 1 on success, 0 on error/end-of-file * */ static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } /* * readf() * * returns zero if cannot get reference and hit end of-file * returns 1 if last reference in file, 2 if reference within file */ static int bibtexin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( haveref!=2 && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( line->len == 0 ) continue; /* blank line */ p = &(line->data[0]); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } p = skip_ws( p ); if ( *p == '%' ) { /* commented out line */ str_empty( line ); continue; } if ( *p == '@' ) haveref++; if ( haveref && haveref<2 ) { str_strcatc( reference, p ); str_addchar( reference, '\n' ); str_empty( line ); } else if ( !haveref ) str_empty( line ); } return haveref; } /***************************************************** PUBLIC: int bibtexin_processf() *****************************************************/ static char* process_bibtextype( char *p, str *type ) { str tmp; str_init( &tmp ); if ( *p=='@' ) p++; p = str_cpytodelim( &tmp, p, "{( \t\r\n", 0 ); p = skip_ws( p ); if ( *p=='{' || *p=='(' ) p++; p = skip_ws( p ); if ( str_has_value( &tmp ) ) str_strcpy( type, &tmp ); else str_empty( type ); str_free( &tmp ); return p; } static char* process_bibtexid( char *p, str *id ) { char *start_p = p; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, p, ",", 1 ); if ( str_has_value( &tmp ) ) { if ( strchr( tmp.data, '=' ) ) { /* Endnote writes bibtex files w/o fields, try to * distinguish via presence of an equal sign.... if * it's there, assume that it's a tag/data pair instead * and roll back. */ p = start_p; str_empty( id ); } else { str_strcpy( id, &tmp ); } } else { str_empty( id ); } str_free( &tmp ); return skip_ws( p ); } static char * bibtex_tag( char *p, str *tag ) { p = str_cpytodelim( tag, skip_ws( p ), "= \t\r\n", 0 ); if ( str_memerr( tag ) ) return NULL; return skip_ws( p ); } static char * bibtex_data( char *p, fields *bibin, slist *tokens, long nref, param *pm ) { unsigned int nbracket = 0, nquotes = 0; char *startp = p; str tok, *t; str_init( &tok ); while ( p && *p ) { if ( !nquotes && !nbracket ) { if ( *p==',' || *p=='=' || *p=='}' || *p==')' ) goto out; } if ( *p=='\"' && nbracket==0 && ( p==startp || *(p-1)!='\\' ) ) { nquotes = !nquotes; str_addchar( &tok, *p ); if ( !nquotes ) { if ( str_memerr( &tok ) ) { p=NULL; goto out; } t = slist_add( tokens, &tok ); if ( !t ) { p=NULL; goto out0; } str_empty( &tok ); } } else if ( *p=='#' && !nquotes && !nbracket ) { if ( str_has_value( &tok ) ) { if ( str_memerr( &tok ) ) { p=NULL; goto out; } t = slist_add( tokens, &tok ); if ( !t ) { p=NULL; goto out0; } } str_strcpyc( &tok, "#" ); t = slist_add( tokens, &tok ); if ( !t ) { p=NULL; goto out0; } str_empty( &tok ); } else if ( *p=='{' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket++; str_addchar( &tok, *p ); } else if ( *p=='}' && !nquotes && ( p==startp || *(p-1)!='\\' ) ) { nbracket--; str_addchar( &tok, *p ); if ( nbracket==0 ) { if ( str_memerr( &tok ) ) { p=NULL; goto out; } t = slist_add( tokens, &tok ); if ( !t ) { p=NULL; goto out; } str_empty( &tok ); } } else if ( !is_ws( *p ) || nquotes || nbracket ) { if ( !is_ws( *p ) ) str_addchar( &tok, *p ); else { if ( tok.len!=0 && *p!='\n' && *p!='\r' ) str_addchar( &tok, *p ); else if ( tok.len!=0 && (*p=='\n' || *p=='\r')) { str_addchar( &tok, ' ' ); while ( is_ws( *(p+1) ) ) p++; } } } else if ( is_ws( *p ) ) { if ( tok.len ) { if ( str_memerr( &tok ) ) { p=NULL; goto out; } t = slist_add( tokens, &tok ); if ( !t ) { p=NULL; goto out; } str_empty( &tok ); } } p++; } out: if ( nbracket!=0 ) { fprintf( stderr, "%s: Mismatch in number of brackets in reference %ld.\n", pm->progname, nref ); } if ( nquotes!=0 ) { fprintf( stderr, "%s: Mismatch in number of quotes in reference %ld.\n", pm->progname, nref ); } if ( str_has_value( &tok ) ) { if ( str_memerr( &tok ) ) { p = NULL; goto out; } t = slist_add( tokens, &tok ); if ( !t ) p = NULL; } out0: str_free( &tok ); return p; } /* replace_strings() * * do string replacement -- only if unprotected by quotation marks or curly brackets */ static void replace_strings( slist *tokens, fields *bibin, param *pm ) { int i, n, ok; char *q; str *s; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( s->data, "#" ) ) { } else if ( s->data[0]!='\"' && s->data[0]!='{' ) { n = slist_find( &find, s ); if ( n!=-1 ) { str_strcpy( s, slist_str( &replace, n ) ); } else { q = s->data; ok = 1; while ( *q && ok ) { if ( !isdigit( *q ) ) ok = 0; q++; } } } i++; } } static int string_concatenate( slist *tokens, fields *bibin, long nref, param *pm ) { int i, status; str *s, *t; i = 0; while ( i < tokens->n ) { s = slist_str( tokens, i ); if ( !strcmp( s->data, "#" ) ) { if ( i==0 || i==tokens->n-1 ) { fprintf( stderr, "%s: Warning: Stray string concatenation " "('#' character) in reference %ld\n", pm->progname, nref ); status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; continue; } s = slist_str( tokens, i-1 ); if ( s->data[0]!='\"' && s->data[s->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); t = slist_str( tokens, i+1 ); if ( t->data[0]!='\"' && t->data[s->len-1]!='\"' ) fprintf( stderr, "%s: Warning: String concentation should " "be used in context of quotations marks in reference %ld\n", pm->progname, nref ); if ( ( s->data[s->len-1]=='\"' && t->data[0]=='\"') || (s->data[s->len-1]=='}' && t->data[0]=='{') ) { str_trimend( s, 1 ); str_trimbegin( t, 1 ); str_strcat( s, t ); } else { str_strcat( s, t ); } status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; status = slist_remove( tokens, i ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; } else i++; } return BIBL_OK; } /* return NULL on memory error */ static char * process_bibtexline( char *p, str *tag, str *data, uchar stripquotes, fields *bibin, long nref, param *pm ) { int i, status; slist tokens; str *s; str_empty( data ); p = bibtex_tag( p, tag ); if ( str_is_empty( tag ) ) { /* ...skip this line */ while ( *p && *p!='\n' && *p!='\r' ) p++; while ( *p=='\n' || *p=='\r' ) p++; return p; } slist_init( &tokens ); if ( *p=='=' ) { p = bibtex_data( p+1, bibin, &tokens, nref, pm ); if ( p==NULL ) goto out; } replace_strings( &tokens, bibin, pm ); status = string_concatenate( &tokens, bibin, nref, pm ); if ( status!=BIBL_OK ) { p = NULL; goto out; } for ( i=0; idata[0]=='\"' && s->data[s->len-1]=='\"' ) || ( s->data[0]=='{' && s->data[s->len-1]=='}' ) ) { str_trimbegin( s, 1 ); str_trimend( s, 1 ); } str_strcat( data, slist_str( &tokens, i ) ); } out: slist_free( &tokens ); return p; } /* process_cite() * */ static int process_cite( fields *bibin, char *p, char *filename, long nref, param *pm ) { int fstatus, status = BIBL_OK; str type, id, tag, data; strs_init( &type, &id, &tag, &data, NULL ); p = process_bibtextype( p, &type ); p = process_bibtexid( p, &id ); if ( str_is_empty( &type ) || str_is_empty( &id ) ) goto out; fstatus = fields_add( bibin, "INTERNAL_TYPE", str_cstr( &type ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( bibin, "REFNUM", str_cstr( &id), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p ) { p = process_bibtexline( p, &tag, &data, 1, bibin, nref, pm ); if ( p==NULL ) { status = BIBL_ERR_MEMERR; goto out; } /* no anonymous or empty fields allowed */ if ( str_has_value( &tag ) && str_has_value( &data ) ) { fstatus = fields_add( bibin, str_cstr( &tag ), str_cstr( &data ), 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } strs_empty( &tag, &data, NULL ); } out: strs_free( &type, &id, &tag, &data, NULL ); return status; } /* process_string() * * Handle lines like: * * '@STRING{TL = {Tetrahedron Lett.}}' * * p should point to just after '@STRING' * * In BibTeX, if a string is defined several times, the last one is kept. * */ static int process_string( char *p, long nref, param *pm ) { int n, status = BIBL_OK; str s1, s2, *t; strs_init( &s1, &s2, NULL ); while ( *p && *p!='{' && *p!='(' ) p++; if ( *p=='{' || *p=='(' ) p++; p = process_bibtexline( skip_ws( p ), &s1, &s2, 0, NULL, nref, pm ); if ( p==NULL ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s2 ) ) { str_findreplace( &s2, "\\ ", " " ); } if ( str_has_value( &s1 ) ) { n = slist_find( &find, &s1 ); if ( n==-1 ) { t = slist_add( &find, &s1 ); if ( t==NULL ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s2 ) ) t = slist_add( &replace, &s2 ); else t = slist_addc( &replace, "" ); if ( t==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } else { if ( str_has_value( &s2 ) ) t = slist_set( &replace, n, &s2 ); else t = slist_setc( &replace, n, "" ); if ( t==NULL ) { status = BIBL_ERR_MEMERR; goto out; } } } out: strs_free( &s1, &s2, NULL ); return status; } /* bibtexin_processf() * * Handle '@STRING', '@reftype', and ignore '@COMMENT' */ static int bibtexin_processf( fields *bibin, char *data, char *filename, long nref, param *p ) { if ( !strncasecmp( data, "@STRING", 7 ) ) { process_string( data+7, nref, p ); return 0; } else if ( !strncasecmp( data, "@COMMENT", 8 ) ) { /* Not sure if these are real Bibtex, but not references */ return 0; } else { process_cite( bibin, data, filename, nref, p ); return 1; } } /***************************************************** PUBLIC: void bibtexin_cleanf() *****************************************************/ static int bibtex_protected( str *data ) { if ( data->data[0]=='{' && data->data[data->len-1]=='}' ) return 1; if ( data->data[0]=='\"' && data->data[data->len-1]=='\"' ) return 1; return 0; } static int bibtex_split( slist *tokens, str *s ) { int i, n = s->len, nbrackets = 0, status = BIBL_OK; str tok, *t; str_init( &tok ); for ( i=0; idata[i]=='{' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets++; str_addchar( &tok, '{' ); } else if ( s->data[i]=='}' && ( i==0 || s->data[i-1]!='\\' ) ) { nbrackets--; str_addchar( &tok, '}' ); } else if ( !is_ws( s->data[i] ) || nbrackets ) { str_addchar( &tok, s->data[i] ); } else if ( is_ws( s->data[i] ) ) { if ( str_has_value( &tok ) ) { t = slist_add( tokens, &tok ); if ( !t ) { status = BIBL_ERR_MEMERR; goto out; } } str_empty( &tok ); } } if ( str_has_value( &tok ) ) { t = slist_add( tokens, &tok ); if ( !t ) { status = BIBL_ERR_MEMERR; goto out; } } for ( i=0; in; ++i ) { str_trimstartingws( slist_str( tokens, i ) ); str_trimendingws( slist_str( tokens, i ) ); } out: str_free( &tok ); return status; } static int bibtex_addtitleurl( fields *info, str *in ) { int fstatus, status = BIBL_OK; str s; char *p; str_init( &s ); /* ...skip past "\href{" and copy to "}" */ p = str_cpytodelim( &s, in->data + 6, "}", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } /* ...add to URL */ fstatus = fields_add( info, "URL", s.data, 0 ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } /* ...return deleted fragment to str in */ (void) str_cpytodelim( &s, p, "", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } str_swapstrings( &s, in ); out: str_free( &s ); return status; } static int is_url_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "url" ) ) return 1; } return 0; } static int is_name_tag( str *tag ) { if ( str_has_value( tag ) ) { if ( !strcasecmp( str_cstr( tag ), "author" ) ) return 1; if ( !strcasecmp( str_cstr( tag ), "editor" ) ) return 1; } return 0; } static void bibtex_process_tilde( str *s ) { char *p, *q; int n = 0; p = q = s->data; if ( !p ) return; while ( *p ) { if ( *p=='~' ) { *q = ' '; } else if ( *p=='\\' && *(p+1)=='~' ) { n++; p++; *q = '~'; } else { *q = *p; } p++; q++; } *q = '\0'; s->len -= n; } static void bibtex_process_bracket( str *s ) { char *p, *q; int n = 0; p = q = s->data; if ( !p ) return; while ( *p ) { if ( *p=='\\' && ( *(p+1)=='{' || *(p+1)=='}' ) ) { n++; p++; *q = *p; q++; } else if ( *p=='{' || *p=='}' ) { n++; } else { *q = *p; q++; } p++; } *q = '\0'; s->len -= n; } static void bibtex_cleantoken( str *s ) { /* 'textcomp' annotations */ str_findreplace( s, "\\textit", "" ); str_findreplace( s, "\\textbf", "" ); str_findreplace( s, "\\textsl", "" ); str_findreplace( s, "\\textsc", "" ); str_findreplace( s, "\\textsf", "" ); str_findreplace( s, "\\texttt", "" ); str_findreplace( s, "\\textsubscript", "" ); str_findreplace( s, "\\textsuperscript", "" ); str_findreplace( s, "\\emph", "" ); str_findreplace( s, "\\url", "" ); str_findreplace( s, "\\mbox", "" ); /* Other text annotations */ str_findreplace( s, "\\it ", "" ); str_findreplace( s, "\\em ", "" ); str_findreplace( s, "\\%", "%" ); str_findreplace( s, "\\$", "$" ); while ( str_findreplace( s, " ", " " ) ) {} /* 'textcomp' annotations that we don't want to substitute on output*/ str_findreplace( s, "\\textdollar", "$" ); str_findreplace( s, "\\textunderscore", "_" ); bibtex_process_bracket( s ); bibtex_process_tilde( s ); } static int bibtex_cleandata( str *tag, str *s, fields *info, param *p ) { int i, status; slist tokens; str *tok; if ( str_is_empty( s ) ) return BIBL_OK; /* protect url from undergoing any parsing */ if ( is_url_tag( tag ) ) return BIBL_OK; slist_init( &tokens ); status = bibtex_split( &tokens, s ); if ( status!=BIBL_OK ) goto out; for ( i=0; idata,"\\href{", 6)) { bibtex_addtitleurl( info, tok ); } } if ( p->latexin && !is_name_tag( tag ) && !is_url_tag( tag ) ) bibtex_cleantoken( tok ); } str_empty( s ); for ( i=0; i0 ) str_addchar( s, ' ' ); str_strcat( s, tok ); } out: slist_free( &tokens ); return status; } static int bibtexin_cleanref( fields *bibin, param *p ) { int i, n, status; str *t, *d; n = fields_num( bibin ); for ( i=0; inrefs; ++i ) { n = fields_find( bin->ref[i], "refnum", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; if ( !strcmp( bin->ref[i]->data[n].data, citekey ) ) return i; } return -1; } static void bibtexin_nocrossref( bibl *bin, long i, int n, param *p ) { int n1 = fields_find( bin->ref[i], "REFNUM", LEVEL_ANY ); if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find cross-reference '%s'", bin->ref[i]->data[n].data ); if ( n1!=FIELDS_NOTFOUND ) fprintf( stderr, " for reference '%s'\n", bin->ref[i]->data[n1].data ); fprintf( stderr, "\n" ); } static int bibtexin_crossref_oneref( fields *bibref, fields *bibcross ) { int j, n, nl, ntype, fstatus, status = BIBL_OK; char *type, *nt, *nv; ntype = fields_find( bibref, "INTERNAL_TYPE", LEVEL_ANY ); type = ( char * ) fields_value( bibref, ntype, FIELDS_CHRP_NOUSE ); n = fields_num( bibcross ); for ( j=0; jnrefs; ++i ) { bibref = bin->ref[i]; n = fields_find( bibref, "CROSSREF", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) continue; fields_setused( bibref, n ); ncross = bibtexin_findref( bin, (char*) fields_value( bibref, n, FIELDS_CHRP ) ); if ( ncross==-1 ) { bibtexin_nocrossref( bin, i, n, p ); continue; } bibcross = bin->ref[ncross]; status = bibtexin_crossref_oneref( bibref, bibcross ); if ( status!=BIBL_OK ) goto out; } out: return status; } static int bibtexin_cleanf( bibl *bin, param *p ) { int status = BIBL_OK; long i; for ( i=0; inrefs; ++i ) status = bibtexin_cleanref( bin->ref[i], p ); bibtexin_crossref( bin, p ); return status; } /***************************************************** PUBLIC: int bibtexin_typef() *****************************************************/ static int bibtexin_typef( fields *bibin, char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename = ""; ntypename = fields_find( bibin, "INTERNAL_TYPE", LEVEL_MAIN ); nrefname = fields_find( bibin, "REFNUM", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( bibin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( bibin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int bibtexin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ static int bibtex_matches_list( fields *bibout, char *tag, char *suffix, str *data, int level, slist *names, int *match ) { int i, fstatus, status = BIBL_OK; str newtag; *match = 0; if ( names->n==0 ) return status; str_init( &newtag ); for ( i=0; in; ++i ) { if ( strcmp( str_cstr( data ), slist_cstr( names, i ) ) ) continue; str_initstrc( &newtag, tag ); str_strcatc( &newtag, suffix ); fstatus = fields_add( bibout, str_cstr( &newtag ), str_cstr( data ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } *match = 1; goto out; } out: str_free( &newtag ); return status; } /**** bibtexin_btorg ****/ /* * BibTeX uses 'organization' in lieu of publisher if that field is missing. * Otherwise output as * * The organization * * organizer of meeting * * */ static int bibtexin_btorg( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int n, fstatus; n = fields_find( bibin, "publisher", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) fstatus = fields_add( bibout, "PUBLISHER", str_cstr( invalue ), level ); else fstatus = fields_add( bibout, "ORGANIZER:CORP", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /**** bibtexin_btsente() ****/ /* * sentelink = {file://localhost/full/path/to/file.pdf,Sente,PDF} * * Sente is an academic reference manager for MacOSX and Apple iPad. */ static int bibtexin_btsente( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str link; str_init( &link ); str_cpytodelim( &link, skip_ws( invalue->data ), ",", 0 ); str_trimendingws( &link ); if ( str_memerr( &link ) ) status = BIBL_ERR_MEMERR; if ( status==BIBL_OK && link.len ) { fstatus = fields_add( bibout, "FILEATTACH", str_cstr( &link ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } str_free( &link ); return status; } /**** bibtexin_linkedfile() ****/ static int count_colons( char *p ) { int n = 0; while ( *p ) { if ( *p==':' ) n++; p++; } return n; } static int first_colon( char *p ) { int n = 0; while ( p[n] && p[n]!=':' ) n++; return n; } static int last_colon( char *p ) { int n = strlen( p ) - 1; while ( n>0 && p[n]!=':' ) n--; return n; } /* * file={Description:/full/path/to/file.pdf:PDF} */ static int bibtexin_linkedfile( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; char *p = invalue->data; int i, n, n1, n2; str link; n = count_colons( p ); if ( n > 1 ) { /* A DOS file can contain a colon ":C:/....pdf:PDF" */ /* Extract after 1st and up to last colons */ n1 = first_colon( p ) + 1; n2 = last_colon( p ); str_init( &link ); for ( i=n1; idata, level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } else if ( !strcmp( prefix, "jstor" ) ) { fstatus = fields_add( bibout, "JSTOR", value->data, level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } else if ( !strcmp( prefix, "medline" ) ) { fstatus = fields_add( bibout, "MEDLINE", value->data, level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } else if ( !strcmp( prefix, "pubmed" ) ) { fstatus = fields_add( bibout, "PMID", value->data, level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } /* ...if this is unknown prefix, merge prefix & eprint */ else { str_init( &merge ); str_mergestrs( &merge, prefix, ":", value->data, NULL ); fstatus = fields_add( bibout, "URL", merge.data, level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; str_free( &merge ); } return status; } static int process_eprint_without_prefix( fields *bibout, str *value, int level ) { int fstatus; /* ...no archivePrefix, need to handle just 'eprint' tag */ fstatus = fields_add( bibout, "URL", value->data, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int bibtexin_eprint( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *prefix; int n; /* ...do we have an archivePrefix too? */ n = fields_find( bibin, "ARCHIVEPREFIX", level ); if ( n==FIELDS_NOTFOUND ) n = fields_find( bibin, "EPRINTTYPE", level ); if ( n!=FIELDS_NOTFOUND ) { prefix = fields_value( bibin, n, FIELDS_CHRP ); return process_eprint_with_prefix( bibout, prefix, invalue, level ); } /* ...no we don't */ return process_eprint_without_prefix( bibout, invalue, level ); } /**** bibtexin_keyword() ****/ /* Split keywords="" with semicolons. * Commas are also frequently used, but will break * entries like: * keywords="Microscopy, Confocal" * Returns BIBL_OK or BIBL_ERR_MEMERR */ static int bibtexin_keyword( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str keyword; char *p; p = invalue->data; str_init( &keyword ); while ( *p ) { p = str_cpytodelim( &keyword, skip_ws( p ), ";", 1 ); str_trimendingws( &keyword ); if ( str_memerr( &keyword ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( keyword.len ) { fstatus = fields_add( bibout, "KEYWORD", keyword.data, level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: str_free( &keyword ); return status; } /* * bibtex_names( bibout, newtag, field, level); * * split names in author list separated by and's (use '|' character) * and add names * * returns BIBL_OK on success, BIBL_ERR_MEMERR on memory error */ static int bibtexin_person( fields *bibin, int m, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int begin, end, ok, n, etal, i, status, match; slist tokens; /* If we match the asis or corps list add and bail. */ status = bibtex_matches_list( bibout, outtag, ":ASIS", invalue, level, &(pm->asis), &match ); if ( match==1 || status!=BIBL_OK ) return status; status = bibtex_matches_list( bibout, outtag, ":CORP", invalue, level, &(pm->corps), &match ); if ( match==1 || status!=BIBL_OK ) return status; slist_init( &tokens ); bibtex_split( &tokens, invalue ); for ( i=0; idata ) ) level=LEVEL_MAIN; ok = title_process( bibout, "TITLE", invalue->data, level, pm->nosplittitle ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static void bibtexin_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "INTERNAL_TYPE" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'\n", tag ); } } static int bibtexin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = bibtexin_title, [ PERSON ] = bibtexin_person, [ PAGES ] = generic_pages, [ KEYWORD ] = bibtexin_keyword, [ EPRINT ] = bibtexin_eprint, [ HOWPUBLISHED ] = bibtexin_howpublished, [ LINKEDFILE ] = bibtexin_linkedfile, [ NOTES ] = generic_notes, [ GENRE ] = generic_genre, [ BT_SENTE ] = bibtexin_btsente, [ BT_ORG ] = bibtexin_btorg, [ URL ] = generic_url }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { bibtexin_notag( p, str_cstr( intag ) ); continue; } status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.7.0.0/bibutils/bibtexout.c0000644000000000000000000005770500000000000016242 0ustar0000000000000000/* * bibtexout.c * * Copyright (c) Chris Putnam 2003-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "str.h" #include "strsearch.h" #include "utf8.h" #include "xml.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "bibformats.h" static int bibtexout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static void bibtexout_writeheader( FILE *outptr, param *p ); void bibtexout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_BIBTEXOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 1; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; p->headerf = bibtexout_writeheader; p->footerf = NULL; p->writef = bibtexout_write; if ( !p->progname && progname ) p->progname = strdup( progname ); } enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE, TYPE_INBOOK, TYPE_INPROCEEDINGS, TYPE_PROCEEDINGS, TYPE_INCOLLECTION, TYPE_COLLECTION, TYPE_BOOK, TYPE_PHDTHESIS, TYPE_MASTERSTHESIS, TYPE_DIPLOMATHESIS, TYPE_REPORT, TYPE_MANUAL, TYPE_UNPUBLISHED, TYPE_ELECTRONIC, TYPE_MISC, NUM_TYPES }; static int is_genre_element( fields *in, int n ) { char *tag; tag = fields_tag( in, n, FIELDS_CHRP ); if ( !strcasecmp( tag, "GENRE:MARC" ) ) return 1; if ( !strcasecmp( tag, "GENRE:BIBUTILS" ) ) return 1; if ( !strcasecmp( tag, "GENRE:UNKNOWN" ) ) return 1; return 0; } static int is_issuance_element( fields *in, int n ) { if ( !strcasecmp( fields_tag( in, n, FIELDS_CHRP ), "ISSUANCE" ) ) return 1; else return 0; } static int bibtexout_type( fields *in, char *filename, int refnum, param *p ) { int type = TYPE_UNKNOWN, i, maxlevel, n, level; char *genre; /* determine bibliography type from GENRE */ for ( i=0; in; ++i ) { if ( !is_genre_element( in, i ) ) continue; genre = fields_value( in, i, FIELDS_CHRP ); level = in->level[i]; if ( !strcasecmp( genre, "periodical" ) || !strcasecmp( genre, "academic journal" ) || !strcasecmp( genre, "magazine" ) || !strcasecmp( genre, "newspaper" ) || !strcasecmp( genre, "article" ) ) { type = TYPE_ARTICLE; } else if ( !strcasecmp( genre, "instruction" ) ) { type = TYPE_MANUAL; } else if ( !strcasecmp( genre, "unpublished" ) || !strcasecmp( genre, "manuscript" ) ) { type = TYPE_UNPUBLISHED; } else if ( !strcasecmp( genre, "conference publication" ) ) { if ( level==0 ) type=TYPE_PROCEEDINGS; else type = TYPE_INPROCEEDINGS; } else if ( !strcasecmp( genre, "collection" ) ) { if ( level==0 ) type=TYPE_COLLECTION; else type = TYPE_INCOLLECTION; } else if ( !strcasecmp( genre, "report" ) || !strcasecmp( genre, "technical report" ) ) { type = TYPE_REPORT; } else if ( !strcasecmp( genre, "book chapter" ) ) { type = TYPE_INBOOK; } else if ( !strcasecmp( genre, "book" ) ) { if ( level==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } else if ( !strcasecmp( genre, "thesis" ) ) { if ( type==TYPE_UNKNOWN ) type=TYPE_PHDTHESIS; } else if ( !strcasecmp( genre, "Ph.D. thesis" ) ) { type = TYPE_PHDTHESIS; } else if ( !strcasecmp( genre, "Licentiate thesis" ) ) { type = TYPE_PHDTHESIS; } else if ( !strcasecmp( genre, "Masters thesis" ) ) { type = TYPE_MASTERSTHESIS; } else if ( !strcasecmp( genre, "Diploma thesis" ) ) { type = TYPE_DIPLOMATHESIS; } else if ( !strcasecmp( genre, "electronic" ) ) { type = TYPE_ELECTRONIC; } else if ( !strcasecmp( genre, "miscellaneous" ) ) { type = TYPE_MISC; } } /* check type from ISSUANCE */ if ( type==TYPE_UNKNOWN ) { for ( i=0; in; ++i ) { if ( !is_issuance_element( in, i ) ) continue; genre = fields_value( in, i, FIELDS_CHRP ); if ( !strcasecmp( genre, "monographic" ) ) { if ( level==0 ) type = TYPE_BOOK; } } } /* default to TYPE_MISC */ if ( type==TYPE_UNKNOWN ) { maxlevel = fields_maxlevel( in ); if ( maxlevel > 0 ) type = TYPE_MISC; else { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot identify TYPE in reference %d ", refnum+1 ); n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) fprintf( stderr, " %s", (char*) fields_value( in, n, FIELDS_CHRP ) ); fprintf( stderr, " (defaulting to @Misc)\n" ); type = TYPE_MISC; } } return type; } static void output( FILE *fp, fields *out, int format_opts ) { int i, j, len, nquotes; char *tag, *value, ch; /* ...output type information "@article{" */ value = ( char * ) fields_value( out, 0, FIELDS_CHRP ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE) ) fprintf( fp, "@%s{", value ); else { len = strlen( value ); fprintf( fp, "@" ); for ( i=0; in; ++j ) { nquotes = 0; tag = ( char * ) fields_tag( out, j, FIELDS_CHRP ); value = ( char * ) fields_value( out, j, FIELDS_CHRP ); fprintf( fp, ",\n" ); if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) fprintf( fp, " " ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE ) ) fprintf( fp, "%s", tag ); else { len = strlen( tag ); for ( i=0; i0 && value[i-1]=='\\' ) ) fprintf( fp, "\"" ); else { if ( nquotes % 2 == 0 ) fprintf( fp, "``" ); else fprintf( fp, "\'\'" ); nquotes++; } } } if ( format_opts & BIBL_FORMAT_BIBOUT_BRACKETS ) fprintf( fp, "}" ); else fprintf( fp, "\"" ); } /* ...finish reference */ if ( format_opts & BIBL_FORMAT_BIBOUT_FINALCOMMA ) fprintf( fp, "," ); fprintf( fp, "\n}\n\n" ); fflush( fp ); } static void append_type( int type, fields *out, int *status ) { char *typenames[ NUM_TYPES ] = { [ TYPE_ARTICLE ] = "Article", [ TYPE_INBOOK ] = "Inbook", [ TYPE_PROCEEDINGS ] = "Proceedings", [ TYPE_INPROCEEDINGS ] = "InProceedings", [ TYPE_BOOK ] = "Book", [ TYPE_PHDTHESIS ] = "PhdThesis", [ TYPE_MASTERSTHESIS ] = "MastersThesis", [ TYPE_DIPLOMATHESIS ] = "MastersThesis", [ TYPE_REPORT ] = "TechReport", [ TYPE_MANUAL ] = "Manual", [ TYPE_COLLECTION ] = "Collection", [ TYPE_INCOLLECTION ] = "InCollection", [ TYPE_UNPUBLISHED ] = "Unpublished", [ TYPE_ELECTRONIC ] = "Electronic", [ TYPE_MISC ] = "Misc", }; int fstatus; char *s; if ( type < 0 || type >= NUM_TYPES ) type = TYPE_MISC; s = typenames[ type ]; fstatus = fields_add( out, "TYPE", s, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_citekey( fields *in, fields *out, int format_opts, int *status ) { int n, fstatus; str s; char *p; n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( ( format_opts & BIBL_FORMAT_BIBOUT_DROPKEY ) || n==FIELDS_NOTFOUND ) { fstatus = fields_add( out, "REFNUM", "", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else { str_init( &s ); p = fields_value( in, n, FIELDS_CHRP ); while ( p && *p && *p!='|' ) { if ( format_opts & BIBL_FORMAT_BIBOUT_STRICTKEY ) { if ( isdigit((unsigned char)*p) || (*p>='A' && *p<='Z') || (*p>='a' && *p<='z' ) ) { str_addchar( &s, *p ); } } else { if ( *p!=' ' && *p!='\t' ) { str_addchar( &s, *p ); } } p++; } if ( str_memerr( &s ) ) { *status = BIBL_ERR_MEMERR; str_free( &s ); return; } fstatus = fields_add( out, "REFNUM", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; str_free( &s ); } } static void append_simple( fields *in, char *intag, char *outtag, fields *out, int *status ) { int n, fstatus; n = fields_find( in, intag, LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { fields_setused( in, n ); fstatus = fields_add( out, outtag, fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static void append_simpleall( fields *in, char *intag, char *outtag, fields *out, int *status ) { int i, fstatus; for ( i=0; in; ++i ) { if ( fields_match_tag( in, i, intag ) ) { fields_setused( in, i ); fstatus = fields_add( out, outtag, fields_value( in, i, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } } static void append_keywords( fields *in, fields *out, int *status ) { str keywords, *word; vplist_index i; int fstatus; vplist a; str_init( &keywords ); vplist_init( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_STRP, &a, "KEYWORD" ); if ( a.n ) { for ( i=0; i0 ) str_strcatc( &keywords, "; " ); str_strcat( &keywords, word ); } if ( str_memerr( &keywords ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, "keywords", str_cstr( &keywords ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &keywords ); vplist_free( &a ); } static void append_fileattach( fields *in, fields *out, int *status ) { char *tag, *value; int i, fstatus; str data; str_init( &data ); for ( i=0; in; ++i ) { tag = fields_tag( in, i, FIELDS_CHRP ); if ( strcasecmp( tag, "FILEATTACH" ) ) continue; value = fields_value( in, i, FIELDS_CHRP ); str_strcpyc( &data, ":" ); str_strcatc( &data, value ); if ( strsearch( value, ".pdf" ) ) str_strcatc( &data, ":PDF" ); else if ( strsearch( value, ".html" ) ) str_strcatc( &data, ":HTML" ); else str_strcatc( &data, ":TYPE" ); if ( str_memerr( &data ) ) { *status = BIBL_ERR_MEMERR; goto out; } fields_setused( in, i ); fstatus = fields_add( out, "file", str_cstr( &data ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } str_empty( &data ); } out: str_free( &data ); } static void append_people( fields *in, char *tag, char *ctag, char *atag, char *bibtag, int level, fields *out, int format_opts ) { str allpeople, oneperson; int i, npeople, person, corp, asis; strs_init( &allpeople, &oneperson, NULL ); /* primary citation authors */ npeople = 0; for ( i=0; in; ++i ) { if ( level!=LEVEL_ANY && in->level[i]!=level ) continue; person = ( strcasecmp( in->tag[i].data, tag ) == 0 ); corp = ( strcasecmp( in->tag[i].data, ctag ) == 0 ); asis = ( strcasecmp( in->tag[i].data, atag ) == 0 ); if ( person || corp || asis ) { if ( npeople>0 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) str_strcatc( &allpeople, "\n\t\tand " ); else str_strcatc( &allpeople, "\nand " ); } if ( corp ) { str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); str_addchar( &allpeople, '}' ); } else if ( asis ) { str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); str_addchar( &allpeople, '}' ); } else { name_build_withcomma( &oneperson, fields_value( in, i, FIELDS_CHRP ) ); str_strcat( &allpeople, &oneperson ); } npeople++; } } if ( npeople ) { fields_add( out, bibtag, allpeople.data, LEVEL_MAIN ); } strs_free( &allpeople, &oneperson, NULL ); } static int append_title_chosen( fields *in, char *bibtag, fields *out, int nmainttl, int nsubttl ) { str fulltitle, *mainttl = NULL, *subttl = NULL; int status, ret = BIBL_OK; str_init( &fulltitle ); if ( nmainttl!=-1 ) { mainttl = fields_value( in, nmainttl, FIELDS_STRP ); fields_setused( in, nmainttl ); } if ( nsubttl!=-1 ) { subttl = fields_value( in, nsubttl, FIELDS_STRP ); fields_setused( in, nsubttl ); } title_combine( &fulltitle, mainttl, subttl ); if ( str_memerr( &fulltitle ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fulltitle ) ) { status = fields_add( out, bibtag, str_cstr( &fulltitle ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) ret = BIBL_ERR_MEMERR; } out: str_free( &fulltitle ); return ret; } static int append_title( fields *in, char *bibtag, int level, fields *out, int format_opts ) { int title, short_title, subtitle, short_subtitle, use_title, use_subtitle; title = fields_find( in, "TITLE", level ); short_title = fields_find( in, "SHORTTITLE", level ); subtitle = fields_find( in, "SUBTITLE", level ); short_subtitle = fields_find( in, "SHORTSUBTITLE", level ); if ( title==FIELDS_NOTFOUND || ( ( format_opts & BIBL_FORMAT_BIBOUT_SHORTTITLE ) && level==1 ) ) { use_title = short_title; use_subtitle = short_subtitle; } else { use_title = title; use_subtitle = subtitle; } return append_title_chosen( in, bibtag, out, use_title, use_subtitle ); } static void append_titles( fields *in, int type, fields *out, int format_opts, int *status ) { /* item=main level title */ *status = append_title( in, "title", 0, out, format_opts ); if ( *status!=BIBL_OK ) return; switch( type ) { case TYPE_ARTICLE: *status = append_title( in, "journal", 1, out, format_opts ); break; case TYPE_INBOOK: *status = append_title( in, "bookTitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_INCOLLECTION: case TYPE_INPROCEEDINGS: *status = append_title( in, "booktitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_PHDTHESIS: case TYPE_MASTERSTHESIS: *status = append_title( in, "series", 1, out, format_opts ); break; case TYPE_BOOK: case TYPE_REPORT: case TYPE_COLLECTION: case TYPE_PROCEEDINGS: *status = append_title( in, "series", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; default: /* do nothing */ break; } } static int find_date( fields *in, char *date_element ) { char date[100], partdate[100]; int n; sprintf( date, "DATE:%s", date_element ); n = fields_find( in, date, LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) { sprintf( partdate, "PARTDATE:%s", date_element ); n = fields_find( in, partdate, LEVEL_ANY ); } return n; } static void append_date( fields *in, fields *out, int *status ) { char *months[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; int n, month, fstatus; n = find_date( in, "YEAR" ); if ( n!=FIELDS_NOTFOUND ) { fields_setused( in, n ); fstatus = fields_add( out, "year", in->data[n].data, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "MONTH" ); if ( n!=-1 ) { fields_setused( in, n ); month = atoi( in->data[n].data ); if ( month>0 && month<13 ) fstatus = fields_add( out, "month", months[month-1], LEVEL_MAIN ); else fstatus = fields_add( out, "month", in->data[n].data, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "DAY" ); if ( n!=-1 ) { fields_setused( in, n ); fstatus = fields_add( out, "day", in->data[n].data, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_arxiv( fields *in, fields *out, int *status ) { int n, fstatus1, fstatus2; str url; n = fields_find( in, "ARXIV", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_setused( in, n ); /* ...write: * archivePrefix = "arXiv", * eprint = "#####", * ...for arXiv references */ fstatus1 = fields_add( out, "archivePrefix", "arXiv", LEVEL_MAIN ); fstatus2 = fields_add( out, "eprint", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK || fstatus2!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } /* ...also write: * url = "http://arxiv.org/abs/####", * ...to maximize compatibility */ str_init( &url ); arxiv_to_url( in, n, "URL", &url ); if ( str_has_value( &url ) ) { fstatus1 = fields_add( out, "url", str_cstr( &url ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &url ); } static void append_urls( fields *in, fields *out, int *status ) { int lstatus; slist types; lstatus = slist_init_valuesc( &types, "URL", "DOI", "PMID", "PMC", "JSTOR", NULL ); if ( lstatus!=SLIST_OK ) { *status = BIBL_ERR_MEMERR; return; } *status = urls_merge_and_add( in, LEVEL_ANY, out, "url", LEVEL_MAIN, &types ); slist_free( &types ); } static void append_isi( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ISIREFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fstatus = fields_add( out, "note", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_articlenumber( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ARTICLENUMBER", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_setused( in, n ); fstatus = fields_add( out, "pages", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static int pages_build_pagestr( str *pages, fields *in, int sn, int en, int format_opts ) { /* ...append if starting page number is defined */ if ( sn!=-1 ) { str_strcat( pages, fields_value( in, sn, FIELDS_STRP ) ); fields_setused( in, sn ); } /* ...append dashes if both starting and ending page numbers are defined */ if ( sn!=-1 && en!=-1 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_SINGLEDASH ) str_strcatc( pages, "-" ); else str_strcatc( pages, "--" ); } /* ...append ending page number is defined */ if ( en!=-1 ) { str_strcat( pages, fields_value( in, en, FIELDS_STRP ) ); fields_setused( in, en ); } if ( str_memerr( pages ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int pages_are_defined( fields *in, int *sn, int *en ) { *sn = fields_find( in, "PAGES:START", LEVEL_ANY ); *en = fields_find( in, "PAGES:STOP", LEVEL_ANY ); if ( *sn==FIELDS_NOTFOUND && *en==FIELDS_NOTFOUND ) return 0; else return 1; } static void append_pages( fields *in, fields *out, int format_opts, int *status ) { int sn, en, fstatus; str pages; if ( !pages_are_defined( in, &sn, &en ) ) { append_articlenumber( in, out, status ); return; } str_init( &pages ); *status = pages_build_pagestr( &pages, in, sn, en, format_opts ); if ( *status==BIBL_OK ) { fstatus = fields_add( out, "pages", str_cstr( &pages ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &pages ); } /* * from Tim Hicks: * I'm no expert on bibtex, but those who know more than I on our mailing * list suggest that 'issue' isn't a recognised key for bibtex and * therefore that bibutils should be aliasing IS to number at some point in * the conversion. * * Therefore prefer outputting issue/number as number and only keep * a distinction if both issue and number are present for a particular * reference. */ static void append_issue_number( fields *in, fields *out, int *status ) { char issue[] = "issue", number[] = "number", *use_issue = number; int nissue = fields_find( in, "ISSUE", LEVEL_ANY ); int nnumber = fields_find( in, "NUMBER", LEVEL_ANY ); int fstatus; if ( nissue!=FIELDS_NOTFOUND && nnumber!=FIELDS_NOTFOUND ) use_issue = issue; if ( nissue!=FIELDS_NOTFOUND ) { fields_setused( in, nissue ); fstatus = fields_add( out, use_issue, fields_value( in, nissue, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } if ( nnumber!=FIELDS_NOTFOUND ) { fields_setused( in, nnumber ); fstatus = fields_add( out, "number", fields_value( in, nnumber, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_howpublished( fields *in, fields *out, int *status ) { int n, fstatus; char *d; n = fields_find( in, "GENRE:BIBUTILS", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; d = fields_value( in, n, FIELDS_CHRP_NOUSE ); if ( !strcmp( d, "Habilitation thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Licentiate thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Diploma thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static int append_data( fields *in, fields *out, param *p, unsigned long refnum ) { int type, status = BIBL_OK; type = bibtexout_type( in, "", refnum, p ); append_type ( type, out, &status ); append_citekey ( in, out, p->format_opts, &status ); append_people ( in, "AUTHOR", "AUTHOR:CORP", "AUTHOR:ASIS", "author", 0, out, p->format_opts ); append_people ( in, "EDITOR", "EDITOR:CORP", "EDITOR:ASIS", "editor", -1, out, p->format_opts ); append_people ( in, "TRANSLATOR", "TRANSLATOR:CORP", "TRANSLATOR:ASIS", "translator", -1, out, p->format_opts ); append_titles ( in, type, out, p->format_opts, &status ); append_date ( in, out, &status ); append_simple ( in, "EDITION", "edition", out, &status ); append_simple ( in, "PUBLISHER", "publisher", out, &status ); append_simple ( in, "ADDRESS", "address", out, &status ); append_simple ( in, "VOLUME", "volume", out, &status ); append_issue_number( in, out, &status ); append_pages ( in, out, p->format_opts, &status ); append_keywords ( in, out, &status ); append_simple ( in, "CONTENTS", "contents", out, &status ); append_simple ( in, "ABSTRACT", "abstract", out, &status ); append_simple ( in, "LOCATION", "location", out, &status ); append_simple ( in, "DEGREEGRANTOR", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:ASIS", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:CORP", "school", out, &status ); append_simpleall ( in, "NOTES", "note", out, &status ); append_simpleall ( in, "ANNOTE", "annote", out, &status ); append_simple ( in, "ISBN", "isbn", out, &status ); append_simple ( in, "ISSN", "issn", out, &status ); append_simple ( in, "MRNUMBER", "mrnumber", out, &status ); append_simple ( in, "CODEN", "coden", out, &status ); append_simple ( in, "DOI", "doi", out, &status ); append_urls ( in, out, &status ); append_fileattach ( in, out, &status ); append_arxiv ( in, out, &status ); append_simple ( in, "EPRINTCLASS", "primaryClass", out, &status ); append_isi ( in, out, &status ); append_simple ( in, "LANGUAGE", "language", out, &status ); append_howpublished( in, out, &status ); return status; } static int bibtexout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); status = append_data( in, &out, p, refnum ); if ( status==BIBL_OK ) output( fp, &out, p->format_opts ); fields_free( &out ); return status; } static void bibtexout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/bibtexout.c0000755000000000000000000005770500000000000016245 0ustar0000000000000000/* * bibtexout.c * * Copyright (c) Chris Putnam 2003-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "str.h" #include "strsearch.h" #include "utf8.h" #include "xml.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "bibformats.h" static int bibtexout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static void bibtexout_writeheader( FILE *outptr, param *p ); void bibtexout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_BIBTEXOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 1; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; p->headerf = bibtexout_writeheader; p->footerf = NULL; p->writef = bibtexout_write; if ( !p->progname && progname ) p->progname = strdup( progname ); } enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE, TYPE_INBOOK, TYPE_INPROCEEDINGS, TYPE_PROCEEDINGS, TYPE_INCOLLECTION, TYPE_COLLECTION, TYPE_BOOK, TYPE_PHDTHESIS, TYPE_MASTERSTHESIS, TYPE_DIPLOMATHESIS, TYPE_REPORT, TYPE_MANUAL, TYPE_UNPUBLISHED, TYPE_ELECTRONIC, TYPE_MISC, NUM_TYPES }; static int is_genre_element( fields *in, int n ) { char *tag; tag = fields_tag( in, n, FIELDS_CHRP ); if ( !strcasecmp( tag, "GENRE:MARC" ) ) return 1; if ( !strcasecmp( tag, "GENRE:BIBUTILS" ) ) return 1; if ( !strcasecmp( tag, "GENRE:UNKNOWN" ) ) return 1; return 0; } static int is_issuance_element( fields *in, int n ) { if ( !strcasecmp( fields_tag( in, n, FIELDS_CHRP ), "ISSUANCE" ) ) return 1; else return 0; } static int bibtexout_type( fields *in, char *filename, int refnum, param *p ) { int type = TYPE_UNKNOWN, i, maxlevel, n, level; char *genre; /* determine bibliography type from GENRE */ for ( i=0; in; ++i ) { if ( !is_genre_element( in, i ) ) continue; genre = fields_value( in, i, FIELDS_CHRP ); level = in->level[i]; if ( !strcasecmp( genre, "periodical" ) || !strcasecmp( genre, "academic journal" ) || !strcasecmp( genre, "magazine" ) || !strcasecmp( genre, "newspaper" ) || !strcasecmp( genre, "article" ) ) { type = TYPE_ARTICLE; } else if ( !strcasecmp( genre, "instruction" ) ) { type = TYPE_MANUAL; } else if ( !strcasecmp( genre, "unpublished" ) || !strcasecmp( genre, "manuscript" ) ) { type = TYPE_UNPUBLISHED; } else if ( !strcasecmp( genre, "conference publication" ) ) { if ( level==0 ) type=TYPE_PROCEEDINGS; else type = TYPE_INPROCEEDINGS; } else if ( !strcasecmp( genre, "collection" ) ) { if ( level==0 ) type=TYPE_COLLECTION; else type = TYPE_INCOLLECTION; } else if ( !strcasecmp( genre, "report" ) || !strcasecmp( genre, "technical report" ) ) { type = TYPE_REPORT; } else if ( !strcasecmp( genre, "book chapter" ) ) { type = TYPE_INBOOK; } else if ( !strcasecmp( genre, "book" ) ) { if ( level==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } else if ( !strcasecmp( genre, "thesis" ) ) { if ( type==TYPE_UNKNOWN ) type=TYPE_PHDTHESIS; } else if ( !strcasecmp( genre, "Ph.D. thesis" ) ) { type = TYPE_PHDTHESIS; } else if ( !strcasecmp( genre, "Licentiate thesis" ) ) { type = TYPE_PHDTHESIS; } else if ( !strcasecmp( genre, "Masters thesis" ) ) { type = TYPE_MASTERSTHESIS; } else if ( !strcasecmp( genre, "Diploma thesis" ) ) { type = TYPE_DIPLOMATHESIS; } else if ( !strcasecmp( genre, "electronic" ) ) { type = TYPE_ELECTRONIC; } else if ( !strcasecmp( genre, "miscellaneous" ) ) { type = TYPE_MISC; } } /* check type from ISSUANCE */ if ( type==TYPE_UNKNOWN ) { for ( i=0; in; ++i ) { if ( !is_issuance_element( in, i ) ) continue; genre = fields_value( in, i, FIELDS_CHRP ); if ( !strcasecmp( genre, "monographic" ) ) { if ( level==0 ) type = TYPE_BOOK; } } } /* default to TYPE_MISC */ if ( type==TYPE_UNKNOWN ) { maxlevel = fields_maxlevel( in ); if ( maxlevel > 0 ) type = TYPE_MISC; else { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot identify TYPE in reference %d ", refnum+1 ); n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) fprintf( stderr, " %s", (char*) fields_value( in, n, FIELDS_CHRP ) ); fprintf( stderr, " (defaulting to @Misc)\n" ); type = TYPE_MISC; } } return type; } static void output( FILE *fp, fields *out, int format_opts ) { int i, j, len, nquotes; char *tag, *value, ch; /* ...output type information "@article{" */ value = ( char * ) fields_value( out, 0, FIELDS_CHRP ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE) ) fprintf( fp, "@%s{", value ); else { len = strlen( value ); fprintf( fp, "@" ); for ( i=0; in; ++j ) { nquotes = 0; tag = ( char * ) fields_tag( out, j, FIELDS_CHRP ); value = ( char * ) fields_value( out, j, FIELDS_CHRP ); fprintf( fp, ",\n" ); if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) fprintf( fp, " " ); if ( !(format_opts & BIBL_FORMAT_BIBOUT_UPPERCASE ) ) fprintf( fp, "%s", tag ); else { len = strlen( tag ); for ( i=0; i0 && value[i-1]=='\\' ) ) fprintf( fp, "\"" ); else { if ( nquotes % 2 == 0 ) fprintf( fp, "``" ); else fprintf( fp, "\'\'" ); nquotes++; } } } if ( format_opts & BIBL_FORMAT_BIBOUT_BRACKETS ) fprintf( fp, "}" ); else fprintf( fp, "\"" ); } /* ...finish reference */ if ( format_opts & BIBL_FORMAT_BIBOUT_FINALCOMMA ) fprintf( fp, "," ); fprintf( fp, "\n}\n\n" ); fflush( fp ); } static void append_type( int type, fields *out, int *status ) { char *typenames[ NUM_TYPES ] = { [ TYPE_ARTICLE ] = "Article", [ TYPE_INBOOK ] = "Inbook", [ TYPE_PROCEEDINGS ] = "Proceedings", [ TYPE_INPROCEEDINGS ] = "InProceedings", [ TYPE_BOOK ] = "Book", [ TYPE_PHDTHESIS ] = "PhdThesis", [ TYPE_MASTERSTHESIS ] = "MastersThesis", [ TYPE_DIPLOMATHESIS ] = "MastersThesis", [ TYPE_REPORT ] = "TechReport", [ TYPE_MANUAL ] = "Manual", [ TYPE_COLLECTION ] = "Collection", [ TYPE_INCOLLECTION ] = "InCollection", [ TYPE_UNPUBLISHED ] = "Unpublished", [ TYPE_ELECTRONIC ] = "Electronic", [ TYPE_MISC ] = "Misc", }; int fstatus; char *s; if ( type < 0 || type >= NUM_TYPES ) type = TYPE_MISC; s = typenames[ type ]; fstatus = fields_add( out, "TYPE", s, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_citekey( fields *in, fields *out, int format_opts, int *status ) { int n, fstatus; str s; char *p; n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( ( format_opts & BIBL_FORMAT_BIBOUT_DROPKEY ) || n==FIELDS_NOTFOUND ) { fstatus = fields_add( out, "REFNUM", "", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else { str_init( &s ); p = fields_value( in, n, FIELDS_CHRP ); while ( p && *p && *p!='|' ) { if ( format_opts & BIBL_FORMAT_BIBOUT_STRICTKEY ) { if ( isdigit((unsigned char)*p) || (*p>='A' && *p<='Z') || (*p>='a' && *p<='z' ) ) { str_addchar( &s, *p ); } } else { if ( *p!=' ' && *p!='\t' ) { str_addchar( &s, *p ); } } p++; } if ( str_memerr( &s ) ) { *status = BIBL_ERR_MEMERR; str_free( &s ); return; } fstatus = fields_add( out, "REFNUM", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; str_free( &s ); } } static void append_simple( fields *in, char *intag, char *outtag, fields *out, int *status ) { int n, fstatus; n = fields_find( in, intag, LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) { fields_setused( in, n ); fstatus = fields_add( out, outtag, fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static void append_simpleall( fields *in, char *intag, char *outtag, fields *out, int *status ) { int i, fstatus; for ( i=0; in; ++i ) { if ( fields_match_tag( in, i, intag ) ) { fields_setused( in, i ); fstatus = fields_add( out, outtag, fields_value( in, i, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } } static void append_keywords( fields *in, fields *out, int *status ) { str keywords, *word; vplist_index i; int fstatus; vplist a; str_init( &keywords ); vplist_init( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_STRP, &a, "KEYWORD" ); if ( a.n ) { for ( i=0; i0 ) str_strcatc( &keywords, "; " ); str_strcat( &keywords, word ); } if ( str_memerr( &keywords ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, "keywords", str_cstr( &keywords ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &keywords ); vplist_free( &a ); } static void append_fileattach( fields *in, fields *out, int *status ) { char *tag, *value; int i, fstatus; str data; str_init( &data ); for ( i=0; in; ++i ) { tag = fields_tag( in, i, FIELDS_CHRP ); if ( strcasecmp( tag, "FILEATTACH" ) ) continue; value = fields_value( in, i, FIELDS_CHRP ); str_strcpyc( &data, ":" ); str_strcatc( &data, value ); if ( strsearch( value, ".pdf" ) ) str_strcatc( &data, ":PDF" ); else if ( strsearch( value, ".html" ) ) str_strcatc( &data, ":HTML" ); else str_strcatc( &data, ":TYPE" ); if ( str_memerr( &data ) ) { *status = BIBL_ERR_MEMERR; goto out; } fields_setused( in, i ); fstatus = fields_add( out, "file", str_cstr( &data ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } str_empty( &data ); } out: str_free( &data ); } static void append_people( fields *in, char *tag, char *ctag, char *atag, char *bibtag, int level, fields *out, int format_opts ) { str allpeople, oneperson; int i, npeople, person, corp, asis; strs_init( &allpeople, &oneperson, NULL ); /* primary citation authors */ npeople = 0; for ( i=0; in; ++i ) { if ( level!=LEVEL_ANY && in->level[i]!=level ) continue; person = ( strcasecmp( in->tag[i].data, tag ) == 0 ); corp = ( strcasecmp( in->tag[i].data, ctag ) == 0 ); asis = ( strcasecmp( in->tag[i].data, atag ) == 0 ); if ( person || corp || asis ) { if ( npeople>0 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_WHITESPACE ) str_strcatc( &allpeople, "\n\t\tand " ); else str_strcatc( &allpeople, "\nand " ); } if ( corp ) { str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); str_addchar( &allpeople, '}' ); } else if ( asis ) { str_addchar( &allpeople, '{' ); str_strcat( &allpeople, fields_value( in, i, FIELDS_STRP ) ); str_addchar( &allpeople, '}' ); } else { name_build_withcomma( &oneperson, fields_value( in, i, FIELDS_CHRP ) ); str_strcat( &allpeople, &oneperson ); } npeople++; } } if ( npeople ) { fields_add( out, bibtag, allpeople.data, LEVEL_MAIN ); } strs_free( &allpeople, &oneperson, NULL ); } static int append_title_chosen( fields *in, char *bibtag, fields *out, int nmainttl, int nsubttl ) { str fulltitle, *mainttl = NULL, *subttl = NULL; int status, ret = BIBL_OK; str_init( &fulltitle ); if ( nmainttl!=-1 ) { mainttl = fields_value( in, nmainttl, FIELDS_STRP ); fields_setused( in, nmainttl ); } if ( nsubttl!=-1 ) { subttl = fields_value( in, nsubttl, FIELDS_STRP ); fields_setused( in, nsubttl ); } title_combine( &fulltitle, mainttl, subttl ); if ( str_memerr( &fulltitle ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fulltitle ) ) { status = fields_add( out, bibtag, str_cstr( &fulltitle ), LEVEL_MAIN ); if ( status!=FIELDS_OK ) ret = BIBL_ERR_MEMERR; } out: str_free( &fulltitle ); return ret; } static int append_title( fields *in, char *bibtag, int level, fields *out, int format_opts ) { int title, short_title, subtitle, short_subtitle, use_title, use_subtitle; title = fields_find( in, "TITLE", level ); short_title = fields_find( in, "SHORTTITLE", level ); subtitle = fields_find( in, "SUBTITLE", level ); short_subtitle = fields_find( in, "SHORTSUBTITLE", level ); if ( title==FIELDS_NOTFOUND || ( ( format_opts & BIBL_FORMAT_BIBOUT_SHORTTITLE ) && level==1 ) ) { use_title = short_title; use_subtitle = short_subtitle; } else { use_title = title; use_subtitle = subtitle; } return append_title_chosen( in, bibtag, out, use_title, use_subtitle ); } static void append_titles( fields *in, int type, fields *out, int format_opts, int *status ) { /* item=main level title */ *status = append_title( in, "title", 0, out, format_opts ); if ( *status!=BIBL_OK ) return; switch( type ) { case TYPE_ARTICLE: *status = append_title( in, "journal", 1, out, format_opts ); break; case TYPE_INBOOK: *status = append_title( in, "bookTitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_INCOLLECTION: case TYPE_INPROCEEDINGS: *status = append_title( in, "booktitle", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; case TYPE_PHDTHESIS: case TYPE_MASTERSTHESIS: *status = append_title( in, "series", 1, out, format_opts ); break; case TYPE_BOOK: case TYPE_REPORT: case TYPE_COLLECTION: case TYPE_PROCEEDINGS: *status = append_title( in, "series", 1, out, format_opts ); if ( *status!=BIBL_OK ) return; *status = append_title( in, "series", 2, out, format_opts ); break; default: /* do nothing */ break; } } static int find_date( fields *in, char *date_element ) { char date[100], partdate[100]; int n; sprintf( date, "DATE:%s", date_element ); n = fields_find( in, date, LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) { sprintf( partdate, "PARTDATE:%s", date_element ); n = fields_find( in, partdate, LEVEL_ANY ); } return n; } static void append_date( fields *in, fields *out, int *status ) { char *months[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; int n, month, fstatus; n = find_date( in, "YEAR" ); if ( n!=FIELDS_NOTFOUND ) { fields_setused( in, n ); fstatus = fields_add( out, "year", in->data[n].data, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "MONTH" ); if ( n!=-1 ) { fields_setused( in, n ); month = atoi( in->data[n].data ); if ( month>0 && month<13 ) fstatus = fields_add( out, "month", months[month-1], LEVEL_MAIN ); else fstatus = fields_add( out, "month", in->data[n].data, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } n = find_date( in, "DAY" ); if ( n!=-1 ) { fields_setused( in, n ); fstatus = fields_add( out, "day", in->data[n].data, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_arxiv( fields *in, fields *out, int *status ) { int n, fstatus1, fstatus2; str url; n = fields_find( in, "ARXIV", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_setused( in, n ); /* ...write: * archivePrefix = "arXiv", * eprint = "#####", * ...for arXiv references */ fstatus1 = fields_add( out, "archivePrefix", "arXiv", LEVEL_MAIN ); fstatus2 = fields_add( out, "eprint", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK || fstatus2!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } /* ...also write: * url = "http://arxiv.org/abs/####", * ...to maximize compatibility */ str_init( &url ); arxiv_to_url( in, n, "URL", &url ); if ( str_has_value( &url ) ) { fstatus1 = fields_add( out, "url", str_cstr( &url ), LEVEL_MAIN ); if ( fstatus1!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &url ); } static void append_urls( fields *in, fields *out, int *status ) { int lstatus; slist types; lstatus = slist_init_valuesc( &types, "URL", "DOI", "PMID", "PMC", "JSTOR", NULL ); if ( lstatus!=SLIST_OK ) { *status = BIBL_ERR_MEMERR; return; } *status = urls_merge_and_add( in, LEVEL_ANY, out, "url", LEVEL_MAIN, &types ); slist_free( &types ); } static void append_isi( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ISIREFNUM", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fstatus = fields_add( out, "note", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_articlenumber( fields *in, fields *out, int *status ) { int n, fstatus; n = fields_find( in, "ARTICLENUMBER", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; fields_setused( in, n ); fstatus = fields_add( out, "pages", fields_value( in, n, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static int pages_build_pagestr( str *pages, fields *in, int sn, int en, int format_opts ) { /* ...append if starting page number is defined */ if ( sn!=-1 ) { str_strcat( pages, fields_value( in, sn, FIELDS_STRP ) ); fields_setused( in, sn ); } /* ...append dashes if both starting and ending page numbers are defined */ if ( sn!=-1 && en!=-1 ) { if ( format_opts & BIBL_FORMAT_BIBOUT_SINGLEDASH ) str_strcatc( pages, "-" ); else str_strcatc( pages, "--" ); } /* ...append ending page number is defined */ if ( en!=-1 ) { str_strcat( pages, fields_value( in, en, FIELDS_STRP ) ); fields_setused( in, en ); } if ( str_memerr( pages ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int pages_are_defined( fields *in, int *sn, int *en ) { *sn = fields_find( in, "PAGES:START", LEVEL_ANY ); *en = fields_find( in, "PAGES:STOP", LEVEL_ANY ); if ( *sn==FIELDS_NOTFOUND && *en==FIELDS_NOTFOUND ) return 0; else return 1; } static void append_pages( fields *in, fields *out, int format_opts, int *status ) { int sn, en, fstatus; str pages; if ( !pages_are_defined( in, &sn, &en ) ) { append_articlenumber( in, out, status ); return; } str_init( &pages ); *status = pages_build_pagestr( &pages, in, sn, en, format_opts ); if ( *status==BIBL_OK ) { fstatus = fields_add( out, "pages", str_cstr( &pages ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &pages ); } /* * from Tim Hicks: * I'm no expert on bibtex, but those who know more than I on our mailing * list suggest that 'issue' isn't a recognised key for bibtex and * therefore that bibutils should be aliasing IS to number at some point in * the conversion. * * Therefore prefer outputting issue/number as number and only keep * a distinction if both issue and number are present for a particular * reference. */ static void append_issue_number( fields *in, fields *out, int *status ) { char issue[] = "issue", number[] = "number", *use_issue = number; int nissue = fields_find( in, "ISSUE", LEVEL_ANY ); int nnumber = fields_find( in, "NUMBER", LEVEL_ANY ); int fstatus; if ( nissue!=FIELDS_NOTFOUND && nnumber!=FIELDS_NOTFOUND ) use_issue = issue; if ( nissue!=FIELDS_NOTFOUND ) { fields_setused( in, nissue ); fstatus = fields_add( out, use_issue, fields_value( in, nissue, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } if ( nnumber!=FIELDS_NOTFOUND ) { fields_setused( in, nnumber ); fstatus = fields_add( out, "number", fields_value( in, nnumber, FIELDS_CHRP ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_howpublished( fields *in, fields *out, int *status ) { int n, fstatus; char *d; n = fields_find( in, "GENRE:BIBUTILS", LEVEL_ANY ); if ( n==FIELDS_NOTFOUND ) return; d = fields_value( in, n, FIELDS_CHRP_NOUSE ); if ( !strcmp( d, "Habilitation thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Licentiate thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } if ( !strcmp( d, "Diploma thesis" ) ) { fstatus = fields_add( out, "howpublised", d, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static int append_data( fields *in, fields *out, param *p, unsigned long refnum ) { int type, status = BIBL_OK; type = bibtexout_type( in, "", refnum, p ); append_type ( type, out, &status ); append_citekey ( in, out, p->format_opts, &status ); append_people ( in, "AUTHOR", "AUTHOR:CORP", "AUTHOR:ASIS", "author", 0, out, p->format_opts ); append_people ( in, "EDITOR", "EDITOR:CORP", "EDITOR:ASIS", "editor", -1, out, p->format_opts ); append_people ( in, "TRANSLATOR", "TRANSLATOR:CORP", "TRANSLATOR:ASIS", "translator", -1, out, p->format_opts ); append_titles ( in, type, out, p->format_opts, &status ); append_date ( in, out, &status ); append_simple ( in, "EDITION", "edition", out, &status ); append_simple ( in, "PUBLISHER", "publisher", out, &status ); append_simple ( in, "ADDRESS", "address", out, &status ); append_simple ( in, "VOLUME", "volume", out, &status ); append_issue_number( in, out, &status ); append_pages ( in, out, p->format_opts, &status ); append_keywords ( in, out, &status ); append_simple ( in, "CONTENTS", "contents", out, &status ); append_simple ( in, "ABSTRACT", "abstract", out, &status ); append_simple ( in, "LOCATION", "location", out, &status ); append_simple ( in, "DEGREEGRANTOR", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:ASIS", "school", out, &status ); append_simple ( in, "DEGREEGRANTOR:CORP", "school", out, &status ); append_simpleall ( in, "NOTES", "note", out, &status ); append_simpleall ( in, "ANNOTE", "annote", out, &status ); append_simple ( in, "ISBN", "isbn", out, &status ); append_simple ( in, "ISSN", "issn", out, &status ); append_simple ( in, "MRNUMBER", "mrnumber", out, &status ); append_simple ( in, "CODEN", "coden", out, &status ); append_simple ( in, "DOI", "doi", out, &status ); append_urls ( in, out, &status ); append_fileattach ( in, out, &status ); append_arxiv ( in, out, &status ); append_simple ( in, "EPRINTCLASS", "primaryClass", out, &status ); append_isi ( in, out, &status ); append_simple ( in, "LANGUAGE", "language", out, &status ); append_howpublished( in, out, &status ); return status; } static int bibtexout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); status = append_data( in, &out, p, refnum ); if ( status==BIBL_OK ) output( fp, &out, p->format_opts ); fields_free( &out ); return status; } static void bibtexout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/bibtextypes.c0000644000000000000000000010553000000000000016565 0ustar0000000000000000/* * bibtypes.c * * Copyright (c) Chris Putnam 2003-2018 * * Program and source code released under the GPL version 2 * */ #include #include "fields.h" #include "reftypes.h" /* Entry types from the IEEEtran Bibtex Style + others as observed */ /* * Journal Article */ static lookups article[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "number", "ISSUE", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "journal", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "eprint", "", EPRINT, LEVEL_MAIN }, { "archivePrefix","ARCHIVEPREFIX", SIMPLE, LEVEL_MAIN }, { "eprintclass", "EPRINTCLASS", SIMPLE, LEVEL_MAIN }, { "primaryClass", "EPRINTCLASS", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "mrnumber", "MRNUMBER", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; /* Book */ static lookups book[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Technical reports */ static lookups report[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "institution", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "mrnumber", "MRNUMBER", SIMPLE, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; static lookups manual[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|instruction", ALWAYS, LEVEL_MAIN } }; /* Part of a book (e.g. chapter or section) */ static lookups inbook[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "month", "DATE:MONTH",SIMPLE, LEVEL_HOST }, { "day", "DATE:DAY", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_SERIES }, { "number", "NUMBER", SIMPLE, LEVEL_SERIES }, { "pages", "PAGES", PAGES, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; /* References of papers in conference proceedings */ static lookups inproceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "paper", "PAPER", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INPROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; /* Used for a section of a book with its own title */ static lookups incollection[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "month", "DATE:MONTH", SIMPLE, LEVEL_HOST }, { "day", "DATE:DAY", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_HOST } }; /* Proceedings */ static lookups proceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; static lookups phds[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS",SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "" , HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Ph.D. thesis", DEFAULT, LEVEL_MAIN } }; static lookups masters[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS",SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Masters thesis", DEFAULT, LEVEL_MAIN } }; /* Unpublished */ static lookups unpublished[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; /* * For Published Standards */ static lookups standard[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "institution", "AUTHOR:CORP", SIMPLE, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "revision", "EDITION", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|STANDARD", ALWAYS, LEVEL_MAIN } }; /* * For Journals and Magazines */ static lookups periodical[] = { { "title", "", TITLE, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_MAIN }, { "coden", "CODEN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_MAIN } }; /* * For Patent */ static lookups patent[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "assignee", "ASSIGNEE", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, /* date granted */ { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "yearfiled", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, /* date filed */ { "monthfiled", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "dayfiled", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "nationality", "NATIONALITY", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PATENT", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN }, }; /* * Electronic Source */ static lookups electronic[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|web site", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups misc[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|MISC", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|miscellaneous", ALWAYS, LEVEL_MAIN }, }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants bibtex_all[] = { REFTYPE( "article", article ), REFTYPE( "booklet", book ), REFTYPE( "book", book ), REFTYPE( "electronic", electronic ), REFTYPE( "inbook", inbook ), REFTYPE( "incollection", incollection ), REFTYPE( "inconference", inproceedings ), REFTYPE( "conference", inproceedings ), REFTYPE( "inproceedings", inproceedings ), REFTYPE( "manual", manual ), REFTYPE( "mastersthesis", masters ), REFTYPE( "misc", misc ), REFTYPE( "online", misc ), REFTYPE( "patent", patent ), REFTYPE( "phdthesis", phds ), REFTYPE( "periodical", periodical ), REFTYPE( "proceedings", proceedings ), REFTYPE( "standard", standard ), REFTYPE( "techreport", report ), REFTYPE( "unpublished", unpublished ), }; int bibtex_nall = sizeof( bibtex_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/bibtextypes.c0000755000000000000000000010553000000000000016570 0ustar0000000000000000/* * bibtypes.c * * Copyright (c) Chris Putnam 2003-2018 * * Program and source code released under the GPL version 2 * */ #include #include "fields.h" #include "reftypes.h" /* Entry types from the IEEEtran Bibtex Style + others as observed */ /* * Journal Article */ static lookups article[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "number", "ISSUE", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "journal", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "eprint", "", EPRINT, LEVEL_MAIN }, { "archivePrefix","ARCHIVEPREFIX", SIMPLE, LEVEL_MAIN }, { "eprintclass", "EPRINTCLASS", SIMPLE, LEVEL_MAIN }, { "primaryClass", "EPRINTCLASS", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "mrnumber", "MRNUMBER", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; /* Book */ static lookups book[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Technical reports */ static lookups report[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "institution", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "mrnumber", "MRNUMBER", SIMPLE, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; static lookups manual[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|instruction", ALWAYS, LEVEL_MAIN } }; /* Part of a book (e.g. chapter or section) */ static lookups inbook[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "month", "DATE:MONTH",SIMPLE, LEVEL_HOST }, { "day", "DATE:DAY", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_SERIES }, { "number", "NUMBER", SIMPLE, LEVEL_SERIES }, { "pages", "PAGES", PAGES, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; /* References of papers in conference proceedings */ static lookups inproceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "paper", "PAPER", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INPROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; /* Used for a section of a book with its own title */ static lookups incollection[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, /* chapter number */ { "title", "", TITLE, LEVEL_MAIN }, /* chapter name */ { "booktitle", "", TITLE, LEVEL_HOST }, { "series", "", TITLE, LEVEL_SERIES }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "address", "ADDRESS", SIMPLE, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "month", "DATE:MONTH", SIMPLE, LEVEL_HOST }, { "day", "DATE:DAY", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "lccn", "LCCN", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_HOST }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_HOST } }; /* Proceedings */ static lookups proceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; static lookups phds[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS",SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "" , HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Ph.D. thesis", DEFAULT, LEVEL_MAIN } }; static lookups masters[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS",SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Masters thesis", DEFAULT, LEVEL_MAIN } }; /* Unpublished */ static lookups unpublished[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH",SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH",BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; /* * For Published Standards */ static lookups standard[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "institution", "AUTHOR:CORP", SIMPLE, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "lccn", "LCCN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH",LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "revision", "EDITION", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|STANDARD", ALWAYS, LEVEL_MAIN } }; /* * For Journals and Magazines */ static lookups periodical[] = { { "title", "", TITLE, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "series", "", TITLE, LEVEL_HOST }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_MAIN }, { "coden", "CODEN", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_MAIN } }; /* * For Patent */ static lookups patent[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "assignee", "ASSIGNEE", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, /* date granted */ { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "yearfiled", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, /* date filed */ { "monthfiled", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "dayfiled", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "nationality", "NATIONALITY", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PATENT", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN }, }; /* * Electronic Source */ static lookups electronic[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|web site", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups misc[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "", TITLE, LEVEL_MAIN }, { "booktitle", "", TITLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", BT_ORG, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "editor", "EDITOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "contents", "CONTENTS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "ftp", "", URL, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "pdf", "FILEATTACH", SIMPLE, LEVEL_MAIN }, { "sentelink", "FILEATTACH", BT_SENTE, LEVEL_MAIN }, { "file", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "crossref", "CROSSREF", SIMPLE, LEVEL_MAIN }, { "location", "LOCATION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTE", SIMPLE, LEVEL_MAIN }, { "key", "BIBKEY", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "keywords", "KEYWORD", KEYWORD, LEVEL_MAIN }, { "", "INTERNAL_TYPE|MISC", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|miscellaneous", ALWAYS, LEVEL_MAIN }, }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants bibtex_all[] = { REFTYPE( "article", article ), REFTYPE( "booklet", book ), REFTYPE( "book", book ), REFTYPE( "electronic", electronic ), REFTYPE( "inbook", inbook ), REFTYPE( "incollection", incollection ), REFTYPE( "inconference", inproceedings ), REFTYPE( "conference", inproceedings ), REFTYPE( "inproceedings", inproceedings ), REFTYPE( "manual", manual ), REFTYPE( "mastersthesis", masters ), REFTYPE( "misc", misc ), REFTYPE( "online", misc ), REFTYPE( "patent", patent ), REFTYPE( "phdthesis", phds ), REFTYPE( "periodical", periodical ), REFTYPE( "proceedings", proceedings ), REFTYPE( "standard", standard ), REFTYPE( "techreport", report ), REFTYPE( "unpublished", unpublished ), }; int bibtex_nall = sizeof( bibtex_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/bibutils.c0000644000000000000000000000317700000000000016044 0ustar0000000000000000/* * bibutils.c * * Copyright (c) Chris Putnam 2005-2018 * * Source code released under the GPL version 2 * */ #include #include #include "bibutils.h" #include "bibformats.h" void bibl_initparams( param *p, int readmode, int writemode, char *progname ) { switch ( readmode ) { case BIBL_BIBTEXIN: bibtexin_initparams( p, progname ); break; case BIBL_BIBLATEXIN: biblatexin_initparams( p, progname ); break; case BIBL_COPACIN: copacin_initparams( p, progname ); break; case BIBL_EBIIN: ebiin_initparams( p, progname ); break; case BIBL_ENDNOTEIN: endin_initparams( p, progname ); break; case BIBL_ENDNOTEXMLIN: endxmlin_initparams( p, progname ); break; case BIBL_MEDLINEIN: medin_initparams( p, progname ); break; case BIBL_MODSIN: modsin_initparams( p, progname ); break; case BIBL_NBIBIN: nbibin_initparams( p, progname ); break; case BIBL_RISIN: risin_initparams( p, progname ); break; case BIBL_WORDIN: wordin_initparams( p, progname ); break; default: /* internal error */; } switch ( writemode ) { case BIBL_ADSABSOUT: adsout_initparams( p, progname ); break; case BIBL_BIBTEXOUT: bibtexout_initparams( p, progname ); break; case BIBL_ENDNOTEOUT: endout_initparams( p, progname ); break; case BIBL_ISIOUT: isiout_initparams( p, progname ); break; case BIBL_MODSOUT: modsout_initparams( p, progname ); break; case BIBL_NBIBOUT: nbibout_initparams( p, progname ); break; case BIBL_RISOUT: risout_initparams( p, progname ); break; case BIBL_WORD2007OUT: wordout_initparams( p, progname ); break; default: /* internal error */; } } hs-bibutils-6.7.0.0/bibutils/bibutils.c0000755000000000000000000000317700000000000016047 0ustar0000000000000000/* * bibutils.c * * Copyright (c) Chris Putnam 2005-2018 * * Source code released under the GPL version 2 * */ #include #include #include "bibutils.h" #include "bibformats.h" void bibl_initparams( param *p, int readmode, int writemode, char *progname ) { switch ( readmode ) { case BIBL_BIBTEXIN: bibtexin_initparams( p, progname ); break; case BIBL_BIBLATEXIN: biblatexin_initparams( p, progname ); break; case BIBL_COPACIN: copacin_initparams( p, progname ); break; case BIBL_EBIIN: ebiin_initparams( p, progname ); break; case BIBL_ENDNOTEIN: endin_initparams( p, progname ); break; case BIBL_ENDNOTEXMLIN: endxmlin_initparams( p, progname ); break; case BIBL_MEDLINEIN: medin_initparams( p, progname ); break; case BIBL_MODSIN: modsin_initparams( p, progname ); break; case BIBL_NBIBIN: nbibin_initparams( p, progname ); break; case BIBL_RISIN: risin_initparams( p, progname ); break; case BIBL_WORDIN: wordin_initparams( p, progname ); break; default: /* internal error */; } switch ( writemode ) { case BIBL_ADSABSOUT: adsout_initparams( p, progname ); break; case BIBL_BIBTEXOUT: bibtexout_initparams( p, progname ); break; case BIBL_ENDNOTEOUT: endout_initparams( p, progname ); break; case BIBL_ISIOUT: isiout_initparams( p, progname ); break; case BIBL_MODSOUT: modsout_initparams( p, progname ); break; case BIBL_NBIBOUT: nbibout_initparams( p, progname ); break; case BIBL_RISOUT: risout_initparams( p, progname ); break; case BIBL_WORD2007OUT: wordout_initparams( p, progname ); break; default: /* internal error */; } } hs-bibutils-6.7.0.0/bibutils/bibutils.h0000755000000000000000000001100700000000000016043 0ustar0000000000000000/* * bibutils.h * * Copyright (c) Chris Putnam 2005-2018 * * Source code released under GPL version 2 * */ #ifndef BIBUTILS_H #define BIBUTILS_H #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include "bibl.h" #include "slist.h" #include "charsets.h" #include "str_conv.h" #define BIBL_OK (0) #define BIBL_ERR_BADINPUT (-1) #define BIBL_ERR_MEMERR (-2) #define BIBL_ERR_CANTOPEN (-3) #define BIBL_FIRSTIN (100) #define BIBL_MODSIN (BIBL_FIRSTIN) #define BIBL_BIBTEXIN (BIBL_FIRSTIN+1) #define BIBL_RISIN (BIBL_FIRSTIN+2) #define BIBL_ENDNOTEIN (BIBL_FIRSTIN+3) #define BIBL_COPACIN (BIBL_FIRSTIN+4) #define BIBL_ISIIN (BIBL_FIRSTIN+5) #define BIBL_MEDLINEIN (BIBL_FIRSTIN+6) #define BIBL_ENDNOTEXMLIN (BIBL_FIRSTIN+7) #define BIBL_BIBLATEXIN (BIBL_FIRSTIN+8) #define BIBL_EBIIN (BIBL_FIRSTIN+9) #define BIBL_WORDIN (BIBL_FIRSTIN+10) #define BIBL_NBIBIN (BIBL_FIRSTIN+11) #define BIBL_LASTIN (BIBL_FIRSTIN+11) #define BIBL_FIRSTOUT (200) #define BIBL_MODSOUT (BIBL_FIRSTOUT) #define BIBL_BIBTEXOUT (BIBL_FIRSTOUT+1) #define BIBL_RISOUT (BIBL_FIRSTOUT+2) #define BIBL_ENDNOTEOUT (BIBL_FIRSTOUT+3) #define BIBL_ISIOUT (BIBL_FIRSTOUT+4) #define BIBL_WORD2007OUT (BIBL_FIRSTOUT+5) #define BIBL_ADSABSOUT (BIBL_FIRSTOUT+6) #define BIBL_NBIBOUT (BIBL_FIRSTOUT+7) #define BIBL_LASTOUT (BIBL_FIRSTOUT+7) #define BIBL_FORMAT_VERBOSE (1) #define BIBL_FORMAT_BIBOUT_FINALCOMMA (2) #define BIBL_FORMAT_BIBOUT_SINGLEDASH (4) #define BIBL_FORMAT_BIBOUT_WHITESPACE (8) #define BIBL_FORMAT_BIBOUT_BRACKETS (16) #define BIBL_FORMAT_BIBOUT_UPPERCASE (32) #define BIBL_FORMAT_BIBOUT_STRICTKEY (64) #define BIBL_FORMAT_BIBOUT_SHORTTITLE (128) #define BIBL_FORMAT_BIBOUT_DROPKEY (256) #define BIBL_FORMAT_MODSOUT_DROPKEY (512) #define BIBL_RAW_WITHCHARCONVERT (4) #define BIBL_RAW_WITHMAKEREFID (8) #define BIBL_CHARSET_UNKNOWN CHARSET_UNKNOWN #define BIBL_CHARSET_UNICODE CHARSET_UNICODE #define BIBL_CHARSET_GB18030 CHARSET_GB18030 #define BIBL_CHARSET_DEFAULT CHARSET_DEFAULT #define BIBL_CHARSET_UTF8_DEFAULT CHARSET_UTF8_DEFAULT #define BIBL_CHARSET_BOM_DEFAULT CHARSET_BOM_DEFAULT #define BIBL_SRC_DEFAULT (0) /* value from program default */ #define BIBL_SRC_FILE (1) /* value from file, priority over default */ #define BIBL_SRC_USER (2) /* value from user, priority over file, default */ #define BIBL_XMLOUT_FALSE STR_CONV_XMLOUT_FALSE #define BIBL_XMLOUT_TRUE STR_CONV_XMLOUT_TRUE #define BIBL_XMLOUT_ENTITIES STR_CONV_XMLOUT_ENTITIES typedef unsigned char uchar; typedef struct param { int readformat; int writeformat; int charsetin; uchar charsetin_src; /*BIBL_SRC_DEFAULT, BIBL_SRC_FILE, BIBL_SRC_USER*/ uchar latexin; uchar utf8in; uchar xmlin; uchar nosplittitle; int charsetout; uchar charsetout_src; /* BIBL_SRC_PROG, BIBL_SRC_USER */ uchar latexout; /* If true, write Latex codes */ uchar utf8out; /* If true, write characters encoded by utf8 */ uchar utf8bom; /* If true, write utf8 byte-order-mark */ uchar xmlout; /* If true, write characters in XML entities */ int format_opts; /* options for specific formats */ int addcount; /* add reference count to reference id */ uchar output_raw; uchar verbose; uchar singlerefperfile; slist asis; /* Names that shouldn't be mangled */ slist corps; /* Names that shouldn't be mangled-MODS corporation type */ char *progname; int (*readf)(FILE*,char*,int,int*,str*,str*,int*); int (*processf)(fields*,char*,char*,long,struct param*); int (*cleanf)(bibl*,struct param*); int (*typef) (fields*,char*,int,struct param*); int (*convertf)(fields*,fields*,int,struct param*); void (*headerf)(FILE*,struct param*); void (*footerf)(FILE*); int (*writef)(fields*,FILE*,struct param*,unsigned long); variants *all; int nall; } param; extern void bibl_initparams( param *p, int readmode, int writemode, char *progname ); extern void bibl_freeparams( param *p ); extern int bibl_readasis( param *p, char *filename ); extern int bibl_addtoasis( param *p, char *entry ); extern int bibl_readcorps( param *p, char *filename ); extern int bibl_addtocorps( param *p, char *entry ); extern int bibl_read( bibl *b, FILE *fp, char *filename, param *p ); extern int bibl_write( bibl *b, FILE *fp, param *p ); extern void bibl_reporterr( int err ); #ifdef __cplusplus } #endif /* __cplusplus */ #endif hs-bibutils-6.7.0.0/bibutils/bltypes.c0000644000000000000000000023162500000000000015712 0ustar0000000000000000/* * bltypes.c * * Copyright (c) Chris Putnam 2008-2018 * Copyright (c) Johannes Wilm 2010-2018 * * Program and source code released under the GPL version 2 * */ #include #include "fields.h" #include "reftypes.h" /* Entry types for biblatex formatted bibliographies */ /* * Article in a journal, newspaper, other periodical */ static lookups article[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "journal", "TITLE", TITLE, LEVEL_HOST }, { "journaltitle", "TITLE", TITLE, LEVEL_HOST }, { "journalsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "shortjournal", "SHORTTITLE", SIMPLE, LEVEL_HOST }, { "issuetitle", "TITLE", TITLE, LEVEL_SERIES }, /*WRONG*/ { "issuesubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "series", "PARTTITLE", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "eid", "EID", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "entrysubtype", "", BLT_SUBTYPE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|journal article", DEFAULT, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", DEFAULT, LEVEL_HOST } }; /* Book */ static lookups book[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, /* WRONG */ { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Booklet */ static lookups booklet[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; static lookups collection[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Part of a book (e.g. chapter or section) */ static lookups inbook[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "bookauthor", "AUTHOR", PERSON, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, /* WRONG */ { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; /* incollection */ static lookups incollection[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "bookauthor", "AUTHOR", PERSON, LEVEL_HOST }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, /* WRONG */ { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "location", "ADDRESS", SIMPLE, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_HOST } }; /* inproceedings */ static lookups inproceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "eventtitle", "EVENT:CONF", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, { "venue", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "location", "ADDRESS", SIMPLE, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INPROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups manual[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|instruction", ALWAYS, LEVEL_MAIN } }; static lookups misc[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|MISC", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|miscellaneous", ALWAYS, LEVEL_MAIN }, }; static lookups online[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|web page", ALWAYS, LEVEL_MAIN }, }; static lookups patent[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "holder", "ASSIGNEE", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PATENT", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN }, }; /* * An entire issue of a periodical * * "The title of the periodical is given in the title field. If the issue has * its own title in addition to the main title of the periodical, it goes in * the issuetitle field. The editor is omissible..." */ static lookups periodical[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_HOST }, { "subtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_HOST }, { "issuetitle", "TITLE", TITLE, LEVEL_MAIN }, { "issuesubtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "issuetitleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "series", "TITLE", SIMPLE, LEVEL_SERIES }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlmonth", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlyear", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|issue", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST } }; static lookups proceedings[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "eventtitle", "EVENT:CONF", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_SERIES }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", SIMPLE, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; /* Technical reports */ static lookups report[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "series", "TITLE", TITLE, LEVEL_HOST }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "institution", "SPONSOR:ASIS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "number", "REPORTNUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isrn", "ISRN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", SIMPLE, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; /* Unpublished */ static lookups unpublished[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; static lookups thesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, }; static lookups phdthesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Ph.D. thesis",DEFAULT, LEVEL_MAIN }, }; static lookups mastersthesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Masters thesis", DEFAULT, LEVEL_MAIN }, }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants biblatex_all[] = { REFTYPE( "article", article ), REFTYPE( "suppperiodical", article ), REFTYPE( "booklet", booklet ), REFTYPE( "book", book ), REFTYPE( "collection", collection ), REFTYPE( "reference", collection ), REFTYPE( "mvreference", collection ), REFTYPE( "inbook", inbook ), REFTYPE( "suppbook", inbook ), REFTYPE( "incollection", incollection ), REFTYPE( "inreference", incollection ), REFTYPE( "suppcollection", incollection ), REFTYPE( "inproceedings", inproceedings ), REFTYPE( "conference", inproceedings ), /* legacy */ REFTYPE( "manual", manual ), REFTYPE( "misc", misc ), REFTYPE( "online", online ), REFTYPE( "electronic", online ), /* legacy */ REFTYPE( "www", online ), /* jurabib compatibility */ REFTYPE( "patent", patent ), REFTYPE( "periodical", periodical ), REFTYPE( "proceedings", proceedings ), REFTYPE( "mvproceedings", proceedings ), REFTYPE( "report", report ), REFTYPE( "techreport", report ), /* REFTYPE( "set", set ), */ REFTYPE( "thesis", thesis ), REFTYPE( "phdthesis", phdthesis ), /* legacy */ REFTYPE( "mastersthesis", mastersthesis ), /* legacy */ REFTYPE( "unpublished", unpublished ), }; int biblatex_nall = sizeof( biblatex_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/bltypes.c0000755000000000000000000023162500000000000015715 0ustar0000000000000000/* * bltypes.c * * Copyright (c) Chris Putnam 2008-2018 * Copyright (c) Johannes Wilm 2010-2018 * * Program and source code released under the GPL version 2 * */ #include #include "fields.h" #include "reftypes.h" /* Entry types for biblatex formatted bibliographies */ /* * Article in a journal, newspaper, other periodical */ static lookups article[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "journal", "TITLE", TITLE, LEVEL_HOST }, { "journaltitle", "TITLE", TITLE, LEVEL_HOST }, { "journalsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "shortjournal", "SHORTTITLE", SIMPLE, LEVEL_HOST }, { "issuetitle", "TITLE", TITLE, LEVEL_SERIES }, /*WRONG*/ { "issuesubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "series", "PARTTITLE", SIMPLE, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "eid", "EID", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "abstract", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "entrysubtype", "", BLT_SUBTYPE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|journal article", DEFAULT, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", DEFAULT, LEVEL_HOST } }; /* Book */ static lookups book[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, /* WRONG */ { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Booklet */ static lookups booklet[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; static lookups collection[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; /* Part of a book (e.g. chapter or section) */ static lookups inbook[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "bookauthor", "AUTHOR", PERSON, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, /* WRONG */ { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_HOST }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { "", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; /* incollection */ static lookups incollection[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "bookauthor", "AUTHOR", PERSON, LEVEL_HOST }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, /* WRONG */ { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "location", "ADDRESS", SIMPLE, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_HOST } }; /* inproceedings */ static lookups inproceedings[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_HOST }, { "editortype", "", BLT_SKIP, LEVEL_HOST }, { "editoratype", "", BLT_SKIP, LEVEL_HOST }, { "editorbtype", "", BLT_SKIP, LEVEL_HOST }, { "editorctype", "", BLT_SKIP, LEVEL_HOST }, { "director", "DIRECTOR", PERSON, LEVEL_HOST }, { "producer", "PRODUCER", PERSON, LEVEL_HOST }, { "execproducer", "PRODUCER", PERSON, LEVEL_HOST }, { "writer", "AUTHOR", PERSON, LEVEL_HOST }, { "redactor", "REDACTOR", PERSON, LEVEL_HOST }, { "annotator", "ANNOTATOR", PERSON, LEVEL_HOST }, { "commentator", "COMMENTATOR", PERSON, LEVEL_HOST }, { "translator", "TRANSLATOR", PERSON, LEVEL_HOST }, { "eventtitle", "EVENT:CONF", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_HOST }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_HOST }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "booktitle", "TITLE", TITLE, LEVEL_HOST }, { "booksubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "booktitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "maintitle", "TITLE", TITLE, LEVEL_SERIES }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_SERIES }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_SERIES }, { "series", "TITLE", SIMPLE, LEVEL_SERIES+1 }, { "venue", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "location", "ADDRESS", SIMPLE, LEVEL_HOST }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, /* WRONG */ { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|INPROCEEDINGS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups manual[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "series", "TITLE", SIMPLE, LEVEL_HOST }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|instruction", ALWAYS, LEVEL_MAIN } }; static lookups misc[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|MISC", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|miscellaneous", ALWAYS, LEVEL_MAIN }, }; static lookups online[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|web page", ALWAYS, LEVEL_MAIN }, }; static lookups patent[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "holder", "ASSIGNEE", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "type", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "INTERNAL_TYPE|PATENT", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN }, }; /* * An entire issue of a periodical * * "The title of the periodical is given in the title field. If the issue has * its own title in addition to the main title of the periodical, it goes in * the issuetitle field. The editor is omissible..." */ static lookups periodical[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_HOST }, { "subtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_HOST }, { "issuetitle", "TITLE", TITLE, LEVEL_MAIN }, { "issuesubtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "issuetitleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "series", "TITLE", SIMPLE, LEVEL_SERIES }, { "volume", "VOLUME", SIMPLE, LEVEL_MAIN }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "issue", "ISSUE", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "day", "PARTDATE:DAY", SIMPLE, LEVEL_MAIN }, { "month", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "year", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", PAGES, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "issn", "ISSN", SIMPLE, LEVEL_HOST }, { "coden", "CODEN", SIMPLE, LEVEL_HOST }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlmonth", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "urlyear", "?????", SIMPLE, LEVEL_MAIN }, /* WRONG */ { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|issue", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST } }; static lookups proceedings[] = { { "editor", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editora", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorb", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editorc", "EDITOR", BLT_EDITOR, LEVEL_MAIN }, { "editortype", "", BLT_SKIP, LEVEL_MAIN }, { "editoratype", "", BLT_SKIP, LEVEL_MAIN }, { "editorbtype", "", BLT_SKIP, LEVEL_MAIN }, { "editorctype", "", BLT_SKIP, LEVEL_MAIN }, { "director", "DIRECTOR", PERSON, LEVEL_MAIN }, { "producer", "PRODUCER", PERSON, LEVEL_MAIN }, { "execproducer", "PRODUCER", PERSON, LEVEL_MAIN }, { "writer", "AUTHOR", PERSON, LEVEL_MAIN }, { "redactor", "REDACTOR", PERSON, LEVEL_MAIN }, { "annotator", "ANNOTATOR", PERSON, LEVEL_MAIN }, { "commentator", "COMMENTATOR", PERSON, LEVEL_MAIN }, { "translator", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "eventtitle", "EVENT:CONF", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "introduction", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "foreword", "INTROAUTHOR", PERSON, LEVEL_MAIN }, { "afterword", "AFTERAUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "maintitle", "TITLE", TITLE, LEVEL_HOST }, { "mainsubtitle", "SUBTITLE", TITLE, LEVEL_HOST }, { "maintitleaddon", "TITLEADDON", TITLE, LEVEL_HOST }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "origlanguage", "LANGUAGE", SIMPLE, LEVEL_ORIG }, { "origdate", "DATE", SIMPLE, LEVEL_ORIG }, { "origyear", "DATE:YEAR", SIMPLE, LEVEL_ORIG }, { "origtitle", "TITLE", SIMPLE, LEVEL_ORIG }, { "origlocation", "ADDRESS", SIMPLE, LEVEL_ORIG }, { "origpublisher", "PUBLISHER", SIMPLE, LEVEL_ORIG }, { "volume", "VOLUME", SIMPLE, LEVEL_HOST }, { "part", "PART", SIMPLE, LEVEL_HOST }, { "edition", "EDITION", SIMPLE, LEVEL_MAIN }, { "volumes", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "series", "TITLE", SIMPLE, LEVEL_SERIES }, { "number", "NUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "organization", "ORGANIZER:CORP", SIMPLE, LEVEL_MAIN }, { "publisher", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isbn", "ISBN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", SIMPLE, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; /* Technical reports */ static lookups report[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "series", "TITLE", TITLE, LEVEL_HOST }, { "type", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "institution", "SPONSOR:ASIS", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "number", "REPORTNUMBER", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "version", "EDITION", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "isrn", "ISRN", SIMPLE, LEVEL_MAIN }, { "chapter", "CHAPTER", SIMPLE, LEVEL_MAIN }, { "pages", "PAGES", SIMPLE, LEVEL_MAIN }, { "pagetotal", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "eprint", "", BT_EPRINT, LEVEL_MAIN }, { "eprinttype", "", BT_EPRINT, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; /* Unpublished */ static lookups unpublished[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urlday", "?????????", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?????????", SIMPLE, LEVEL_MAIN }, { "urlyear", "?????????", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "addendum", "ADDENDUM", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; static lookups thesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, }; static lookups phdthesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Ph.D. thesis",DEFAULT, LEVEL_MAIN }, }; static lookups mastersthesis[] = { { "author", "AUTHOR", PERSON, LEVEL_MAIN }, { "title", "TITLE", TITLE, LEVEL_MAIN }, { "subtitle", "SUBTITLE", TITLE, LEVEL_MAIN }, { "titleaddon", "TITLEADDON", TITLE, LEVEL_MAIN }, { "shorttitle", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, { "year", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "month", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "day", "DATE:DAY", SIMPLE, LEVEL_MAIN }, { "date", "DATE", SIMPLE, LEVEL_MAIN }, /*WRONG*/ { "type", "", BLT_THESIS_TYPE, LEVEL_MAIN }, { "institution", "DEGREEGRANTOR:ASIS", SIMPLE, LEVEL_MAIN }, { "school", "DEGREEGRANTOR:ASIS", BLT_SCHOOL, LEVEL_MAIN }, { "doi", "DOI", SIMPLE, LEVEL_MAIN }, { "howpublished", "", HOWPUBLISHED, LEVEL_MAIN }, { "url", "", URL, LEVEL_MAIN }, { "urldate", "URLDATE", SIMPLE, LEVEL_MAIN }, { "urlday", "?urlday?", SIMPLE, LEVEL_MAIN }, { "urlmonth", "?urlmonth?", SIMPLE, LEVEL_MAIN }, { "urlyear", "?urlyear?", SIMPLE, LEVEL_MAIN }, { "language", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "location", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "note", "NOTES", NOTES, LEVEL_MAIN }, { "annote", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "annotation", "ANNOTATION", SIMPLE, LEVEL_MAIN }, { "address", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "hyphenation", "LANGCATALOG", SIMPLE, LEVEL_MAIN }, { "pubstate", "PUBSTATE", SIMPLE, LEVEL_MAIN }, { "refnum", "REFNUM", SIMPLE, LEVEL_MAIN }, { "", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { "", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { "", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, { "", "GENRE:BIBUTILS|Masters thesis", DEFAULT, LEVEL_MAIN }, }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants biblatex_all[] = { REFTYPE( "article", article ), REFTYPE( "suppperiodical", article ), REFTYPE( "booklet", booklet ), REFTYPE( "book", book ), REFTYPE( "collection", collection ), REFTYPE( "reference", collection ), REFTYPE( "mvreference", collection ), REFTYPE( "inbook", inbook ), REFTYPE( "suppbook", inbook ), REFTYPE( "incollection", incollection ), REFTYPE( "inreference", incollection ), REFTYPE( "suppcollection", incollection ), REFTYPE( "inproceedings", inproceedings ), REFTYPE( "conference", inproceedings ), /* legacy */ REFTYPE( "manual", manual ), REFTYPE( "misc", misc ), REFTYPE( "online", online ), REFTYPE( "electronic", online ), /* legacy */ REFTYPE( "www", online ), /* jurabib compatibility */ REFTYPE( "patent", patent ), REFTYPE( "periodical", periodical ), REFTYPE( "proceedings", proceedings ), REFTYPE( "mvproceedings", proceedings ), REFTYPE( "report", report ), REFTYPE( "techreport", report ), /* REFTYPE( "set", set ), */ REFTYPE( "thesis", thesis ), REFTYPE( "phdthesis", phdthesis ), /* legacy */ REFTYPE( "mastersthesis", mastersthesis ), /* legacy */ REFTYPE( "unpublished", unpublished ), }; int biblatex_nall = sizeof( biblatex_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/bu_auth.c0000644000000000000000000000210200000000000015641 0ustar0000000000000000/* * bu_auth.c * * Copyright (c) Chris Putnam 2017-2018 * * Source code released under the GPL version 2 */ #include #include "bu_auth.h" const char *bu_genre[] = { "academic journal", "airtel", "collection", "communication", "Diploma thesis", "Doctoral thesis", "electronic", "e-mail communication" "Habilitation thesis", "handwritten note", "hearing", "journal article", "Licentiate thesis", "magazine", "magazine article", "manuscript", "Masters thesis", "memo", "miscellaneous", "newspaper article", "pamphlet", "Ph.D. thesis", "press release", "teletype", "television broadcast", "unpublished" }; int nbu_genre = sizeof( bu_genre ) / sizeof( const char *); static int position_in_list( const char *list[], int nlist, const char *query ) { int i; for ( i=0; i #include "bu_auth.h" const char *bu_genre[] = { "academic journal", "airtel", "collection", "communication", "Diploma thesis", "Doctoral thesis", "electronic", "e-mail communication" "Habilitation thesis", "handwritten note", "hearing", "journal article", "Licentiate thesis", "magazine", "magazine article", "manuscript", "Masters thesis", "memo", "miscellaneous", "newspaper article", "pamphlet", "Ph.D. thesis", "press release", "teletype", "television broadcast", "unpublished" }; int nbu_genre = sizeof( bu_genre ) / sizeof( const char *); static int position_in_list( const char *list[], int nlist, const char *query ) { int i; for ( i=0; i #include #include #include "charsets.h" #define ARRAYSIZE( a ) ( sizeof(a) / sizeof(a[0]) ) #define ARRAYSTART( a ) ( &(a[0]) ) #define CHARSETARRAY( a ) ARRAYSTART( a ), ARRAYSIZE( a ) #define CHARSET_NALIASES ( 7 ) typedef struct convert_t { unsigned int index, unicode; } convert_t; typedef struct allcharconvert_t { char cmdname[15]; char descriptname[200]; char aliases[CHARSET_NALIASES][25]; convert_t *table; int ntable; } allcharconvert_t; static convert_t adobeiso[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 305 }, { 145, 768 }, { 146, 769 }, { 147, 770 }, { 148, 771 }, { 149, 772 }, { 150, 774 }, { 151, 775 }, { 152, 776 }, { 153, 153 }, { 154, 778 }, { 155, 807 }, { 156, 156 }, { 157, 779 }, { 158, 808 }, { 159, 780 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t adobestd[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8260 }, { 165, 165 }, { 166, 402 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 8220 }, { 171, 171 }, { 172, 8249 }, { 173, 8250 }, { 174, 64257 }, { 175, 64258 }, { 176, 176 }, { 177, 8211 }, { 178, 8224 }, { 179, 8225 }, { 180, 183 }, { 181, 181 }, { 182, 182 }, { 183, 8729 }, { 184, 8218 }, { 185, 8222 }, { 186, 8221 }, { 187, 187 }, { 188, 8943 }, { 189, 8240 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 768 }, { 194, 180 }, { 195, 770 }, { 196, 771 }, { 197, 175 }, { 198, 728 }, { 199, 729 }, { 200, 168 }, { 201, 201 }, { 202, 176 }, { 203, 184 }, { 204, 204 }, { 205, 733 }, { 206, 731 }, { 207, 711 }, { 208, 8212 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 198 }, { 226, 226 }, { 227, 170 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 321 }, { 233, 216 }, { 234, 338 }, { 235, 186 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 230 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 305 }, { 246, 246 }, { 247, 247 }, { 248, 322 }, { 249, 248 }, { 250, 339 }, { 251, 223 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 39, 8216 }, { 39, 8217 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t adobesym[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 8242 }, { 163, 8804 }, { 164, 8725 }, { 165, 8734 }, { 166, 402 }, { 167, 9827 }, { 168, 9830 }, { 169, 9829 }, { 170, 9824 }, { 171, 8596 }, { 172, 8592 }, { 173, 8593 }, { 174, 8594 }, { 175, 8595 }, { 176, 176 }, { 177, 177 }, { 178, 8243 }, { 179, 8805 }, { 180, 215 }, { 181, 8733 }, { 182, 8706 }, { 183, 8729 }, { 184, 247 }, { 185, 8800 }, { 186, 8801 }, { 187, 8776 }, { 188, 8943 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 8709 }, { 199, 8745 }, { 200, 8746 }, { 201, 8835 }, { 202, 8839 }, { 203, 203 }, { 204, 8834 }, { 205, 8838 }, { 206, 8712 }, { 207, 207 }, { 208, 8736 }, { 209, 8711 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 8719 }, { 214, 8730 }, { 215, 8901 }, { 216, 172 }, { 217, 8743 }, { 218, 8744 }, { 219, 8660 }, { 220, 8656 }, { 221, 8657 }, { 222, 8658 }, { 223, 8659 }, { 224, 9674 }, { 225, 9001 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 8721 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 9002 }, { 242, 8747 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applecro[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 352 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 381 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 916 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 353 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 382 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 262 }, { 199, 171 }, { 200, 268 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 272 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 65534 }, { 217, 169 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 198 }, { 223, 187 }, { 224, 8211 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 263 }, { 231, 193 }, { 232, 269 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 273 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 960 }, { 250, 203 }, { 251, 730 }, { 252, 184 }, { 253, 202 }, { 254, 230 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t applecyr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1040 }, { 129, 1041 }, { 130, 1042 }, { 131, 1043 }, { 132, 1044 }, { 133, 1045 }, { 134, 1046 }, { 135, 1047 }, { 136, 1048 }, { 137, 1049 }, { 138, 1050 }, { 139, 1051 }, { 140, 1052 }, { 141, 1053 }, { 142, 1054 }, { 143, 1055 }, { 144, 1056 }, { 145, 1057 }, { 146, 1058 }, { 147, 1059 }, { 148, 1060 }, { 149, 1061 }, { 150, 1062 }, { 151, 1063 }, { 152, 1064 }, { 153, 1065 }, { 154, 1066 }, { 155, 1067 }, { 156, 1068 }, { 157, 1069 }, { 158, 1070 }, { 159, 1071 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 1030 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 1026 }, { 172, 1106 }, { 173, 8800 }, { 174, 1027 }, { 175, 1107 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 1110 }, { 181, 181 }, { 182, 8706 }, { 183, 1032 }, { 184, 1028 }, { 185, 1108 }, { 186, 1031 }, { 187, 1111 }, { 188, 1033 }, { 189, 1113 }, { 190, 1034 }, { 191, 1114 }, { 192, 1112 }, { 193, 1029 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 1035 }, { 204, 1115 }, { 205, 1036 }, { 206, 1116 }, { 207, 1109 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 8222 }, { 216, 1038 }, { 217, 1118 }, { 218, 1039 }, { 219, 1119 }, { 220, 8470 }, { 221, 1025 }, { 222, 1105 }, { 223, 1103 }, { 224, 1072 }, { 225, 1073 }, { 226, 1074 }, { 227, 1075 }, { 228, 1076 }, { 229, 1077 }, { 230, 1078 }, { 231, 1079 }, { 232, 1080 }, { 233, 1081 }, { 234, 1082 }, { 235, 1083 }, { 236, 1084 }, { 237, 1085 }, { 238, 1086 }, { 239, 1087 }, { 240, 1088 }, { 241, 1089 }, { 242, 1090 }, { 243, 1091 }, { 244, 1092 }, { 245, 1093 }, { 246, 1094 }, { 247, 1095 }, { 248, 1096 }, { 249, 1097 }, { 250, 1098 }, { 251, 1099 }, { 252, 1100 }, { 253, 1101 }, { 254, 1102 }, { 255, 164 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applegk2[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 913 }, { 130, 914 }, { 131, 915 }, { 132, 916 }, { 133, 214 }, { 134, 220 }, { 135, 917 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 918 }, { 140, 919 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 163 }, { 147, 8482 }, { 148, 238 }, { 149, 239 }, { 150, 8729 }, { 151, 920 }, { 152, 921 }, { 153, 244 }, { 154, 246 }, { 155, 155 }, { 156, 922 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 923 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 170 }, { 171, 938 }, { 172, 167 }, { 173, 8800 }, { 174, 924 }, { 175, 903 }, { 176, 925 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 926 }, { 181, 927 }, { 182, 928 }, { 183, 929 }, { 184, 931 }, { 185, 932 }, { 186, 933 }, { 187, 939 }, { 188, 934 }, { 189, 935 }, { 190, 936 }, { 191, 937 }, { 192, 940 }, { 193, 185 }, { 194, 172 }, { 195, 178 }, { 196, 179 }, { 197, 168 }, { 198, 901 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 166 }, { 204, 189 }, { 205, 902 }, { 206, 904 }, { 207, 176 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 900 }, { 215, 905 }, { 216, 906 }, { 217, 908 }, { 218, 910 }, { 219, 941 }, { 220, 942 }, { 221, 943 }, { 222, 972 }, { 223, 911 }, { 224, 973 }, { 225, 945 }, { 226, 946 }, { 227, 968 }, { 228, 948 }, { 229, 949 }, { 230, 966 }, { 231, 947 }, { 232, 951 }, { 233, 953 }, { 234, 958 }, { 235, 954 }, { 236, 955 }, { 237, 956 }, { 238, 957 }, { 239, 959 }, { 240, 960 }, { 241, 974 }, { 242, 961 }, { 243, 963 }, { 244, 964 }, { 245, 952 }, { 246, 969 }, { 247, 962 }, { 248, 967 }, { 249, 965 }, { 250, 950 }, { 251, 970 }, { 252, 971 }, { 253, 912 }, { 254, 944 }, { 255, 8240 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applegrk[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 901 }, { 182, 902 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macice[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 221 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 208 }, { 221, 240 }, { 222, 222 }, { 223, 254 }, { 224, 253 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macroman[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 64257 }, { 223, 64258 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 240 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macromanian[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 258 }, { 175, 350 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 259 }, { 191, 351 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 354 }, { 223, 355 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 356 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macturkish[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 286 }, { 219, 287 }, { 220, 304 }, { 221, 305 }, { 222, 350 }, { 223, 351 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 245 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t atarist[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 223 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 227 }, { 177, 245 }, { 178, 216 }, { 179, 248 }, { 180, 339 }, { 181, 338 }, { 182, 192 }, { 183, 195 }, { 184, 213 }, { 185, 168 }, { 186, 180 }, { 187, 8224 }, { 188, 182 }, { 189, 169 }, { 190, 174 }, { 191, 8482 }, { 192, 307 }, { 193, 306 }, { 194, 1488 }, { 195, 1489 }, { 196, 1490 }, { 197, 1491 }, { 198, 1492 }, { 199, 1493 }, { 200, 1494 }, { 201, 1495 }, { 202, 1496 }, { 203, 1497 }, { 204, 1499 }, { 205, 1500 }, { 206, 1502 }, { 207, 1504 }, { 208, 1505 }, { 209, 1506 }, { 210, 1508 }, { 211, 1510 }, { 212, 1511 }, { 213, 1512 }, { 214, 1513 }, { 215, 1514 }, { 216, 1503 }, { 217, 1498 }, { 218, 1501 }, { 219, 1507 }, { 220, 1509 }, { 221, 167 }, { 222, 8743 }, { 223, 8734 }, { 224, 945 }, { 225, 946 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8750 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 179 }, { 255, 175 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp437[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp737[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 913 }, { 129, 914 }, { 130, 915 }, { 131, 916 }, { 132, 917 }, { 133, 918 }, { 134, 919 }, { 135, 920 }, { 136, 921 }, { 137, 922 }, { 138, 923 }, { 139, 924 }, { 140, 925 }, { 141, 926 }, { 142, 927 }, { 143, 928 }, { 144, 929 }, { 145, 931 }, { 146, 932 }, { 147, 933 }, { 148, 934 }, { 149, 935 }, { 150, 936 }, { 151, 937 }, { 152, 945 }, { 153, 946 }, { 154, 947 }, { 155, 948 }, { 156, 949 }, { 157, 950 }, { 158, 951 }, { 159, 952 }, { 160, 953 }, { 161, 954 }, { 162, 955 }, { 163, 956 }, { 164, 957 }, { 165, 958 }, { 166, 959 }, { 167, 960 }, { 168, 961 }, { 169, 963 }, { 170, 962 }, { 171, 964 }, { 172, 965 }, { 173, 966 }, { 174, 967 }, { 175, 968 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 969 }, { 225, 940 }, { 226, 941 }, { 227, 942 }, { 228, 970 }, { 229, 943 }, { 230, 972 }, { 231, 973 }, { 232, 971 }, { 233, 974 }, { 234, 902 }, { 235, 904 }, { 236, 905 }, { 237, 906 }, { 238, 908 }, { 239, 910 }, { 240, 911 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 938 }, { 245, 939 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp775[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 262 }, { 129, 252 }, { 130, 233 }, { 131, 257 }, { 132, 228 }, { 133, 291 }, { 134, 229 }, { 135, 263 }, { 136, 322 }, { 137, 275 }, { 138, 342 }, { 139, 343 }, { 140, 299 }, { 141, 377 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 333 }, { 148, 246 }, { 149, 290 }, { 150, 162 }, { 151, 346 }, { 152, 347 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 215 }, { 159, 164 }, { 160, 256 }, { 161, 298 }, { 162, 243 }, { 163, 379 }, { 164, 380 }, { 165, 378 }, { 166, 8221 }, { 167, 166 }, { 168, 169 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 321 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 260 }, { 182, 268 }, { 183, 280 }, { 184, 278 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 302 }, { 190, 352 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 370 }, { 199, 362 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 381 }, { 208, 261 }, { 209, 269 }, { 210, 281 }, { 211, 279 }, { 212, 303 }, { 213, 353 }, { 214, 371 }, { 215, 363 }, { 216, 382 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 332 }, { 227, 323 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 324 }, { 232, 310 }, { 233, 311 }, { 234, 315 }, { 235, 316 }, { 236, 326 }, { 237, 274 }, { 238, 325 }, { 239, 8217 }, { 240, 173 }, { 241, 177 }, { 242, 8220 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 8222 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 39, 8216 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp850[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 215 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 169 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 162 }, { 190, 165 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 227 }, { 199, 195 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 240 }, { 209, 208 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 305 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 166 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 254 }, { 232, 222 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 253 }, { 237, 221 }, { 238, 175 }, { 239, 180 }, { 240, 173 }, { 241, 177 }, { 242, 8215 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp851[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 902 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 904 }, { 142, 196 }, { 143, 905 }, { 144, 906 }, { 145, 145 }, { 146, 908 }, { 147, 244 }, { 148, 246 }, { 149, 910 }, { 150, 251 }, { 151, 249 }, { 152, 911 }, { 153, 214 }, { 154, 220 }, { 155, 940 }, { 156, 163 }, { 157, 941 }, { 158, 942 }, { 159, 943 }, { 160, 970 }, { 161, 912 }, { 162, 972 }, { 163, 973 }, { 164, 913 }, { 165, 914 }, { 166, 915 }, { 167, 916 }, { 168, 917 }, { 169, 918 }, { 170, 919 }, { 171, 189 }, { 172, 920 }, { 173, 921 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 922 }, { 182, 923 }, { 183, 924 }, { 184, 925 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 926 }, { 190, 927 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 928 }, { 199, 929 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 931 }, { 208, 932 }, { 209, 933 }, { 210, 934 }, { 211, 935 }, { 212, 936 }, { 213, 937 }, { 214, 945 }, { 215, 946 }, { 216, 947 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 948 }, { 222, 949 }, { 223, 9600 }, { 224, 950 }, { 225, 951 }, { 226, 952 }, { 227, 953 }, { 228, 954 }, { 229, 955 }, { 230, 956 }, { 231, 957 }, { 232, 958 }, { 233, 959 }, { 234, 960 }, { 235, 961 }, { 236, 963 }, { 237, 962 }, { 238, 964 }, { 239, 900 }, { 240, 173 }, { 241, 177 }, { 242, 965 }, { 243, 966 }, { 244, 967 }, { 245, 167 }, { 246, 968 }, { 247, 901 }, { 248, 176 }, { 249, 168 }, { 250, 969 }, { 251, 971 }, { 252, 944 }, { 253, 974 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp852[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 367 }, { 134, 263 }, { 135, 231 }, { 136, 322 }, { 137, 235 }, { 138, 336 }, { 139, 337 }, { 140, 238 }, { 141, 377 }, { 142, 196 }, { 143, 262 }, { 144, 201 }, { 145, 313 }, { 146, 314 }, { 147, 244 }, { 148, 246 }, { 149, 317 }, { 150, 318 }, { 151, 346 }, { 152, 347 }, { 153, 214 }, { 154, 220 }, { 155, 356 }, { 156, 357 }, { 157, 321 }, { 158, 215 }, { 159, 269 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 260 }, { 165, 261 }, { 166, 381 }, { 167, 382 }, { 168, 280 }, { 169, 281 }, { 170, 170 }, { 171, 378 }, { 172, 268 }, { 173, 351 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 282 }, { 184, 350 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 379 }, { 190, 380 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 258 }, { 199, 259 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 273 }, { 209, 272 }, { 210, 270 }, { 211, 203 }, { 212, 271 }, { 213, 327 }, { 214, 205 }, { 215, 206 }, { 216, 283 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 354 }, { 222, 366 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 323 }, { 228, 324 }, { 229, 328 }, { 230, 352 }, { 231, 353 }, { 232, 340 }, { 233, 218 }, { 234, 341 }, { 235, 368 }, { 236, 253 }, { 237, 221 }, { 238, 355 }, { 239, 180 }, { 240, 173 }, { 241, 733 }, { 242, 731 }, { 243, 711 }, { 244, 728 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 729 }, { 251, 369 }, { 252, 344 }, { 253, 345 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp853[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 265 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 264 }, { 144, 201 }, { 145, 267 }, { 146, 266 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 304 }, { 153, 214 }, { 154, 220 }, { 155, 285 }, { 156, 163 }, { 157, 284 }, { 158, 215 }, { 159, 309 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 286 }, { 167, 287 }, { 168, 292 }, { 169, 293 }, { 170, 170 }, { 171, 189 }, { 172, 308 }, { 173, 351 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 350 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 379 }, { 190, 380 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 348 }, { 199, 349 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 208 }, { 209, 209 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 305 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 221 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 288 }, { 229, 289 }, { 230, 181 }, { 231, 294 }, { 232, 295 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 364 }, { 237, 365 }, { 238, 238 }, { 239, 180 }, { 240, 173 }, { 241, 241 }, { 242, 8467 }, { 243, 329 }, { 244, 728 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 729 }, { 251, 251 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 268 }, { 99, 263 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 352 }, { 115, 347 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 381 }, { 122, 378 }, { 122, 382 }, }; static convert_t cp855[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1106 }, { 129, 1026 }, { 130, 1107 }, { 131, 1027 }, { 132, 1105 }, { 133, 1025 }, { 134, 1108 }, { 135, 1028 }, { 136, 1109 }, { 137, 1029 }, { 138, 1110 }, { 139, 1030 }, { 140, 1111 }, { 141, 1031 }, { 142, 1112 }, { 143, 1032 }, { 144, 1113 }, { 145, 1033 }, { 146, 1114 }, { 147, 1034 }, { 148, 1115 }, { 149, 1035 }, { 150, 1116 }, { 151, 1036 }, { 152, 1118 }, { 153, 1038 }, { 154, 1119 }, { 155, 1039 }, { 156, 1102 }, { 157, 1070 }, { 158, 1098 }, { 159, 1066 }, { 160, 1072 }, { 161, 1040 }, { 162, 1073 }, { 163, 1041 }, { 164, 1094 }, { 165, 1062 }, { 166, 1076 }, { 167, 1044 }, { 168, 1077 }, { 169, 1045 }, { 170, 1092 }, { 171, 1060 }, { 172, 1075 }, { 173, 1043 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 1093 }, { 182, 1061 }, { 183, 1080 }, { 184, 1048 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 1081 }, { 190, 1049 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 1082 }, { 199, 1050 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 1083 }, { 209, 1051 }, { 210, 1084 }, { 211, 1052 }, { 212, 1085 }, { 213, 1053 }, { 214, 1086 }, { 215, 1054 }, { 216, 1087 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 1055 }, { 222, 1103 }, { 223, 9600 }, { 224, 1071 }, { 225, 1088 }, { 226, 1056 }, { 227, 1089 }, { 228, 1057 }, { 229, 1090 }, { 230, 1058 }, { 231, 1091 }, { 232, 1059 }, { 233, 1078 }, { 234, 1046 }, { 235, 1074 }, { 236, 1042 }, { 237, 1100 }, { 238, 1068 }, { 239, 8470 }, { 240, 173 }, { 241, 1099 }, { 242, 1067 }, { 243, 1079 }, { 244, 1047 }, { 245, 1096 }, { 246, 1064 }, { 247, 1101 }, { 248, 1069 }, { 249, 1097 }, { 250, 1065 }, { 251, 1095 }, { 252, 1063 }, { 253, 167 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp857[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 305 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 304 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 350 }, { 159, 351 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 286 }, { 167, 287 }, { 168, 191 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 169 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 162 }, { 190, 165 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 227 }, { 199, 195 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 186 }, { 209, 170 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 213 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 166 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 231 }, { 232, 215 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 236 }, { 237, 255 }, { 238, 175 }, { 239, 180 }, { 240, 173 }, { 241, 177 }, { 242, 242 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp860[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 227 }, { 133, 224 }, { 134, 193 }, { 135, 231 }, { 136, 234 }, { 137, 202 }, { 138, 232 }, { 139, 205 }, { 140, 212 }, { 141, 236 }, { 142, 195 }, { 143, 194 }, { 144, 201 }, { 145, 192 }, { 146, 200 }, { 147, 244 }, { 148, 245 }, { 149, 242 }, { 150, 218 }, { 151, 249 }, { 152, 204 }, { 153, 213 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 217 }, { 158, 8359 }, { 159, 211 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 210 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp861[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 208 }, { 140, 240 }, { 141, 222 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 254 }, { 150, 251 }, { 151, 221 }, { 152, 253 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 193 }, { 165, 205 }, { 166, 211 }, { 167, 218 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp862[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1488 }, { 129, 1489 }, { 130, 1490 }, { 131, 1491 }, { 132, 1492 }, { 133, 1493 }, { 134, 1494 }, { 135, 1495 }, { 136, 1496 }, { 137, 1497 }, { 138, 1498 }, { 139, 1499 }, { 140, 1500 }, { 141, 1501 }, { 142, 1502 }, { 143, 1503 }, { 144, 1504 }, { 145, 1505 }, { 146, 1506 }, { 147, 1507 }, { 148, 1508 }, { 149, 1509 }, { 150, 1510 }, { 151, 1511 }, { 152, 1512 }, { 153, 1513 }, { 154, 1514 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp863[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 194 }, { 133, 224 }, { 134, 182 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 8215 }, { 142, 192 }, { 143, 167 }, { 144, 201 }, { 145, 200 }, { 146, 202 }, { 147, 244 }, { 148, 203 }, { 149, 207 }, { 150, 251 }, { 151, 249 }, { 152, 164 }, { 153, 212 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 217 }, { 158, 219 }, { 159, 402 }, { 160, 166 }, { 161, 180 }, { 162, 243 }, { 163, 250 }, { 164, 168 }, { 165, 184 }, { 166, 179 }, { 167, 175 }, { 168, 206 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 190 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp864[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 176 }, { 129, 183 }, { 130, 8729 }, { 131, 8730 }, { 132, 9618 }, { 133, 9472 }, { 134, 9474 }, { 135, 9532 }, { 136, 9508 }, { 137, 9516 }, { 138, 9500 }, { 139, 9524 }, { 140, 9488 }, { 141, 9484 }, { 142, 9492 }, { 143, 9496 }, { 144, 946 }, { 145, 8734 }, { 146, 966 }, { 147, 177 }, { 148, 189 }, { 149, 188 }, { 150, 8776 }, { 151, 171 }, { 152, 187 }, { 153, 65271 }, { 154, 65272 }, { 155, 155 }, { 156, 156 }, { 157, 65275 }, { 158, 65276 }, { 159, 159 }, { 160, 160 }, { 161, 173 }, { 162, 65154 }, { 163, 163 }, { 164, 164 }, { 165, 65156 }, { 166, 166 }, { 167, 167 }, { 168, 65166 }, { 169, 1576 }, { 170, 1578 }, { 171, 1579 }, { 172, 1548 }, { 173, 1580 }, { 174, 1581 }, { 175, 1582 }, { 176, 1632 }, { 177, 1633 }, { 178, 1634 }, { 179, 1635 }, { 180, 1636 }, { 181, 1637 }, { 182, 1638 }, { 183, 1639 }, { 184, 1640 }, { 185, 1641 }, { 186, 1601 }, { 187, 1563 }, { 188, 1587 }, { 189, 1588 }, { 190, 1589 }, { 191, 1567 }, { 192, 162 }, { 193, 1569 }, { 194, 1570 }, { 195, 1571 }, { 196, 1572 }, { 197, 65226 }, { 198, 65163 }, { 199, 1575 }, { 200, 65169 }, { 201, 1577 }, { 202, 65175 }, { 203, 65179 }, { 204, 65183 }, { 205, 65187 }, { 206, 65191 }, { 207, 1583 }, { 208, 1584 }, { 209, 1585 }, { 210, 1586 }, { 211, 65203 }, { 212, 65207 }, { 213, 65211 }, { 214, 65215 }, { 215, 1591 }, { 216, 1592 }, { 217, 65227 }, { 218, 65231 }, { 219, 166 }, { 220, 172 }, { 221, 247 }, { 222, 215 }, { 223, 1593 }, { 224, 1600 }, { 225, 65235 }, { 226, 65239 }, { 227, 65243 }, { 228, 65247 }, { 229, 65251 }, { 230, 65255 }, { 231, 65259 }, { 232, 1608 }, { 233, 1609 }, { 234, 65267 }, { 235, 1590 }, { 236, 65228 }, { 237, 65230 }, { 238, 1594 }, { 239, 1605 }, { 240, 65149 }, { 241, 1617 }, { 242, 1606 }, { 243, 1607 }, { 244, 65260 }, { 245, 65264 }, { 246, 65266 }, { 247, 65232 }, { 248, 1602 }, { 249, 65269 }, { 250, 65270 }, { 251, 1604 }, { 252, 1603 }, { 253, 1610 }, { 254, 9632 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp865[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 164 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp866[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1040 }, { 129, 1041 }, { 130, 1042 }, { 131, 1043 }, { 132, 1044 }, { 133, 1045 }, { 134, 1046 }, { 135, 1047 }, { 136, 1048 }, { 137, 1049 }, { 138, 1050 }, { 139, 1051 }, { 140, 1052 }, { 141, 1053 }, { 142, 1054 }, { 143, 1055 }, { 144, 1056 }, { 145, 1057 }, { 146, 1058 }, { 147, 1059 }, { 148, 1060 }, { 149, 1061 }, { 150, 1062 }, { 151, 1063 }, { 152, 1064 }, { 153, 1065 }, { 154, 1066 }, { 155, 1067 }, { 156, 1068 }, { 157, 1069 }, { 158, 1070 }, { 159, 1071 }, { 160, 1072 }, { 161, 1073 }, { 162, 1074 }, { 163, 1075 }, { 164, 1076 }, { 165, 1077 }, { 166, 1078 }, { 167, 1079 }, { 168, 1080 }, { 169, 1081 }, { 170, 1082 }, { 171, 1083 }, { 172, 1084 }, { 173, 1085 }, { 174, 1086 }, { 175, 1087 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 1088 }, { 225, 1089 }, { 226, 1090 }, { 227, 1091 }, { 228, 1092 }, { 229, 1093 }, { 230, 1094 }, { 231, 1095 }, { 232, 1096 }, { 233, 1097 }, { 234, 1098 }, { 235, 1099 }, { 236, 1100 }, { 237, 1101 }, { 238, 1102 }, { 239, 1103 }, { 240, 1025 }, { 241, 1105 }, { 242, 1028 }, { 243, 1108 }, { 244, 1031 }, { 245, 1111 }, { 246, 1038 }, { 247, 1118 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8470 }, { 253, 164 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp869[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 902 }, { 135, 135 }, { 136, 183 }, { 137, 172 }, { 138, 166 }, { 139, 8216 }, { 140, 8217 }, { 141, 904 }, { 142, 8213 }, { 143, 905 }, { 144, 906 }, { 145, 938 }, { 146, 908 }, { 147, 147 }, { 148, 148 }, { 149, 910 }, { 150, 939 }, { 151, 169 }, { 152, 911 }, { 153, 178 }, { 154, 179 }, { 155, 940 }, { 156, 163 }, { 157, 941 }, { 158, 942 }, { 159, 943 }, { 160, 970 }, { 161, 912 }, { 162, 972 }, { 163, 973 }, { 164, 913 }, { 165, 914 }, { 166, 915 }, { 167, 916 }, { 168, 917 }, { 169, 918 }, { 170, 919 }, { 171, 189 }, { 172, 920 }, { 173, 921 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 922 }, { 182, 923 }, { 183, 924 }, { 184, 925 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 926 }, { 190, 927 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 928 }, { 199, 929 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 931 }, { 208, 932 }, { 209, 933 }, { 210, 934 }, { 211, 935 }, { 212, 936 }, { 213, 937 }, { 214, 945 }, { 215, 946 }, { 216, 947 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 948 }, { 222, 949 }, { 223, 9600 }, { 224, 950 }, { 225, 951 }, { 226, 952 }, { 227, 953 }, { 228, 954 }, { 229, 955 }, { 230, 956 }, { 231, 957 }, { 232, 958 }, { 233, 959 }, { 234, 960 }, { 235, 961 }, { 236, 963 }, { 237, 962 }, { 238, 964 }, { 239, 900 }, { 240, 173 }, { 241, 177 }, { 242, 965 }, { 243, 966 }, { 244, 967 }, { 245, 167 }, { 246, 968 }, { 247, 901 }, { 248, 176 }, { 249, 168 }, { 250, 969 }, { 251, 971 }, { 252, 944 }, { 253, 974 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp874[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 8230 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 3585 }, { 162, 3586 }, { 163, 3587 }, { 164, 3588 }, { 165, 3589 }, { 166, 3590 }, { 167, 3591 }, { 168, 3592 }, { 169, 3593 }, { 170, 3594 }, { 171, 3595 }, { 172, 3596 }, { 173, 3597 }, { 174, 3598 }, { 175, 3599 }, { 176, 3600 }, { 177, 3601 }, { 178, 3602 }, { 179, 3603 }, { 180, 3604 }, { 181, 3605 }, { 182, 3606 }, { 183, 3607 }, { 184, 3608 }, { 185, 3609 }, { 186, 3610 }, { 187, 3611 }, { 188, 3612 }, { 189, 3613 }, { 190, 3614 }, { 191, 3615 }, { 192, 3616 }, { 193, 3617 }, { 194, 3618 }, { 195, 3619 }, { 196, 3620 }, { 197, 3621 }, { 198, 3622 }, { 199, 3623 }, { 200, 3624 }, { 201, 3625 }, { 202, 3626 }, { 203, 3627 }, { 204, 3628 }, { 205, 3629 }, { 206, 3630 }, { 207, 3631 }, { 208, 3632 }, { 209, 3633 }, { 210, 3634 }, { 211, 3635 }, { 212, 3636 }, { 213, 3637 }, { 214, 3638 }, { 215, 3639 }, { 216, 3640 }, { 217, 3641 }, { 218, 3642 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 3647 }, { 224, 3648 }, { 225, 3649 }, { 226, 3650 }, { 227, 3651 }, { 228, 3652 }, { 229, 3653 }, { 230, 3654 }, { 231, 3655 }, { 232, 3656 }, { 233, 3657 }, { 234, 3658 }, { 235, 3659 }, { 236, 3660 }, { 237, 3661 }, { 238, 3662 }, { 239, 3663 }, { 240, 3664 }, { 241, 3665 }, { 242, 3666 }, { 243, 3667 }, { 244, 3668 }, { 245, 3669 }, { 246, 3670 }, { 247, 3671 }, { 248, 3672 }, { 249, 3673 }, { 250, 3674 }, { 251, 3675 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp895[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 268 }, { 129, 252 }, { 130, 233 }, { 131, 271 }, { 132, 228 }, { 133, 270 }, { 134, 356 }, { 135, 269 }, { 136, 283 }, { 137, 282 }, { 138, 313 }, { 139, 205 }, { 140, 318 }, { 141, 314 }, { 142, 196 }, { 143, 193 }, { 144, 201 }, { 145, 382 }, { 146, 381 }, { 147, 244 }, { 148, 246 }, { 149, 211 }, { 150, 367 }, { 151, 218 }, { 152, 253 }, { 153, 214 }, { 154, 220 }, { 155, 352 }, { 156, 317 }, { 157, 221 }, { 158, 344 }, { 159, 357 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 328 }, { 165, 327 }, { 166, 366 }, { 167, 212 }, { 168, 353 }, { 169, 345 }, { 170, 341 }, { 171, 340 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 226 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 76, 321 }, { 108, 316 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 116, 355 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t cp1250[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 346 }, { 141, 356 }, { 142, 381 }, { 143, 377 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 347 }, { 157, 357 }, { 158, 382 }, { 159, 378 }, { 160, 160 }, { 161, 711 }, { 162, 728 }, { 163, 321 }, { 164, 164 }, { 165, 260 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 350 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 379 }, { 176, 176 }, { 177, 177 }, { 178, 731 }, { 179, 322 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 261 }, { 186, 351 }, { 187, 187 }, { 188, 376 }, { 189, 733 }, { 190, 317 }, { 191, 380 }, { 192, 340 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 313 }, { 198, 262 }, { 199, 199 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 282 }, { 205, 205 }, { 206, 206 }, { 207, 270 }, { 208, 272 }, { 209, 323 }, { 210, 327 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 215 }, { 216, 344 }, { 217, 366 }, { 218, 218 }, { 219, 368 }, { 220, 220 }, { 221, 221 }, { 222, 354 }, { 223, 223 }, { 224, 341 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 314 }, { 230, 263 }, { 231, 231 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 283 }, { 237, 237 }, { 238, 238 }, { 239, 271 }, { 240, 273 }, { 241, 324 }, { 242, 328 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 247 }, { 248, 345 }, { 249, 367 }, { 250, 250 }, { 251, 369 }, { 252, 252 }, { 253, 253 }, { 254, 355 }, { 255, 729 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp1251[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1026 }, { 129, 1027 }, { 130, 8218 }, { 131, 1107 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 8364 }, { 137, 8240 }, { 138, 1033 }, { 139, 8249 }, { 140, 1034 }, { 141, 1036 }, { 142, 1035 }, { 143, 1039 }, { 144, 1106 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 1113 }, { 155, 8250 }, { 156, 1114 }, { 157, 1116 }, { 158, 1115 }, { 159, 1119 }, { 160, 160 }, { 161, 1038 }, { 162, 1118 }, { 163, 1032 }, { 164, 164 }, { 165, 1168 }, { 166, 166 }, { 167, 167 }, { 168, 1025 }, { 169, 169 }, { 170, 1028 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 1031 }, { 176, 176 }, { 177, 177 }, { 178, 1030 }, { 179, 1110 }, { 180, 1169 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 1105 }, { 185, 8470 }, { 186, 1108 }, { 187, 187 }, { 188, 1112 }, { 189, 1029 }, { 190, 1109 }, { 191, 1111 }, { 192, 1040 }, { 193, 1041 }, { 194, 1042 }, { 195, 1043 }, { 196, 1044 }, { 197, 1045 }, { 198, 1046 }, { 199, 1047 }, { 200, 1048 }, { 201, 1049 }, { 202, 1050 }, { 203, 1051 }, { 204, 1052 }, { 205, 1053 }, { 206, 1054 }, { 207, 1055 }, { 208, 1056 }, { 209, 1057 }, { 210, 1058 }, { 211, 1059 }, { 212, 1060 }, { 213, 1061 }, { 214, 1062 }, { 215, 1063 }, { 216, 1064 }, { 217, 1065 }, { 218, 1066 }, { 219, 1067 }, { 220, 1068 }, { 221, 1069 }, { 222, 1070 }, { 223, 1071 }, { 224, 1072 }, { 225, 1073 }, { 226, 1074 }, { 227, 1075 }, { 228, 1076 }, { 229, 1077 }, { 230, 1078 }, { 231, 1079 }, { 232, 1080 }, { 233, 1081 }, { 234, 1082 }, { 235, 1083 }, { 236, 1084 }, { 237, 1085 }, { 238, 1086 }, { 239, 1087 }, { 240, 1088 }, { 241, 1089 }, { 242, 1090 }, { 243, 1091 }, { 244, 1092 }, { 245, 1093 }, { 246, 1094 }, { 247, 1095 }, { 248, 1096 }, { 249, 1097 }, { 250, 1098 }, { 251, 1099 }, { 252, 1100 }, { 253, 1101 }, { 254, 1102 }, { 255, 1103 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1252[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 381 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 382 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t cp1253[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 901 }, { 162, 902 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 8213 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1254[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 158 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 286 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 304 }, { 222, 350 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 287 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 305 }, { 254, 351 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 115, 347 }, { 115, 349 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1255[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 215 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 781 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 247 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 8215 }, { 224, 1488 }, { 225, 1489 }, { 226, 1490 }, { 227, 1491 }, { 228, 1492 }, { 229, 1493 }, { 230, 1494 }, { 231, 1495 }, { 232, 1496 }, { 233, 1497 }, { 234, 1498 }, { 235, 1499 }, { 236, 1500 }, { 237, 1501 }, { 238, 1502 }, { 239, 1503 }, { 240, 1504 }, { 241, 1505 }, { 242, 1506 }, { 243, 1507 }, { 244, 1508 }, { 245, 1509 }, { 246, 1510 }, { 247, 1511 }, { 248, 1512 }, { 249, 1513 }, { 250, 1514 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1256[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1548 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 1563 }, { 153, 8482 }, { 154, 1567 }, { 155, 8250 }, { 156, 1569 }, { 157, 1570 }, { 158, 1571 }, { 159, 376 }, { 160, 160 }, { 161, 1572 }, { 162, 1573 }, { 163, 163 }, { 164, 164 }, { 165, 1574 }, { 166, 166 }, { 167, 167 }, { 168, 1575 }, { 169, 169 }, { 170, 1576 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 1577 }, { 179, 1578 }, { 180, 1579 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 1580 }, { 185, 185 }, { 186, 1581 }, { 187, 187 }, { 188, 1582 }, { 189, 1583 }, { 190, 1584 }, { 191, 1585 }, { 192, 192 }, { 193, 1586 }, { 194, 194 }, { 195, 195 }, { 196, 1587 }, { 197, 1588 }, { 198, 1589 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 1590 }, { 205, 1591 }, { 206, 206 }, { 207, 207 }, { 208, 1592 }, { 209, 1593 }, { 210, 1594 }, { 211, 1600 }, { 212, 212 }, { 213, 1601 }, { 214, 1602 }, { 215, 215 }, { 216, 1603 }, { 217, 217 }, { 218, 1711 }, { 219, 219 }, { 220, 220 }, { 221, 1604 }, { 222, 1605 }, { 223, 1606 }, { 224, 224 }, { 225, 1607 }, { 226, 226 }, { 227, 227 }, { 228, 1608 }, { 229, 1609 }, { 230, 1610 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 1611 }, { 237, 1612 }, { 238, 238 }, { 239, 239 }, { 240, 1613 }, { 241, 1614 }, { 242, 1615 }, { 243, 1616 }, { 244, 244 }, { 245, 1617 }, { 246, 1618 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 246 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1257[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 168 }, { 142, 711 }, { 143, 184 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 175 }, { 158, 731 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 216 }, { 169, 169 }, { 170, 342 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 198 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 248 }, { 185, 185 }, { 186, 343 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 230 }, { 192, 260 }, { 193, 302 }, { 194, 256 }, { 195, 262 }, { 196, 196 }, { 197, 197 }, { 198, 280 }, { 199, 274 }, { 200, 268 }, { 201, 201 }, { 202, 377 }, { 203, 278 }, { 204, 290 }, { 205, 310 }, { 206, 298 }, { 207, 315 }, { 208, 352 }, { 209, 323 }, { 210, 325 }, { 211, 211 }, { 212, 332 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 370 }, { 217, 321 }, { 218, 340 }, { 219, 362 }, { 220, 220 }, { 221, 379 }, { 222, 381 }, { 223, 223 }, { 224, 261 }, { 225, 303 }, { 226, 257 }, { 227, 263 }, { 228, 228 }, { 229, 229 }, { 230, 281 }, { 231, 275 }, { 232, 269 }, { 233, 233 }, { 234, 378 }, { 235, 279 }, { 236, 291 }, { 237, 311 }, { 238, 299 }, { 239, 316 }, { 240, 353 }, { 241, 324 }, { 242, 326 }, { 243, 243 }, { 244, 333 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 371 }, { 249, 322 }, { 250, 347 }, { 251, 363 }, { 252, 252 }, { 253, 380 }, { 254, 382 }, { 255, 729 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp1258[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 158 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 832 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 272 }, { 209, 209 }, { 210, 777 }, { 211, 211 }, { 212, 212 }, { 213, 416 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 431 }, { 222, 771 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 833 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 273 }, { 241, 241 }, { 242, 803 }, { 243, 243 }, { 244, 244 }, { 245, 417 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 432 }, { 254, 8363 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 256 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t decmcs[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 376 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 255 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t ebc037[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 162 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 124 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 33 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 172 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 221 }, { 174, 222 }, { 175, 174 }, { 176, 94 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 91 }, { 187, 93 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc1026[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 123 }, { 73, 241 }, { 74, 199 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 286 }, { 91, 304 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 91 }, { 105, 209 }, { 106, 351 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 305 }, { 122, 58 }, { 123, 214 }, { 124, 350 }, { 125, 39 }, { 126, 61 }, { 127, 220 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 125 }, { 141, 96 }, { 142, 166 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 246 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 93 }, { 173, 36 }, { 174, 64 }, { 175, 174 }, { 176, 162 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 172 }, { 187, 124 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 231 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 126 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 287 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 92 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 252 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 35 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 34 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 221 }, { 232, 374 }, { 232, 376 }, { 168, 253 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc1047[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 162 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 124 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 33 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 91 }, { 174, 222 }, { 175, 174 }, { 176, 172 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 221 }, { 187, 168 }, { 188, 175 }, { 189, 93 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc500[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 91 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 93 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 221 }, { 174, 222 }, { 175, 174 }, { 176, 162 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 172 }, { 187, 124 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc875[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 913 }, { 66, 914 }, { 67, 915 }, { 68, 916 }, { 69, 917 }, { 70, 918 }, { 71, 919 }, { 72, 920 }, { 73, 921 }, { 74, 91 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 922 }, { 82, 923 }, { 83, 924 }, { 84, 925 }, { 85, 926 }, { 86, 927 }, { 87, 928 }, { 88, 929 }, { 89, 931 }, { 90, 93 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 932 }, { 99, 933 }, { 100, 934 }, { 101, 935 }, { 102, 936 }, { 103, 937 }, { 104, 938 }, { 105, 939 }, { 106, 124 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 168 }, { 113, 902 }, { 114, 904 }, { 115, 905 }, { 116, 160 }, { 117, 906 }, { 118, 908 }, { 119, 910 }, { 120, 911 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 901 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 945 }, { 139, 946 }, { 140, 947 }, { 141, 948 }, { 142, 949 }, { 143, 950 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 951 }, { 155, 952 }, { 156, 953 }, { 157, 954 }, { 158, 955 }, { 159, 956 }, { 160, 180 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 957 }, { 171, 958 }, { 172, 959 }, { 173, 960 }, { 174, 961 }, { 175, 963 }, { 176, 163 }, { 177, 940 }, { 178, 941 }, { 179, 942 }, { 180, 970 }, { 181, 943 }, { 182, 972 }, { 183, 973 }, { 184, 971 }, { 185, 974 }, { 186, 962 }, { 187, 964 }, { 188, 965 }, { 189, 966 }, { 190, 967 }, { 191, 968 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 969 }, { 204, 912 }, { 205, 944 }, { 206, 206 }, { 207, 207 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 177 }, { 219, 189 }, { 220, 220 }, { 221, 183 }, { 222, 222 }, { 223, 166 }, { 224, 92 }, { 225, 225 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 167 }, { 236, 236 }, { 237, 237 }, { 238, 171 }, { 239, 172 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 169 }, { 252, 252 }, { 253, 253 }, { 254, 187 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 192 }, { 193, 193 }, { 193, 194 }, { 193, 195 }, { 193, 196 }, { 193, 197 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 224 }, { 129, 226 }, { 129, 227 }, { 129, 228 }, { 129, 229 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 199 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 231 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 200 }, { 197, 201 }, { 197, 202 }, { 197, 203 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 232 }, { 133, 233 }, { 133, 234 }, { 133, 235 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 204 }, { 201, 205 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 238 }, { 137, 239 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 209 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 241 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 210 }, { 213, 211 }, { 213, 212 }, { 213, 213 }, { 213, 214 }, { 213, 216 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 242 }, { 149, 243 }, { 149, 244 }, { 149, 245 }, { 149, 246 }, { 149, 248 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 217 }, { 228, 218 }, { 228, 219 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 249 }, { 164, 250 }, { 164, 251 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 221 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t hp48[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8735 }, { 129, 129 }, { 130, 8711 }, { 131, 8730 }, { 132, 8747 }, { 133, 8721 }, { 134, 9654 }, { 135, 960 }, { 136, 8706 }, { 137, 8804 }, { 138, 8805 }, { 139, 8800 }, { 140, 945 }, { 141, 8594 }, { 142, 8592 }, { 143, 8595 }, { 144, 8593 }, { 145, 947 }, { 146, 948 }, { 147, 949 }, { 148, 951 }, { 149, 952 }, { 150, 955 }, { 151, 961 }, { 152, 963 }, { 153, 964 }, { 154, 969 }, { 155, 916 }, { 156, 928 }, { 157, 937 }, { 158, 9644 }, { 159, 8734 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t hproman8[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 192 }, { 162, 194 }, { 163, 200 }, { 164, 202 }, { 165, 203 }, { 166, 206 }, { 167, 207 }, { 168, 180 }, { 169, 768 }, { 170, 770 }, { 171, 168 }, { 172, 771 }, { 173, 217 }, { 174, 219 }, { 175, 8356 }, { 176, 175 }, { 177, 221 }, { 178, 253 }, { 179, 176 }, { 180, 199 }, { 181, 231 }, { 182, 209 }, { 183, 241 }, { 184, 161 }, { 185, 191 }, { 186, 164 }, { 187, 163 }, { 188, 165 }, { 189, 167 }, { 190, 402 }, { 191, 162 }, { 192, 226 }, { 193, 234 }, { 194, 244 }, { 195, 251 }, { 196, 225 }, { 197, 233 }, { 198, 243 }, { 199, 250 }, { 200, 224 }, { 201, 232 }, { 202, 242 }, { 203, 249 }, { 204, 228 }, { 205, 235 }, { 206, 246 }, { 207, 252 }, { 208, 197 }, { 209, 238 }, { 210, 216 }, { 211, 198 }, { 212, 229 }, { 213, 237 }, { 214, 248 }, { 215, 230 }, { 216, 196 }, { 217, 236 }, { 218, 214 }, { 219, 220 }, { 220, 201 }, { 221, 239 }, { 222, 223 }, { 223, 212 }, { 224, 193 }, { 225, 195 }, { 226, 227 }, { 227, 208 }, { 228, 240 }, { 229, 205 }, { 230, 204 }, { 231, 211 }, { 232, 210 }, { 233, 213 }, { 234, 245 }, { 235, 352 }, { 236, 353 }, { 237, 218 }, { 238, 376 }, { 239, 255 }, { 240, 222 }, { 241, 254 }, { 242, 183 }, { 243, 181 }, { 244, 182 }, { 245, 190 }, { 246, 173 }, { 247, 188 }, { 248, 189 }, { 249, 170 }, { 250, 186 }, { 251, 171 }, { 252, 9632 }, { 253, 187 }, { 254, 177 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_irv[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_ca[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 226 }, { 92, 231 }, { 93, 234 }, { 94, 238 }, { 95, 95 }, { 96, 244 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 233 }, { 124, 249 }, { 125, 232 }, { 126, 251 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_ch[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 249 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 233 }, { 92, 231 }, { 93, 234 }, { 94, 238 }, { 95, 232 }, { 96, 244 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 252 }, { 126, 251 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_de[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 220 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 252 }, { 126, 223 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_es[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 161 }, { 92, 209 }, { 93, 191 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 176 }, { 124, 241 }, { 125, 231 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_fi[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 197 }, { 94, 220 }, { 95, 95 }, { 96, 233 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 229 }, { 126, 252 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_fr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 176 }, { 92, 231 }, { 93, 167 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 233 }, { 124, 249 }, { 125, 232 }, { 126, 168 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_gb[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_it[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 176 }, { 92, 231 }, { 93, 233 }, { 94, 94 }, { 95, 95 }, { 96, 249 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 224 }, { 124, 242 }, { 125, 232 }, { 126, 236 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_nl[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 190 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 255 }, { 92, 189 }, { 93, 124 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 168 }, { 124, 402 }, { 125, 188 }, { 126, 180 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_no[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 198 }, { 92, 216 }, { 93, 197 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 230 }, { 124, 248 }, { 125, 229 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_pt[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 195 }, { 92, 199 }, { 93, 213 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 227 }, { 124, 231 }, { 125, 245 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_se[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 201 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 197 }, { 94, 220 }, { 95, 95 }, { 96, 233 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 229 }, { 126, 252 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_1[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_2[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 728 }, { 163, 321 }, { 164, 164 }, { 165, 317 }, { 166, 346 }, { 167, 167 }, { 168, 168 }, { 169, 352 }, { 170, 350 }, { 171, 356 }, { 172, 377 }, { 173, 173 }, { 174, 381 }, { 175, 379 }, { 176, 176 }, { 177, 261 }, { 178, 731 }, { 179, 322 }, { 180, 180 }, { 181, 318 }, { 182, 347 }, { 183, 711 }, { 184, 184 }, { 185, 353 }, { 186, 351 }, { 187, 357 }, { 188, 378 }, { 189, 733 }, { 190, 382 }, { 191, 380 }, { 192, 340 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 313 }, { 198, 262 }, { 199, 199 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 282 }, { 205, 205 }, { 206, 206 }, { 207, 270 }, { 208, 272 }, { 209, 323 }, { 210, 327 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 215 }, { 216, 344 }, { 217, 366 }, { 218, 218 }, { 219, 368 }, { 220, 220 }, { 221, 221 }, { 222, 354 }, { 223, 223 }, { 224, 341 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 314 }, { 230, 263 }, { 231, 231 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 283 }, { 237, 237 }, { 238, 238 }, { 239, 271 }, { 240, 273 }, { 241, 324 }, { 242, 328 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 247 }, { 248, 345 }, { 249, 367 }, { 250, 250 }, { 251, 369 }, { 252, 252 }, { 253, 253 }, { 254, 355 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, }; static convert_t iso8859_3[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 294 }, { 162, 728 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 292 }, { 167, 167 }, { 168, 168 }, { 169, 304 }, { 170, 350 }, { 171, 286 }, { 172, 308 }, { 173, 173 }, { 174, 174 }, { 175, 379 }, { 176, 176 }, { 177, 295 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 293 }, { 183, 183 }, { 184, 184 }, { 185, 305 }, { 186, 351 }, { 187, 287 }, { 188, 309 }, { 189, 189 }, { 190, 190 }, { 191, 380 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 266 }, { 198, 264 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 288 }, { 214, 214 }, { 215, 215 }, { 216, 284 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 364 }, { 222, 348 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 267 }, { 230, 265 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 289 }, { 246, 246 }, { 247, 247 }, { 248, 285 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 365 }, { 254, 349 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 268 }, { 99, 263 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 352 }, { 115, 347 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 381 }, { 122, 378 }, { 122, 382 }, }; static convert_t iso8859_4[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 312 }, { 163, 342 }, { 164, 164 }, { 165, 296 }, { 166, 315 }, { 167, 167 }, { 168, 168 }, { 169, 352 }, { 170, 274 }, { 171, 290 }, { 172, 358 }, { 173, 173 }, { 174, 381 }, { 175, 175 }, { 176, 176 }, { 177, 261 }, { 178, 731 }, { 179, 343 }, { 180, 180 }, { 181, 297 }, { 182, 316 }, { 183, 711 }, { 184, 184 }, { 185, 353 }, { 186, 275 }, { 187, 291 }, { 188, 359 }, { 189, 330 }, { 190, 382 }, { 191, 331 }, { 192, 256 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 302 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 278 }, { 205, 205 }, { 206, 206 }, { 207, 298 }, { 208, 272 }, { 209, 325 }, { 210, 332 }, { 211, 310 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 370 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 360 }, { 222, 362 }, { 223, 223 }, { 224, 257 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 303 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 279 }, { 237, 237 }, { 238, 238 }, { 239, 299 }, { 240, 273 }, { 241, 326 }, { 242, 333 }, { 243, 311 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 371 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 361 }, { 254, 363 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_5[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 1025 }, { 162, 1026 }, { 163, 1027 }, { 164, 1028 }, { 165, 1029 }, { 166, 1030 }, { 167, 1031 }, { 168, 1032 }, { 169, 1033 }, { 170, 1034 }, { 171, 1035 }, { 172, 1036 }, { 173, 173 }, { 174, 1038 }, { 175, 1039 }, { 176, 1040 }, { 177, 1041 }, { 178, 1042 }, { 179, 1043 }, { 180, 1044 }, { 181, 1045 }, { 182, 1046 }, { 183, 1047 }, { 184, 1048 }, { 185, 1049 }, { 186, 1050 }, { 187, 1051 }, { 188, 1052 }, { 189, 1053 }, { 190, 1054 }, { 191, 1055 }, { 192, 1056 }, { 193, 1057 }, { 194, 1058 }, { 195, 1059 }, { 196, 1060 }, { 197, 1061 }, { 198, 1062 }, { 199, 1063 }, { 200, 1064 }, { 201, 1065 }, { 202, 1066 }, { 203, 1067 }, { 204, 1068 }, { 205, 1069 }, { 206, 1070 }, { 207, 1071 }, { 208, 1072 }, { 209, 1073 }, { 210, 1074 }, { 211, 1075 }, { 212, 1076 }, { 213, 1077 }, { 214, 1078 }, { 215, 1079 }, { 216, 1080 }, { 217, 1081 }, { 218, 1082 }, { 219, 1083 }, { 220, 1084 }, { 221, 1085 }, { 222, 1086 }, { 223, 1087 }, { 224, 1088 }, { 225, 1089 }, { 226, 1090 }, { 227, 1091 }, { 228, 1092 }, { 229, 1093 }, { 230, 1094 }, { 231, 1095 }, { 232, 1096 }, { 233, 1097 }, { 234, 1098 }, { 235, 1099 }, { 236, 1100 }, { 237, 1101 }, { 238, 1102 }, { 239, 1103 }, { 240, 8470 }, { 241, 1105 }, { 242, 1106 }, { 243, 1107 }, { 244, 1108 }, { 245, 1109 }, { 246, 1110 }, { 247, 1111 }, { 248, 1112 }, { 249, 1113 }, { 250, 1114 }, { 251, 1115 }, { 252, 1116 }, { 253, 167 }, { 254, 1118 }, { 255, 1119 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_6[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 1548 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 1563 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 1567 }, { 192, 192 }, { 193, 1569 }, { 194, 1570 }, { 195, 1571 }, { 196, 1572 }, { 197, 1573 }, { 198, 1574 }, { 199, 1575 }, { 200, 1576 }, { 201, 1577 }, { 202, 1578 }, { 203, 1579 }, { 204, 1580 }, { 205, 1581 }, { 206, 1582 }, { 207, 1583 }, { 208, 1584 }, { 209, 1585 }, { 210, 1586 }, { 211, 1587 }, { 212, 1588 }, { 213, 1589 }, { 214, 1590 }, { 215, 1591 }, { 216, 1592 }, { 217, 1593 }, { 218, 1594 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 1600 }, { 225, 1601 }, { 226, 1602 }, { 227, 1603 }, { 228, 1604 }, { 229, 1605 }, { 230, 1606 }, { 231, 1607 }, { 232, 1608 }, { 233, 1609 }, { 234, 1610 }, { 235, 1611 }, { 236, 1612 }, { 237, 1613 }, { 238, 1614 }, { 239, 1615 }, { 240, 1616 }, { 241, 1617 }, { 242, 1618 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_7[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 8216 }, { 162, 8217 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 8213 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 901 }, { 182, 902 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_8[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 215 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 247 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 8215 }, { 224, 1488 }, { 225, 1489 }, { 226, 1490 }, { 227, 1491 }, { 228, 1492 }, { 229, 1493 }, { 230, 1494 }, { 231, 1495 }, { 232, 1496 }, { 233, 1497 }, { 234, 1498 }, { 235, 1499 }, { 236, 1500 }, { 237, 1501 }, { 238, 1502 }, { 239, 1503 }, { 240, 1504 }, { 241, 1505 }, { 242, 1506 }, { 243, 1507 }, { 244, 1508 }, { 245, 1509 }, { 246, 1510 }, { 247, 1511 }, { 248, 1512 }, { 249, 1513 }, { 250, 1514 }, { 251, 251 }, { 252, 252 }, { 253, 8206 }, { 254, 8207 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_9[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 286 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 304 }, { 222, 350 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 287 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 305 }, { 254, 351 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_10[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 274 }, { 163, 290 }, { 164, 298 }, { 165, 296 }, { 166, 310 }, { 167, 167 }, { 168, 315 }, { 169, 272 }, { 170, 352 }, { 171, 358 }, { 172, 381 }, { 173, 173 }, { 174, 362 }, { 175, 330 }, { 176, 176 }, { 177, 261 }, { 178, 275 }, { 179, 291 }, { 180, 299 }, { 181, 297 }, { 182, 311 }, { 183, 183 }, { 184, 316 }, { 185, 273 }, { 186, 353 }, { 187, 359 }, { 188, 382 }, { 189, 8213 }, { 190, 363 }, { 191, 331 }, { 192, 256 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 302 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 278 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 325 }, { 210, 332 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 360 }, { 216, 216 }, { 217, 370 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 257 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 303 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 279 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 326 }, { 242, 333 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 361 }, { 248, 248 }, { 249, 371 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 312 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_11[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 3585 }, { 162, 3586 }, { 163, 3587 }, { 164, 3588 }, { 165, 3589 }, { 166, 3590 }, { 167, 3591 }, { 168, 3592 }, { 169, 3593 }, { 170, 3594 }, { 171, 3595 }, { 172, 3596 }, { 173, 3597 }, { 174, 3598 }, { 175, 3599 }, { 176, 3600 }, { 177, 3601 }, { 178, 3602 }, { 179, 3603 }, { 180, 3604 }, { 181, 3605 }, { 182, 3606 }, { 183, 3607 }, { 184, 3608 }, { 185, 3609 }, { 186, 3610 }, { 187, 3611 }, { 188, 3612 }, { 189, 3613 }, { 190, 3614 }, { 191, 3615 }, { 192, 3616 }, { 193, 3617 }, { 194, 3618 }, { 195, 3619 }, { 196, 3620 }, { 197, 3621 }, { 198, 3622 }, { 199, 3623 }, { 200, 3624 }, { 201, 3625 }, { 202, 3626 }, { 203, 3627 }, { 204, 3628 }, { 205, 3629 }, { 206, 3630 }, { 207, 3631 }, { 208, 3632 }, { 209, 3633 }, { 210, 3634 }, { 211, 3635 }, { 212, 3636 }, { 213, 3637 }, { 214, 3638 }, { 215, 3639 }, { 216, 3640 }, { 217, 3641 }, { 218, 3642 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 3647 }, { 224, 3648 }, { 225, 3649 }, { 226, 3650 }, { 227, 3651 }, { 228, 3652 }, { 229, 3653 }, { 230, 3654 }, { 231, 3655 }, { 232, 3656 }, { 233, 3657 }, { 234, 3658 }, { 235, 3659 }, { 236, 3660 }, { 237, 3661 }, { 238, 3662 }, { 239, 3663 }, { 240, 3664 }, { 241, 3665 }, { 242, 3666 }, { 243, 3667 }, { 244, 3668 }, { 245, 3669 }, { 246, 3670 }, { 247, 3671 }, { 248, 3672 }, { 249, 3673 }, { 250, 3674 }, { 251, 3675 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_13[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 8221 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 8222 }, { 166, 166 }, { 167, 167 }, { 168, 216 }, { 169, 169 }, { 170, 342 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 198 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 8220 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 248 }, { 185, 185 }, { 186, 343 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 230 }, { 192, 260 }, { 193, 302 }, { 194, 256 }, { 195, 262 }, { 196, 196 }, { 197, 197 }, { 198, 280 }, { 199, 274 }, { 200, 268 }, { 201, 201 }, { 202, 377 }, { 203, 278 }, { 204, 290 }, { 205, 310 }, { 206, 298 }, { 207, 315 }, { 208, 352 }, { 209, 323 }, { 210, 325 }, { 211, 211 }, { 212, 332 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 370 }, { 217, 321 }, { 218, 346 }, { 219, 362 }, { 220, 220 }, { 221, 379 }, { 222, 381 }, { 223, 223 }, { 224, 261 }, { 225, 303 }, { 226, 257 }, { 227, 263 }, { 228, 228 }, { 229, 229 }, { 230, 281 }, { 231, 275 }, { 232, 269 }, { 233, 233 }, { 234, 378 }, { 235, 279 }, { 236, 291 }, { 237, 311 }, { 238, 299 }, { 239, 316 }, { 240, 353 }, { 241, 324 }, { 242, 326 }, { 243, 243 }, { 244, 333 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 371 }, { 249, 322 }, { 250, 347 }, { 251, 363 }, { 252, 252 }, { 253, 380 }, { 254, 382 }, { 255, 8217 }, { 39, 8216 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t iso8859_14[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 7682 }, { 162, 7683 }, { 163, 163 }, { 164, 266 }, { 165, 267 }, { 166, 7690 }, { 167, 167 }, { 168, 7808 }, { 169, 169 }, { 170, 7810 }, { 171, 7691 }, { 172, 7922 }, { 173, 173 }, { 174, 174 }, { 175, 376 }, { 176, 7710 }, { 177, 7711 }, { 178, 288 }, { 179, 289 }, { 180, 7744 }, { 181, 7745 }, { 182, 182 }, { 183, 7766 }, { 184, 7809 }, { 185, 7767 }, { 186, 7811 }, { 187, 7776 }, { 188, 7923 }, { 189, 7812 }, { 190, 7813 }, { 191, 7777 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 372 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 7786 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 374 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 373 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 7787 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 375 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_15[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8364 }, { 165, 165 }, { 166, 352 }, { 167, 167 }, { 168, 353 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 381 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 382 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 338 }, { 189, 339 }, { 190, 376 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_16[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 261 }, { 163, 321 }, { 164, 8364 }, { 165, 8222 }, { 166, 352 }, { 167, 167 }, { 168, 353 }, { 169, 169 }, { 170, 536 }, { 171, 171 }, { 172, 377 }, { 173, 173 }, { 174, 378 }, { 175, 379 }, { 176, 176 }, { 177, 177 }, { 178, 268 }, { 179, 322 }, { 180, 381 }, { 181, 8221 }, { 182, 182 }, { 183, 183 }, { 184, 382 }, { 185, 269 }, { 186, 537 }, { 187, 187 }, { 188, 338 }, { 189, 339 }, { 190, 376 }, { 191, 380 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 262 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 272 }, { 209, 323 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 346 }, { 216, 368 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 280 }, { 222, 538 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 263 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 273 }, { 241, 324 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 347 }, { 248, 369 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 281 }, { 254, 539 }, { 255, 255 }, { 34, 8220 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, }; static convert_t koi8_r[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 9472 }, { 129, 9474 }, { 130, 9484 }, { 131, 9488 }, { 132, 9492 }, { 133, 9496 }, { 134, 9500 }, { 135, 9508 }, { 136, 9516 }, { 137, 9524 }, { 138, 9532 }, { 139, 9600 }, { 140, 9604 }, { 141, 9608 }, { 142, 9612 }, { 143, 9616 }, { 144, 9617 }, { 145, 9618 }, { 146, 9619 }, { 147, 8992 }, { 148, 9632 }, { 149, 8729 }, { 150, 8730 }, { 151, 8776 }, { 152, 8804 }, { 153, 8805 }, { 154, 160 }, { 155, 8993 }, { 156, 176 }, { 157, 178 }, { 158, 183 }, { 159, 247 }, { 160, 9552 }, { 161, 9553 }, { 162, 9554 }, { 163, 1105 }, { 164, 9555 }, { 165, 9556 }, { 166, 9557 }, { 167, 9558 }, { 168, 9559 }, { 169, 9560 }, { 170, 9561 }, { 171, 9562 }, { 172, 9563 }, { 173, 9564 }, { 174, 9565 }, { 175, 9566 }, { 176, 9567 }, { 177, 9568 }, { 178, 9569 }, { 179, 1025 }, { 180, 9570 }, { 181, 9571 }, { 182, 9572 }, { 183, 9573 }, { 184, 9574 }, { 185, 9575 }, { 186, 9576 }, { 187, 9577 }, { 188, 9578 }, { 189, 9579 }, { 190, 9580 }, { 191, 169 }, { 192, 1102 }, { 193, 1072 }, { 194, 1073 }, { 195, 1094 }, { 196, 1076 }, { 197, 1077 }, { 198, 1092 }, { 199, 1075 }, { 200, 1093 }, { 201, 1080 }, { 202, 1081 }, { 203, 1082 }, { 204, 1083 }, { 205, 1084 }, { 206, 1085 }, { 207, 1086 }, { 208, 1087 }, { 209, 1103 }, { 210, 1088 }, { 211, 1089 }, { 212, 1090 }, { 213, 1091 }, { 214, 1078 }, { 215, 1074 }, { 216, 1100 }, { 217, 1099 }, { 218, 1079 }, { 219, 1096 }, { 220, 1101 }, { 221, 1097 }, { 222, 1095 }, { 223, 1098 }, { 224, 1070 }, { 225, 1040 }, { 226, 1041 }, { 227, 1062 }, { 228, 1044 }, { 229, 1045 }, { 230, 1060 }, { 231, 1043 }, { 232, 1061 }, { 233, 1048 }, { 234, 1049 }, { 235, 1050 }, { 236, 1051 }, { 237, 1052 }, { 238, 1053 }, { 239, 1054 }, { 240, 1055 }, { 241, 1071 }, { 242, 1056 }, { 243, 1057 }, { 244, 1058 }, { 245, 1059 }, { 246, 1046 }, { 247, 1042 }, { 248, 1068 }, { 249, 1067 }, { 250, 1047 }, { 251, 1064 }, { 252, 1069 }, { 253, 1065 }, { 254, 1063 }, { 255, 1066 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t koi8_u[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 9472 }, { 129, 9474 }, { 130, 9484 }, { 131, 9488 }, { 132, 9492 }, { 133, 9496 }, { 134, 9500 }, { 135, 9508 }, { 136, 9516 }, { 137, 9524 }, { 138, 9532 }, { 139, 9600 }, { 140, 9604 }, { 141, 9608 }, { 142, 9612 }, { 143, 9616 }, { 144, 9617 }, { 145, 9618 }, { 146, 9619 }, { 147, 8992 }, { 148, 9632 }, { 149, 8729 }, { 150, 8730 }, { 151, 8776 }, { 152, 8804 }, { 153, 8805 }, { 154, 160 }, { 155, 8993 }, { 156, 176 }, { 157, 178 }, { 158, 183 }, { 159, 247 }, { 160, 9552 }, { 161, 9553 }, { 162, 9554 }, { 163, 1105 }, { 164, 1108 }, { 165, 9556 }, { 166, 1110 }, { 167, 1111 }, { 168, 9559 }, { 169, 9560 }, { 170, 9561 }, { 171, 9562 }, { 172, 9563 }, { 173, 1169 }, { 174, 9565 }, { 175, 9566 }, { 176, 9567 }, { 177, 9568 }, { 178, 9569 }, { 179, 1025 }, { 180, 1028 }, { 181, 9571 }, { 182, 1030 }, { 183, 1031 }, { 184, 9574 }, { 185, 9575 }, { 186, 9576 }, { 187, 9577 }, { 188, 9578 }, { 189, 1168 }, { 190, 9580 }, { 191, 169 }, { 192, 1102 }, { 193, 1072 }, { 194, 1073 }, { 195, 1094 }, { 196, 1076 }, { 197, 1077 }, { 198, 1092 }, { 199, 1075 }, { 200, 1093 }, { 201, 1080 }, { 202, 1081 }, { 203, 1082 }, { 204, 1083 }, { 205, 1084 }, { 206, 1085 }, { 207, 1086 }, { 208, 1087 }, { 209, 1103 }, { 210, 1088 }, { 211, 1089 }, { 212, 1090 }, { 213, 1091 }, { 214, 1078 }, { 215, 1074 }, { 216, 1100 }, { 217, 1099 }, { 218, 1079 }, { 219, 1096 }, { 220, 1101 }, { 221, 1097 }, { 222, 1095 }, { 223, 1098 }, { 224, 1070 }, { 225, 1040 }, { 226, 1041 }, { 227, 1062 }, { 228, 1044 }, { 229, 1045 }, { 230, 1060 }, { 231, 1043 }, { 232, 1061 }, { 233, 1048 }, { 234, 1049 }, { 235, 1050 }, { 236, 1051 }, { 237, 1052 }, { 238, 1053 }, { 239, 1054 }, { 240, 1055 }, { 241, 1071 }, { 242, 1056 }, { 243, 1057 }, { 244, 1058 }, { 245, 1059 }, { 246, 1046 }, { 247, 1042 }, { 248, 1068 }, { 249, 1067 }, { 250, 1047 }, { 251, 1064 }, { 252, 1069 }, { 253, 1065 }, { 254, 1063 }, { 255, 1066 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t mslinedr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 9639 }, { 177, 9638 }, { 178, 9640 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t nextstep[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 160 }, { 129, 192 }, { 130, 193 }, { 131, 194 }, { 132, 195 }, { 133, 196 }, { 134, 197 }, { 135, 199 }, { 136, 200 }, { 137, 201 }, { 138, 202 }, { 139, 203 }, { 140, 204 }, { 141, 205 }, { 142, 206 }, { 143, 207 }, { 144, 208 }, { 145, 209 }, { 146, 210 }, { 147, 211 }, { 148, 212 }, { 149, 213 }, { 150, 214 }, { 151, 217 }, { 152, 218 }, { 153, 219 }, { 154, 220 }, { 155, 221 }, { 156, 222 }, { 157, 181 }, { 158, 215 }, { 159, 247 }, { 160, 169 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8260 }, { 165, 165 }, { 166, 402 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 8220 }, { 171, 171 }, { 172, 8249 }, { 173, 8250 }, { 174, 64257 }, { 175, 64258 }, { 176, 174 }, { 177, 8211 }, { 178, 8224 }, { 179, 8225 }, { 180, 183 }, { 181, 166 }, { 182, 182 }, { 183, 8729 }, { 184, 8218 }, { 185, 8222 }, { 186, 8221 }, { 187, 187 }, { 188, 8943 }, { 189, 8240 }, { 190, 172 }, { 191, 191 }, { 192, 185 }, { 193, 768 }, { 194, 180 }, { 195, 770 }, { 196, 771 }, { 197, 175 }, { 198, 728 }, { 199, 729 }, { 200, 168 }, { 201, 178 }, { 202, 176 }, { 203, 184 }, { 204, 179 }, { 205, 733 }, { 206, 731 }, { 207, 711 }, { 208, 8212 }, { 209, 177 }, { 210, 188 }, { 211, 189 }, { 212, 190 }, { 213, 224 }, { 214, 225 }, { 215, 226 }, { 216, 227 }, { 217, 228 }, { 218, 229 }, { 219, 231 }, { 220, 232 }, { 221, 233 }, { 222, 234 }, { 223, 235 }, { 224, 236 }, { 225, 198 }, { 226, 237 }, { 227, 170 }, { 228, 238 }, { 229, 239 }, { 230, 240 }, { 231, 241 }, { 232, 321 }, { 233, 216 }, { 234, 338 }, { 235, 186 }, { 236, 242 }, { 237, 243 }, { 238, 244 }, { 239, 245 }, { 240, 246 }, { 241, 230 }, { 242, 249 }, { 243, 250 }, { 244, 251 }, { 245, 305 }, { 246, 252 }, { 247, 253 }, { 248, 322 }, { 249, 248 }, { 250, 339 }, { 251, 223 }, { 252, 254 }, { 253, 255 }, { 254, 254 }, { 255, 255 }, { 39, 8216 }, { 39, 8217 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t symbol[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 8704 }, { 35, 35 }, { 36, 8707 }, { 37, 37 }, { 38, 38 }, { 39, 8715 }, { 40, 40 }, { 41, 41 }, { 42, 8727 }, { 43, 43 }, { 44, 44 }, { 45, 8722 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 8773 }, { 65, 913 }, { 66, 914 }, { 67, 935 }, { 68, 916 }, { 69, 917 }, { 70, 934 }, { 71, 915 }, { 72, 919 }, { 73, 921 }, { 74, 977 }, { 75, 922 }, { 76, 923 }, { 77, 924 }, { 78, 925 }, { 79, 927 }, { 80, 928 }, { 81, 920 }, { 82, 929 }, { 83, 931 }, { 84, 932 }, { 85, 933 }, { 86, 962 }, { 87, 937 }, { 88, 926 }, { 89, 936 }, { 90, 918 }, { 91, 91 }, { 92, 8756 }, { 93, 93 }, { 94, 8869 }, { 95, 95 }, { 96, 8254 }, { 97, 945 }, { 98, 946 }, { 99, 967 }, { 100, 948 }, { 101, 949 }, { 102, 966 }, { 103, 947 }, { 104, 951 }, { 105, 953 }, { 106, 981 }, { 107, 954 }, { 108, 955 }, { 109, 956 }, { 110, 957 }, { 111, 959 }, { 112, 960 }, { 113, 952 }, { 114, 961 }, { 115, 963 }, { 116, 964 }, { 117, 965 }, { 118, 982 }, { 119, 969 }, { 120, 958 }, { 121, 968 }, { 122, 950 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 8764 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 978 }, { 162, 8242 }, { 163, 8804 }, { 164, 8725 }, { 165, 8734 }, { 166, 402 }, { 167, 9827 }, { 168, 9830 }, { 169, 9829 }, { 170, 9824 }, { 171, 8596 }, { 172, 8592 }, { 173, 8593 }, { 174, 8594 }, { 175, 8595 }, { 176, 176 }, { 177, 177 }, { 178, 8243 }, { 179, 8805 }, { 180, 215 }, { 181, 8733 }, { 182, 8706 }, { 183, 8729 }, { 184, 247 }, { 185, 8800 }, { 186, 8801 }, { 187, 8776 }, { 188, 8943 }, { 189, 189 }, { 190, 190 }, { 191, 8629 }, { 192, 192 }, { 193, 8465 }, { 194, 8476 }, { 195, 8472 }, { 196, 8855 }, { 197, 8853 }, { 198, 8709 }, { 199, 8745 }, { 200, 8746 }, { 201, 8835 }, { 202, 8839 }, { 203, 8836 }, { 204, 8834 }, { 205, 8838 }, { 206, 8712 }, { 207, 8713 }, { 208, 8736 }, { 209, 8711 }, { 210, 174 }, { 211, 169 }, { 212, 8482 }, { 213, 8719 }, { 214, 8730 }, { 215, 8901 }, { 216, 172 }, { 217, 8743 }, { 218, 8744 }, { 219, 8660 }, { 220, 8656 }, { 221, 8657 }, { 222, 8658 }, { 223, 8659 }, { 224, 9674 }, { 225, 9001 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 8721 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 9002 }, { 242, 8747 }, { 243, 8992 }, { 244, 244 }, { 245, 8993 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 192, 65 }, { 192, 193 }, { 192, 194 }, { 192, 195 }, { 192, 196 }, { 192, 197 }, { 192, 256 }, { 192, 258 }, { 192, 260 }, { 192, 461 }, { 226, 97 }, { 226, 224 }, { 226, 225 }, { 226, 229 }, { 226, 257 }, { 226, 259 }, { 226, 261 }, { 226, 462 }, { 231, 99 }, { 231, 263 }, { 231, 265 }, { 231, 267 }, { 231, 269 }, { 232, 101 }, { 232, 275 }, { 232, 277 }, { 232, 279 }, { 232, 281 }, { 232, 283 }, { 236, 105 }, { 236, 297 }, { 236, 299 }, { 236, 301 }, { 236, 303 }, { 236, 305 }, { 236, 464 }, { 244, 110 }, { 244, 242 }, { 244, 243 }, { 244, 245 }, { 244, 333 }, { 244, 335 }, { 244, 337 }, { 244, 466 }, { 244, 491 }, { 249, 117 }, { 249, 361 }, { 249, 363 }, { 249, 365 }, { 249, 367 }, { 249, 369 }, { 249, 371 }, { 249, 468 }, { 253, 121 }, { 253, 375 }, }; static convert_t tex_dcr_in[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 258 }, { 129, 260 }, { 130, 262 }, { 131, 268 }, { 132, 270 }, { 133, 282 }, { 134, 280 }, { 135, 286 }, { 136, 313 }, { 137, 65534 }, { 138, 321 }, { 139, 323 }, { 140, 327 }, { 141, 330 }, { 142, 336 }, { 143, 340 }, { 144, 344 }, { 145, 346 }, { 146, 352 }, { 147, 350 }, { 148, 356 }, { 149, 354 }, { 150, 368 }, { 151, 366 }, { 152, 376 }, { 153, 377 }, { 154, 381 }, { 155, 379 }, { 156, 306 }, { 157, 304 }, { 158, 272 }, { 159, 167 }, { 160, 259 }, { 161, 261 }, { 162, 263 }, { 163, 269 }, { 164, 65534 }, { 165, 283 }, { 166, 281 }, { 167, 287 }, { 168, 314 }, { 169, 65534 }, { 170, 322 }, { 171, 324 }, { 172, 328 }, { 173, 331 }, { 174, 337 }, { 175, 341 }, { 176, 345 }, { 177, 347 }, { 178, 353 }, { 179, 351 }, { 180, 65534 }, { 181, 355 }, { 182, 369 }, { 183, 367 }, { 184, 255 }, { 185, 378 }, { 186, 382 }, { 187, 380 }, { 188, 307 }, { 189, 161 }, { 190, 191 }, { 191, 163 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 65534 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 223 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 461 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 325 }, { 109, 326 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, }; static convert_t tex_dcr_out[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 258 }, { 129, 260 }, { 130, 262 }, { 131, 268 }, { 132, 270 }, { 133, 282 }, { 134, 280 }, { 135, 286 }, { 136, 313 }, { 137, 65534 }, { 138, 321 }, { 139, 323 }, { 140, 327 }, { 141, 330 }, { 142, 336 }, { 143, 340 }, { 144, 344 }, { 145, 346 }, { 146, 352 }, { 147, 350 }, { 148, 356 }, { 149, 354 }, { 150, 368 }, { 151, 366 }, { 152, 376 }, { 153, 377 }, { 154, 381 }, { 155, 379 }, { 156, 306 }, { 157, 304 }, { 158, 272 }, { 159, 167 }, { 160, 259 }, { 161, 261 }, { 162, 263 }, { 163, 269 }, { 164, 65534 }, { 165, 283 }, { 166, 281 }, { 167, 287 }, { 168, 314 }, { 169, 65534 }, { 170, 322 }, { 171, 324 }, { 172, 328 }, { 173, 331 }, { 174, 337 }, { 175, 341 }, { 176, 345 }, { 177, 347 }, { 178, 353 }, { 179, 351 }, { 180, 65534 }, { 181, 355 }, { 182, 369 }, { 183, 367 }, { 184, 255 }, { 185, 378 }, { 186, 382 }, { 187, 380 }, { 188, 307 }, { 189, 161 }, { 190, 191 }, { 191, 163 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 65534 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 223 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 461 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 325 }, { 109, 326 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, }; allcharconvert_t allcharconvert[] = { { "adobeiso", "Adobe ISO", { "ADOBEISO", "", "", "", "", "", "", }, CHARSETARRAY( adobeiso ) }, { "adobestd", "Adobe Standard", { "ADOBESTD", "", "", "", "", "", "", }, CHARSETARRAY( adobestd ) }, { "adobesym", "Adobe Symbol", { "ADOBESYM", "", "", "", "", "", "", }, CHARSETARRAY( adobesym ) }, { "applecro", "Apple Croatian", { "APPLECRO", "MACCRO", "", "", "", "", "", }, CHARSETARRAY( applecro ) }, { "applecyr", "Apple Cyrillic", { "MACCYRILLIC", "X-MAC-CYRILLIC", "", "", "", "", "", }, CHARSETARRAY( applecyr ) }, { "applegk2", "Apple Greek 2", { "APPLEGK2", "", "", "", "", "", "", }, CHARSETARRAY( applegk2 ) }, { "applegrk", "Apple Greek", { "MACGRK", "APPLEGRK", "", "", "", "", "", }, CHARSETARRAY( applegrk ) }, { "macice", "Macintosh Iceland(?)", { "MACICE", "APPLEICE", "", "", "", "", "", }, CHARSETARRAY( macice ) }, { "macroman", "Macintosh Roman", { "MACROMAN", "APPLEROM", "CSMACINTOSH", "MACINTOSH", "MAC", "", "", }, CHARSETARRAY( macroman ) }, { "macromanian", "Macintosh Romanian", { "MACROMANIAN", "APPLERUM", "", "", "", "", "", }, CHARSETARRAY( macromanian ) }, { "macturkish", "Macintosh Turkish", { "MACTURKISH", "APPLETURK", "", "", "", "", "", }, CHARSETARRAY( macturkish ) }, { "atarist", "Atari ST", { "ATARIST", "", "", "", "", "", "", }, CHARSETARRAY( atarist ) }, { "cp437", "MS-DOS Code Page 437 from original IBM PC", { "CP437", "IBM437", "437", "", "", "", "", }, CHARSETARRAY( cp437 ) }, { "cp737", "MS-DOS Code Page 737 Greek", { "CP737", "IBM737", "737", "", "", "", "", }, CHARSETARRAY( cp737 ) }, { "cp775", "MS-DOS Code Page 775 Baltic languages", { "CP775", "IBM775", "775", "", "", "", "", }, CHARSETARRAY( cp775 ) }, { "cp850", "MS-DOS Code Page 850 Western Europe", { "CP850", "IBM850", "CSPC850MULTILINGUAL", "850", "", "", "", }, CHARSETARRAY( cp850 ) }, { "cp851", "MS-DOS Code Page 851 Greek 1", { "CP851", "IBM851", "851", "", "", "", "", }, CHARSETARRAY( cp851 ) }, { "cp852", "MS-DOS Code Page 852 Central European languages", { "CP852", "IBM852", "852", "", "", "", "", }, CHARSETARRAY( cp852 ) }, { "cp853", "MS-DOS Code Page 853 Multilingual Latin 3", { "CP853", "IBM853", "853", "", "", "", "", }, CHARSETARRAY( cp853 ) }, { "cp855", "MS-DOS Code Page 855 Cyrillic", { "CP855", "IBM855", "855", "", "", "", "", }, CHARSETARRAY( cp855 ) }, { "cp857", "MS-DOS Code Page 857 Turkish", { "CP857", "IBM857", "857", "", "", "", "", }, CHARSETARRAY( cp857 ) }, { "cp860", "MS-DOS Code Page 860 Portugese", { "CP860", "IBM860", "860", "", "", "", "", }, CHARSETARRAY( cp860 ) }, { "cp861", "MS-DOS Code Page 861 Icelandic languages", { "CP861", "IBM861", "861", "", "", "", "", }, CHARSETARRAY( cp861 ) }, { "cp862", "MS-DOS Code Page 862 Hebrew", { "CP862", "IBM862", "862", "", "", "", "", }, CHARSETARRAY( cp862 ) }, { "cp863", "MS-DOS Code Page 863 French", { "CP863", "IBM863", "863", "", "", "", "", }, CHARSETARRAY( cp863 ) }, { "cp864", "MS-DOS Code Page 864 Arabic", { "CP864", "IBM864", "864", "", "", "", "", }, CHARSETARRAY( cp864 ) }, { "cp865", "MS-DOS Code Page 865 Nordic languages", { "CP865", "IBM865", "865", "", "", "", "", }, CHARSETARRAY( cp865 ) }, { "cp866", "MS-DOS Code Page 866 Cyrillic", { "CP866", "IBM866", "866", "CSIBM866", "", "", "", }, CHARSETARRAY( cp866 ) }, { "cp869", "MS-DOS Code Page 869 Greek", { "CP869", "IBM869", "869", "", "", "", "", }, CHARSETARRAY( cp869 ) }, { "cp874", "Windows-874 Thai", { "CP874", "WINDOWS-874", "MS874", "X-WINDOWS-874", "X-IBM874", "874", "", }, CHARSETARRAY( cp874 ) }, { "cp895", "MS-DOS Code Page 895 Kamenicky encoding", { "CP895", "895", "", "", "", "", "", }, CHARSETARRAY( cp895 ) }, { "cp1250", "Windows-1250 Central and Eastern European", { "CP1250", "WINDOWS-1250", "MS-EE", "", "", "", "", }, CHARSETARRAY( cp1250 ) }, { "cp1251", "Windows-1251 Cyrillic", { "CP1251", "WINDOWS-1251", "MS-CYRL", "", "", "", "", }, CHARSETARRAY( cp1251 ) }, { "cp1252", "Windows-1252 ISO 8859-1 superset", { "CP1252", "WINDOWS-1252", "MS-ANSI", "", "", "", "", }, CHARSETARRAY( cp1252 ) }, { "cp1253", "Windows-1253 Greek", { "CP1253", "WINDOWS-1253", "MS-GREEK", "", "", "", "", }, CHARSETARRAY( cp1253 ) }, { "cp1254", "Windows-1254 Turkish", { "CP1254", "WINDOWS-1254", "MS-TURK", "", "", "", "", }, CHARSETARRAY( cp1254 ) }, { "cp1255", "Windows-1255 ISO 8859-8 Hebrew", { "CP1255", "WINDOWS-1255", "MS-HEBR", "", "", "", "", }, CHARSETARRAY( cp1255 ) }, { "cp1256", "Windows-1256 Arabic", { "CP1256", "WINDOWS-1256", "MS-ARAB", "", "", "", "", }, CHARSETARRAY( cp1256 ) }, { "cp1257", "Windows-1257 Baltic languages", { "CP1257", "WINDOWS-1257", "WINBALTRIM", "", "", "", "", }, CHARSETARRAY( cp1257 ) }, { "cp1258", "Windows-1258 Vietnamese", { "CP1258", "WINDOWS-1258", "", "", "", "", "", }, CHARSETARRAY( cp1258 ) }, { "decmcs", "DEC Multinational Character Set", { "DECMCS", "", "", "", "", "", "", }, CHARSETARRAY( decmcs ) }, { "ebc037", "EBCDIC Codepage 037 Latin-1", { "EBC037", "", "", "", "", "", "", }, CHARSETARRAY( ebc037 ) }, { "ebc1026", "EBCDIC 1026 Turkish", { "EBC1026", "", "", "", "", "", "", }, CHARSETARRAY( ebc1026 ) }, { "ebc1047", "EBCDIC 1047 Latin 1", { "EBC1047", "", "", "", "", "", "", }, CHARSETARRAY( ebc1047 ) }, { "ebc500", "EBCDIC 500 Latin 1", { "EBC500", "", "", "", "", "", "", }, CHARSETARRAY( ebc500 ) }, { "ebc875", "EBCDIC 875 Greek", { "EBC875", "", "", "", "", "", "", }, CHARSETARRAY( ebc875 ) }, { "hp48", "HP48", { "HP48", "", "", "", "", "", "", }, CHARSETARRAY( hp48 ) }, { "hproman8", "HP Roman8", { "HPROMAN8", "", "", "", "", "", "", }, CHARSETARRAY( hproman8 ) }, { "iso646", "ISO/IEC 646", { "ISO646", "", "", "", "", "", "", }, CHARSETARRAY( iso646 ) }, { "iso646_irv", "ISO/IEC 646-IRV International Reference Variant", { "ISO646-IRV", "", "", "", "", "", "", }, CHARSETARRAY( iso646_irv ) }, { "iso646_ca", "ISO/IEC 646-CA Canada", { "ISO646-CA", "", "", "", "", "", "", }, CHARSETARRAY( iso646_ca ) }, { "iso646_ch", "ISO/IEC 646-CH", { "ISO646-CH", "", "", "", "", "", "", }, CHARSETARRAY( iso646_ch ) }, { "iso646_de", "ISO/IEC 646-DE Germany", { "ISO646-DE", "", "", "", "", "", "", }, CHARSETARRAY( iso646_de ) }, { "iso646_es", "ISO/IEC 646-ES Spain", { "ISO646-ES", "", "", "", "", "", "", }, CHARSETARRAY( iso646_es ) }, { "iso646_fi", "ISO/IEC 646-FI Finland", { "ISO646-FI", "", "", "", "", "", "", }, CHARSETARRAY( iso646_fi ) }, { "iso646_fr", "ISO/IEC 646-FR France", { "ISO646-FR", "", "", "", "", "", "", }, CHARSETARRAY( iso646_fr ) }, { "iso646_gb", "ISO/IEC 646-GB United Kingdom", { "ISO646-GB", "", "", "", "", "", "", }, CHARSETARRAY( iso646_gb ) }, { "iso646_it", "ISO/IEC 646-IT", { "ISO646-IT", "", "", "", "", "", "", }, CHARSETARRAY( iso646_it ) }, { "iso646_nl", "ISO/IEC 646-NL", { "ISO646-NL", "", "", "", "", "", "", }, CHARSETARRAY( iso646_nl ) }, { "iso646_no", "ISO/IEC 646-NO Norway", { "ISO646-NO", "", "", "", "", "", "", }, CHARSETARRAY( iso646_no ) }, { "iso646_pt", "ISO/IEC 646-PT Portugal", { "ISO646-PT", "", "", "", "", "", "", }, CHARSETARRAY( iso646_pt ) }, { "iso646_se", "ISO/IEC 646-SE Sweden", { "ISO646-SE", "", "", "", "", "", "", }, CHARSETARRAY( iso646_se ) }, { "iso8859_1", "ISO/IEC 8859-1:1998 Latin-1", { "ISO-8859-1", "CSISOLATIN", "LATIN1", "ISO-IR-100", "CP819", "IBM819", "ISO_8859-1", }, CHARSETARRAY( iso8859_1 ) }, { "iso8859_2", "ISO/IEC 8859-2:1999 Latin-2 Eastern European", { "ISO-8859-2", "CSISOLATIN2", "LATIN2", "ISO-IR-101", "ISO_8859-2", "ISO_8859-2:1987", "L2", }, CHARSETARRAY( iso8859_2 ) }, { "iso8859_3", "ISO/IEC 8859-3:1999 Latin-3 South European", { "ISO-8859-3", "CSISOLATIN3", "LATIN3", "ISO-IR-109", "ISO_8859-3", "ISO_8859-3:1988", "L3", }, CHARSETARRAY( iso8859_3 ) }, { "iso8859_4", "ISO/IEC 8859-4:1998 Latin-4 North European", { "ISO-8859-4", "CSISOLATIN4", "LATIN4", "ISO-IR-110", "ISO_8859-4", "ISO_8859-4:1988", "L4", }, CHARSETARRAY( iso8859_4 ) }, { "iso8859_5", "ISO/IEC 8859-5:1999 Latin/Cyrillic", { "ISO-8859-5", "CSISOLATINCYRILLIC", "CYRILLIC", "ISO-IR-144", "ISO_8859-5", "ISO_8859-5:1988", "", }, CHARSETARRAY( iso8859_5 ) }, { "iso8859_6", "ISO/IEC 8859-6:1999 Latin/Arabic", { "ISO-8859-6", "ARABIC", "ASMO-708", "CSISOLATINARABIC", "ECMA-114", "ISO-IR-127", "ISO_8859-6", }, CHARSETARRAY( iso8859_6 ) }, { "iso8859_7", "ISO/IEC 8859-7:2003 Latin/Greek", { "ISO-8859-7", "CSISOLATINGREEK", "GREEK", "ECMA-118", "ELOT_928", "GREEK8", "ISO-IR-126", }, CHARSETARRAY( iso8859_7 ) }, { "iso8859_8", "ISO/IEC 8859-8:1999 Latin/Hebrew", { "ISO-8859-8", "CSISOLATINHEBREW", "HEBREW", "ISO-IR-138", "ISO_8859-8", "ISO_8859-8:1988", "", }, CHARSETARRAY( iso8859_8 ) }, { "iso8859_9", "ISO/IEC 8859-9:1999 Latin-5 Turkish", { "ISO-8859-9", "CSISOLATIN5", "LATIN5", "ISO-IR-148", "ISO_8859-9", "ISO_8859-9:1989", "L5", }, CHARSETARRAY( iso8859_9 ) }, { "iso8859_10", "ISO/IEC 8859-10:1998 Latin-6 Nordic languages", { "ISO-8859-10", "CSISOLATIN6", "LATIN6", "ISO-IR-157", "ISO_8859-10", "ISO_8859-10:1992", "L6", }, CHARSETARRAY( iso8859_10 ) }, { "iso8859_11", "ISO/IEC 8859-11:2001 Latin/Thai", { "ISO-8859-11,", "TIS-620,", "TIS620,", "TACTIS", "", "", "", }, CHARSETARRAY( iso8859_11 ) }, { "iso8859_13", "ISO/IEC 8859-13:1998 Latin-7 Baltic Rim", { "ISO-8859-13", "CSISOLATIN7", "LATIN7", "ISO-IR-179", "ISO_8859-13", "L7", "", }, CHARSETARRAY( iso8859_13 ) }, { "iso8859_14", "ISO/IEC 8859-14:1998 Latin-8 Celtic", { "ISO-8859-14", "CSISOLATIN8", "LATIN8", "ISO-IR-199", "ISO_8859-14", "ISO_8859-14:1998", "L8", }, CHARSETARRAY( iso8859_14 ) }, { "iso8859_15", "ISO/IEC 8859-15:1999 Latin-9 Western European", { "ISO-8859-15", "ISO-IR-203", "ISO_8859-15", "ISO_8859-15:1998", "", "", "", }, CHARSETARRAY( iso8859_15 ) }, { "iso8859_16", "ISO/IEC 8859-16:2001 Latin-10 South-Eastern European", { "ISO-8859-16", "CSISOLATIN10", "LATIN10", "ISO-IR-226", "ISO_8859-16", "ISO_8859-16:2000", "", }, CHARSETARRAY( iso8859_16 ) }, { "koi8_r", "KOI8-R Kod Obmena Informatsiey, 8 bit Russian", { "KOI8-R", "KOI8R", "CSKOI8R", "", "", "", "", }, CHARSETARRAY( koi8_r ) }, { "koi8_u", "KOI8-U Kod Obmena Informatsiey, 8 bit Ukranian", { "KOI8-U", "KOI8U", "CSKOI8U", "", "", "", "", }, CHARSETARRAY( koi8_u ) }, { "mslinedr", "MS LineDraw", { "MSLINEDR", "", "", "", "", "", "", }, CHARSETARRAY( mslinedr ) }, { "nextstep", "NextStep", { "NEXTSTEP", "", "", "", "", "", "", }, CHARSETARRAY( nextstep ) }, { "symbol", "MS Windows Symbol Font", { "SYMBOL", "", "", "", "", "", "", }, CHARSETARRAY( symbol ) }, { "tex_dcr_in", "TeX dcr input for European Computer Roman Font", { "TEX_DCR_IN", "", "", "", "", "", "", }, CHARSETARRAY( tex_dcr_in ) }, { "tex_dcr_out", "TeX dcr output for European Computer Roman Font", { "TEX_DCR_OUT", "", "", "", "", "", "", }, CHARSETARRAY( tex_dcr_out ) }, }; int nallcharconvert = ARRAYSIZE( allcharconvert ); char * charset_get_xmlname( int n ) { static char unknown[] = "???"; static char utf8[] = "UTF-8"; static char gb18030[] = "GB18030"; char *ret = unknown; if ( n>=0 && n < nallcharconvert ) { ret = allcharconvert[n].aliases[0]; } else if ( n==CHARSET_UNICODE ) { ret = utf8; } else if ( n==CHARSET_GB18030 ) { ret = gb18030; } return ret; } int charset_find( char *name ) { int i, j, ret = CHARSET_UNKNOWN; if ( name==NULL ) return ret; for ( i=0; i #include #include #include "charsets.h" #define ARRAYSIZE( a ) ( sizeof(a) / sizeof(a[0]) ) #define ARRAYSTART( a ) ( &(a[0]) ) #define CHARSETARRAY( a ) ARRAYSTART( a ), ARRAYSIZE( a ) #define CHARSET_NALIASES ( 7 ) typedef struct convert_t { unsigned int index, unicode; } convert_t; typedef struct allcharconvert_t { char cmdname[15]; char descriptname[200]; char aliases[CHARSET_NALIASES][25]; convert_t *table; int ntable; } allcharconvert_t; static convert_t adobeiso[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 305 }, { 145, 768 }, { 146, 769 }, { 147, 770 }, { 148, 771 }, { 149, 772 }, { 150, 774 }, { 151, 775 }, { 152, 776 }, { 153, 153 }, { 154, 778 }, { 155, 807 }, { 156, 156 }, { 157, 779 }, { 158, 808 }, { 159, 780 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t adobestd[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8260 }, { 165, 165 }, { 166, 402 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 8220 }, { 171, 171 }, { 172, 8249 }, { 173, 8250 }, { 174, 64257 }, { 175, 64258 }, { 176, 176 }, { 177, 8211 }, { 178, 8224 }, { 179, 8225 }, { 180, 183 }, { 181, 181 }, { 182, 182 }, { 183, 8729 }, { 184, 8218 }, { 185, 8222 }, { 186, 8221 }, { 187, 187 }, { 188, 8943 }, { 189, 8240 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 768 }, { 194, 180 }, { 195, 770 }, { 196, 771 }, { 197, 175 }, { 198, 728 }, { 199, 729 }, { 200, 168 }, { 201, 201 }, { 202, 176 }, { 203, 184 }, { 204, 204 }, { 205, 733 }, { 206, 731 }, { 207, 711 }, { 208, 8212 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 198 }, { 226, 226 }, { 227, 170 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 321 }, { 233, 216 }, { 234, 338 }, { 235, 186 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 230 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 305 }, { 246, 246 }, { 247, 247 }, { 248, 322 }, { 249, 248 }, { 250, 339 }, { 251, 223 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 39, 8216 }, { 39, 8217 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t adobesym[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 8242 }, { 163, 8804 }, { 164, 8725 }, { 165, 8734 }, { 166, 402 }, { 167, 9827 }, { 168, 9830 }, { 169, 9829 }, { 170, 9824 }, { 171, 8596 }, { 172, 8592 }, { 173, 8593 }, { 174, 8594 }, { 175, 8595 }, { 176, 176 }, { 177, 177 }, { 178, 8243 }, { 179, 8805 }, { 180, 215 }, { 181, 8733 }, { 182, 8706 }, { 183, 8729 }, { 184, 247 }, { 185, 8800 }, { 186, 8801 }, { 187, 8776 }, { 188, 8943 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 8709 }, { 199, 8745 }, { 200, 8746 }, { 201, 8835 }, { 202, 8839 }, { 203, 203 }, { 204, 8834 }, { 205, 8838 }, { 206, 8712 }, { 207, 207 }, { 208, 8736 }, { 209, 8711 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 8719 }, { 214, 8730 }, { 215, 8901 }, { 216, 172 }, { 217, 8743 }, { 218, 8744 }, { 219, 8660 }, { 220, 8656 }, { 221, 8657 }, { 222, 8658 }, { 223, 8659 }, { 224, 9674 }, { 225, 9001 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 8721 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 9002 }, { 242, 8747 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applecro[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 352 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 381 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 916 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 353 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 382 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 262 }, { 199, 171 }, { 200, 268 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 272 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 65534 }, { 217, 169 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 198 }, { 223, 187 }, { 224, 8211 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 263 }, { 231, 193 }, { 232, 269 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 273 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 960 }, { 250, 203 }, { 251, 730 }, { 252, 184 }, { 253, 202 }, { 254, 230 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t applecyr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1040 }, { 129, 1041 }, { 130, 1042 }, { 131, 1043 }, { 132, 1044 }, { 133, 1045 }, { 134, 1046 }, { 135, 1047 }, { 136, 1048 }, { 137, 1049 }, { 138, 1050 }, { 139, 1051 }, { 140, 1052 }, { 141, 1053 }, { 142, 1054 }, { 143, 1055 }, { 144, 1056 }, { 145, 1057 }, { 146, 1058 }, { 147, 1059 }, { 148, 1060 }, { 149, 1061 }, { 150, 1062 }, { 151, 1063 }, { 152, 1064 }, { 153, 1065 }, { 154, 1066 }, { 155, 1067 }, { 156, 1068 }, { 157, 1069 }, { 158, 1070 }, { 159, 1071 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 1030 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 1026 }, { 172, 1106 }, { 173, 8800 }, { 174, 1027 }, { 175, 1107 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 1110 }, { 181, 181 }, { 182, 8706 }, { 183, 1032 }, { 184, 1028 }, { 185, 1108 }, { 186, 1031 }, { 187, 1111 }, { 188, 1033 }, { 189, 1113 }, { 190, 1034 }, { 191, 1114 }, { 192, 1112 }, { 193, 1029 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 1035 }, { 204, 1115 }, { 205, 1036 }, { 206, 1116 }, { 207, 1109 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 8222 }, { 216, 1038 }, { 217, 1118 }, { 218, 1039 }, { 219, 1119 }, { 220, 8470 }, { 221, 1025 }, { 222, 1105 }, { 223, 1103 }, { 224, 1072 }, { 225, 1073 }, { 226, 1074 }, { 227, 1075 }, { 228, 1076 }, { 229, 1077 }, { 230, 1078 }, { 231, 1079 }, { 232, 1080 }, { 233, 1081 }, { 234, 1082 }, { 235, 1083 }, { 236, 1084 }, { 237, 1085 }, { 238, 1086 }, { 239, 1087 }, { 240, 1088 }, { 241, 1089 }, { 242, 1090 }, { 243, 1091 }, { 244, 1092 }, { 245, 1093 }, { 246, 1094 }, { 247, 1095 }, { 248, 1096 }, { 249, 1097 }, { 250, 1098 }, { 251, 1099 }, { 252, 1100 }, { 253, 1101 }, { 254, 1102 }, { 255, 164 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applegk2[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 913 }, { 130, 914 }, { 131, 915 }, { 132, 916 }, { 133, 214 }, { 134, 220 }, { 135, 917 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 918 }, { 140, 919 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 163 }, { 147, 8482 }, { 148, 238 }, { 149, 239 }, { 150, 8729 }, { 151, 920 }, { 152, 921 }, { 153, 244 }, { 154, 246 }, { 155, 155 }, { 156, 922 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 923 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 170 }, { 171, 938 }, { 172, 167 }, { 173, 8800 }, { 174, 924 }, { 175, 903 }, { 176, 925 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 926 }, { 181, 927 }, { 182, 928 }, { 183, 929 }, { 184, 931 }, { 185, 932 }, { 186, 933 }, { 187, 939 }, { 188, 934 }, { 189, 935 }, { 190, 936 }, { 191, 937 }, { 192, 940 }, { 193, 185 }, { 194, 172 }, { 195, 178 }, { 196, 179 }, { 197, 168 }, { 198, 901 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 166 }, { 204, 189 }, { 205, 902 }, { 206, 904 }, { 207, 176 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 900 }, { 215, 905 }, { 216, 906 }, { 217, 908 }, { 218, 910 }, { 219, 941 }, { 220, 942 }, { 221, 943 }, { 222, 972 }, { 223, 911 }, { 224, 973 }, { 225, 945 }, { 226, 946 }, { 227, 968 }, { 228, 948 }, { 229, 949 }, { 230, 966 }, { 231, 947 }, { 232, 951 }, { 233, 953 }, { 234, 958 }, { 235, 954 }, { 236, 955 }, { 237, 956 }, { 238, 957 }, { 239, 959 }, { 240, 960 }, { 241, 974 }, { 242, 961 }, { 243, 963 }, { 244, 964 }, { 245, 952 }, { 246, 969 }, { 247, 962 }, { 248, 967 }, { 249, 965 }, { 250, 950 }, { 251, 970 }, { 252, 971 }, { 253, 912 }, { 254, 944 }, { 255, 8240 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t applegrk[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 901 }, { 182, 902 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macice[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 221 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 208 }, { 221, 240 }, { 222, 222 }, { 223, 254 }, { 224, 253 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macroman[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 64257 }, { 223, 64258 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 240 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macromanian[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 258 }, { 175, 350 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 259 }, { 191, 351 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 8260 }, { 219, 164 }, { 220, 8249 }, { 221, 8250 }, { 222, 354 }, { 223, 355 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 305 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 356 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t macturkish[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 196 }, { 129, 197 }, { 130, 199 }, { 131, 201 }, { 132, 209 }, { 133, 214 }, { 134, 220 }, { 135, 225 }, { 136, 224 }, { 137, 226 }, { 138, 228 }, { 139, 227 }, { 140, 229 }, { 141, 231 }, { 142, 233 }, { 143, 232 }, { 144, 234 }, { 145, 235 }, { 146, 237 }, { 147, 236 }, { 148, 238 }, { 149, 239 }, { 150, 241 }, { 151, 243 }, { 152, 242 }, { 153, 244 }, { 154, 246 }, { 155, 245 }, { 156, 250 }, { 157, 249 }, { 158, 251 }, { 159, 252 }, { 160, 8224 }, { 161, 176 }, { 162, 162 }, { 163, 163 }, { 164, 167 }, { 165, 8729 }, { 166, 182 }, { 167, 223 }, { 168, 174 }, { 169, 169 }, { 170, 8482 }, { 171, 180 }, { 172, 168 }, { 173, 8800 }, { 174, 198 }, { 175, 216 }, { 176, 8734 }, { 177, 177 }, { 178, 8804 }, { 179, 8805 }, { 180, 165 }, { 181, 181 }, { 182, 8706 }, { 183, 8721 }, { 184, 8719 }, { 185, 960 }, { 186, 8747 }, { 187, 170 }, { 188, 186 }, { 189, 937 }, { 190, 230 }, { 191, 248 }, { 192, 191 }, { 193, 161 }, { 194, 172 }, { 195, 8730 }, { 196, 402 }, { 197, 8776 }, { 198, 916 }, { 199, 171 }, { 200, 187 }, { 201, 8943 }, { 202, 160 }, { 203, 192 }, { 204, 195 }, { 205, 213 }, { 206, 338 }, { 207, 339 }, { 208, 8211 }, { 209, 8212 }, { 210, 8220 }, { 211, 8221 }, { 212, 8216 }, { 213, 8217 }, { 214, 247 }, { 215, 9674 }, { 216, 255 }, { 217, 376 }, { 218, 286 }, { 219, 287 }, { 220, 304 }, { 221, 305 }, { 222, 350 }, { 223, 351 }, { 224, 8225 }, { 225, 183 }, { 226, 8218 }, { 227, 8222 }, { 228, 8240 }, { 229, 194 }, { 230, 202 }, { 231, 193 }, { 232, 203 }, { 233, 200 }, { 234, 205 }, { 235, 206 }, { 236, 207 }, { 237, 204 }, { 238, 211 }, { 239, 212 }, { 240, 65534 }, { 241, 210 }, { 242, 218 }, { 243, 219 }, { 244, 217 }, { 245, 245 }, { 246, 770 }, { 247, 771 }, { 248, 175 }, { 249, 728 }, { 250, 729 }, { 251, 730 }, { 252, 184 }, { 253, 733 }, { 254, 731 }, { 255, 711 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t atarist[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 223 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 227 }, { 177, 245 }, { 178, 216 }, { 179, 248 }, { 180, 339 }, { 181, 338 }, { 182, 192 }, { 183, 195 }, { 184, 213 }, { 185, 168 }, { 186, 180 }, { 187, 8224 }, { 188, 182 }, { 189, 169 }, { 190, 174 }, { 191, 8482 }, { 192, 307 }, { 193, 306 }, { 194, 1488 }, { 195, 1489 }, { 196, 1490 }, { 197, 1491 }, { 198, 1492 }, { 199, 1493 }, { 200, 1494 }, { 201, 1495 }, { 202, 1496 }, { 203, 1497 }, { 204, 1499 }, { 205, 1500 }, { 206, 1502 }, { 207, 1504 }, { 208, 1505 }, { 209, 1506 }, { 210, 1508 }, { 211, 1510 }, { 212, 1511 }, { 213, 1512 }, { 214, 1513 }, { 215, 1514 }, { 216, 1503 }, { 217, 1498 }, { 218, 1501 }, { 219, 1507 }, { 220, 1509 }, { 221, 167 }, { 222, 8743 }, { 223, 8734 }, { 224, 945 }, { 225, 946 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8750 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 179 }, { 255, 175 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp437[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp737[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 913 }, { 129, 914 }, { 130, 915 }, { 131, 916 }, { 132, 917 }, { 133, 918 }, { 134, 919 }, { 135, 920 }, { 136, 921 }, { 137, 922 }, { 138, 923 }, { 139, 924 }, { 140, 925 }, { 141, 926 }, { 142, 927 }, { 143, 928 }, { 144, 929 }, { 145, 931 }, { 146, 932 }, { 147, 933 }, { 148, 934 }, { 149, 935 }, { 150, 936 }, { 151, 937 }, { 152, 945 }, { 153, 946 }, { 154, 947 }, { 155, 948 }, { 156, 949 }, { 157, 950 }, { 158, 951 }, { 159, 952 }, { 160, 953 }, { 161, 954 }, { 162, 955 }, { 163, 956 }, { 164, 957 }, { 165, 958 }, { 166, 959 }, { 167, 960 }, { 168, 961 }, { 169, 963 }, { 170, 962 }, { 171, 964 }, { 172, 965 }, { 173, 966 }, { 174, 967 }, { 175, 968 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 969 }, { 225, 940 }, { 226, 941 }, { 227, 942 }, { 228, 970 }, { 229, 943 }, { 230, 972 }, { 231, 973 }, { 232, 971 }, { 233, 974 }, { 234, 902 }, { 235, 904 }, { 236, 905 }, { 237, 906 }, { 238, 908 }, { 239, 910 }, { 240, 911 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 938 }, { 245, 939 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp775[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 262 }, { 129, 252 }, { 130, 233 }, { 131, 257 }, { 132, 228 }, { 133, 291 }, { 134, 229 }, { 135, 263 }, { 136, 322 }, { 137, 275 }, { 138, 342 }, { 139, 343 }, { 140, 299 }, { 141, 377 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 333 }, { 148, 246 }, { 149, 290 }, { 150, 162 }, { 151, 346 }, { 152, 347 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 215 }, { 159, 164 }, { 160, 256 }, { 161, 298 }, { 162, 243 }, { 163, 379 }, { 164, 380 }, { 165, 378 }, { 166, 8221 }, { 167, 166 }, { 168, 169 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 321 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 260 }, { 182, 268 }, { 183, 280 }, { 184, 278 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 302 }, { 190, 352 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 370 }, { 199, 362 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 381 }, { 208, 261 }, { 209, 269 }, { 210, 281 }, { 211, 279 }, { 212, 303 }, { 213, 353 }, { 214, 371 }, { 215, 363 }, { 216, 382 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 332 }, { 227, 323 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 324 }, { 232, 310 }, { 233, 311 }, { 234, 315 }, { 235, 316 }, { 236, 326 }, { 237, 274 }, { 238, 325 }, { 239, 8217 }, { 240, 173 }, { 241, 177 }, { 242, 8220 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 8222 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 39, 8216 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp850[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 215 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 169 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 162 }, { 190, 165 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 227 }, { 199, 195 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 240 }, { 209, 208 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 305 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 166 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 254 }, { 232, 222 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 253 }, { 237, 221 }, { 238, 175 }, { 239, 180 }, { 240, 173 }, { 241, 177 }, { 242, 8215 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp851[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 902 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 904 }, { 142, 196 }, { 143, 905 }, { 144, 906 }, { 145, 145 }, { 146, 908 }, { 147, 244 }, { 148, 246 }, { 149, 910 }, { 150, 251 }, { 151, 249 }, { 152, 911 }, { 153, 214 }, { 154, 220 }, { 155, 940 }, { 156, 163 }, { 157, 941 }, { 158, 942 }, { 159, 943 }, { 160, 970 }, { 161, 912 }, { 162, 972 }, { 163, 973 }, { 164, 913 }, { 165, 914 }, { 166, 915 }, { 167, 916 }, { 168, 917 }, { 169, 918 }, { 170, 919 }, { 171, 189 }, { 172, 920 }, { 173, 921 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 922 }, { 182, 923 }, { 183, 924 }, { 184, 925 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 926 }, { 190, 927 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 928 }, { 199, 929 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 931 }, { 208, 932 }, { 209, 933 }, { 210, 934 }, { 211, 935 }, { 212, 936 }, { 213, 937 }, { 214, 945 }, { 215, 946 }, { 216, 947 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 948 }, { 222, 949 }, { 223, 9600 }, { 224, 950 }, { 225, 951 }, { 226, 952 }, { 227, 953 }, { 228, 954 }, { 229, 955 }, { 230, 956 }, { 231, 957 }, { 232, 958 }, { 233, 959 }, { 234, 960 }, { 235, 961 }, { 236, 963 }, { 237, 962 }, { 238, 964 }, { 239, 900 }, { 240, 173 }, { 241, 177 }, { 242, 965 }, { 243, 966 }, { 244, 967 }, { 245, 167 }, { 246, 968 }, { 247, 901 }, { 248, 176 }, { 249, 168 }, { 250, 969 }, { 251, 971 }, { 252, 944 }, { 253, 974 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp852[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 367 }, { 134, 263 }, { 135, 231 }, { 136, 322 }, { 137, 235 }, { 138, 336 }, { 139, 337 }, { 140, 238 }, { 141, 377 }, { 142, 196 }, { 143, 262 }, { 144, 201 }, { 145, 313 }, { 146, 314 }, { 147, 244 }, { 148, 246 }, { 149, 317 }, { 150, 318 }, { 151, 346 }, { 152, 347 }, { 153, 214 }, { 154, 220 }, { 155, 356 }, { 156, 357 }, { 157, 321 }, { 158, 215 }, { 159, 269 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 260 }, { 165, 261 }, { 166, 381 }, { 167, 382 }, { 168, 280 }, { 169, 281 }, { 170, 170 }, { 171, 378 }, { 172, 268 }, { 173, 351 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 282 }, { 184, 350 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 379 }, { 190, 380 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 258 }, { 199, 259 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 273 }, { 209, 272 }, { 210, 270 }, { 211, 203 }, { 212, 271 }, { 213, 327 }, { 214, 205 }, { 215, 206 }, { 216, 283 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 354 }, { 222, 366 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 323 }, { 228, 324 }, { 229, 328 }, { 230, 352 }, { 231, 353 }, { 232, 340 }, { 233, 218 }, { 234, 341 }, { 235, 368 }, { 236, 253 }, { 237, 221 }, { 238, 355 }, { 239, 180 }, { 240, 173 }, { 241, 733 }, { 242, 731 }, { 243, 711 }, { 244, 728 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 729 }, { 251, 369 }, { 252, 344 }, { 253, 345 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp853[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 265 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 264 }, { 144, 201 }, { 145, 267 }, { 146, 266 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 304 }, { 153, 214 }, { 154, 220 }, { 155, 285 }, { 156, 163 }, { 157, 284 }, { 158, 215 }, { 159, 309 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 286 }, { 167, 287 }, { 168, 292 }, { 169, 293 }, { 170, 170 }, { 171, 189 }, { 172, 308 }, { 173, 351 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 350 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 379 }, { 190, 380 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 348 }, { 199, 349 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 208 }, { 209, 209 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 305 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 221 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 288 }, { 229, 289 }, { 230, 181 }, { 231, 294 }, { 232, 295 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 364 }, { 237, 365 }, { 238, 238 }, { 239, 180 }, { 240, 173 }, { 241, 241 }, { 242, 8467 }, { 243, 329 }, { 244, 728 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 729 }, { 251, 251 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 268 }, { 99, 263 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 352 }, { 115, 347 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 381 }, { 122, 378 }, { 122, 382 }, }; static convert_t cp855[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1106 }, { 129, 1026 }, { 130, 1107 }, { 131, 1027 }, { 132, 1105 }, { 133, 1025 }, { 134, 1108 }, { 135, 1028 }, { 136, 1109 }, { 137, 1029 }, { 138, 1110 }, { 139, 1030 }, { 140, 1111 }, { 141, 1031 }, { 142, 1112 }, { 143, 1032 }, { 144, 1113 }, { 145, 1033 }, { 146, 1114 }, { 147, 1034 }, { 148, 1115 }, { 149, 1035 }, { 150, 1116 }, { 151, 1036 }, { 152, 1118 }, { 153, 1038 }, { 154, 1119 }, { 155, 1039 }, { 156, 1102 }, { 157, 1070 }, { 158, 1098 }, { 159, 1066 }, { 160, 1072 }, { 161, 1040 }, { 162, 1073 }, { 163, 1041 }, { 164, 1094 }, { 165, 1062 }, { 166, 1076 }, { 167, 1044 }, { 168, 1077 }, { 169, 1045 }, { 170, 1092 }, { 171, 1060 }, { 172, 1075 }, { 173, 1043 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 1093 }, { 182, 1061 }, { 183, 1080 }, { 184, 1048 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 1081 }, { 190, 1049 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 1082 }, { 199, 1050 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 1083 }, { 209, 1051 }, { 210, 1084 }, { 211, 1052 }, { 212, 1085 }, { 213, 1053 }, { 214, 1086 }, { 215, 1054 }, { 216, 1087 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 1055 }, { 222, 1103 }, { 223, 9600 }, { 224, 1071 }, { 225, 1088 }, { 226, 1056 }, { 227, 1089 }, { 228, 1057 }, { 229, 1090 }, { 230, 1058 }, { 231, 1091 }, { 232, 1059 }, { 233, 1078 }, { 234, 1046 }, { 235, 1074 }, { 236, 1042 }, { 237, 1100 }, { 238, 1068 }, { 239, 8470 }, { 240, 173 }, { 241, 1099 }, { 242, 1067 }, { 243, 1079 }, { 244, 1047 }, { 245, 1096 }, { 246, 1064 }, { 247, 1101 }, { 248, 1069 }, { 249, 1097 }, { 250, 1065 }, { 251, 1095 }, { 252, 1063 }, { 253, 167 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp857[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 305 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 304 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 350 }, { 159, 351 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 286 }, { 167, 287 }, { 168, 191 }, { 169, 174 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 193 }, { 182, 194 }, { 183, 192 }, { 184, 169 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 162 }, { 190, 165 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 227 }, { 199, 195 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 164 }, { 208, 186 }, { 209, 170 }, { 210, 202 }, { 211, 203 }, { 212, 200 }, { 213, 213 }, { 214, 205 }, { 215, 206 }, { 216, 207 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 166 }, { 222, 204 }, { 223, 9600 }, { 224, 211 }, { 225, 223 }, { 226, 212 }, { 227, 210 }, { 228, 245 }, { 229, 213 }, { 230, 181 }, { 231, 231 }, { 232, 215 }, { 233, 218 }, { 234, 219 }, { 235, 217 }, { 236, 236 }, { 237, 255 }, { 238, 175 }, { 239, 180 }, { 240, 173 }, { 241, 177 }, { 242, 242 }, { 243, 190 }, { 244, 182 }, { 245, 167 }, { 246, 247 }, { 247, 184 }, { 248, 176 }, { 249, 168 }, { 250, 183 }, { 251, 185 }, { 252, 179 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp860[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 227 }, { 133, 224 }, { 134, 193 }, { 135, 231 }, { 136, 234 }, { 137, 202 }, { 138, 232 }, { 139, 205 }, { 140, 212 }, { 141, 236 }, { 142, 195 }, { 143, 194 }, { 144, 201 }, { 145, 192 }, { 146, 200 }, { 147, 244 }, { 148, 245 }, { 149, 242 }, { 150, 218 }, { 151, 249 }, { 152, 204 }, { 153, 213 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 217 }, { 158, 8359 }, { 159, 211 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 210 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp861[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 208 }, { 140, 240 }, { 141, 222 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 254 }, { 150, 251 }, { 151, 221 }, { 152, 253 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 193 }, { 165, 205 }, { 166, 211 }, { 167, 218 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp862[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1488 }, { 129, 1489 }, { 130, 1490 }, { 131, 1491 }, { 132, 1492 }, { 133, 1493 }, { 134, 1494 }, { 135, 1495 }, { 136, 1496 }, { 137, 1497 }, { 138, 1498 }, { 139, 1499 }, { 140, 1500 }, { 141, 1501 }, { 142, 1502 }, { 143, 1503 }, { 144, 1504 }, { 145, 1505 }, { 146, 1506 }, { 147, 1507 }, { 148, 1508 }, { 149, 1509 }, { 150, 1510 }, { 151, 1511 }, { 152, 1512 }, { 153, 1513 }, { 154, 1514 }, { 155, 162 }, { 156, 163 }, { 157, 165 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp863[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 194 }, { 133, 224 }, { 134, 182 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 8215 }, { 142, 192 }, { 143, 167 }, { 144, 201 }, { 145, 200 }, { 146, 202 }, { 147, 244 }, { 148, 203 }, { 149, 207 }, { 150, 251 }, { 151, 249 }, { 152, 164 }, { 153, 212 }, { 154, 220 }, { 155, 162 }, { 156, 163 }, { 157, 217 }, { 158, 219 }, { 159, 402 }, { 160, 166 }, { 161, 180 }, { 162, 243 }, { 163, 250 }, { 164, 168 }, { 165, 184 }, { 166, 179 }, { 167, 175 }, { 168, 206 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 190 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp864[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 176 }, { 129, 183 }, { 130, 8729 }, { 131, 8730 }, { 132, 9618 }, { 133, 9472 }, { 134, 9474 }, { 135, 9532 }, { 136, 9508 }, { 137, 9516 }, { 138, 9500 }, { 139, 9524 }, { 140, 9488 }, { 141, 9484 }, { 142, 9492 }, { 143, 9496 }, { 144, 946 }, { 145, 8734 }, { 146, 966 }, { 147, 177 }, { 148, 189 }, { 149, 188 }, { 150, 8776 }, { 151, 171 }, { 152, 187 }, { 153, 65271 }, { 154, 65272 }, { 155, 155 }, { 156, 156 }, { 157, 65275 }, { 158, 65276 }, { 159, 159 }, { 160, 160 }, { 161, 173 }, { 162, 65154 }, { 163, 163 }, { 164, 164 }, { 165, 65156 }, { 166, 166 }, { 167, 167 }, { 168, 65166 }, { 169, 1576 }, { 170, 1578 }, { 171, 1579 }, { 172, 1548 }, { 173, 1580 }, { 174, 1581 }, { 175, 1582 }, { 176, 1632 }, { 177, 1633 }, { 178, 1634 }, { 179, 1635 }, { 180, 1636 }, { 181, 1637 }, { 182, 1638 }, { 183, 1639 }, { 184, 1640 }, { 185, 1641 }, { 186, 1601 }, { 187, 1563 }, { 188, 1587 }, { 189, 1588 }, { 190, 1589 }, { 191, 1567 }, { 192, 162 }, { 193, 1569 }, { 194, 1570 }, { 195, 1571 }, { 196, 1572 }, { 197, 65226 }, { 198, 65163 }, { 199, 1575 }, { 200, 65169 }, { 201, 1577 }, { 202, 65175 }, { 203, 65179 }, { 204, 65183 }, { 205, 65187 }, { 206, 65191 }, { 207, 1583 }, { 208, 1584 }, { 209, 1585 }, { 210, 1586 }, { 211, 65203 }, { 212, 65207 }, { 213, 65211 }, { 214, 65215 }, { 215, 1591 }, { 216, 1592 }, { 217, 65227 }, { 218, 65231 }, { 219, 166 }, { 220, 172 }, { 221, 247 }, { 222, 215 }, { 223, 1593 }, { 224, 1600 }, { 225, 65235 }, { 226, 65239 }, { 227, 65243 }, { 228, 65247 }, { 229, 65251 }, { 230, 65255 }, { 231, 65259 }, { 232, 1608 }, { 233, 1609 }, { 234, 65267 }, { 235, 1590 }, { 236, 65228 }, { 237, 65230 }, { 238, 1594 }, { 239, 1605 }, { 240, 65149 }, { 241, 1617 }, { 242, 1606 }, { 243, 1607 }, { 244, 65260 }, { 245, 65264 }, { 246, 65266 }, { 247, 65232 }, { 248, 1602 }, { 249, 65269 }, { 250, 65270 }, { 251, 1604 }, { 252, 1603 }, { 253, 1610 }, { 254, 9632 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp865[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 199 }, { 129, 252 }, { 130, 233 }, { 131, 226 }, { 132, 228 }, { 133, 224 }, { 134, 229 }, { 135, 231 }, { 136, 234 }, { 137, 235 }, { 138, 232 }, { 139, 239 }, { 140, 238 }, { 141, 236 }, { 142, 196 }, { 143, 197 }, { 144, 201 }, { 145, 230 }, { 146, 198 }, { 147, 244 }, { 148, 246 }, { 149, 242 }, { 150, 251 }, { 151, 249 }, { 152, 255 }, { 153, 214 }, { 154, 220 }, { 155, 248 }, { 156, 163 }, { 157, 216 }, { 158, 8359 }, { 159, 402 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 241 }, { 165, 209 }, { 166, 170 }, { 167, 186 }, { 168, 191 }, { 169, 8976 }, { 170, 172 }, { 171, 189 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 164 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp866[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1040 }, { 129, 1041 }, { 130, 1042 }, { 131, 1043 }, { 132, 1044 }, { 133, 1045 }, { 134, 1046 }, { 135, 1047 }, { 136, 1048 }, { 137, 1049 }, { 138, 1050 }, { 139, 1051 }, { 140, 1052 }, { 141, 1053 }, { 142, 1054 }, { 143, 1055 }, { 144, 1056 }, { 145, 1057 }, { 146, 1058 }, { 147, 1059 }, { 148, 1060 }, { 149, 1061 }, { 150, 1062 }, { 151, 1063 }, { 152, 1064 }, { 153, 1065 }, { 154, 1066 }, { 155, 1067 }, { 156, 1068 }, { 157, 1069 }, { 158, 1070 }, { 159, 1071 }, { 160, 1072 }, { 161, 1073 }, { 162, 1074 }, { 163, 1075 }, { 164, 1076 }, { 165, 1077 }, { 166, 1078 }, { 167, 1079 }, { 168, 1080 }, { 169, 1081 }, { 170, 1082 }, { 171, 1083 }, { 172, 1084 }, { 173, 1085 }, { 174, 1086 }, { 175, 1087 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 1088 }, { 225, 1089 }, { 226, 1090 }, { 227, 1091 }, { 228, 1092 }, { 229, 1093 }, { 230, 1094 }, { 231, 1095 }, { 232, 1096 }, { 233, 1097 }, { 234, 1098 }, { 235, 1099 }, { 236, 1100 }, { 237, 1101 }, { 238, 1102 }, { 239, 1103 }, { 240, 1025 }, { 241, 1105 }, { 242, 1028 }, { 243, 1108 }, { 244, 1031 }, { 245, 1111 }, { 246, 1038 }, { 247, 1118 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8470 }, { 253, 164 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp869[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 902 }, { 135, 135 }, { 136, 183 }, { 137, 172 }, { 138, 166 }, { 139, 8216 }, { 140, 8217 }, { 141, 904 }, { 142, 8213 }, { 143, 905 }, { 144, 906 }, { 145, 938 }, { 146, 908 }, { 147, 147 }, { 148, 148 }, { 149, 910 }, { 150, 939 }, { 151, 169 }, { 152, 911 }, { 153, 178 }, { 154, 179 }, { 155, 940 }, { 156, 163 }, { 157, 941 }, { 158, 942 }, { 159, 943 }, { 160, 970 }, { 161, 912 }, { 162, 972 }, { 163, 973 }, { 164, 913 }, { 165, 914 }, { 166, 915 }, { 167, 916 }, { 168, 917 }, { 169, 918 }, { 170, 919 }, { 171, 189 }, { 172, 920 }, { 173, 921 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 922 }, { 182, 923 }, { 183, 924 }, { 184, 925 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 926 }, { 190, 927 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 928 }, { 199, 929 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 931 }, { 208, 932 }, { 209, 933 }, { 210, 934 }, { 211, 935 }, { 212, 936 }, { 213, 937 }, { 214, 945 }, { 215, 946 }, { 216, 947 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 948 }, { 222, 949 }, { 223, 9600 }, { 224, 950 }, { 225, 951 }, { 226, 952 }, { 227, 953 }, { 228, 954 }, { 229, 955 }, { 230, 956 }, { 231, 957 }, { 232, 958 }, { 233, 959 }, { 234, 960 }, { 235, 961 }, { 236, 963 }, { 237, 962 }, { 238, 964 }, { 239, 900 }, { 240, 173 }, { 241, 177 }, { 242, 965 }, { 243, 966 }, { 244, 967 }, { 245, 167 }, { 246, 968 }, { 247, 901 }, { 248, 176 }, { 249, 168 }, { 250, 969 }, { 251, 971 }, { 252, 944 }, { 253, 974 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp874[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 8230 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 3585 }, { 162, 3586 }, { 163, 3587 }, { 164, 3588 }, { 165, 3589 }, { 166, 3590 }, { 167, 3591 }, { 168, 3592 }, { 169, 3593 }, { 170, 3594 }, { 171, 3595 }, { 172, 3596 }, { 173, 3597 }, { 174, 3598 }, { 175, 3599 }, { 176, 3600 }, { 177, 3601 }, { 178, 3602 }, { 179, 3603 }, { 180, 3604 }, { 181, 3605 }, { 182, 3606 }, { 183, 3607 }, { 184, 3608 }, { 185, 3609 }, { 186, 3610 }, { 187, 3611 }, { 188, 3612 }, { 189, 3613 }, { 190, 3614 }, { 191, 3615 }, { 192, 3616 }, { 193, 3617 }, { 194, 3618 }, { 195, 3619 }, { 196, 3620 }, { 197, 3621 }, { 198, 3622 }, { 199, 3623 }, { 200, 3624 }, { 201, 3625 }, { 202, 3626 }, { 203, 3627 }, { 204, 3628 }, { 205, 3629 }, { 206, 3630 }, { 207, 3631 }, { 208, 3632 }, { 209, 3633 }, { 210, 3634 }, { 211, 3635 }, { 212, 3636 }, { 213, 3637 }, { 214, 3638 }, { 215, 3639 }, { 216, 3640 }, { 217, 3641 }, { 218, 3642 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 3647 }, { 224, 3648 }, { 225, 3649 }, { 226, 3650 }, { 227, 3651 }, { 228, 3652 }, { 229, 3653 }, { 230, 3654 }, { 231, 3655 }, { 232, 3656 }, { 233, 3657 }, { 234, 3658 }, { 235, 3659 }, { 236, 3660 }, { 237, 3661 }, { 238, 3662 }, { 239, 3663 }, { 240, 3664 }, { 241, 3665 }, { 242, 3666 }, { 243, 3667 }, { 244, 3668 }, { 245, 3669 }, { 246, 3670 }, { 247, 3671 }, { 248, 3672 }, { 249, 3673 }, { 250, 3674 }, { 251, 3675 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp895[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 268 }, { 129, 252 }, { 130, 233 }, { 131, 271 }, { 132, 228 }, { 133, 270 }, { 134, 356 }, { 135, 269 }, { 136, 283 }, { 137, 282 }, { 138, 313 }, { 139, 205 }, { 140, 318 }, { 141, 314 }, { 142, 196 }, { 143, 193 }, { 144, 201 }, { 145, 382 }, { 146, 381 }, { 147, 244 }, { 148, 246 }, { 149, 211 }, { 150, 367 }, { 151, 218 }, { 152, 253 }, { 153, 214 }, { 154, 220 }, { 155, 352 }, { 156, 317 }, { 157, 221 }, { 158, 344 }, { 159, 357 }, { 160, 225 }, { 161, 237 }, { 162, 243 }, { 163, 250 }, { 164, 328 }, { 165, 327 }, { 166, 366 }, { 167, 212 }, { 168, 353 }, { 169, 345 }, { 170, 341 }, { 171, 340 }, { 172, 188 }, { 173, 161 }, { 174, 171 }, { 175, 187 }, { 176, 9617 }, { 177, 9618 }, { 178, 9619 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 945 }, { 225, 223 }, { 226, 915 }, { 227, 960 }, { 228, 931 }, { 229, 963 }, { 230, 181 }, { 231, 964 }, { 232, 934 }, { 233, 920 }, { 234, 937 }, { 235, 948 }, { 236, 8734 }, { 237, 966 }, { 238, 949 }, { 239, 8745 }, { 240, 8801 }, { 241, 177 }, { 242, 8805 }, { 243, 8804 }, { 244, 8992 }, { 245, 8993 }, { 246, 247 }, { 247, 8776 }, { 248, 176 }, { 249, 8729 }, { 250, 183 }, { 251, 8730 }, { 252, 8319 }, { 253, 178 }, { 254, 9632 }, { 255, 160 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 194 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 226 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 76, 321 }, { 108, 316 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 116, 355 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t cp1250[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 346 }, { 141, 356 }, { 142, 381 }, { 143, 377 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 347 }, { 157, 357 }, { 158, 382 }, { 159, 378 }, { 160, 160 }, { 161, 711 }, { 162, 728 }, { 163, 321 }, { 164, 164 }, { 165, 260 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 350 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 379 }, { 176, 176 }, { 177, 177 }, { 178, 731 }, { 179, 322 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 261 }, { 186, 351 }, { 187, 187 }, { 188, 376 }, { 189, 733 }, { 190, 317 }, { 191, 380 }, { 192, 340 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 313 }, { 198, 262 }, { 199, 199 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 282 }, { 205, 205 }, { 206, 206 }, { 207, 270 }, { 208, 272 }, { 209, 323 }, { 210, 327 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 215 }, { 216, 344 }, { 217, 366 }, { 218, 218 }, { 219, 368 }, { 220, 220 }, { 221, 221 }, { 222, 354 }, { 223, 223 }, { 224, 341 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 314 }, { 230, 263 }, { 231, 231 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 283 }, { 237, 237 }, { 238, 238 }, { 239, 271 }, { 240, 273 }, { 241, 324 }, { 242, 328 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 247 }, { 248, 345 }, { 249, 367 }, { 250, 250 }, { 251, 369 }, { 252, 252 }, { 253, 253 }, { 254, 355 }, { 255, 729 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp1251[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1026 }, { 129, 1027 }, { 130, 8218 }, { 131, 1107 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 8364 }, { 137, 8240 }, { 138, 1033 }, { 139, 8249 }, { 140, 1034 }, { 141, 1036 }, { 142, 1035 }, { 143, 1039 }, { 144, 1106 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 1113 }, { 155, 8250 }, { 156, 1114 }, { 157, 1116 }, { 158, 1115 }, { 159, 1119 }, { 160, 160 }, { 161, 1038 }, { 162, 1118 }, { 163, 1032 }, { 164, 164 }, { 165, 1168 }, { 166, 166 }, { 167, 167 }, { 168, 1025 }, { 169, 169 }, { 170, 1028 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 1031 }, { 176, 176 }, { 177, 177 }, { 178, 1030 }, { 179, 1110 }, { 180, 1169 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 1105 }, { 185, 8470 }, { 186, 1108 }, { 187, 187 }, { 188, 1112 }, { 189, 1029 }, { 190, 1109 }, { 191, 1111 }, { 192, 1040 }, { 193, 1041 }, { 194, 1042 }, { 195, 1043 }, { 196, 1044 }, { 197, 1045 }, { 198, 1046 }, { 199, 1047 }, { 200, 1048 }, { 201, 1049 }, { 202, 1050 }, { 203, 1051 }, { 204, 1052 }, { 205, 1053 }, { 206, 1054 }, { 207, 1055 }, { 208, 1056 }, { 209, 1057 }, { 210, 1058 }, { 211, 1059 }, { 212, 1060 }, { 213, 1061 }, { 214, 1062 }, { 215, 1063 }, { 216, 1064 }, { 217, 1065 }, { 218, 1066 }, { 219, 1067 }, { 220, 1068 }, { 221, 1069 }, { 222, 1070 }, { 223, 1071 }, { 224, 1072 }, { 225, 1073 }, { 226, 1074 }, { 227, 1075 }, { 228, 1076 }, { 229, 1077 }, { 230, 1078 }, { 231, 1079 }, { 232, 1080 }, { 233, 1081 }, { 234, 1082 }, { 235, 1083 }, { 236, 1084 }, { 237, 1085 }, { 238, 1086 }, { 239, 1087 }, { 240, 1088 }, { 241, 1089 }, { 242, 1090 }, { 243, 1091 }, { 244, 1092 }, { 245, 1093 }, { 246, 1094 }, { 247, 1095 }, { 248, 1096 }, { 249, 1097 }, { 250, 1098 }, { 251, 1099 }, { 252, 1100 }, { 253, 1101 }, { 254, 1102 }, { 255, 1103 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1252[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 381 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 382 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t cp1253[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 901 }, { 162, 902 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 8213 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1254[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 352 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 353 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 158 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 286 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 304 }, { 222, 350 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 287 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 305 }, { 254, 351 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 115, 347 }, { 115, 349 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1255[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 215 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 781 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 247 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 8215 }, { 224, 1488 }, { 225, 1489 }, { 226, 1490 }, { 227, 1491 }, { 228, 1492 }, { 229, 1493 }, { 230, 1494 }, { 231, 1495 }, { 232, 1496 }, { 233, 1497 }, { 234, 1498 }, { 235, 1499 }, { 236, 1500 }, { 237, 1501 }, { 238, 1502 }, { 239, 1503 }, { 240, 1504 }, { 241, 1505 }, { 242, 1506 }, { 243, 1507 }, { 244, 1508 }, { 245, 1509 }, { 246, 1510 }, { 247, 1511 }, { 248, 1512 }, { 249, 1513 }, { 250, 1514 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1256[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 1548 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 1563 }, { 153, 8482 }, { 154, 1567 }, { 155, 8250 }, { 156, 1569 }, { 157, 1570 }, { 158, 1571 }, { 159, 376 }, { 160, 160 }, { 161, 1572 }, { 162, 1573 }, { 163, 163 }, { 164, 164 }, { 165, 1574 }, { 166, 166 }, { 167, 167 }, { 168, 1575 }, { 169, 169 }, { 170, 1576 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 1577 }, { 179, 1578 }, { 180, 1579 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 1580 }, { 185, 185 }, { 186, 1581 }, { 187, 187 }, { 188, 1582 }, { 189, 1583 }, { 190, 1584 }, { 191, 1585 }, { 192, 192 }, { 193, 1586 }, { 194, 194 }, { 195, 195 }, { 196, 1587 }, { 197, 1588 }, { 198, 1589 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 1590 }, { 205, 1591 }, { 206, 206 }, { 207, 207 }, { 208, 1592 }, { 209, 1593 }, { 210, 1594 }, { 211, 1600 }, { 212, 212 }, { 213, 1601 }, { 214, 1602 }, { 215, 215 }, { 216, 1603 }, { 217, 217 }, { 218, 1711 }, { 219, 219 }, { 220, 220 }, { 221, 1604 }, { 222, 1605 }, { 223, 1606 }, { 224, 224 }, { 225, 1607 }, { 226, 226 }, { 227, 227 }, { 228, 1608 }, { 229, 1609 }, { 230, 1610 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 1611 }, { 237, 1612 }, { 238, 238 }, { 239, 239 }, { 240, 1613 }, { 241, 1614 }, { 242, 1615 }, { 243, 1616 }, { 244, 244 }, { 245, 1617 }, { 246, 1618 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 225 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 245 }, { 110, 246 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t cp1257[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 131 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 136 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 140 }, { 141, 168 }, { 142, 711 }, { 143, 184 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 152 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 156 }, { 157, 175 }, { 158, 731 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 216 }, { 169, 169 }, { 170, 342 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 198 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 248 }, { 185, 185 }, { 186, 343 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 230 }, { 192, 260 }, { 193, 302 }, { 194, 256 }, { 195, 262 }, { 196, 196 }, { 197, 197 }, { 198, 280 }, { 199, 274 }, { 200, 268 }, { 201, 201 }, { 202, 377 }, { 203, 278 }, { 204, 290 }, { 205, 310 }, { 206, 298 }, { 207, 315 }, { 208, 352 }, { 209, 323 }, { 210, 325 }, { 211, 211 }, { 212, 332 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 370 }, { 217, 321 }, { 218, 340 }, { 219, 362 }, { 220, 220 }, { 221, 379 }, { 222, 381 }, { 223, 223 }, { 224, 261 }, { 225, 303 }, { 226, 257 }, { 227, 263 }, { 228, 228 }, { 229, 229 }, { 230, 281 }, { 231, 275 }, { 232, 269 }, { 233, 233 }, { 234, 378 }, { 235, 279 }, { 236, 291 }, { 237, 311 }, { 238, 299 }, { 239, 316 }, { 240, 353 }, { 241, 324 }, { 242, 326 }, { 243, 243 }, { 244, 333 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 371 }, { 249, 322 }, { 250, 347 }, { 251, 363 }, { 252, 252 }, { 253, 380 }, { 254, 382 }, { 255, 729 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t cp1258[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8364 }, { 129, 129 }, { 130, 8218 }, { 131, 402 }, { 132, 8222 }, { 133, 8230 }, { 134, 8224 }, { 135, 8225 }, { 136, 710 }, { 137, 8240 }, { 138, 138 }, { 139, 8249 }, { 140, 338 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 8216 }, { 146, 8217 }, { 147, 8220 }, { 148, 8221 }, { 149, 8226 }, { 150, 8211 }, { 151, 8212 }, { 152, 732 }, { 153, 8482 }, { 154, 154 }, { 155, 8250 }, { 156, 339 }, { 157, 157 }, { 158, 158 }, { 159, 376 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 832 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 272 }, { 209, 209 }, { 210, 777 }, { 211, 211 }, { 212, 212 }, { 213, 416 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 431 }, { 222, 771 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 833 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 273 }, { 241, 241 }, { 242, 803 }, { 243, 243 }, { 244, 244 }, { 245, 417 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 432 }, { 254, 8363 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 256 }, { 65, 260 }, { 65, 461 }, { 97, 227 }, { 97, 257 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t decmcs[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 376 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 255 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t ebc037[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 162 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 124 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 33 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 172 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 221 }, { 174, 222 }, { 175, 174 }, { 176, 94 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 91 }, { 187, 93 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc1026[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 123 }, { 73, 241 }, { 74, 199 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 286 }, { 91, 304 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 91 }, { 105, 209 }, { 106, 351 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 305 }, { 122, 58 }, { 123, 214 }, { 124, 350 }, { 125, 39 }, { 126, 61 }, { 127, 220 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 125 }, { 141, 96 }, { 142, 166 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 246 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 93 }, { 173, 36 }, { 174, 64 }, { 175, 174 }, { 176, 162 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 172 }, { 187, 124 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 231 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 126 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 287 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 92 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 252 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 35 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 34 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 221 }, { 232, 374 }, { 232, 376 }, { 168, 253 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc1047[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 162 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 124 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 33 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 91 }, { 174, 222 }, { 175, 174 }, { 176, 172 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 221 }, { 187, 168 }, { 188, 175 }, { 189, 93 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc500[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 160 }, { 66, 226 }, { 67, 228 }, { 68, 224 }, { 69, 225 }, { 70, 227 }, { 71, 229 }, { 72, 231 }, { 73, 241 }, { 74, 91 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 233 }, { 82, 234 }, { 83, 235 }, { 84, 232 }, { 85, 237 }, { 86, 238 }, { 87, 239 }, { 88, 236 }, { 89, 223 }, { 90, 93 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 194 }, { 99, 196 }, { 100, 192 }, { 101, 193 }, { 102, 195 }, { 103, 197 }, { 104, 199 }, { 105, 209 }, { 106, 166 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 248 }, { 113, 201 }, { 114, 202 }, { 115, 203 }, { 116, 200 }, { 117, 205 }, { 118, 206 }, { 119, 207 }, { 120, 204 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 216 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 171 }, { 139, 187 }, { 140, 240 }, { 141, 253 }, { 142, 254 }, { 143, 177 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 170 }, { 155, 186 }, { 156, 230 }, { 157, 184 }, { 158, 198 }, { 159, 164 }, { 160, 181 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 161 }, { 171, 191 }, { 172, 208 }, { 173, 221 }, { 174, 222 }, { 175, 174 }, { 176, 162 }, { 177, 163 }, { 178, 165 }, { 179, 183 }, { 180, 169 }, { 181, 167 }, { 182, 182 }, { 183, 188 }, { 184, 189 }, { 185, 190 }, { 186, 172 }, { 187, 124 }, { 188, 175 }, { 189, 168 }, { 190, 180 }, { 191, 215 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 244 }, { 204, 246 }, { 205, 242 }, { 206, 243 }, { 207, 245 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 185 }, { 219, 251 }, { 220, 252 }, { 221, 249 }, { 222, 250 }, { 223, 255 }, { 224, 92 }, { 225, 247 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 212 }, { 236, 214 }, { 237, 210 }, { 238, 211 }, { 239, 213 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 219 }, { 252, 220 }, { 253, 217 }, { 254, 218 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t ebc875[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 32 }, { 65, 913 }, { 66, 914 }, { 67, 915 }, { 68, 916 }, { 69, 917 }, { 70, 918 }, { 71, 919 }, { 72, 920 }, { 73, 921 }, { 74, 91 }, { 75, 46 }, { 76, 60 }, { 77, 40 }, { 78, 43 }, { 79, 33 }, { 80, 38 }, { 81, 922 }, { 82, 923 }, { 83, 924 }, { 84, 925 }, { 85, 926 }, { 86, 927 }, { 87, 928 }, { 88, 929 }, { 89, 931 }, { 90, 93 }, { 91, 36 }, { 92, 42 }, { 93, 41 }, { 94, 59 }, { 95, 94 }, { 96, 45 }, { 97, 47 }, { 98, 932 }, { 99, 933 }, { 100, 934 }, { 101, 935 }, { 102, 936 }, { 103, 937 }, { 104, 938 }, { 105, 939 }, { 106, 124 }, { 107, 44 }, { 108, 37 }, { 109, 95 }, { 110, 62 }, { 111, 63 }, { 112, 168 }, { 113, 902 }, { 114, 904 }, { 115, 905 }, { 116, 160 }, { 117, 906 }, { 118, 908 }, { 119, 910 }, { 120, 911 }, { 121, 96 }, { 122, 58 }, { 123, 35 }, { 124, 64 }, { 125, 39 }, { 126, 61 }, { 127, 34 }, { 128, 901 }, { 129, 97 }, { 130, 98 }, { 131, 99 }, { 132, 100 }, { 133, 101 }, { 134, 102 }, { 135, 103 }, { 136, 104 }, { 137, 105 }, { 138, 945 }, { 139, 946 }, { 140, 947 }, { 141, 948 }, { 142, 949 }, { 143, 950 }, { 144, 176 }, { 145, 106 }, { 146, 107 }, { 147, 108 }, { 148, 109 }, { 149, 110 }, { 150, 111 }, { 151, 112 }, { 152, 113 }, { 153, 114 }, { 154, 951 }, { 155, 952 }, { 156, 953 }, { 157, 954 }, { 158, 955 }, { 159, 956 }, { 160, 180 }, { 161, 126 }, { 162, 115 }, { 163, 116 }, { 164, 117 }, { 165, 118 }, { 166, 119 }, { 167, 120 }, { 168, 121 }, { 169, 122 }, { 170, 957 }, { 171, 958 }, { 172, 959 }, { 173, 960 }, { 174, 961 }, { 175, 963 }, { 176, 163 }, { 177, 940 }, { 178, 941 }, { 179, 942 }, { 180, 970 }, { 181, 943 }, { 182, 972 }, { 183, 973 }, { 184, 971 }, { 185, 974 }, { 186, 962 }, { 187, 964 }, { 188, 965 }, { 189, 966 }, { 190, 967 }, { 191, 968 }, { 192, 123 }, { 193, 65 }, { 194, 66 }, { 195, 67 }, { 196, 68 }, { 197, 69 }, { 198, 70 }, { 199, 71 }, { 200, 72 }, { 201, 73 }, { 202, 173 }, { 203, 969 }, { 204, 912 }, { 205, 944 }, { 206, 206 }, { 207, 207 }, { 208, 125 }, { 209, 74 }, { 210, 75 }, { 211, 76 }, { 212, 77 }, { 213, 78 }, { 214, 79 }, { 215, 80 }, { 216, 81 }, { 217, 82 }, { 218, 177 }, { 219, 189 }, { 220, 220 }, { 221, 183 }, { 222, 222 }, { 223, 166 }, { 224, 92 }, { 225, 225 }, { 226, 83 }, { 227, 84 }, { 228, 85 }, { 229, 86 }, { 230, 87 }, { 231, 88 }, { 232, 89 }, { 233, 90 }, { 234, 178 }, { 235, 167 }, { 236, 236 }, { 237, 237 }, { 238, 171 }, { 239, 172 }, { 240, 48 }, { 241, 49 }, { 242, 50 }, { 243, 51 }, { 244, 52 }, { 245, 53 }, { 246, 54 }, { 247, 55 }, { 248, 56 }, { 249, 57 }, { 250, 179 }, { 251, 169 }, { 252, 252 }, { 253, 253 }, { 254, 187 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 193, 192 }, { 193, 193 }, { 193, 194 }, { 193, 195 }, { 193, 196 }, { 193, 197 }, { 193, 256 }, { 193, 258 }, { 193, 260 }, { 193, 461 }, { 129, 224 }, { 129, 226 }, { 129, 227 }, { 129, 228 }, { 129, 229 }, { 129, 257 }, { 129, 259 }, { 129, 261 }, { 129, 462 }, { 195, 199 }, { 195, 262 }, { 195, 264 }, { 195, 266 }, { 195, 268 }, { 131, 231 }, { 131, 263 }, { 131, 265 }, { 131, 267 }, { 131, 269 }, { 196, 270 }, { 132, 271 }, { 197, 200 }, { 197, 201 }, { 197, 202 }, { 197, 203 }, { 197, 274 }, { 197, 276 }, { 197, 278 }, { 197, 280 }, { 197, 282 }, { 133, 232 }, { 133, 233 }, { 133, 234 }, { 133, 235 }, { 133, 275 }, { 133, 277 }, { 133, 279 }, { 133, 281 }, { 133, 283 }, { 199, 284 }, { 199, 286 }, { 199, 288 }, { 199, 290 }, { 199, 486 }, { 199, 500 }, { 135, 285 }, { 135, 287 }, { 135, 289 }, { 135, 291 }, { 135, 487 }, { 135, 501 }, { 200, 292 }, { 136, 293 }, { 201, 204 }, { 201, 205 }, { 201, 296 }, { 201, 298 }, { 201, 300 }, { 201, 302 }, { 201, 304 }, { 201, 463 }, { 137, 238 }, { 137, 239 }, { 137, 297 }, { 137, 299 }, { 137, 301 }, { 137, 303 }, { 137, 305 }, { 137, 464 }, { 209, 308 }, { 145, 309 }, { 210, 310 }, { 210, 488 }, { 146, 311 }, { 146, 489 }, { 211, 313 }, { 211, 315 }, { 211, 317 }, { 211, 319 }, { 211, 321 }, { 147, 314 }, { 147, 316 }, { 147, 318 }, { 147, 320 }, { 147, 322 }, { 212, 209 }, { 212, 323 }, { 212, 325 }, { 212, 327 }, { 148, 241 }, { 148, 324 }, { 148, 326 }, { 148, 328 }, { 148, 329 }, { 213, 210 }, { 213, 211 }, { 213, 212 }, { 213, 213 }, { 213, 214 }, { 213, 216 }, { 213, 332 }, { 213, 334 }, { 213, 336 }, { 213, 465 }, { 213, 490 }, { 149, 242 }, { 149, 243 }, { 149, 244 }, { 149, 245 }, { 149, 246 }, { 149, 248 }, { 149, 333 }, { 149, 335 }, { 149, 337 }, { 149, 466 }, { 149, 491 }, { 217, 340 }, { 217, 342 }, { 217, 344 }, { 153, 341 }, { 153, 343 }, { 153, 345 }, { 226, 346 }, { 226, 348 }, { 226, 350 }, { 226, 352 }, { 162, 347 }, { 162, 349 }, { 162, 351 }, { 162, 353 }, { 227, 354 }, { 227, 356 }, { 163, 355 }, { 163, 357 }, { 228, 217 }, { 228, 218 }, { 228, 219 }, { 228, 360 }, { 228, 362 }, { 228, 364 }, { 228, 366 }, { 228, 368 }, { 228, 370 }, { 228, 467 }, { 164, 249 }, { 164, 250 }, { 164, 251 }, { 164, 361 }, { 164, 363 }, { 164, 365 }, { 164, 367 }, { 164, 369 }, { 164, 371 }, { 164, 468 }, { 230, 372 }, { 166, 373 }, { 232, 221 }, { 232, 374 }, { 232, 376 }, { 168, 375 }, { 233, 377 }, { 233, 379 }, { 233, 381 }, { 169, 378 }, { 169, 380 }, { 169, 382 }, }; static convert_t hp48[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 8735 }, { 129, 129 }, { 130, 8711 }, { 131, 8730 }, { 132, 8747 }, { 133, 8721 }, { 134, 9654 }, { 135, 960 }, { 136, 8706 }, { 137, 8804 }, { 138, 8805 }, { 139, 8800 }, { 140, 945 }, { 141, 8594 }, { 142, 8592 }, { 143, 8595 }, { 144, 8593 }, { 145, 947 }, { 146, 948 }, { 147, 949 }, { 148, 951 }, { 149, 952 }, { 150, 955 }, { 151, 961 }, { 152, 963 }, { 153, 964 }, { 154, 969 }, { 155, 916 }, { 156, 928 }, { 157, 937 }, { 158, 9644 }, { 159, 8734 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t hproman8[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 192 }, { 162, 194 }, { 163, 200 }, { 164, 202 }, { 165, 203 }, { 166, 206 }, { 167, 207 }, { 168, 180 }, { 169, 768 }, { 170, 770 }, { 171, 168 }, { 172, 771 }, { 173, 217 }, { 174, 219 }, { 175, 8356 }, { 176, 175 }, { 177, 221 }, { 178, 253 }, { 179, 176 }, { 180, 199 }, { 181, 231 }, { 182, 209 }, { 183, 241 }, { 184, 161 }, { 185, 191 }, { 186, 164 }, { 187, 163 }, { 188, 165 }, { 189, 167 }, { 190, 402 }, { 191, 162 }, { 192, 226 }, { 193, 234 }, { 194, 244 }, { 195, 251 }, { 196, 225 }, { 197, 233 }, { 198, 243 }, { 199, 250 }, { 200, 224 }, { 201, 232 }, { 202, 242 }, { 203, 249 }, { 204, 228 }, { 205, 235 }, { 206, 246 }, { 207, 252 }, { 208, 197 }, { 209, 238 }, { 210, 216 }, { 211, 198 }, { 212, 229 }, { 213, 237 }, { 214, 248 }, { 215, 230 }, { 216, 196 }, { 217, 236 }, { 218, 214 }, { 219, 220 }, { 220, 201 }, { 221, 239 }, { 222, 223 }, { 223, 212 }, { 224, 193 }, { 225, 195 }, { 226, 227 }, { 227, 208 }, { 228, 240 }, { 229, 205 }, { 230, 204 }, { 231, 211 }, { 232, 210 }, { 233, 213 }, { 234, 245 }, { 235, 352 }, { 236, 353 }, { 237, 218 }, { 238, 376 }, { 239, 255 }, { 240, 222 }, { 241, 254 }, { 242, 183 }, { 243, 181 }, { 244, 182 }, { 245, 190 }, { 246, 173 }, { 247, 188 }, { 248, 189 }, { 249, 170 }, { 250, 186 }, { 251, 171 }, { 252, 9632 }, { 253, 187 }, { 254, 177 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_irv[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_ca[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 226 }, { 92, 231 }, { 93, 234 }, { 94, 238 }, { 95, 95 }, { 96, 244 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 233 }, { 124, 249 }, { 125, 232 }, { 126, 251 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_ch[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 249 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 233 }, { 92, 231 }, { 93, 234 }, { 94, 238 }, { 95, 232 }, { 96, 244 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 252 }, { 126, 251 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_de[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 220 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 252 }, { 126, 223 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_es[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 161 }, { 92, 209 }, { 93, 191 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 176 }, { 124, 241 }, { 125, 231 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_fi[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 197 }, { 94, 220 }, { 95, 95 }, { 96, 233 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 229 }, { 126, 252 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_fr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 224 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 176 }, { 92, 231 }, { 93, 167 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 233 }, { 124, 249 }, { 125, 232 }, { 126, 168 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_gb[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_it[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 167 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 176 }, { 92, 231 }, { 93, 233 }, { 94, 94 }, { 95, 95 }, { 96, 249 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 224 }, { 124, 242 }, { 125, 232 }, { 126, 236 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_nl[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 163 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 190 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 255 }, { 92, 189 }, { 93, 124 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 168 }, { 124, 402 }, { 125, 188 }, { 126, 180 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_no[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 198 }, { 92, 216 }, { 93, 197 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 230 }, { 124, 248 }, { 125, 229 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_pt[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 195 }, { 92, 199 }, { 93, 213 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 227 }, { 124, 231 }, { 125, 245 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso646_se[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 201 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 196 }, { 92, 214 }, { 93, 197 }, { 94, 220 }, { 95, 95 }, { 96, 233 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 228 }, { 124, 246 }, { 125, 229 }, { 126, 252 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_1[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_2[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 728 }, { 163, 321 }, { 164, 164 }, { 165, 317 }, { 166, 346 }, { 167, 167 }, { 168, 168 }, { 169, 352 }, { 170, 350 }, { 171, 356 }, { 172, 377 }, { 173, 173 }, { 174, 381 }, { 175, 379 }, { 176, 176 }, { 177, 261 }, { 178, 731 }, { 179, 322 }, { 180, 180 }, { 181, 318 }, { 182, 347 }, { 183, 711 }, { 184, 184 }, { 185, 353 }, { 186, 351 }, { 187, 357 }, { 188, 378 }, { 189, 733 }, { 190, 382 }, { 191, 380 }, { 192, 340 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 313 }, { 198, 262 }, { 199, 199 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 282 }, { 205, 205 }, { 206, 206 }, { 207, 270 }, { 208, 272 }, { 209, 323 }, { 210, 327 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 215 }, { 216, 344 }, { 217, 366 }, { 218, 218 }, { 219, 368 }, { 220, 220 }, { 221, 221 }, { 222, 354 }, { 223, 223 }, { 224, 341 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 314 }, { 230, 263 }, { 231, 231 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 283 }, { 237, 237 }, { 238, 238 }, { 239, 271 }, { 240, 273 }, { 241, 324 }, { 242, 328 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 247 }, { 248, 345 }, { 249, 367 }, { 250, 250 }, { 251, 369 }, { 252, 252 }, { 253, 253 }, { 254, 355 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 224 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 69, 200 }, { 69, 202 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 232 }, { 101, 234 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 319 }, { 108, 316 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 109, 241 }, { 109, 326 }, { 109, 329 }, { 78, 210 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 85, 217 }, { 85, 219 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, }; static convert_t iso8859_3[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 294 }, { 162, 728 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 292 }, { 167, 167 }, { 168, 168 }, { 169, 304 }, { 170, 350 }, { 171, 286 }, { 172, 308 }, { 173, 173 }, { 174, 174 }, { 175, 379 }, { 176, 176 }, { 177, 295 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 293 }, { 183, 183 }, { 184, 184 }, { 185, 305 }, { 186, 351 }, { 187, 287 }, { 188, 309 }, { 189, 189 }, { 190, 190 }, { 191, 380 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 266 }, { 198, 264 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 288 }, { 214, 214 }, { 215, 215 }, { 216, 284 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 364 }, { 222, 348 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 267 }, { 230, 265 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 289 }, { 246, 246 }, { 247, 247 }, { 248, 285 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 365 }, { 254, 349 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 268 }, { 99, 263 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 352 }, { 115, 347 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 381 }, { 122, 378 }, { 122, 382 }, }; static convert_t iso8859_4[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 312 }, { 163, 342 }, { 164, 164 }, { 165, 296 }, { 166, 315 }, { 167, 167 }, { 168, 168 }, { 169, 352 }, { 170, 274 }, { 171, 290 }, { 172, 358 }, { 173, 173 }, { 174, 381 }, { 175, 175 }, { 176, 176 }, { 177, 261 }, { 178, 731 }, { 179, 343 }, { 180, 180 }, { 181, 297 }, { 182, 316 }, { 183, 711 }, { 184, 184 }, { 185, 353 }, { 186, 275 }, { 187, 291 }, { 188, 359 }, { 189, 330 }, { 190, 382 }, { 191, 331 }, { 192, 256 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 302 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 278 }, { 205, 205 }, { 206, 206 }, { 207, 298 }, { 208, 272 }, { 209, 325 }, { 210, 332 }, { 211, 310 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 370 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 360 }, { 222, 362 }, { 223, 223 }, { 224, 257 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 303 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 279 }, { 237, 237 }, { 238, 238 }, { 239, 299 }, { 240, 273 }, { 241, 326 }, { 242, 333 }, { 243, 311 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 371 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 361 }, { 254, 363 }, { 255, 729 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 207 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 239 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_5[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 1025 }, { 162, 1026 }, { 163, 1027 }, { 164, 1028 }, { 165, 1029 }, { 166, 1030 }, { 167, 1031 }, { 168, 1032 }, { 169, 1033 }, { 170, 1034 }, { 171, 1035 }, { 172, 1036 }, { 173, 173 }, { 174, 1038 }, { 175, 1039 }, { 176, 1040 }, { 177, 1041 }, { 178, 1042 }, { 179, 1043 }, { 180, 1044 }, { 181, 1045 }, { 182, 1046 }, { 183, 1047 }, { 184, 1048 }, { 185, 1049 }, { 186, 1050 }, { 187, 1051 }, { 188, 1052 }, { 189, 1053 }, { 190, 1054 }, { 191, 1055 }, { 192, 1056 }, { 193, 1057 }, { 194, 1058 }, { 195, 1059 }, { 196, 1060 }, { 197, 1061 }, { 198, 1062 }, { 199, 1063 }, { 200, 1064 }, { 201, 1065 }, { 202, 1066 }, { 203, 1067 }, { 204, 1068 }, { 205, 1069 }, { 206, 1070 }, { 207, 1071 }, { 208, 1072 }, { 209, 1073 }, { 210, 1074 }, { 211, 1075 }, { 212, 1076 }, { 213, 1077 }, { 214, 1078 }, { 215, 1079 }, { 216, 1080 }, { 217, 1081 }, { 218, 1082 }, { 219, 1083 }, { 220, 1084 }, { 221, 1085 }, { 222, 1086 }, { 223, 1087 }, { 224, 1088 }, { 225, 1089 }, { 226, 1090 }, { 227, 1091 }, { 228, 1092 }, { 229, 1093 }, { 230, 1094 }, { 231, 1095 }, { 232, 1096 }, { 233, 1097 }, { 234, 1098 }, { 235, 1099 }, { 236, 1100 }, { 237, 1101 }, { 238, 1102 }, { 239, 1103 }, { 240, 8470 }, { 241, 1105 }, { 242, 1106 }, { 243, 1107 }, { 244, 1108 }, { 245, 1109 }, { 246, 1110 }, { 247, 1111 }, { 248, 1112 }, { 249, 1113 }, { 250, 1114 }, { 251, 1115 }, { 252, 1116 }, { 253, 167 }, { 254, 1118 }, { 255, 1119 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_6[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 1548 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 1563 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 1567 }, { 192, 192 }, { 193, 1569 }, { 194, 1570 }, { 195, 1571 }, { 196, 1572 }, { 197, 1573 }, { 198, 1574 }, { 199, 1575 }, { 200, 1576 }, { 201, 1577 }, { 202, 1578 }, { 203, 1579 }, { 204, 1580 }, { 205, 1581 }, { 206, 1582 }, { 207, 1583 }, { 208, 1584 }, { 209, 1585 }, { 210, 1586 }, { 211, 1587 }, { 212, 1588 }, { 213, 1589 }, { 214, 1590 }, { 215, 1591 }, { 216, 1592 }, { 217, 1593 }, { 218, 1594 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 1600 }, { 225, 1601 }, { 226, 1602 }, { 227, 1603 }, { 228, 1604 }, { 229, 1605 }, { 230, 1606 }, { 231, 1607 }, { 232, 1608 }, { 233, 1609 }, { 234, 1610 }, { 235, 1611 }, { 236, 1612 }, { 237, 1613 }, { 238, 1614 }, { 239, 1615 }, { 240, 1616 }, { 241, 1617 }, { 242, 1618 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_7[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 8216 }, { 162, 8217 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 8213 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 900 }, { 181, 901 }, { 182, 902 }, { 183, 183 }, { 184, 904 }, { 185, 905 }, { 186, 906 }, { 187, 187 }, { 188, 908 }, { 189, 189 }, { 190, 910 }, { 191, 911 }, { 192, 912 }, { 193, 913 }, { 194, 914 }, { 195, 915 }, { 196, 916 }, { 197, 917 }, { 198, 918 }, { 199, 919 }, { 200, 920 }, { 201, 921 }, { 202, 922 }, { 203, 923 }, { 204, 924 }, { 205, 925 }, { 206, 926 }, { 207, 927 }, { 208, 928 }, { 209, 929 }, { 210, 210 }, { 211, 931 }, { 212, 932 }, { 213, 933 }, { 214, 934 }, { 215, 935 }, { 216, 936 }, { 217, 937 }, { 218, 938 }, { 219, 939 }, { 220, 940 }, { 221, 941 }, { 222, 942 }, { 223, 943 }, { 224, 944 }, { 225, 945 }, { 226, 946 }, { 227, 947 }, { 228, 948 }, { 229, 949 }, { 230, 950 }, { 231, 951 }, { 232, 952 }, { 233, 953 }, { 234, 954 }, { 235, 955 }, { 236, 956 }, { 237, 957 }, { 238, 958 }, { 239, 959 }, { 240, 960 }, { 241, 961 }, { 242, 962 }, { 243, 963 }, { 244, 964 }, { 245, 965 }, { 246, 966 }, { 247, 967 }, { 248, 968 }, { 249, 969 }, { 250, 970 }, { 251, 971 }, { 252, 972 }, { 253, 973 }, { 254, 974 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_8[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 215 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 247 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 8215 }, { 224, 1488 }, { 225, 1489 }, { 226, 1490 }, { 227, 1491 }, { 228, 1492 }, { 229, 1493 }, { 230, 1494 }, { 231, 1495 }, { 232, 1496 }, { 233, 1497 }, { 234, 1498 }, { 235, 1499 }, { 236, 1500 }, { 237, 1501 }, { 238, 1502 }, { 239, 1503 }, { 240, 1504 }, { 241, 1505 }, { 242, 1506 }, { 243, 1507 }, { 244, 1508 }, { 245, 1509 }, { 246, 1510 }, { 247, 1511 }, { 248, 1512 }, { 249, 1513 }, { 250, 1514 }, { 251, 251 }, { 252, 252 }, { 253, 8206 }, { 254, 8207 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_9[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 180 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 184 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 286 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 304 }, { 222, 350 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 287 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 305 }, { 254, 351 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_10[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 274 }, { 163, 290 }, { 164, 298 }, { 165, 296 }, { 166, 310 }, { 167, 167 }, { 168, 315 }, { 169, 272 }, { 170, 352 }, { 171, 358 }, { 172, 381 }, { 173, 173 }, { 174, 362 }, { 175, 330 }, { 176, 176 }, { 177, 261 }, { 178, 275 }, { 179, 291 }, { 180, 299 }, { 181, 297 }, { 182, 311 }, { 183, 183 }, { 184, 316 }, { 185, 273 }, { 186, 353 }, { 187, 359 }, { 188, 382 }, { 189, 8213 }, { 190, 363 }, { 191, 331 }, { 192, 256 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 302 }, { 200, 268 }, { 201, 201 }, { 202, 280 }, { 203, 203 }, { 204, 278 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 325 }, { 210, 332 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 360 }, { 216, 216 }, { 217, 370 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 257 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 303 }, { 232, 269 }, { 233, 233 }, { 234, 281 }, { 235, 235 }, { 236, 279 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 326 }, { 242, 333 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 361 }, { 248, 248 }, { 249, 371 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 312 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_11[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 3585 }, { 162, 3586 }, { 163, 3587 }, { 164, 3588 }, { 165, 3589 }, { 166, 3590 }, { 167, 3591 }, { 168, 3592 }, { 169, 3593 }, { 170, 3594 }, { 171, 3595 }, { 172, 3596 }, { 173, 3597 }, { 174, 3598 }, { 175, 3599 }, { 176, 3600 }, { 177, 3601 }, { 178, 3602 }, { 179, 3603 }, { 180, 3604 }, { 181, 3605 }, { 182, 3606 }, { 183, 3607 }, { 184, 3608 }, { 185, 3609 }, { 186, 3610 }, { 187, 3611 }, { 188, 3612 }, { 189, 3613 }, { 190, 3614 }, { 191, 3615 }, { 192, 3616 }, { 193, 3617 }, { 194, 3618 }, { 195, 3619 }, { 196, 3620 }, { 197, 3621 }, { 198, 3622 }, { 199, 3623 }, { 200, 3624 }, { 201, 3625 }, { 202, 3626 }, { 203, 3627 }, { 204, 3628 }, { 205, 3629 }, { 206, 3630 }, { 207, 3631 }, { 208, 3632 }, { 209, 3633 }, { 210, 3634 }, { 211, 3635 }, { 212, 3636 }, { 213, 3637 }, { 214, 3638 }, { 215, 3639 }, { 216, 3640 }, { 217, 3641 }, { 218, 3642 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 3647 }, { 224, 3648 }, { 225, 3649 }, { 226, 3650 }, { 227, 3651 }, { 228, 3652 }, { 229, 3653 }, { 230, 3654 }, { 231, 3655 }, { 232, 3656 }, { 233, 3657 }, { 234, 3658 }, { 235, 3659 }, { 236, 3660 }, { 237, 3661 }, { 238, 3662 }, { 239, 3663 }, { 240, 3664 }, { 241, 3665 }, { 242, 3666 }, { 243, 3667 }, { 244, 3668 }, { 245, 3669 }, { 246, 3670 }, { 247, 3671 }, { 248, 3672 }, { 249, 3673 }, { 250, 3674 }, { 251, 3675 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_13[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 8221 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 8222 }, { 166, 166 }, { 167, 167 }, { 168, 216 }, { 169, 169 }, { 170, 342 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 198 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 8220 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 248 }, { 185, 185 }, { 186, 343 }, { 187, 187 }, { 188, 188 }, { 189, 189 }, { 190, 190 }, { 191, 230 }, { 192, 260 }, { 193, 302 }, { 194, 256 }, { 195, 262 }, { 196, 196 }, { 197, 197 }, { 198, 280 }, { 199, 274 }, { 200, 268 }, { 201, 201 }, { 202, 377 }, { 203, 278 }, { 204, 290 }, { 205, 310 }, { 206, 298 }, { 207, 315 }, { 208, 352 }, { 209, 323 }, { 210, 325 }, { 211, 211 }, { 212, 332 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 370 }, { 217, 321 }, { 218, 346 }, { 219, 362 }, { 220, 220 }, { 221, 379 }, { 222, 381 }, { 223, 223 }, { 224, 261 }, { 225, 303 }, { 226, 257 }, { 227, 263 }, { 228, 228 }, { 229, 229 }, { 230, 281 }, { 231, 275 }, { 232, 269 }, { 233, 233 }, { 234, 378 }, { 235, 279 }, { 236, 291 }, { 237, 311 }, { 238, 299 }, { 239, 316 }, { 240, 353 }, { 241, 324 }, { 242, 326 }, { 243, 243 }, { 244, 333 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 371 }, { 249, 322 }, { 250, 347 }, { 251, 363 }, { 252, 252 }, { 253, 380 }, { 254, 382 }, { 255, 8217 }, { 39, 8216 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 258 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 259 }, { 97, 462 }, { 67, 199 }, { 67, 264 }, { 67, 266 }, { 99, 231 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 202 }, { 69, 203 }, { 69, 276 }, { 69, 282 }, { 101, 232 }, { 101, 234 }, { 101, 235 }, { 101, 277 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 300 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 301 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 488 }, { 107, 489 }, { 76, 313 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 327 }, { 109, 241 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 212 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 244 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 344 }, { 114, 341 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 360 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 361 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, }; static convert_t iso8859_14[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 7682 }, { 162, 7683 }, { 163, 163 }, { 164, 266 }, { 165, 267 }, { 166, 7690 }, { 167, 167 }, { 168, 7808 }, { 169, 169 }, { 170, 7810 }, { 171, 7691 }, { 172, 7922 }, { 173, 173 }, { 174, 174 }, { 175, 376 }, { 176, 7710 }, { 177, 7711 }, { 178, 288 }, { 179, 289 }, { 180, 7744 }, { 181, 7745 }, { 182, 182 }, { 183, 7766 }, { 184, 7809 }, { 185, 7767 }, { 186, 7811 }, { 187, 7776 }, { 188, 7923 }, { 189, 7812 }, { 190, 7813 }, { 191, 7777 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 372 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 7786 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 374 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 373 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 7787 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 375 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t iso8859_15[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8364 }, { 165, 165 }, { 166, 352 }, { 167, 167 }, { 168, 353 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 176 }, { 177, 177 }, { 178, 178 }, { 179, 179 }, { 180, 381 }, { 181, 181 }, { 182, 182 }, { 183, 183 }, { 184, 382 }, { 185, 185 }, { 186, 186 }, { 187, 187 }, { 188, 338 }, { 189, 339 }, { 190, 376 }, { 191, 191 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 215 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 122, 378 }, { 122, 380 }, }; static convert_t iso8859_16[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 260 }, { 162, 261 }, { 163, 321 }, { 164, 8364 }, { 165, 8222 }, { 166, 352 }, { 167, 167 }, { 168, 353 }, { 169, 169 }, { 170, 536 }, { 171, 171 }, { 172, 377 }, { 173, 173 }, { 174, 378 }, { 175, 379 }, { 176, 176 }, { 177, 177 }, { 178, 268 }, { 179, 322 }, { 180, 381 }, { 181, 8221 }, { 182, 182 }, { 183, 183 }, { 184, 382 }, { 185, 269 }, { 186, 537 }, { 187, 187 }, { 188, 338 }, { 189, 339 }, { 190, 376 }, { 191, 380 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 258 }, { 196, 196 }, { 197, 262 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 272 }, { 209, 323 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 336 }, { 214, 214 }, { 215, 346 }, { 216, 368 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 280 }, { 222, 538 }, { 223, 223 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 259 }, { 228, 228 }, { 229, 263 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 273 }, { 241, 324 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 337 }, { 246, 246 }, { 247, 347 }, { 248, 369 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 281 }, { 254, 539 }, { 255, 255 }, { 34, 8220 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 195 }, { 65, 197 }, { 65, 256 }, { 65, 461 }, { 97, 227 }, { 97, 229 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 209 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 213 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 245 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 348 }, { 83, 350 }, { 115, 349 }, { 115, 351 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 121, 253 }, { 121, 375 }, }; static convert_t koi8_r[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 9472 }, { 129, 9474 }, { 130, 9484 }, { 131, 9488 }, { 132, 9492 }, { 133, 9496 }, { 134, 9500 }, { 135, 9508 }, { 136, 9516 }, { 137, 9524 }, { 138, 9532 }, { 139, 9600 }, { 140, 9604 }, { 141, 9608 }, { 142, 9612 }, { 143, 9616 }, { 144, 9617 }, { 145, 9618 }, { 146, 9619 }, { 147, 8992 }, { 148, 9632 }, { 149, 8729 }, { 150, 8730 }, { 151, 8776 }, { 152, 8804 }, { 153, 8805 }, { 154, 160 }, { 155, 8993 }, { 156, 176 }, { 157, 178 }, { 158, 183 }, { 159, 247 }, { 160, 9552 }, { 161, 9553 }, { 162, 9554 }, { 163, 1105 }, { 164, 9555 }, { 165, 9556 }, { 166, 9557 }, { 167, 9558 }, { 168, 9559 }, { 169, 9560 }, { 170, 9561 }, { 171, 9562 }, { 172, 9563 }, { 173, 9564 }, { 174, 9565 }, { 175, 9566 }, { 176, 9567 }, { 177, 9568 }, { 178, 9569 }, { 179, 1025 }, { 180, 9570 }, { 181, 9571 }, { 182, 9572 }, { 183, 9573 }, { 184, 9574 }, { 185, 9575 }, { 186, 9576 }, { 187, 9577 }, { 188, 9578 }, { 189, 9579 }, { 190, 9580 }, { 191, 169 }, { 192, 1102 }, { 193, 1072 }, { 194, 1073 }, { 195, 1094 }, { 196, 1076 }, { 197, 1077 }, { 198, 1092 }, { 199, 1075 }, { 200, 1093 }, { 201, 1080 }, { 202, 1081 }, { 203, 1082 }, { 204, 1083 }, { 205, 1084 }, { 206, 1085 }, { 207, 1086 }, { 208, 1087 }, { 209, 1103 }, { 210, 1088 }, { 211, 1089 }, { 212, 1090 }, { 213, 1091 }, { 214, 1078 }, { 215, 1074 }, { 216, 1100 }, { 217, 1099 }, { 218, 1079 }, { 219, 1096 }, { 220, 1101 }, { 221, 1097 }, { 222, 1095 }, { 223, 1098 }, { 224, 1070 }, { 225, 1040 }, { 226, 1041 }, { 227, 1062 }, { 228, 1044 }, { 229, 1045 }, { 230, 1060 }, { 231, 1043 }, { 232, 1061 }, { 233, 1048 }, { 234, 1049 }, { 235, 1050 }, { 236, 1051 }, { 237, 1052 }, { 238, 1053 }, { 239, 1054 }, { 240, 1055 }, { 241, 1071 }, { 242, 1056 }, { 243, 1057 }, { 244, 1058 }, { 245, 1059 }, { 246, 1046 }, { 247, 1042 }, { 248, 1068 }, { 249, 1067 }, { 250, 1047 }, { 251, 1064 }, { 252, 1069 }, { 253, 1065 }, { 254, 1063 }, { 255, 1066 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t koi8_u[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 9472 }, { 129, 9474 }, { 130, 9484 }, { 131, 9488 }, { 132, 9492 }, { 133, 9496 }, { 134, 9500 }, { 135, 9508 }, { 136, 9516 }, { 137, 9524 }, { 138, 9532 }, { 139, 9600 }, { 140, 9604 }, { 141, 9608 }, { 142, 9612 }, { 143, 9616 }, { 144, 9617 }, { 145, 9618 }, { 146, 9619 }, { 147, 8992 }, { 148, 9632 }, { 149, 8729 }, { 150, 8730 }, { 151, 8776 }, { 152, 8804 }, { 153, 8805 }, { 154, 160 }, { 155, 8993 }, { 156, 176 }, { 157, 178 }, { 158, 183 }, { 159, 247 }, { 160, 9552 }, { 161, 9553 }, { 162, 9554 }, { 163, 1105 }, { 164, 1108 }, { 165, 9556 }, { 166, 1110 }, { 167, 1111 }, { 168, 9559 }, { 169, 9560 }, { 170, 9561 }, { 171, 9562 }, { 172, 9563 }, { 173, 1169 }, { 174, 9565 }, { 175, 9566 }, { 176, 9567 }, { 177, 9568 }, { 178, 9569 }, { 179, 1025 }, { 180, 1028 }, { 181, 9571 }, { 182, 1030 }, { 183, 1031 }, { 184, 9574 }, { 185, 9575 }, { 186, 9576 }, { 187, 9577 }, { 188, 9578 }, { 189, 1168 }, { 190, 9580 }, { 191, 169 }, { 192, 1102 }, { 193, 1072 }, { 194, 1073 }, { 195, 1094 }, { 196, 1076 }, { 197, 1077 }, { 198, 1092 }, { 199, 1075 }, { 200, 1093 }, { 201, 1080 }, { 202, 1081 }, { 203, 1082 }, { 204, 1083 }, { 205, 1084 }, { 206, 1085 }, { 207, 1086 }, { 208, 1087 }, { 209, 1103 }, { 210, 1088 }, { 211, 1089 }, { 212, 1090 }, { 213, 1091 }, { 214, 1078 }, { 215, 1074 }, { 216, 1100 }, { 217, 1099 }, { 218, 1079 }, { 219, 1096 }, { 220, 1101 }, { 221, 1097 }, { 222, 1095 }, { 223, 1098 }, { 224, 1070 }, { 225, 1040 }, { 226, 1041 }, { 227, 1062 }, { 228, 1044 }, { 229, 1045 }, { 230, 1060 }, { 231, 1043 }, { 232, 1061 }, { 233, 1048 }, { 234, 1049 }, { 235, 1050 }, { 236, 1051 }, { 237, 1052 }, { 238, 1053 }, { 239, 1054 }, { 240, 1055 }, { 241, 1071 }, { 242, 1056 }, { 243, 1057 }, { 244, 1058 }, { 245, 1059 }, { 246, 1046 }, { 247, 1042 }, { 248, 1068 }, { 249, 1067 }, { 250, 1047 }, { 251, 1064 }, { 252, 1069 }, { 253, 1065 }, { 254, 1063 }, { 255, 1066 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 224 }, { 97, 225 }, { 97, 226 }, { 97, 227 }, { 97, 228 }, { 97, 229 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 231 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 232 }, { 101, 233 }, { 101, 234 }, { 101, 235 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 236 }, { 105, 237 }, { 105, 238 }, { 105, 239 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 241 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 242 }, { 110, 243 }, { 110, 244 }, { 110, 245 }, { 110, 246 }, { 110, 248 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 249 }, { 117, 250 }, { 117, 251 }, { 117, 252 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 253 }, { 121, 255 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t mslinedr[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 164 }, { 165, 165 }, { 166, 166 }, { 167, 167 }, { 168, 168 }, { 169, 169 }, { 170, 170 }, { 171, 171 }, { 172, 172 }, { 173, 173 }, { 174, 174 }, { 175, 175 }, { 176, 9639 }, { 177, 9638 }, { 178, 9640 }, { 179, 9474 }, { 180, 9508 }, { 181, 9569 }, { 182, 9570 }, { 183, 9558 }, { 184, 9557 }, { 185, 9571 }, { 186, 9553 }, { 187, 9559 }, { 188, 9565 }, { 189, 9564 }, { 190, 9563 }, { 191, 9488 }, { 192, 9492 }, { 193, 9524 }, { 194, 9516 }, { 195, 9500 }, { 196, 9472 }, { 197, 9532 }, { 198, 9566 }, { 199, 9567 }, { 200, 9562 }, { 201, 9556 }, { 202, 9577 }, { 203, 9574 }, { 204, 9568 }, { 205, 9552 }, { 206, 9580 }, { 207, 9575 }, { 208, 9576 }, { 209, 9572 }, { 210, 9573 }, { 211, 9561 }, { 212, 9560 }, { 213, 9554 }, { 214, 9555 }, { 215, 9579 }, { 216, 9578 }, { 217, 9496 }, { 218, 9484 }, { 219, 9608 }, { 220, 9604 }, { 221, 9612 }, { 222, 9616 }, { 223, 9600 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 192 }, { 65, 193 }, { 65, 194 }, { 65, 195 }, { 65, 196 }, { 65, 197 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 199 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 200 }, { 69, 201 }, { 69, 202 }, { 69, 203 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 204 }, { 73, 205 }, { 73, 206 }, { 73, 207 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 76, 321 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 108, 322 }, { 77, 209 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 210 }, { 78, 211 }, { 78, 212 }, { 78, 213 }, { 78, 214 }, { 78, 216 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 217 }, { 85, 218 }, { 85, 219 }, { 85, 220 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 221 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t nextstep[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 160 }, { 129, 192 }, { 130, 193 }, { 131, 194 }, { 132, 195 }, { 133, 196 }, { 134, 197 }, { 135, 199 }, { 136, 200 }, { 137, 201 }, { 138, 202 }, { 139, 203 }, { 140, 204 }, { 141, 205 }, { 142, 206 }, { 143, 207 }, { 144, 208 }, { 145, 209 }, { 146, 210 }, { 147, 211 }, { 148, 212 }, { 149, 213 }, { 150, 214 }, { 151, 217 }, { 152, 218 }, { 153, 219 }, { 154, 220 }, { 155, 221 }, { 156, 222 }, { 157, 181 }, { 158, 215 }, { 159, 247 }, { 160, 169 }, { 161, 161 }, { 162, 162 }, { 163, 163 }, { 164, 8260 }, { 165, 165 }, { 166, 402 }, { 167, 167 }, { 168, 164 }, { 169, 169 }, { 170, 8220 }, { 171, 171 }, { 172, 8249 }, { 173, 8250 }, { 174, 64257 }, { 175, 64258 }, { 176, 174 }, { 177, 8211 }, { 178, 8224 }, { 179, 8225 }, { 180, 183 }, { 181, 166 }, { 182, 182 }, { 183, 8729 }, { 184, 8218 }, { 185, 8222 }, { 186, 8221 }, { 187, 187 }, { 188, 8943 }, { 189, 8240 }, { 190, 172 }, { 191, 191 }, { 192, 185 }, { 193, 768 }, { 194, 180 }, { 195, 770 }, { 196, 771 }, { 197, 175 }, { 198, 728 }, { 199, 729 }, { 200, 168 }, { 201, 178 }, { 202, 176 }, { 203, 184 }, { 204, 179 }, { 205, 733 }, { 206, 731 }, { 207, 711 }, { 208, 8212 }, { 209, 177 }, { 210, 188 }, { 211, 189 }, { 212, 190 }, { 213, 224 }, { 214, 225 }, { 215, 226 }, { 216, 227 }, { 217, 228 }, { 218, 229 }, { 219, 231 }, { 220, 232 }, { 221, 233 }, { 222, 234 }, { 223, 235 }, { 224, 236 }, { 225, 198 }, { 226, 237 }, { 227, 170 }, { 228, 238 }, { 229, 239 }, { 230, 240 }, { 231, 241 }, { 232, 321 }, { 233, 216 }, { 234, 338 }, { 235, 186 }, { 236, 242 }, { 237, 243 }, { 238, 244 }, { 239, 245 }, { 240, 246 }, { 241, 230 }, { 242, 249 }, { 243, 250 }, { 244, 251 }, { 245, 305 }, { 246, 252 }, { 247, 253 }, { 248, 322 }, { 249, 248 }, { 250, 339 }, { 251, 223 }, { 252, 254 }, { 253, 255 }, { 254, 254 }, { 255, 255 }, { 39, 8216 }, { 39, 8217 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 258 }, { 65, 260 }, { 65, 461 }, { 97, 257 }, { 97, 259 }, { 97, 261 }, { 97, 462 }, { 67, 262 }, { 67, 264 }, { 67, 266 }, { 67, 268 }, { 99, 263 }, { 99, 265 }, { 99, 267 }, { 99, 269 }, { 68, 270 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 69, 280 }, { 69, 282 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 101, 281 }, { 101, 283 }, { 71, 284 }, { 71, 286 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 287 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 304 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 313 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 314 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 323 }, { 77, 325 }, { 77, 327 }, { 109, 324 }, { 109, 326 }, { 109, 328 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 336 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 337 }, { 110, 466 }, { 110, 491 }, { 82, 340 }, { 82, 342 }, { 82, 344 }, { 114, 341 }, { 114, 343 }, { 114, 345 }, { 83, 346 }, { 83, 348 }, { 83, 350 }, { 83, 352 }, { 115, 347 }, { 115, 349 }, { 115, 351 }, { 115, 353 }, { 84, 354 }, { 84, 356 }, { 116, 355 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 366 }, { 85, 368 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 367 }, { 117, 369 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 89, 376 }, { 121, 375 }, { 90, 377 }, { 90, 379 }, { 90, 381 }, { 122, 378 }, { 122, 380 }, { 122, 382 }, }; static convert_t symbol[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 8704 }, { 35, 35 }, { 36, 8707 }, { 37, 37 }, { 38, 38 }, { 39, 8715 }, { 40, 40 }, { 41, 41 }, { 42, 8727 }, { 43, 43 }, { 44, 44 }, { 45, 8722 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 8773 }, { 65, 913 }, { 66, 914 }, { 67, 935 }, { 68, 916 }, { 69, 917 }, { 70, 934 }, { 71, 915 }, { 72, 919 }, { 73, 921 }, { 74, 977 }, { 75, 922 }, { 76, 923 }, { 77, 924 }, { 78, 925 }, { 79, 927 }, { 80, 928 }, { 81, 920 }, { 82, 929 }, { 83, 931 }, { 84, 932 }, { 85, 933 }, { 86, 962 }, { 87, 937 }, { 88, 926 }, { 89, 936 }, { 90, 918 }, { 91, 91 }, { 92, 8756 }, { 93, 93 }, { 94, 8869 }, { 95, 95 }, { 96, 8254 }, { 97, 945 }, { 98, 946 }, { 99, 967 }, { 100, 948 }, { 101, 949 }, { 102, 966 }, { 103, 947 }, { 104, 951 }, { 105, 953 }, { 106, 981 }, { 107, 954 }, { 108, 955 }, { 109, 956 }, { 110, 957 }, { 111, 959 }, { 112, 960 }, { 113, 952 }, { 114, 961 }, { 115, 963 }, { 116, 964 }, { 117, 965 }, { 118, 982 }, { 119, 969 }, { 120, 958 }, { 121, 968 }, { 122, 950 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 8764 }, { 127, 127 }, { 128, 128 }, { 129, 129 }, { 130, 130 }, { 131, 131 }, { 132, 132 }, { 133, 133 }, { 134, 134 }, { 135, 135 }, { 136, 136 }, { 137, 137 }, { 138, 138 }, { 139, 139 }, { 140, 140 }, { 141, 141 }, { 142, 142 }, { 143, 143 }, { 144, 144 }, { 145, 145 }, { 146, 146 }, { 147, 147 }, { 148, 148 }, { 149, 149 }, { 150, 150 }, { 151, 151 }, { 152, 152 }, { 153, 153 }, { 154, 154 }, { 155, 155 }, { 156, 156 }, { 157, 157 }, { 158, 158 }, { 159, 159 }, { 160, 160 }, { 161, 978 }, { 162, 8242 }, { 163, 8804 }, { 164, 8725 }, { 165, 8734 }, { 166, 402 }, { 167, 9827 }, { 168, 9830 }, { 169, 9829 }, { 170, 9824 }, { 171, 8596 }, { 172, 8592 }, { 173, 8593 }, { 174, 8594 }, { 175, 8595 }, { 176, 176 }, { 177, 177 }, { 178, 8243 }, { 179, 8805 }, { 180, 215 }, { 181, 8733 }, { 182, 8706 }, { 183, 8729 }, { 184, 247 }, { 185, 8800 }, { 186, 8801 }, { 187, 8776 }, { 188, 8943 }, { 189, 189 }, { 190, 190 }, { 191, 8629 }, { 192, 192 }, { 193, 8465 }, { 194, 8476 }, { 195, 8472 }, { 196, 8855 }, { 197, 8853 }, { 198, 8709 }, { 199, 8745 }, { 200, 8746 }, { 201, 8835 }, { 202, 8839 }, { 203, 8836 }, { 204, 8834 }, { 205, 8838 }, { 206, 8712 }, { 207, 8713 }, { 208, 8736 }, { 209, 8711 }, { 210, 174 }, { 211, 169 }, { 212, 8482 }, { 213, 8719 }, { 214, 8730 }, { 215, 8901 }, { 216, 172 }, { 217, 8743 }, { 218, 8744 }, { 219, 8660 }, { 220, 8656 }, { 221, 8657 }, { 222, 8658 }, { 223, 8659 }, { 224, 9674 }, { 225, 9001 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 8721 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 9002 }, { 242, 8747 }, { 243, 8992 }, { 244, 244 }, { 245, 8993 }, { 246, 246 }, { 247, 247 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 255 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 192, 65 }, { 192, 193 }, { 192, 194 }, { 192, 195 }, { 192, 196 }, { 192, 197 }, { 192, 256 }, { 192, 258 }, { 192, 260 }, { 192, 461 }, { 226, 97 }, { 226, 224 }, { 226, 225 }, { 226, 229 }, { 226, 257 }, { 226, 259 }, { 226, 261 }, { 226, 462 }, { 231, 99 }, { 231, 263 }, { 231, 265 }, { 231, 267 }, { 231, 269 }, { 232, 101 }, { 232, 275 }, { 232, 277 }, { 232, 279 }, { 232, 281 }, { 232, 283 }, { 236, 105 }, { 236, 297 }, { 236, 299 }, { 236, 301 }, { 236, 303 }, { 236, 305 }, { 236, 464 }, { 244, 110 }, { 244, 242 }, { 244, 243 }, { 244, 245 }, { 244, 333 }, { 244, 335 }, { 244, 337 }, { 244, 466 }, { 244, 491 }, { 249, 117 }, { 249, 361 }, { 249, 363 }, { 249, 365 }, { 249, 367 }, { 249, 369 }, { 249, 371 }, { 249, 468 }, { 253, 121 }, { 253, 375 }, }; static convert_t tex_dcr_in[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 258 }, { 129, 260 }, { 130, 262 }, { 131, 268 }, { 132, 270 }, { 133, 282 }, { 134, 280 }, { 135, 286 }, { 136, 313 }, { 137, 65534 }, { 138, 321 }, { 139, 323 }, { 140, 327 }, { 141, 330 }, { 142, 336 }, { 143, 340 }, { 144, 344 }, { 145, 346 }, { 146, 352 }, { 147, 350 }, { 148, 356 }, { 149, 354 }, { 150, 368 }, { 151, 366 }, { 152, 376 }, { 153, 377 }, { 154, 381 }, { 155, 379 }, { 156, 306 }, { 157, 304 }, { 158, 272 }, { 159, 167 }, { 160, 259 }, { 161, 261 }, { 162, 263 }, { 163, 269 }, { 164, 65534 }, { 165, 283 }, { 166, 281 }, { 167, 287 }, { 168, 314 }, { 169, 65534 }, { 170, 322 }, { 171, 324 }, { 172, 328 }, { 173, 331 }, { 174, 337 }, { 175, 341 }, { 176, 345 }, { 177, 347 }, { 178, 353 }, { 179, 351 }, { 180, 65534 }, { 181, 355 }, { 182, 369 }, { 183, 367 }, { 184, 255 }, { 185, 378 }, { 186, 382 }, { 187, 380 }, { 188, 307 }, { 189, 161 }, { 190, 191 }, { 191, 163 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 65534 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 223 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 461 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 325 }, { 109, 326 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, }; static convert_t tex_dcr_out[] = { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 5, 5 }, { 6, 6 }, { 7, 7 }, { 8, 8 }, { 9, 9 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 }, { 14, 14 }, { 15, 15 }, { 16, 16 }, { 17, 17 }, { 18, 18 }, { 19, 19 }, { 20, 20 }, { 21, 21 }, { 22, 22 }, { 23, 23 }, { 24, 24 }, { 25, 25 }, { 26, 26 }, { 27, 27 }, { 28, 28 }, { 29, 29 }, { 30, 30 }, { 31, 31 }, { 32, 32 }, { 33, 33 }, { 34, 34 }, { 35, 35 }, { 36, 36 }, { 37, 37 }, { 38, 38 }, { 39, 39 }, { 40, 40 }, { 41, 41 }, { 42, 42 }, { 43, 43 }, { 44, 44 }, { 45, 45 }, { 46, 46 }, { 47, 47 }, { 48, 48 }, { 49, 49 }, { 50, 50 }, { 51, 51 }, { 52, 52 }, { 53, 53 }, { 54, 54 }, { 55, 55 }, { 56, 56 }, { 57, 57 }, { 58, 58 }, { 59, 59 }, { 60, 60 }, { 61, 61 }, { 62, 62 }, { 63, 63 }, { 64, 64 }, { 65, 65 }, { 66, 66 }, { 67, 67 }, { 68, 68 }, { 69, 69 }, { 70, 70 }, { 71, 71 }, { 72, 72 }, { 73, 73 }, { 74, 74 }, { 75, 75 }, { 76, 76 }, { 77, 77 }, { 78, 78 }, { 79, 79 }, { 80, 80 }, { 81, 81 }, { 82, 82 }, { 83, 83 }, { 84, 84 }, { 85, 85 }, { 86, 86 }, { 87, 87 }, { 88, 88 }, { 89, 89 }, { 90, 90 }, { 91, 91 }, { 92, 92 }, { 93, 93 }, { 94, 94 }, { 95, 95 }, { 96, 96 }, { 97, 97 }, { 98, 98 }, { 99, 99 }, { 100, 100 }, { 101, 101 }, { 102, 102 }, { 103, 103 }, { 104, 104 }, { 105, 105 }, { 106, 106 }, { 107, 107 }, { 108, 108 }, { 109, 109 }, { 110, 110 }, { 111, 111 }, { 112, 112 }, { 113, 113 }, { 114, 114 }, { 115, 115 }, { 116, 116 }, { 117, 117 }, { 118, 118 }, { 119, 119 }, { 120, 120 }, { 121, 121 }, { 122, 122 }, { 123, 123 }, { 124, 124 }, { 125, 125 }, { 126, 126 }, { 127, 127 }, { 128, 258 }, { 129, 260 }, { 130, 262 }, { 131, 268 }, { 132, 270 }, { 133, 282 }, { 134, 280 }, { 135, 286 }, { 136, 313 }, { 137, 65534 }, { 138, 321 }, { 139, 323 }, { 140, 327 }, { 141, 330 }, { 142, 336 }, { 143, 340 }, { 144, 344 }, { 145, 346 }, { 146, 352 }, { 147, 350 }, { 148, 356 }, { 149, 354 }, { 150, 368 }, { 151, 366 }, { 152, 376 }, { 153, 377 }, { 154, 381 }, { 155, 379 }, { 156, 306 }, { 157, 304 }, { 158, 272 }, { 159, 167 }, { 160, 259 }, { 161, 261 }, { 162, 263 }, { 163, 269 }, { 164, 65534 }, { 165, 283 }, { 166, 281 }, { 167, 287 }, { 168, 314 }, { 169, 65534 }, { 170, 322 }, { 171, 324 }, { 172, 328 }, { 173, 331 }, { 174, 337 }, { 175, 341 }, { 176, 345 }, { 177, 347 }, { 178, 353 }, { 179, 351 }, { 180, 65534 }, { 181, 355 }, { 182, 369 }, { 183, 367 }, { 184, 255 }, { 185, 378 }, { 186, 382 }, { 187, 380 }, { 188, 307 }, { 189, 161 }, { 190, 191 }, { 191, 163 }, { 192, 192 }, { 193, 193 }, { 194, 194 }, { 195, 195 }, { 196, 196 }, { 197, 197 }, { 198, 198 }, { 199, 199 }, { 200, 200 }, { 201, 201 }, { 202, 202 }, { 203, 203 }, { 204, 204 }, { 205, 205 }, { 206, 206 }, { 207, 207 }, { 208, 208 }, { 209, 209 }, { 210, 210 }, { 211, 211 }, { 212, 212 }, { 213, 213 }, { 214, 214 }, { 215, 338 }, { 216, 216 }, { 217, 217 }, { 218, 218 }, { 219, 219 }, { 220, 220 }, { 221, 221 }, { 222, 222 }, { 223, 65534 }, { 224, 224 }, { 225, 225 }, { 226, 226 }, { 227, 227 }, { 228, 228 }, { 229, 229 }, { 230, 230 }, { 231, 231 }, { 232, 232 }, { 233, 233 }, { 234, 234 }, { 235, 235 }, { 236, 236 }, { 237, 237 }, { 238, 238 }, { 239, 239 }, { 240, 240 }, { 241, 241 }, { 242, 242 }, { 243, 243 }, { 244, 244 }, { 245, 245 }, { 246, 246 }, { 247, 339 }, { 248, 248 }, { 249, 249 }, { 250, 250 }, { 251, 251 }, { 252, 252 }, { 253, 253 }, { 254, 254 }, { 255, 223 }, { 34, 8220 }, { 34, 8221 }, { 39, 8216 }, { 39, 8217 }, { 45, 8211 }, { 45, 8212 }, { 32, 8194 }, { 32, 8195 }, { 32, 8201 }, { 65, 256 }, { 65, 461 }, { 97, 257 }, { 97, 462 }, { 67, 264 }, { 67, 266 }, { 99, 265 }, { 99, 267 }, { 100, 271 }, { 69, 274 }, { 69, 276 }, { 69, 278 }, { 101, 275 }, { 101, 277 }, { 101, 279 }, { 71, 284 }, { 71, 288 }, { 71, 290 }, { 71, 486 }, { 71, 500 }, { 103, 285 }, { 103, 289 }, { 103, 291 }, { 103, 487 }, { 103, 501 }, { 72, 292 }, { 104, 293 }, { 73, 296 }, { 73, 298 }, { 73, 300 }, { 73, 302 }, { 73, 463 }, { 105, 297 }, { 105, 299 }, { 105, 301 }, { 105, 303 }, { 105, 305 }, { 105, 464 }, { 74, 308 }, { 106, 309 }, { 75, 310 }, { 75, 488 }, { 107, 311 }, { 107, 489 }, { 76, 315 }, { 76, 317 }, { 76, 319 }, { 108, 316 }, { 108, 318 }, { 108, 320 }, { 77, 325 }, { 109, 326 }, { 109, 329 }, { 78, 332 }, { 78, 334 }, { 78, 465 }, { 78, 490 }, { 110, 333 }, { 110, 335 }, { 110, 466 }, { 110, 491 }, { 82, 342 }, { 114, 343 }, { 83, 348 }, { 115, 349 }, { 116, 357 }, { 85, 360 }, { 85, 362 }, { 85, 364 }, { 85, 370 }, { 85, 467 }, { 117, 361 }, { 117, 363 }, { 117, 365 }, { 117, 371 }, { 117, 468 }, { 87, 372 }, { 119, 373 }, { 89, 374 }, { 121, 375 }, }; allcharconvert_t allcharconvert[] = { { "adobeiso", "Adobe ISO", { "ADOBEISO", "", "", "", "", "", "", }, CHARSETARRAY( adobeiso ) }, { "adobestd", "Adobe Standard", { "ADOBESTD", "", "", "", "", "", "", }, CHARSETARRAY( adobestd ) }, { "adobesym", "Adobe Symbol", { "ADOBESYM", "", "", "", "", "", "", }, CHARSETARRAY( adobesym ) }, { "applecro", "Apple Croatian", { "APPLECRO", "MACCRO", "", "", "", "", "", }, CHARSETARRAY( applecro ) }, { "applecyr", "Apple Cyrillic", { "MACCYRILLIC", "X-MAC-CYRILLIC", "", "", "", "", "", }, CHARSETARRAY( applecyr ) }, { "applegk2", "Apple Greek 2", { "APPLEGK2", "", "", "", "", "", "", }, CHARSETARRAY( applegk2 ) }, { "applegrk", "Apple Greek", { "MACGRK", "APPLEGRK", "", "", "", "", "", }, CHARSETARRAY( applegrk ) }, { "macice", "Macintosh Iceland(?)", { "MACICE", "APPLEICE", "", "", "", "", "", }, CHARSETARRAY( macice ) }, { "macroman", "Macintosh Roman", { "MACROMAN", "APPLEROM", "CSMACINTOSH", "MACINTOSH", "MAC", "", "", }, CHARSETARRAY( macroman ) }, { "macromanian", "Macintosh Romanian", { "MACROMANIAN", "APPLERUM", "", "", "", "", "", }, CHARSETARRAY( macromanian ) }, { "macturkish", "Macintosh Turkish", { "MACTURKISH", "APPLETURK", "", "", "", "", "", }, CHARSETARRAY( macturkish ) }, { "atarist", "Atari ST", { "ATARIST", "", "", "", "", "", "", }, CHARSETARRAY( atarist ) }, { "cp437", "MS-DOS Code Page 437 from original IBM PC", { "CP437", "IBM437", "437", "", "", "", "", }, CHARSETARRAY( cp437 ) }, { "cp737", "MS-DOS Code Page 737 Greek", { "CP737", "IBM737", "737", "", "", "", "", }, CHARSETARRAY( cp737 ) }, { "cp775", "MS-DOS Code Page 775 Baltic languages", { "CP775", "IBM775", "775", "", "", "", "", }, CHARSETARRAY( cp775 ) }, { "cp850", "MS-DOS Code Page 850 Western Europe", { "CP850", "IBM850", "CSPC850MULTILINGUAL", "850", "", "", "", }, CHARSETARRAY( cp850 ) }, { "cp851", "MS-DOS Code Page 851 Greek 1", { "CP851", "IBM851", "851", "", "", "", "", }, CHARSETARRAY( cp851 ) }, { "cp852", "MS-DOS Code Page 852 Central European languages", { "CP852", "IBM852", "852", "", "", "", "", }, CHARSETARRAY( cp852 ) }, { "cp853", "MS-DOS Code Page 853 Multilingual Latin 3", { "CP853", "IBM853", "853", "", "", "", "", }, CHARSETARRAY( cp853 ) }, { "cp855", "MS-DOS Code Page 855 Cyrillic", { "CP855", "IBM855", "855", "", "", "", "", }, CHARSETARRAY( cp855 ) }, { "cp857", "MS-DOS Code Page 857 Turkish", { "CP857", "IBM857", "857", "", "", "", "", }, CHARSETARRAY( cp857 ) }, { "cp860", "MS-DOS Code Page 860 Portugese", { "CP860", "IBM860", "860", "", "", "", "", }, CHARSETARRAY( cp860 ) }, { "cp861", "MS-DOS Code Page 861 Icelandic languages", { "CP861", "IBM861", "861", "", "", "", "", }, CHARSETARRAY( cp861 ) }, { "cp862", "MS-DOS Code Page 862 Hebrew", { "CP862", "IBM862", "862", "", "", "", "", }, CHARSETARRAY( cp862 ) }, { "cp863", "MS-DOS Code Page 863 French", { "CP863", "IBM863", "863", "", "", "", "", }, CHARSETARRAY( cp863 ) }, { "cp864", "MS-DOS Code Page 864 Arabic", { "CP864", "IBM864", "864", "", "", "", "", }, CHARSETARRAY( cp864 ) }, { "cp865", "MS-DOS Code Page 865 Nordic languages", { "CP865", "IBM865", "865", "", "", "", "", }, CHARSETARRAY( cp865 ) }, { "cp866", "MS-DOS Code Page 866 Cyrillic", { "CP866", "IBM866", "866", "CSIBM866", "", "", "", }, CHARSETARRAY( cp866 ) }, { "cp869", "MS-DOS Code Page 869 Greek", { "CP869", "IBM869", "869", "", "", "", "", }, CHARSETARRAY( cp869 ) }, { "cp874", "Windows-874 Thai", { "CP874", "WINDOWS-874", "MS874", "X-WINDOWS-874", "X-IBM874", "874", "", }, CHARSETARRAY( cp874 ) }, { "cp895", "MS-DOS Code Page 895 Kamenicky encoding", { "CP895", "895", "", "", "", "", "", }, CHARSETARRAY( cp895 ) }, { "cp1250", "Windows-1250 Central and Eastern European", { "CP1250", "WINDOWS-1250", "MS-EE", "", "", "", "", }, CHARSETARRAY( cp1250 ) }, { "cp1251", "Windows-1251 Cyrillic", { "CP1251", "WINDOWS-1251", "MS-CYRL", "", "", "", "", }, CHARSETARRAY( cp1251 ) }, { "cp1252", "Windows-1252 ISO 8859-1 superset", { "CP1252", "WINDOWS-1252", "MS-ANSI", "", "", "", "", }, CHARSETARRAY( cp1252 ) }, { "cp1253", "Windows-1253 Greek", { "CP1253", "WINDOWS-1253", "MS-GREEK", "", "", "", "", }, CHARSETARRAY( cp1253 ) }, { "cp1254", "Windows-1254 Turkish", { "CP1254", "WINDOWS-1254", "MS-TURK", "", "", "", "", }, CHARSETARRAY( cp1254 ) }, { "cp1255", "Windows-1255 ISO 8859-8 Hebrew", { "CP1255", "WINDOWS-1255", "MS-HEBR", "", "", "", "", }, CHARSETARRAY( cp1255 ) }, { "cp1256", "Windows-1256 Arabic", { "CP1256", "WINDOWS-1256", "MS-ARAB", "", "", "", "", }, CHARSETARRAY( cp1256 ) }, { "cp1257", "Windows-1257 Baltic languages", { "CP1257", "WINDOWS-1257", "WINBALTRIM", "", "", "", "", }, CHARSETARRAY( cp1257 ) }, { "cp1258", "Windows-1258 Vietnamese", { "CP1258", "WINDOWS-1258", "", "", "", "", "", }, CHARSETARRAY( cp1258 ) }, { "decmcs", "DEC Multinational Character Set", { "DECMCS", "", "", "", "", "", "", }, CHARSETARRAY( decmcs ) }, { "ebc037", "EBCDIC Codepage 037 Latin-1", { "EBC037", "", "", "", "", "", "", }, CHARSETARRAY( ebc037 ) }, { "ebc1026", "EBCDIC 1026 Turkish", { "EBC1026", "", "", "", "", "", "", }, CHARSETARRAY( ebc1026 ) }, { "ebc1047", "EBCDIC 1047 Latin 1", { "EBC1047", "", "", "", "", "", "", }, CHARSETARRAY( ebc1047 ) }, { "ebc500", "EBCDIC 500 Latin 1", { "EBC500", "", "", "", "", "", "", }, CHARSETARRAY( ebc500 ) }, { "ebc875", "EBCDIC 875 Greek", { "EBC875", "", "", "", "", "", "", }, CHARSETARRAY( ebc875 ) }, { "hp48", "HP48", { "HP48", "", "", "", "", "", "", }, CHARSETARRAY( hp48 ) }, { "hproman8", "HP Roman8", { "HPROMAN8", "", "", "", "", "", "", }, CHARSETARRAY( hproman8 ) }, { "iso646", "ISO/IEC 646", { "ISO646", "", "", "", "", "", "", }, CHARSETARRAY( iso646 ) }, { "iso646_irv", "ISO/IEC 646-IRV International Reference Variant", { "ISO646-IRV", "", "", "", "", "", "", }, CHARSETARRAY( iso646_irv ) }, { "iso646_ca", "ISO/IEC 646-CA Canada", { "ISO646-CA", "", "", "", "", "", "", }, CHARSETARRAY( iso646_ca ) }, { "iso646_ch", "ISO/IEC 646-CH", { "ISO646-CH", "", "", "", "", "", "", }, CHARSETARRAY( iso646_ch ) }, { "iso646_de", "ISO/IEC 646-DE Germany", { "ISO646-DE", "", "", "", "", "", "", }, CHARSETARRAY( iso646_de ) }, { "iso646_es", "ISO/IEC 646-ES Spain", { "ISO646-ES", "", "", "", "", "", "", }, CHARSETARRAY( iso646_es ) }, { "iso646_fi", "ISO/IEC 646-FI Finland", { "ISO646-FI", "", "", "", "", "", "", }, CHARSETARRAY( iso646_fi ) }, { "iso646_fr", "ISO/IEC 646-FR France", { "ISO646-FR", "", "", "", "", "", "", }, CHARSETARRAY( iso646_fr ) }, { "iso646_gb", "ISO/IEC 646-GB United Kingdom", { "ISO646-GB", "", "", "", "", "", "", }, CHARSETARRAY( iso646_gb ) }, { "iso646_it", "ISO/IEC 646-IT", { "ISO646-IT", "", "", "", "", "", "", }, CHARSETARRAY( iso646_it ) }, { "iso646_nl", "ISO/IEC 646-NL", { "ISO646-NL", "", "", "", "", "", "", }, CHARSETARRAY( iso646_nl ) }, { "iso646_no", "ISO/IEC 646-NO Norway", { "ISO646-NO", "", "", "", "", "", "", }, CHARSETARRAY( iso646_no ) }, { "iso646_pt", "ISO/IEC 646-PT Portugal", { "ISO646-PT", "", "", "", "", "", "", }, CHARSETARRAY( iso646_pt ) }, { "iso646_se", "ISO/IEC 646-SE Sweden", { "ISO646-SE", "", "", "", "", "", "", }, CHARSETARRAY( iso646_se ) }, { "iso8859_1", "ISO/IEC 8859-1:1998 Latin-1", { "ISO-8859-1", "CSISOLATIN", "LATIN1", "ISO-IR-100", "CP819", "IBM819", "ISO_8859-1", }, CHARSETARRAY( iso8859_1 ) }, { "iso8859_2", "ISO/IEC 8859-2:1999 Latin-2 Eastern European", { "ISO-8859-2", "CSISOLATIN2", "LATIN2", "ISO-IR-101", "ISO_8859-2", "ISO_8859-2:1987", "L2", }, CHARSETARRAY( iso8859_2 ) }, { "iso8859_3", "ISO/IEC 8859-3:1999 Latin-3 South European", { "ISO-8859-3", "CSISOLATIN3", "LATIN3", "ISO-IR-109", "ISO_8859-3", "ISO_8859-3:1988", "L3", }, CHARSETARRAY( iso8859_3 ) }, { "iso8859_4", "ISO/IEC 8859-4:1998 Latin-4 North European", { "ISO-8859-4", "CSISOLATIN4", "LATIN4", "ISO-IR-110", "ISO_8859-4", "ISO_8859-4:1988", "L4", }, CHARSETARRAY( iso8859_4 ) }, { "iso8859_5", "ISO/IEC 8859-5:1999 Latin/Cyrillic", { "ISO-8859-5", "CSISOLATINCYRILLIC", "CYRILLIC", "ISO-IR-144", "ISO_8859-5", "ISO_8859-5:1988", "", }, CHARSETARRAY( iso8859_5 ) }, { "iso8859_6", "ISO/IEC 8859-6:1999 Latin/Arabic", { "ISO-8859-6", "ARABIC", "ASMO-708", "CSISOLATINARABIC", "ECMA-114", "ISO-IR-127", "ISO_8859-6", }, CHARSETARRAY( iso8859_6 ) }, { "iso8859_7", "ISO/IEC 8859-7:2003 Latin/Greek", { "ISO-8859-7", "CSISOLATINGREEK", "GREEK", "ECMA-118", "ELOT_928", "GREEK8", "ISO-IR-126", }, CHARSETARRAY( iso8859_7 ) }, { "iso8859_8", "ISO/IEC 8859-8:1999 Latin/Hebrew", { "ISO-8859-8", "CSISOLATINHEBREW", "HEBREW", "ISO-IR-138", "ISO_8859-8", "ISO_8859-8:1988", "", }, CHARSETARRAY( iso8859_8 ) }, { "iso8859_9", "ISO/IEC 8859-9:1999 Latin-5 Turkish", { "ISO-8859-9", "CSISOLATIN5", "LATIN5", "ISO-IR-148", "ISO_8859-9", "ISO_8859-9:1989", "L5", }, CHARSETARRAY( iso8859_9 ) }, { "iso8859_10", "ISO/IEC 8859-10:1998 Latin-6 Nordic languages", { "ISO-8859-10", "CSISOLATIN6", "LATIN6", "ISO-IR-157", "ISO_8859-10", "ISO_8859-10:1992", "L6", }, CHARSETARRAY( iso8859_10 ) }, { "iso8859_11", "ISO/IEC 8859-11:2001 Latin/Thai", { "ISO-8859-11,", "TIS-620,", "TIS620,", "TACTIS", "", "", "", }, CHARSETARRAY( iso8859_11 ) }, { "iso8859_13", "ISO/IEC 8859-13:1998 Latin-7 Baltic Rim", { "ISO-8859-13", "CSISOLATIN7", "LATIN7", "ISO-IR-179", "ISO_8859-13", "L7", "", }, CHARSETARRAY( iso8859_13 ) }, { "iso8859_14", "ISO/IEC 8859-14:1998 Latin-8 Celtic", { "ISO-8859-14", "CSISOLATIN8", "LATIN8", "ISO-IR-199", "ISO_8859-14", "ISO_8859-14:1998", "L8", }, CHARSETARRAY( iso8859_14 ) }, { "iso8859_15", "ISO/IEC 8859-15:1999 Latin-9 Western European", { "ISO-8859-15", "ISO-IR-203", "ISO_8859-15", "ISO_8859-15:1998", "", "", "", }, CHARSETARRAY( iso8859_15 ) }, { "iso8859_16", "ISO/IEC 8859-16:2001 Latin-10 South-Eastern European", { "ISO-8859-16", "CSISOLATIN10", "LATIN10", "ISO-IR-226", "ISO_8859-16", "ISO_8859-16:2000", "", }, CHARSETARRAY( iso8859_16 ) }, { "koi8_r", "KOI8-R Kod Obmena Informatsiey, 8 bit Russian", { "KOI8-R", "KOI8R", "CSKOI8R", "", "", "", "", }, CHARSETARRAY( koi8_r ) }, { "koi8_u", "KOI8-U Kod Obmena Informatsiey, 8 bit Ukranian", { "KOI8-U", "KOI8U", "CSKOI8U", "", "", "", "", }, CHARSETARRAY( koi8_u ) }, { "mslinedr", "MS LineDraw", { "MSLINEDR", "", "", "", "", "", "", }, CHARSETARRAY( mslinedr ) }, { "nextstep", "NextStep", { "NEXTSTEP", "", "", "", "", "", "", }, CHARSETARRAY( nextstep ) }, { "symbol", "MS Windows Symbol Font", { "SYMBOL", "", "", "", "", "", "", }, CHARSETARRAY( symbol ) }, { "tex_dcr_in", "TeX dcr input for European Computer Roman Font", { "TEX_DCR_IN", "", "", "", "", "", "", }, CHARSETARRAY( tex_dcr_in ) }, { "tex_dcr_out", "TeX dcr output for European Computer Roman Font", { "TEX_DCR_OUT", "", "", "", "", "", "", }, CHARSETARRAY( tex_dcr_out ) }, }; int nallcharconvert = ARRAYSIZE( allcharconvert ); char * charset_get_xmlname( int n ) { static char unknown[] = "???"; static char utf8[] = "UTF-8"; static char gb18030[] = "GB18030"; char *ret = unknown; if ( n>=0 && n < nallcharconvert ) { ret = allcharconvert[n].aliases[0]; } else if ( n==CHARSET_UNICODE ) { ret = utf8; } else if ( n==CHARSET_GB18030 ) { ret = gb18030; } return ret; } int charset_find( char *name ) { int i, j, ret = CHARSET_UNKNOWN; if ( name==NULL ) return ret; for ( i=0; i #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "slist.h" #include "name.h" #include "fields.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants copac_all[]; extern int copac_nall; /***************************************************** PUBLIC: void copacin_initparams() *****************************************************/ static int copacin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int copacin_processf( fields *bibin, char *p, char *filename, long nref, param *pm ); static int copacin_convertf( fields *bibin, fields *info, int reftype, param *pm ); void copacin_initparams( param *p, const char *progname ) { p->readformat = BIBL_COPACIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = copacin_readf; p->processf = copacin_processf; p->cleanf = NULL; p->typef = NULL; p->convertf = copacin_convertf; p->all = copac_all; p->nall = copac_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int copacin_readf() *****************************************************/ /* Endnote-Refer/Copac tag definition: character 1 = alphabetic character character 2 = alphabetic character character 3 = dash character 4 = space */ static int copacin_istag( char *buf ) { if (! ((buf[0]>='A' && buf[0]<='Z')) || (buf[0]>='a' && buf[0]<='z') ) return 0; if (! ((buf[1]>='A' && buf[1]<='Z')) || (buf[1]>='a' && buf[1]<='z') ) return 0; if (buf[2]!='-' ) return 0; if (buf[3]!=' ' ) return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int copacin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref=0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { /* blank line separates */ if ( line->data==NULL ) continue; if ( inref && line->len==0 ) haveref=1; p = &(line->data[0]); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } if ( copacin_istag( p ) ) { if ( inref ) str_addchar( reference, '\n' ); str_strcatc( reference, p ); str_empty( line ); inref = 1; } else if ( inref ) { if ( p ) { /* copac puts tag only on 1st line */ str_addchar( reference, ' ' ); if ( *p ) p++; if ( *p ) p++; if ( *p ) p++; str_strcatc( reference, p ); } str_empty( line ); } else { str_empty( line ); } } return haveref; } /***************************************************** PUBLIC: int copacin_processf() *****************************************************/ static char* copacin_addtag2( char *p, str *tag, str *data ) { int i; i =0; while ( i<3 && *p ) { str_addchar( tag, *p++ ); i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) { str_addchar( data, *p ); p++; } str_trimendingws( data ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static char * copacin_nextline( char *p ) { while ( *p && *p!='\n' && *p!='\r') p++; while ( *p=='\n' || *p=='\r' ) p++; return p; } static int copacin_processf( fields *copacin, char *p, char *filename, long nref, param *pm ) { str tag, data; int status; str_init( &tag ); str_init( &data ); while ( *p ) { p = skip_ws( p ); if ( copacin_istag( p ) ) { p = copacin_addtag2( p, &tag, &data ); /* don't add empty strings */ if ( str_has_value( &tag ) && str_has_value( &data ) ) { status = fields_add( copacin, tag.data, data.data, 0 ); if ( status!=FIELDS_OK ) return 0; } str_empty( &tag ); str_empty( &data ); } else p = copacin_nextline( p ); } str_free( &tag ); str_free( &data ); return 1; } /***************************************************** PUBLIC: int copacin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* copac names appear to always start with last name first, but don't * always seem to have a comma after the name * * editors seem to be stuck in as authors with the tag "[Editor]" in it */ static int copacin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *usetag = outtag, editor[]="EDITOR"; int comma = 0, i, ok, status; str usename, *s; slist tokens; if ( slist_find( &(pm->asis), invalue ) !=-1 || slist_find( &(pm->corps), invalue ) !=-1 ) { ok = name_add( bibout, outtag, invalue->data, level, &(pm->asis), &(pm->corps) ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } slist_init( &tokens ); str_init( &usename ); status = slist_tokenize( &tokens, invalue, " ", 1 ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; for ( i=0; ilen && s->data[s->len-1]==',' ) { comma++; } } if ( comma==0 && tokens.n ) { s = slist_str( &tokens, 0 ); str_addchar( s, ',' ); } for ( i=0; iasis), &(pm->corps) ); str_free( &usename ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static void copacin_report_notag( param *p, char *tag ) { if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'\n", tag ); } } static int copacin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ NOTES ] = generic_notes, [ SERIALNO ] = generic_serialno, [ PERSON ] = copacin_person }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; idata, reftype, p->all, p->nall, &process, &level, &outtag ) ) { copacin_report_notag( p, intag->data ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } return status; } hs-bibutils-6.7.0.0/bibutils/copacin.c0000755000000000000000000001643000000000000015642 0ustar0000000000000000/* * copacin.c * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "slist.h" #include "name.h" #include "fields.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants copac_all[]; extern int copac_nall; /***************************************************** PUBLIC: void copacin_initparams() *****************************************************/ static int copacin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int copacin_processf( fields *bibin, char *p, char *filename, long nref, param *pm ); static int copacin_convertf( fields *bibin, fields *info, int reftype, param *pm ); void copacin_initparams( param *p, const char *progname ) { p->readformat = BIBL_COPACIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = copacin_readf; p->processf = copacin_processf; p->cleanf = NULL; p->typef = NULL; p->convertf = copacin_convertf; p->all = copac_all; p->nall = copac_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int copacin_readf() *****************************************************/ /* Endnote-Refer/Copac tag definition: character 1 = alphabetic character character 2 = alphabetic character character 3 = dash character 4 = space */ static int copacin_istag( char *buf ) { if (! ((buf[0]>='A' && buf[0]<='Z')) || (buf[0]>='a' && buf[0]<='z') ) return 0; if (! ((buf[1]>='A' && buf[1]<='Z')) || (buf[1]>='a' && buf[1]<='z') ) return 0; if (buf[2]!='-' ) return 0; if (buf[3]!=' ' ) return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int copacin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref=0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { /* blank line separates */ if ( line->data==NULL ) continue; if ( inref && line->len==0 ) haveref=1; p = &(line->data[0]); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } if ( copacin_istag( p ) ) { if ( inref ) str_addchar( reference, '\n' ); str_strcatc( reference, p ); str_empty( line ); inref = 1; } else if ( inref ) { if ( p ) { /* copac puts tag only on 1st line */ str_addchar( reference, ' ' ); if ( *p ) p++; if ( *p ) p++; if ( *p ) p++; str_strcatc( reference, p ); } str_empty( line ); } else { str_empty( line ); } } return haveref; } /***************************************************** PUBLIC: int copacin_processf() *****************************************************/ static char* copacin_addtag2( char *p, str *tag, str *data ) { int i; i =0; while ( i<3 && *p ) { str_addchar( tag, *p++ ); i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) { str_addchar( data, *p ); p++; } str_trimendingws( data ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static char * copacin_nextline( char *p ) { while ( *p && *p!='\n' && *p!='\r') p++; while ( *p=='\n' || *p=='\r' ) p++; return p; } static int copacin_processf( fields *copacin, char *p, char *filename, long nref, param *pm ) { str tag, data; int status; str_init( &tag ); str_init( &data ); while ( *p ) { p = skip_ws( p ); if ( copacin_istag( p ) ) { p = copacin_addtag2( p, &tag, &data ); /* don't add empty strings */ if ( str_has_value( &tag ) && str_has_value( &data ) ) { status = fields_add( copacin, tag.data, data.data, 0 ); if ( status!=FIELDS_OK ) return 0; } str_empty( &tag ); str_empty( &data ); } else p = copacin_nextline( p ); } str_free( &tag ); str_free( &data ); return 1; } /***************************************************** PUBLIC: int copacin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* copac names appear to always start with last name first, but don't * always seem to have a comma after the name * * editors seem to be stuck in as authors with the tag "[Editor]" in it */ static int copacin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *usetag = outtag, editor[]="EDITOR"; int comma = 0, i, ok, status; str usename, *s; slist tokens; if ( slist_find( &(pm->asis), invalue ) !=-1 || slist_find( &(pm->corps), invalue ) !=-1 ) { ok = name_add( bibout, outtag, invalue->data, level, &(pm->asis), &(pm->corps) ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } slist_init( &tokens ); str_init( &usename ); status = slist_tokenize( &tokens, invalue, " ", 1 ); if ( status!=SLIST_OK ) return BIBL_ERR_MEMERR; for ( i=0; ilen && s->data[s->len-1]==',' ) { comma++; } } if ( comma==0 && tokens.n ) { s = slist_str( &tokens, 0 ); str_addchar( s, ',' ); } for ( i=0; iasis), &(pm->corps) ); str_free( &usename ); if ( ok ) return BIBL_OK; else return BIBL_ERR_MEMERR; } static void copacin_report_notag( param *p, char *tag ) { if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'\n", tag ); } } static int copacin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ NOTES ] = generic_notes, [ SERIALNO ] = generic_serialno, [ PERSON ] = copacin_person }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; idata, reftype, p->all, p->nall, &process, &level, &outtag ) ) { copacin_report_notag( p, intag->data ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } return status; } hs-bibutils-6.7.0.0/bibutils/copactypes.c0000644000000000000000000000271100000000000016372 0ustar0000000000000000/* * copactypes.c * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" /* if no specific type can be identified */ static lookups generic[] = { { "TI-", "TITLE" , TITLE, LEVEL_MAIN }, { "AU-", "AUTHOR", PERSON, LEVEL_MAIN }, { "MV-", "VOLUME", SIMPLE, LEVEL_MAIN }, { "SE-", "TITLE", TITLE, LEVEL_HOST }, { "ED-", "EDITION", SIMPLE, LEVEL_MAIN }, { "SC-", "SCALE", SIMPLE, LEVEL_MAIN }, /* for maps */ { "PU-", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "PY-", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD-", "DESCRIPTION", SIMPLE, LEVEL_MAIN }, /* physical description */ { "DT-", "TYPE", SIMPLE, LEVEL_MAIN }, { "LA-", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "IS-", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "NT-", "NOTES", NOTES, LEVEL_MAIN }, { "KW-", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "UL-", "URL", SIMPLE, LEVEL_MAIN }, { "HL-", "LOCATION", SIMPLE, LEVEL_MAIN } }; /* order is important....."Book" matches "Book" and "Book Section", hence * "Book Section must come first */ #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants copac_all[] = { REFTYPE( "Generic", generic ), }; int copac_nall = sizeof( copac_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/copactypes.c0000755000000000000000000000271100000000000016375 0ustar0000000000000000/* * copactypes.c * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" /* if no specific type can be identified */ static lookups generic[] = { { "TI-", "TITLE" , TITLE, LEVEL_MAIN }, { "AU-", "AUTHOR", PERSON, LEVEL_MAIN }, { "MV-", "VOLUME", SIMPLE, LEVEL_MAIN }, { "SE-", "TITLE", TITLE, LEVEL_HOST }, { "ED-", "EDITION", SIMPLE, LEVEL_MAIN }, { "SC-", "SCALE", SIMPLE, LEVEL_MAIN }, /* for maps */ { "PU-", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "PY-", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD-", "DESCRIPTION", SIMPLE, LEVEL_MAIN }, /* physical description */ { "DT-", "TYPE", SIMPLE, LEVEL_MAIN }, { "LA-", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "IS-", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "NT-", "NOTES", NOTES, LEVEL_MAIN }, { "KW-", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "UL-", "URL", SIMPLE, LEVEL_MAIN }, { "HL-", "LOCATION", SIMPLE, LEVEL_MAIN } }; /* order is important....."Book" matches "Book" and "Book Section", hence * "Book Section must come first */ #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants copac_all[] = { REFTYPE( "Generic", generic ), }; int copac_nall = sizeof( copac_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/ebiin.c0000644000000000000000000005013700000000000015313 0ustar0000000000000000/* * ebiin.c * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "bu_auth.h" #include "marc_auth.h" #include "xml.h" #include "xml_encoding.h" #include "bibformats.h" static int ebiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int ebiin_processf( fields *ebiin, char *data, char *filename, long nref, param *p ); /***************************************************** PUBLIC: void ebiin_initparams() *****************************************************/ void ebiin_initparams( param *p, const char *progname ) { p->readformat = BIBL_EBIIN; p->charsetin = BIBL_CHARSET_UNICODE; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 1; p->utf8in = 1; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; p->readf = ebiin_readf; p->processf = ebiin_processf; p->cleanf = NULL; p->typef = NULL; p->convertf = NULL; p->all = NULL; p->nall = 0; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int ebiin_readf() *****************************************************/ static int ebiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0, file_charset = CHARSET_UNKNOWN, m; char *startptr = NULL, *endptr; str tmp; str_init( &tmp ); while ( !haveref && str_fget( fp, buf, bufsize, bufpos, line ) ) { if ( line->data ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( line->data ) startptr = xml_find_start( line->data, "Publication" ); if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = xml_find_end( str_cstr( &tmp ), "Publication" ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int ebiin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; static int ebiin_doconvert( xml *node, fields *info, xml_convert *c, int nc, int *found ) { int i, status; char *d; if ( !xml_has_value( node ) ) goto out; d = xml_value_cstr( node ); for ( i=0; iMechanism and..... * and * Mechanism and.... */ static int ebiin_title( xml *node, fields *info, int title_level ) { int status; if ( xml_has_value( node ) ) { status = fields_add( info, "TITLE", xml_value_cstr( node ), title_level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* ebiin_medlinedate() * * - extract medline information from entries like: * 2003 Jan-Feb */ static int ebiin_medlinedate_year( fields *info, char *p, int level, char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:YEAR", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate_month( fields *info, char *p, int level, char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); str_findreplace( &s, "-", "/" ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:MONTH", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate_day( fields *info, char *p, int level, char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:DAY", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate( fields *info, xml *node, int level ) { int status = BIBL_OK; char *p; if ( !xml_has_value( node ) ) return status; p = xml_value_cstr( node ); if ( *p ) status = ebiin_medlinedate_year( info, skip_ws( p ), level, &p ); if ( *p && status==BIBL_OK ) status = ebiin_medlinedate_month( info, skip_ws( p ), level, &p ); if ( *p && status==BIBL_OK ) status = ebiin_medlinedate_day( info, skip_ws( p ), level, &p ); return status; } /* * 0027-8424 * * 100 * 21 * * 2003 * Oct * 14 * * * * * or.... * * * 0735-0414 * * 38 * 1 * * 2003 Jan-Feb * * * Alcohol and alcoholism (Oxford, Oxfordshire) * Alcohol Alcohol. * */ static int ebiin_journal1( xml *node, fields *info ) { xml_convert c[] = { { "ISSN", NULL, NULL, "ISSN", 1 }, { "Volume", NULL, NULL, "VOLUME", 1 }, { "Issue", NULL, NULL, "ISSUE", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, { "Language", NULL, NULL, "LANGUAGE", 1 }, }; int nc = sizeof( c ) / sizeof( c[0] ), status, found; if ( xml_has_value( node ) ) { status = ebiin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { if ( xml_tag_matches( node, "MedlineDate" ) ) { status = ebiin_medlinedate( info, node, LEVEL_HOST ); if ( status!=BIBL_OK ) return status; } } } if ( node->down ) { status = ebiin_journal1( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_journal1( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 12111-6 * */ static int ebiin_pages( fields *info, char *p ) { int i, status, ret = BIBL_OK; const int level = 1; str sp, ep, *up; strs_init( &sp, &ep, NULL ); /* ...start page */ p = str_cpytodelim( &sp, skip_ws( p ), "-", 1 ); if ( str_memerr( &sp ) ) { ret = BIBL_ERR_MEMERR; goto out; } /* ...end page */ (void) str_cpytodelim( &ep, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &ep ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( sp.len ) { status = fields_add( info, "PAGES:START", sp.data, level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } if ( ep.len ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idata, level ); if ( status!=FIELDS_OK ) ret = BIBL_ERR_MEMERR; } out: strs_free( &sp, &ep, NULL ); return ret; } static int ebiin_pagination( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "Pages" ) ) { status = ebiin_pages( info, xml_value_cstr( node ) ); if ( status!=BIBL_OK ) return status; } if ( node->down ) { status = ebiin_pagination( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_pagination( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * ljwejrelr * */ static int ebiin_abstract( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "AbstractText" ) ) { status = fields_add( info, "ABSTRACT", xml_value_cstr( node ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( node->next ) { status = ebiin_abstract( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * * Barondeau * David P * ( or David P ) * DP * * */ static int ebiin_author( xml *node, str *name ) { int status; char *p; if ( xml_tag_matches( node, "LastName" ) ) { if ( name->len ) { str_prepend( name, "|" ); str_prepend( name, xml_value_cstr( node ) ); } else str_strcat( name, xml_value( node ) ); } else if ( xml_tag_matches( node, "ForeName" ) || xml_tag_matches( node, "FirstName" ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( name->len ) str_addchar( name, '|' ); while ( *p==' ' ) p++; while ( *p && *p!=' ' ) str_addchar( name, *p++ ); } } else if ( xml_tag_matches( node, "Initials" ) && !strchr( name->data, '|' ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( name->len ) str_addchar( name, '|' ); if ( !is_ws(*p ) ) str_addchar( name, *p++ ); } } if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; if ( node->down ) { status = ebiin_author( node->down, name ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_author( node->next, name ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_authorlist( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str name; str_init( &name ); node = node->down; while ( node ) { if ( xml_tag_matches( node, "Author" ) && node->down ) { status = ebiin_author( node->down, &name ); if ( status!=BIBL_OK ) goto out; if ( name.len ) { fstatus = fields_add(info,"AUTHOR",name.data,level); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } str_empty( &name ); } } node = node->next; } out: str_free( &name ); return status; } /* * Journal Article * */ /* * United States * Proc Natl Acad Sci U S A * 7507876 * */ static int ebiin_journal2( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "TitleAbbreviation" ) ) { status = fields_add( info, "TITLE", xml_value_cstr( node ), 1 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = ebiin_journal2( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_journal2( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * * * Biophysics * * * Crystallography, X-Ray * * */ static int ebiin_meshheading( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "DescriptorName" ) ) { status = fields_add( info, "KEYWORD", xml_value_cstr( node ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->next ) { status = ebiin_meshheading( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_meshheadinglist( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "MeshHeading" ) && node->down ) { status = ebiin_meshheading( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_meshheadinglist( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_book( xml *node, fields *info, int book_level ) { xml_convert book[] = { { "Publisher", NULL, NULL, "PUBLISHER", 0 }, { "Language", NULL, NULL, "LANGUAGE", 0 }, { "ISBN10", NULL, NULL, "ISBN", 0 }, { "ISBN13", NULL, NULL, "ISBN13", 0 }, { "Year", NULL, NULL, "DATE:YEAR", 0 }, { "Month", NULL, NULL, "DATE:MONTH", 0 }, { "Day", NULL, NULL, "DATE:DAY", 0 }, { "PageTotal", NULL, NULL, "PAGES:TOTAL", 0 }, { "SeriesName", NULL, NULL, "TITLE", 1 }, { "SeriesISSN", NULL, NULL, "ISSN", 0 }, { "OtherReportInformation", NULL, NULL, "NOTES", 0 }, { "Edition", NULL, NULL, "EDITION", 0 }, }; int nbook = sizeof( book ) / sizeof( book[0] ); xml_convert inbook[] = { { "Publisher", NULL, NULL, "PUBLISHER", 1 }, { "Language", NULL, NULL, "LANGUAGE", 0 }, { "ISBN10", NULL, NULL, "ISBN", 1 }, { "ISBN13", NULL, NULL, "ISBN13", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, { "PageTotal", NULL, NULL, "PAGES:TOTAL", 1 }, { "SeriesName", NULL, NULL, "TITLE", 2 }, { "SeriesISSN", NULL, NULL, "ISSN", 1 }, { "OtherReportInformation", NULL, NULL, "NOTES", 1 }, { "Edition", NULL, NULL, "EDITION", 1 }, }; int ninbook = sizeof( inbook ) / sizeof( inbook[0] ); int nc, status, found; xml_convert *c; if ( book_level==0 ) { c = book; nc = nbook; } else { c = inbook; nc = ninbook; } status = ebiin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { status = BIBL_OK; if ( xml_tag_matches( node, "MedlineDate" ) ) status = ebiin_medlinedate( info, node, book_level ); else if ( xml_tag_matches( node, "Title" ) ) status = ebiin_title( node, info, book_level ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = ebiin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = ebiin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = ebiin_authorlist( node, info, book_level ); else if ( xml_tag_matches( node, "PubDate" ) && node->down ) status = ebiin_book( node->down, info, book_level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_book( node->next, info, book_level ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_article( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "Journal" ) ) status = ebiin_journal1( node, info ); else if ( node->down && ( xml_tag_matches( node, "Book" ) || xml_tag_matches(node, "Report") )) status = ebiin_book( node->down, info, 1 ); else if ( xml_tag_matches( node, "ArticleTitle" ) ) status = ebiin_title( node, info, 0 ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = ebiin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = ebiin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = ebiin_authorlist( node, info, 0 ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = ebiin_article( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_publication( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "Article" ) ) status = ebiin_article( node->down, info ); else if ( xml_tag_matches( node, "Book" ) ) status = ebiin_book( node->down, info, 0 ); else if ( xml_tag_matches( node, "Report" ) ) status = ebiin_book( node->down, info, 0 ); else if ( xml_tag_matches( node, "JournalInfo" ) ) status = ebiin_journal2( node->down, info ); else if ( xml_tag_matches( node, "MeshHeadingList" ) ) status = ebiin_meshheadinglist( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_publication( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* Call with the "Publication" node */ static int ebiin_fixtype( xml *node, fields *info ) { char *resource = NULL, *issuance = NULL, *genre1 = NULL, *genre2 = NULL; str *type; int reslvl, isslvl, gen1lvl, gen2lvl; int status; type = xml_attribute( node, "Type" ); if ( !type || type->len==0 ) return BIBL_OK; if ( !strcmp( type->data, "JournalArticle" ) ) { resource = "text"; issuance = "continuing"; genre1 = "periodical"; genre2 = "academic journal"; reslvl = 0; isslvl = 1; gen1lvl = 1; gen2lvl = 1; } else if ( !strcmp( type->data, "Book" ) ) { resource = "text"; issuance = "monographic"; genre1 = "book"; reslvl = 0; isslvl = 0; gen1lvl = 0; } else if ( !strcmp( type->data, "BookArticle" ) ) { resource = "text"; issuance = "monographic"; genre1 = "book"; reslvl = 0; isslvl = 1; gen1lvl = 1; } if ( resource ) { status = fields_add( info, "RESOURCE", resource, reslvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( issuance ) { status = fields_add( info, "ISSUANCE", issuance, isslvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( genre1 ) { if ( is_marc_genre( genre1 ) ) status = fields_add( info, "GENRE:MARC", genre1, gen1lvl ); else if ( is_bu_genre( genre1 ) ) status = fields_add( info, "GENRE:BIBUTILS", genre1, gen1lvl ); else status = fields_add( info, "GENRE:UNKNOWN", genre1, gen1lvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( genre2 ) { if ( is_marc_genre( genre2 ) ) status = fields_add( info, "GENRE:MARC", genre2, gen2lvl ); else if ( is_bu_genre( genre2 ) ) status = fields_add( info, "GENRE:BIBUTILS", genre2, gen2lvl ); else status = fields_add( info, "GENRE:UNKNOWN", genre2, gen2lvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int ebiin_assembleref( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "Publication" ) && node->down ) { status = ebiin_fixtype( node, info ); if ( status!=BIBL_OK ) return status; status = ebiin_publication( node->down, info ); if ( status!=BIBL_OK ) return status; } else if ( node->down ) { status = ebiin_assembleref( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_assembleref( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_processf( fields *ebiin, char *data, char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = ebiin_assembleref( &top, ebiin ); xml_free( &top ); return ( status==BIBL_OK ) ? 1 : 0; } hs-bibutils-6.7.0.0/bibutils/ebiin.c0000755000000000000000000005013700000000000015316 0ustar0000000000000000/* * ebiin.c * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "bu_auth.h" #include "marc_auth.h" #include "xml.h" #include "xml_encoding.h" #include "bibformats.h" static int ebiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int ebiin_processf( fields *ebiin, char *data, char *filename, long nref, param *p ); /***************************************************** PUBLIC: void ebiin_initparams() *****************************************************/ void ebiin_initparams( param *p, const char *progname ) { p->readformat = BIBL_EBIIN; p->charsetin = BIBL_CHARSET_UNICODE; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 1; p->utf8in = 1; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; p->readf = ebiin_readf; p->processf = ebiin_processf; p->cleanf = NULL; p->typef = NULL; p->convertf = NULL; p->all = NULL; p->nall = 0; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int ebiin_readf() *****************************************************/ static int ebiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0, file_charset = CHARSET_UNKNOWN, m; char *startptr = NULL, *endptr; str tmp; str_init( &tmp ); while ( !haveref && str_fget( fp, buf, bufsize, bufpos, line ) ) { if ( line->data ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( line->data ) startptr = xml_find_start( line->data, "Publication" ); if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = xml_find_end( str_cstr( &tmp ), "Publication" ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int ebiin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; static int ebiin_doconvert( xml *node, fields *info, xml_convert *c, int nc, int *found ) { int i, status; char *d; if ( !xml_has_value( node ) ) goto out; d = xml_value_cstr( node ); for ( i=0; iMechanism and..... * and * Mechanism and.... */ static int ebiin_title( xml *node, fields *info, int title_level ) { int status; if ( xml_has_value( node ) ) { status = fields_add( info, "TITLE", xml_value_cstr( node ), title_level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* ebiin_medlinedate() * * - extract medline information from entries like: * 2003 Jan-Feb */ static int ebiin_medlinedate_year( fields *info, char *p, int level, char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:YEAR", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate_month( fields *info, char *p, int level, char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); str_findreplace( &s, "-", "/" ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:MONTH", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate_day( fields *info, char *p, int level, char **end ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); *end = str_cpytodelim( &s, p, " \t\n\r", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "PARTDATE:DAY", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } out: str_free( &s ); return status; } static int ebiin_medlinedate( fields *info, xml *node, int level ) { int status = BIBL_OK; char *p; if ( !xml_has_value( node ) ) return status; p = xml_value_cstr( node ); if ( *p ) status = ebiin_medlinedate_year( info, skip_ws( p ), level, &p ); if ( *p && status==BIBL_OK ) status = ebiin_medlinedate_month( info, skip_ws( p ), level, &p ); if ( *p && status==BIBL_OK ) status = ebiin_medlinedate_day( info, skip_ws( p ), level, &p ); return status; } /* * 0027-8424 * * 100 * 21 * * 2003 * Oct * 14 * * * * * or.... * * * 0735-0414 * * 38 * 1 * * 2003 Jan-Feb * * * Alcohol and alcoholism (Oxford, Oxfordshire) * Alcohol Alcohol. * */ static int ebiin_journal1( xml *node, fields *info ) { xml_convert c[] = { { "ISSN", NULL, NULL, "ISSN", 1 }, { "Volume", NULL, NULL, "VOLUME", 1 }, { "Issue", NULL, NULL, "ISSUE", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, { "Language", NULL, NULL, "LANGUAGE", 1 }, }; int nc = sizeof( c ) / sizeof( c[0] ), status, found; if ( xml_has_value( node ) ) { status = ebiin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { if ( xml_tag_matches( node, "MedlineDate" ) ) { status = ebiin_medlinedate( info, node, LEVEL_HOST ); if ( status!=BIBL_OK ) return status; } } } if ( node->down ) { status = ebiin_journal1( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_journal1( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 12111-6 * */ static int ebiin_pages( fields *info, char *p ) { int i, status, ret = BIBL_OK; const int level = 1; str sp, ep, *up; strs_init( &sp, &ep, NULL ); /* ...start page */ p = str_cpytodelim( &sp, skip_ws( p ), "-", 1 ); if ( str_memerr( &sp ) ) { ret = BIBL_ERR_MEMERR; goto out; } /* ...end page */ (void) str_cpytodelim( &ep, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &ep ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( sp.len ) { status = fields_add( info, "PAGES:START", sp.data, level ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } if ( ep.len ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idata, level ); if ( status!=FIELDS_OK ) ret = BIBL_ERR_MEMERR; } out: strs_free( &sp, &ep, NULL ); return ret; } static int ebiin_pagination( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "Pages" ) ) { status = ebiin_pages( info, xml_value_cstr( node ) ); if ( status!=BIBL_OK ) return status; } if ( node->down ) { status = ebiin_pagination( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_pagination( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * ljwejrelr * */ static int ebiin_abstract( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "AbstractText" ) ) { status = fields_add( info, "ABSTRACT", xml_value_cstr( node ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( node->next ) { status = ebiin_abstract( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * * Barondeau * David P * ( or David P ) * DP * * */ static int ebiin_author( xml *node, str *name ) { int status; char *p; if ( xml_tag_matches( node, "LastName" ) ) { if ( name->len ) { str_prepend( name, "|" ); str_prepend( name, xml_value_cstr( node ) ); } else str_strcat( name, xml_value( node ) ); } else if ( xml_tag_matches( node, "ForeName" ) || xml_tag_matches( node, "FirstName" ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( name->len ) str_addchar( name, '|' ); while ( *p==' ' ) p++; while ( *p && *p!=' ' ) str_addchar( name, *p++ ); } } else if ( xml_tag_matches( node, "Initials" ) && !strchr( name->data, '|' ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( name->len ) str_addchar( name, '|' ); if ( !is_ws(*p ) ) str_addchar( name, *p++ ); } } if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; if ( node->down ) { status = ebiin_author( node->down, name ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_author( node->next, name ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_authorlist( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str name; str_init( &name ); node = node->down; while ( node ) { if ( xml_tag_matches( node, "Author" ) && node->down ) { status = ebiin_author( node->down, &name ); if ( status!=BIBL_OK ) goto out; if ( name.len ) { fstatus = fields_add(info,"AUTHOR",name.data,level); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } str_empty( &name ); } } node = node->next; } out: str_free( &name ); return status; } /* * Journal Article * */ /* * United States * Proc Natl Acad Sci U S A * 7507876 * */ static int ebiin_journal2( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "TitleAbbreviation" ) ) { status = fields_add( info, "TITLE", xml_value_cstr( node ), 1 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = ebiin_journal2( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_journal2( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * * * Biophysics * * * Crystallography, X-Ray * * */ static int ebiin_meshheading( xml *node, fields *info ) { int status; if ( xml_tag_matches_has_value( node, "DescriptorName" ) ) { status = fields_add( info, "KEYWORD", xml_value_cstr( node ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->next ) { status = ebiin_meshheading( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_meshheadinglist( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "MeshHeading" ) && node->down ) { status = ebiin_meshheading( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_meshheadinglist( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_book( xml *node, fields *info, int book_level ) { xml_convert book[] = { { "Publisher", NULL, NULL, "PUBLISHER", 0 }, { "Language", NULL, NULL, "LANGUAGE", 0 }, { "ISBN10", NULL, NULL, "ISBN", 0 }, { "ISBN13", NULL, NULL, "ISBN13", 0 }, { "Year", NULL, NULL, "DATE:YEAR", 0 }, { "Month", NULL, NULL, "DATE:MONTH", 0 }, { "Day", NULL, NULL, "DATE:DAY", 0 }, { "PageTotal", NULL, NULL, "PAGES:TOTAL", 0 }, { "SeriesName", NULL, NULL, "TITLE", 1 }, { "SeriesISSN", NULL, NULL, "ISSN", 0 }, { "OtherReportInformation", NULL, NULL, "NOTES", 0 }, { "Edition", NULL, NULL, "EDITION", 0 }, }; int nbook = sizeof( book ) / sizeof( book[0] ); xml_convert inbook[] = { { "Publisher", NULL, NULL, "PUBLISHER", 1 }, { "Language", NULL, NULL, "LANGUAGE", 0 }, { "ISBN10", NULL, NULL, "ISBN", 1 }, { "ISBN13", NULL, NULL, "ISBN13", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, { "PageTotal", NULL, NULL, "PAGES:TOTAL", 1 }, { "SeriesName", NULL, NULL, "TITLE", 2 }, { "SeriesISSN", NULL, NULL, "ISSN", 1 }, { "OtherReportInformation", NULL, NULL, "NOTES", 1 }, { "Edition", NULL, NULL, "EDITION", 1 }, }; int ninbook = sizeof( inbook ) / sizeof( inbook[0] ); int nc, status, found; xml_convert *c; if ( book_level==0 ) { c = book; nc = nbook; } else { c = inbook; nc = ninbook; } status = ebiin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { status = BIBL_OK; if ( xml_tag_matches( node, "MedlineDate" ) ) status = ebiin_medlinedate( info, node, book_level ); else if ( xml_tag_matches( node, "Title" ) ) status = ebiin_title( node, info, book_level ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = ebiin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = ebiin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = ebiin_authorlist( node, info, book_level ); else if ( xml_tag_matches( node, "PubDate" ) && node->down ) status = ebiin_book( node->down, info, book_level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_book( node->next, info, book_level ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_article( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "Journal" ) ) status = ebiin_journal1( node, info ); else if ( node->down && ( xml_tag_matches( node, "Book" ) || xml_tag_matches(node, "Report") )) status = ebiin_book( node->down, info, 1 ); else if ( xml_tag_matches( node, "ArticleTitle" ) ) status = ebiin_title( node, info, 0 ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = ebiin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = ebiin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = ebiin_authorlist( node, info, 0 ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = ebiin_article( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_publication( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "Article" ) ) status = ebiin_article( node->down, info ); else if ( xml_tag_matches( node, "Book" ) ) status = ebiin_book( node->down, info, 0 ); else if ( xml_tag_matches( node, "Report" ) ) status = ebiin_book( node->down, info, 0 ); else if ( xml_tag_matches( node, "JournalInfo" ) ) status = ebiin_journal2( node->down, info ); else if ( xml_tag_matches( node, "MeshHeadingList" ) ) status = ebiin_meshheadinglist( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_publication( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* Call with the "Publication" node */ static int ebiin_fixtype( xml *node, fields *info ) { char *resource = NULL, *issuance = NULL, *genre1 = NULL, *genre2 = NULL; str *type; int reslvl, isslvl, gen1lvl, gen2lvl; int status; type = xml_attribute( node, "Type" ); if ( !type || type->len==0 ) return BIBL_OK; if ( !strcmp( type->data, "JournalArticle" ) ) { resource = "text"; issuance = "continuing"; genre1 = "periodical"; genre2 = "academic journal"; reslvl = 0; isslvl = 1; gen1lvl = 1; gen2lvl = 1; } else if ( !strcmp( type->data, "Book" ) ) { resource = "text"; issuance = "monographic"; genre1 = "book"; reslvl = 0; isslvl = 0; gen1lvl = 0; } else if ( !strcmp( type->data, "BookArticle" ) ) { resource = "text"; issuance = "monographic"; genre1 = "book"; reslvl = 0; isslvl = 1; gen1lvl = 1; } if ( resource ) { status = fields_add( info, "RESOURCE", resource, reslvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( issuance ) { status = fields_add( info, "ISSUANCE", issuance, isslvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( genre1 ) { if ( is_marc_genre( genre1 ) ) status = fields_add( info, "GENRE:MARC", genre1, gen1lvl ); else if ( is_bu_genre( genre1 ) ) status = fields_add( info, "GENRE:BIBUTILS", genre1, gen1lvl ); else status = fields_add( info, "GENRE:UNKNOWN", genre1, gen1lvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( genre2 ) { if ( is_marc_genre( genre2 ) ) status = fields_add( info, "GENRE:MARC", genre2, gen2lvl ); else if ( is_bu_genre( genre2 ) ) status = fields_add( info, "GENRE:BIBUTILS", genre2, gen2lvl ); else status = fields_add( info, "GENRE:UNKNOWN", genre2, gen2lvl ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int ebiin_assembleref( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "Publication" ) && node->down ) { status = ebiin_fixtype( node, info ); if ( status!=BIBL_OK ) return status; status = ebiin_publication( node->down, info ); if ( status!=BIBL_OK ) return status; } else if ( node->down ) { status = ebiin_assembleref( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = ebiin_assembleref( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int ebiin_processf( fields *ebiin, char *data, char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = ebiin_assembleref( &top, ebiin ); xml_free( &top ); return ( status==BIBL_OK ) ? 1 : 0; } hs-bibutils-6.7.0.0/bibutils/endin.c0000644000000000000000000003712100000000000015320 0ustar0000000000000000/* * endin.c * * Copyright (c) Chris Putnam 2003-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "url.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants end_all[]; extern int end_nall; /***************************************************** PUBLIC: void endin_initparams() *****************************************************/ static int endin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int endin_processf( fields *endin, char *p, char *filename, long nref, param *pm ); int endin_typef( fields *endin, char *filename, int nrefs, param *p ); int endin_convertf( fields *endin, fields *info, int reftype, param *p ); int endin_cleanf( bibl *bin, param *p ); void endin_initparams( param *p, const char *progname ) { p->readformat = BIBL_ENDNOTEIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = endin_readf; p->processf = endin_processf; p->cleanf = endin_cleanf; p->typef = endin_typef; p->convertf = endin_convertf; p->all = end_all; p->nall = end_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int endin_readf() *****************************************************/ /* Endnote tag definition: character 1 = '%' character 2 = alphabetic character or digit (or other characters) character 3 = space (ansi 32) */ static int endin_istag( char *buf ) { const char others[]="!@#$^&*()+=?[~>"; if ( buf[0]!='%' ) return 0; if ( buf[2]!=' ' ) return 0; if ( isalpha( (unsigned char)buf[1] ) ) return 1; if ( isdigit( (unsigned char)buf[1] ) ) return 1; if ( strchr( others, buf[1] ) ) return 1; return 0; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int endin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0; unsigned char *up; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( !line->data ) continue; p = &(line->data[0]); /* Skip Unicode header information */ /* = ef bb bf */ up = (unsigned char* ) p; if ( line->len > 2 && up[0]==0xEF && up[1]==0xBB && up[2]==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } if ( !*p ) { if ( inref ) haveref = 1; /* blank line separates */ else continue; /* blank line to ignore */ } /* Each reference starts with a tag && ends with a blank line */ if ( endin_istag( p ) ) { if ( reference->len ) str_addchar( reference, '\n' ); str_strcatc( reference, p ); inref = 1; } else if ( inref && p ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } str_empty( line ); } if ( reference->len ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int endin_processf() *****************************************************/ static char* process_endline( str *tag, str *data, char *p ) { int i; i = 0; while ( i<2 && *p ) { str_addchar( tag, *p++); i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static char * process_endline2( str *tag, str *data, char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static int endin_processf( fields *endin, char *p, char *filename, long nref, param *pm ) { str tag, data; int status, n; strs_init( &tag, &data, NULL ); while ( *p ) { strs_empty( &tag, &data, NULL ); if ( endin_istag( p ) ) { p = process_endline( &tag, &data, p ); if ( str_is_empty( &data ) ) continue; status = fields_add( endin, str_cstr( &tag ), str_cstr( &data ), 0 ); if ( status!=FIELDS_OK ) return 0; } else { p = process_endline2( &tag, &data, p ); /* endnote puts %K only on 1st line of keywords */ n = fields_num( endin ); if ( n>0 && str_has_value( &data ) ) { if ( !strncmp( endin->tag[n-1].data, "%K", 2 ) ) { status = fields_add( endin, "%K", str_cstr( &data ), 0 ); if ( status!=FIELDS_OK ) return 0; } else { str_addchar( &(endin->data[n-1]), ' ' ); str_strcat( &(endin->data[n-1]), &data ); } } } } strs_free( &tag, &data, NULL ); return 1; } /***************************************************** PUBLIC: int endin_typef() *****************************************************/ /* Endnote defaults if no %0 tag * * if %J & %V - journal article * if %B - book section * if %R & !%T - report * if %I & !%B & !%J & !%R - book * if !%B & !%J & !%R & !%I - journal article */ int endin_typef( fields *endin, char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default, nj, nv, nb, nr, nt, ni; char *refname = "", *typename=""; ntypename = fields_find( endin, "%0", LEVEL_MAIN ); nrefname = fields_find( endin, "%F", LEVEL_MAIN ); if ( nrefname!=-1 ) refname = fields_value( endin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=-1 ) typename = fields_value( endin, ntypename, FIELDS_CHRP_NOUSE ); else { nj = fields_find( endin, "%J", 0 ); nv = fields_find( endin, "%V", 0 ); nb = fields_find( endin, "%B", 0 ); nr = fields_find( endin, "%R", 0 ); nt = fields_find( endin, "%T", 0 ); ni = fields_find( endin, "%I", 0 ); if ( nj!=-1 && nv!=-1 ) { typename = "Journal Article"; } else if ( nb!=-1 ) { typename = "Book Section"; } else if ( nr!=-1 && nt==-1 ) { typename = "Report"; } else if ( ni!=-1 && nb==-1 && nj==-1 && nr==-1 ) { typename = "Book"; } else if ( nb==-1 && nj==-1 && nr==-1 && ni==-1 ) { typename = "Journal Article"; } } return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: void endin_cleanf() *****************************************************/ /* Wiley puts multiple authors separated by commas on the %A lines. * We can detect this by finding the terminal comma in the value * from the tag/value pair. * * "%A" "Author A. X. Last, Author N. B. Next," */ static int is_wiley_author( fields *endin, int n ) { str *t, *v; t = fields_tag( endin, n, FIELDS_STRP_NOUSE ); if ( str_is_empty( t ) || strcmp( str_cstr( t ), "%A" ) ) return 0; v = fields_value( endin, n, FIELDS_STRP_NOUSE ); if ( str_is_empty( v ) ) return 0; if ( v->data[v->len-1]!=',' ) return 0; return 1; } static int add_wiley_author( fields *endin, char *intag, str *instring, int inlevel, str *name, int authornum ) { int fstatus; /* if first author, just replace the data string in the field */ if ( authornum==0 ) { str_strcpy( instring, name ); if ( str_memerr( instring ) ) return BIBL_ERR_MEMERR; } /* otherwise, append the author */ else { fstatus = fields_add( endin, intag, str_cstr( name ), inlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int cleanup_wiley_author( fields *endin, int n ) { int status=BIBL_OK, inlevel, authornum = 0; str *instring, copy, name; char *p, *intag; strs_init( ©, &name, NULL ); intag = fields_tag ( endin, n, FIELDS_CHRP_NOUSE ); instring = fields_value( endin, n, FIELDS_STRP_NOUSE ); inlevel = fields_level( endin, n ); str_strcpy( ©, instring ); p = str_cstr( © ); while ( *p ) { if ( *p==',' ) { if ( str_memerr( &name ) ) { status = BIBL_ERR_MEMERR; goto out; } status = add_wiley_author( endin, intag, instring, inlevel, &name, authornum ); if ( status!=BIBL_OK ) goto out; str_empty( &name ); authornum++; p++; while ( is_ws( *p ) ) p++; } else { str_addchar( &name, *p ); p++; } } if ( str_has_value( &name ) ) status = add_wiley_author( endin, intag, instring, inlevel, &name, authornum ); out: strs_free( ©, &name, NULL ); return status; } static int endin_cleanref( fields *endin ) { int i, n, status; n = fields_num( endin ); for ( i=0; inrefs; ++i ) endin_cleanref( bin->ref[i] ); return BIBL_OK; } /***************************************************** PUBLIC: int endin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* month_convert() * convert month name to number in format MM, e.g. "January" -> "01" * if converted, return 1 * otherwise return 0 */ static int month_convert( char *in, char *out ) { char *month1[12]={ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; char *month2[12]={ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; int i, found = -1; for ( i=0; i<12 && found==-1; ++i ) { if ( !strcasecmp( in, month1[i] ) ) found = i; if ( !strcasecmp( in, month2[i] ) ) found = i; } if ( found==-1 ) return 0; if ( found > 8 ) sprintf( out, "%d", found+1 ); else sprintf( out, "0%d", found+1 ); return 1; } static int endin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *tags[3][2] = { { "DATE:YEAR", "PARTDATE:YEAR" }, { "DATE:MONTH", "PARTDATE:MONTH" }, { "DATE:DAY", "PARTDATE:DAY" } }; char *p = invalue->data; char month[10], *m; int part, status; str date; str_init( &date ); if ( !strncasecmp( outtag, "PART", 4 ) ) part = 1; else part = 0; /* %D YEAR */ if ( !strcasecmp( intag->data, "%D" ) ) { str_cpytodelim( &date, skip_ws( p ), "", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } /* %8 MONTH DAY, YEAR */ /* %8 MONTH, YEAR */ /* %8 MONTH YEAR */ else if ( !strcasecmp( intag->data, "%8" ) ) { /* ...get month */ p = str_cpytodelim( &date, skip_ws( p ), " ,\n", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { if ( month_convert( date.data, month ) ) m = month; else m = str_cstr( &date ); status = fields_add( bibout, tags[1][part], m, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = skip_ws( p ); if ( *p==',' ) p++; /* ...get days */ p = str_cpytodelim( &date, skip_ws( p ), ",\n", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( date.len>0 && date.len<3 ) { status = fields_add( bibout, tags[2][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( date.len==4 ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = skip_ws( p ); if ( *p==',' ) p++; /* ...get year */ (void) str_cpytodelim( &date, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } str_free( &date ); return BIBL_OK; } static int endin_type( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { lookups types[] = { { "GENERIC", "ARTICLE" }, { "BOOK", "BOOK" }, { "MANUSCRIPT", "MANUSCRIPT" }, { "CONFERENCE PROCEEDINGS", "INPROCEEDINGS"}, { "REPORT", "REPORT" }, { "COMPUTER PROGRAM", "BOOK" }, { "AUDIOVISUAL MATERIAL", "AUDIOVISUAL" }, { "ARTWORK", "BOOK" }, { "PATENT", "BOOK" }, { "BILL", "BILL" }, { "CASE", "CASE" }, { "JOURNAL ARTICLE", "ARTICLE" }, { "MAGAZINE ARTICLE", "ARTICLE" }, { "BOOK SECTION", "INBOOK" }, { "EDITED BOOK", "BOOK" }, { "NEWSPAPER ARTICLE", "NEWSARTICLE" }, { "THESIS", "PHDTHESIS" }, { "PERSONAL COMMUNICATION", "COMMUNICATION" }, { "ELECTRONIC SOURCE", "TEXT" }, { "FILM OR BROADCAST", "AUDIOVISUAL" }, { "MAP", "MAP" }, { "HEARING", "HEARING" }, { "STATUTE", "STATUTE" }, { "CHART OR TABLE", "CHART" }, { "WEB PAGE", "WEBPAGE" }, }; int ntypes = sizeof( types ) / sizeof( lookups ); int i, status, found=0; for ( i=0; idata ) ) { found = 1; status = fields_add( bibout, "INTERNAL_TYPE", types[i].newstr, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } if ( !found ) { fprintf( stderr, "Did not identify reference type '%s'\n", invalue->data ); fprintf( stderr, "Defaulting to journal article type\n"); status = fields_add( bibout, "INTERNAL_TYPE", types[0].newstr, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static void endin_notag( param *p, char *tag, char *data ) { if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'='%s'\n", tag, data ); } } int endin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SERIALNO ] = generic_serialno, [ PAGES ] = generic_pages, [ NOTES ] = generic_notes, [ URL ] = generic_url, [ GENRE ] = generic_genre, [ TYPE ] = endin_type, [ DATE ] = endin_date, }; int i, level, process, nfields, fstatus, status = BIBL_OK; char *outtag; str *intag, *invalue; nfields = fields_num( bibin ); for ( i=0; idata[0]!='%' ) { fstatus = fields_add( bibout, str_cstr( intag ), str_cstr( invalue ), bibin->level[i] ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; continue; } if ( !translate_oldtag( str_cstr( intag ), reftype, p->all, p->nall, &process, &level, &outtag ) ) { endin_notag( p, str_cstr( intag ), str_cstr( invalue ) ); continue; } fields_setused( bibin, i ); status = convertfns[ process ]( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } return status; } hs-bibutils-6.7.0.0/bibutils/endin.c0000755000000000000000000003712100000000000015323 0ustar0000000000000000/* * endin.c * * Copyright (c) Chris Putnam 2003-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "url.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants end_all[]; extern int end_nall; /***************************************************** PUBLIC: void endin_initparams() *****************************************************/ static int endin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int endin_processf( fields *endin, char *p, char *filename, long nref, param *pm ); int endin_typef( fields *endin, char *filename, int nrefs, param *p ); int endin_convertf( fields *endin, fields *info, int reftype, param *p ); int endin_cleanf( bibl *bin, param *p ); void endin_initparams( param *p, const char *progname ) { p->readformat = BIBL_ENDNOTEIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = endin_readf; p->processf = endin_processf; p->cleanf = endin_cleanf; p->typef = endin_typef; p->convertf = endin_convertf; p->all = end_all; p->nall = end_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int endin_readf() *****************************************************/ /* Endnote tag definition: character 1 = '%' character 2 = alphabetic character or digit (or other characters) character 3 = space (ansi 32) */ static int endin_istag( char *buf ) { const char others[]="!@#$^&*()+=?[~>"; if ( buf[0]!='%' ) return 0; if ( buf[2]!=' ' ) return 0; if ( isalpha( (unsigned char)buf[1] ) ) return 1; if ( isdigit( (unsigned char)buf[1] ) ) return 1; if ( strchr( others, buf[1] ) ) return 1; return 0; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int endin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0; unsigned char *up; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( !line->data ) continue; p = &(line->data[0]); /* Skip Unicode header information */ /* = ef bb bf */ up = (unsigned char* ) p; if ( line->len > 2 && up[0]==0xEF && up[1]==0xBB && up[2]==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } if ( !*p ) { if ( inref ) haveref = 1; /* blank line separates */ else continue; /* blank line to ignore */ } /* Each reference starts with a tag && ends with a blank line */ if ( endin_istag( p ) ) { if ( reference->len ) str_addchar( reference, '\n' ); str_strcatc( reference, p ); inref = 1; } else if ( inref && p ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } str_empty( line ); } if ( reference->len ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int endin_processf() *****************************************************/ static char* process_endline( str *tag, str *data, char *p ) { int i; i = 0; while ( i<2 && *p ) { str_addchar( tag, *p++); i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static char * process_endline2( str *tag, str *data, char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static int endin_processf( fields *endin, char *p, char *filename, long nref, param *pm ) { str tag, data; int status, n; strs_init( &tag, &data, NULL ); while ( *p ) { strs_empty( &tag, &data, NULL ); if ( endin_istag( p ) ) { p = process_endline( &tag, &data, p ); if ( str_is_empty( &data ) ) continue; status = fields_add( endin, str_cstr( &tag ), str_cstr( &data ), 0 ); if ( status!=FIELDS_OK ) return 0; } else { p = process_endline2( &tag, &data, p ); /* endnote puts %K only on 1st line of keywords */ n = fields_num( endin ); if ( n>0 && str_has_value( &data ) ) { if ( !strncmp( endin->tag[n-1].data, "%K", 2 ) ) { status = fields_add( endin, "%K", str_cstr( &data ), 0 ); if ( status!=FIELDS_OK ) return 0; } else { str_addchar( &(endin->data[n-1]), ' ' ); str_strcat( &(endin->data[n-1]), &data ); } } } } strs_free( &tag, &data, NULL ); return 1; } /***************************************************** PUBLIC: int endin_typef() *****************************************************/ /* Endnote defaults if no %0 tag * * if %J & %V - journal article * if %B - book section * if %R & !%T - report * if %I & !%B & !%J & !%R - book * if !%B & !%J & !%R & !%I - journal article */ int endin_typef( fields *endin, char *filename, int nrefs, param *p ) { int ntypename, nrefname, is_default, nj, nv, nb, nr, nt, ni; char *refname = "", *typename=""; ntypename = fields_find( endin, "%0", LEVEL_MAIN ); nrefname = fields_find( endin, "%F", LEVEL_MAIN ); if ( nrefname!=-1 ) refname = fields_value( endin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=-1 ) typename = fields_value( endin, ntypename, FIELDS_CHRP_NOUSE ); else { nj = fields_find( endin, "%J", 0 ); nv = fields_find( endin, "%V", 0 ); nb = fields_find( endin, "%B", 0 ); nr = fields_find( endin, "%R", 0 ); nt = fields_find( endin, "%T", 0 ); ni = fields_find( endin, "%I", 0 ); if ( nj!=-1 && nv!=-1 ) { typename = "Journal Article"; } else if ( nb!=-1 ) { typename = "Book Section"; } else if ( nr!=-1 && nt==-1 ) { typename = "Report"; } else if ( ni!=-1 && nb==-1 && nj==-1 && nr==-1 ) { typename = "Book"; } else if ( nb==-1 && nj==-1 && nr==-1 && ni==-1 ) { typename = "Journal Article"; } } return get_reftype( typename, nrefs, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: void endin_cleanf() *****************************************************/ /* Wiley puts multiple authors separated by commas on the %A lines. * We can detect this by finding the terminal comma in the value * from the tag/value pair. * * "%A" "Author A. X. Last, Author N. B. Next," */ static int is_wiley_author( fields *endin, int n ) { str *t, *v; t = fields_tag( endin, n, FIELDS_STRP_NOUSE ); if ( str_is_empty( t ) || strcmp( str_cstr( t ), "%A" ) ) return 0; v = fields_value( endin, n, FIELDS_STRP_NOUSE ); if ( str_is_empty( v ) ) return 0; if ( v->data[v->len-1]!=',' ) return 0; return 1; } static int add_wiley_author( fields *endin, char *intag, str *instring, int inlevel, str *name, int authornum ) { int fstatus; /* if first author, just replace the data string in the field */ if ( authornum==0 ) { str_strcpy( instring, name ); if ( str_memerr( instring ) ) return BIBL_ERR_MEMERR; } /* otherwise, append the author */ else { fstatus = fields_add( endin, intag, str_cstr( name ), inlevel ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int cleanup_wiley_author( fields *endin, int n ) { int status=BIBL_OK, inlevel, authornum = 0; str *instring, copy, name; char *p, *intag; strs_init( ©, &name, NULL ); intag = fields_tag ( endin, n, FIELDS_CHRP_NOUSE ); instring = fields_value( endin, n, FIELDS_STRP_NOUSE ); inlevel = fields_level( endin, n ); str_strcpy( ©, instring ); p = str_cstr( © ); while ( *p ) { if ( *p==',' ) { if ( str_memerr( &name ) ) { status = BIBL_ERR_MEMERR; goto out; } status = add_wiley_author( endin, intag, instring, inlevel, &name, authornum ); if ( status!=BIBL_OK ) goto out; str_empty( &name ); authornum++; p++; while ( is_ws( *p ) ) p++; } else { str_addchar( &name, *p ); p++; } } if ( str_has_value( &name ) ) status = add_wiley_author( endin, intag, instring, inlevel, &name, authornum ); out: strs_free( ©, &name, NULL ); return status; } static int endin_cleanref( fields *endin ) { int i, n, status; n = fields_num( endin ); for ( i=0; inrefs; ++i ) endin_cleanref( bin->ref[i] ); return BIBL_OK; } /***************************************************** PUBLIC: int endin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* month_convert() * convert month name to number in format MM, e.g. "January" -> "01" * if converted, return 1 * otherwise return 0 */ static int month_convert( char *in, char *out ) { char *month1[12]={ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; char *month2[12]={ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; int i, found = -1; for ( i=0; i<12 && found==-1; ++i ) { if ( !strcasecmp( in, month1[i] ) ) found = i; if ( !strcasecmp( in, month2[i] ) ) found = i; } if ( found==-1 ) return 0; if ( found > 8 ) sprintf( out, "%d", found+1 ); else sprintf( out, "0%d", found+1 ); return 1; } static int endin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *tags[3][2] = { { "DATE:YEAR", "PARTDATE:YEAR" }, { "DATE:MONTH", "PARTDATE:MONTH" }, { "DATE:DAY", "PARTDATE:DAY" } }; char *p = invalue->data; char month[10], *m; int part, status; str date; str_init( &date ); if ( !strncasecmp( outtag, "PART", 4 ) ) part = 1; else part = 0; /* %D YEAR */ if ( !strcasecmp( intag->data, "%D" ) ) { str_cpytodelim( &date, skip_ws( p ), "", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } /* %8 MONTH DAY, YEAR */ /* %8 MONTH, YEAR */ /* %8 MONTH YEAR */ else if ( !strcasecmp( intag->data, "%8" ) ) { /* ...get month */ p = str_cpytodelim( &date, skip_ws( p ), " ,\n", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { if ( month_convert( date.data, month ) ) m = month; else m = str_cstr( &date ); status = fields_add( bibout, tags[1][part], m, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = skip_ws( p ); if ( *p==',' ) p++; /* ...get days */ p = str_cpytodelim( &date, skip_ws( p ), ",\n", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( date.len>0 && date.len<3 ) { status = fields_add( bibout, tags[2][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( date.len==4 ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = skip_ws( p ); if ( *p==',' ) p++; /* ...get year */ (void) str_cpytodelim( &date, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { status = fields_add( bibout, tags[0][part], date.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } str_free( &date ); return BIBL_OK; } static int endin_type( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { lookups types[] = { { "GENERIC", "ARTICLE" }, { "BOOK", "BOOK" }, { "MANUSCRIPT", "MANUSCRIPT" }, { "CONFERENCE PROCEEDINGS", "INPROCEEDINGS"}, { "REPORT", "REPORT" }, { "COMPUTER PROGRAM", "BOOK" }, { "AUDIOVISUAL MATERIAL", "AUDIOVISUAL" }, { "ARTWORK", "BOOK" }, { "PATENT", "BOOK" }, { "BILL", "BILL" }, { "CASE", "CASE" }, { "JOURNAL ARTICLE", "ARTICLE" }, { "MAGAZINE ARTICLE", "ARTICLE" }, { "BOOK SECTION", "INBOOK" }, { "EDITED BOOK", "BOOK" }, { "NEWSPAPER ARTICLE", "NEWSARTICLE" }, { "THESIS", "PHDTHESIS" }, { "PERSONAL COMMUNICATION", "COMMUNICATION" }, { "ELECTRONIC SOURCE", "TEXT" }, { "FILM OR BROADCAST", "AUDIOVISUAL" }, { "MAP", "MAP" }, { "HEARING", "HEARING" }, { "STATUTE", "STATUTE" }, { "CHART OR TABLE", "CHART" }, { "WEB PAGE", "WEBPAGE" }, }; int ntypes = sizeof( types ) / sizeof( lookups ); int i, status, found=0; for ( i=0; idata ) ) { found = 1; status = fields_add( bibout, "INTERNAL_TYPE", types[i].newstr, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } if ( !found ) { fprintf( stderr, "Did not identify reference type '%s'\n", invalue->data ); fprintf( stderr, "Defaulting to journal article type\n"); status = fields_add( bibout, "INTERNAL_TYPE", types[0].newstr, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static void endin_notag( param *p, char *tag, char *data ) { if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot find tag '%s'='%s'\n", tag, data ); } } int endin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SERIALNO ] = generic_serialno, [ PAGES ] = generic_pages, [ NOTES ] = generic_notes, [ URL ] = generic_url, [ GENRE ] = generic_genre, [ TYPE ] = endin_type, [ DATE ] = endin_date, }; int i, level, process, nfields, fstatus, status = BIBL_OK; char *outtag; str *intag, *invalue; nfields = fields_num( bibin ); for ( i=0; idata[0]!='%' ) { fstatus = fields_add( bibout, str_cstr( intag ), str_cstr( invalue ), bibin->level[i] ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; continue; } if ( !translate_oldtag( str_cstr( intag ), reftype, p->all, p->nall, &process, &level, &outtag ) ) { endin_notag( p, str_cstr( intag ), str_cstr( invalue ) ); continue; } fields_setused( bibin, i ); status = convertfns[ process ]( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } return status; } hs-bibutils-6.7.0.0/bibutils/endout.c0000644000000000000000000007567600000000000015542 0ustar0000000000000000/* * endout.c * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "bibformats.h" static int endout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static void endout_writeheader( FILE *outptr, param *p ); void endout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_ENDNOTEOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; if ( p->charsetout == BIBL_CHARSET_UNICODE ) { p->utf8out = p->utf8bom = 1; } p->headerf = endout_writeheader; p->footerf = NULL; p->writef = endout_write; } enum { TYPE_UNKNOWN = 0, TYPE_GENERIC, /* Generic */ TYPE_ARTWORK, /* Artwork */ TYPE_AUDIOVISUAL, /* Audiovisual Material */ TYPE_BILL, /* Bill */ TYPE_BOOK, /* Book */ TYPE_INBOOK, /* Book Section */ TYPE_CASE, /* Case */ TYPE_CHARTTABLE, /* Chart or Table */ TYPE_CLASSICALWORK, /* Classical Work */ TYPE_PROGRAM, /* Computer Program */ TYPE_INPROCEEDINGS, /* Conference Paper */ TYPE_PROCEEDINGS, /* Conference Proceedings */ TYPE_EDITEDBOOK, /* Edited Book */ TYPE_EQUATION, /* Equation */ TYPE_ELECTRONICARTICLE, /* Electronic Article */ TYPE_ELECTRONICBOOK, /* Electronic Book */ TYPE_ELECTRONIC, /* Electronic Source */ TYPE_FIGURE, /* Figure */ TYPE_FILMBROADCAST, /* Film or Broadcast */ TYPE_GOVERNMENT, /* Government Document */ TYPE_HEARING, /* Hearing */ TYPE_ARTICLE, /* Journal Article */ TYPE_LEGALRULE, /* Legal Rule/Regulation */ TYPE_MAGARTICLE, /* Magazine Article */ TYPE_MANUSCRIPT, /* Manuscript */ TYPE_MAP, /* Map */ TYPE_NEWSARTICLE, /* Newspaper Article */ TYPE_ONLINEDATABASE, /* Online Database */ TYPE_ONLINEMULTIMEDIA, /* Online Multimedia */ TYPE_PATENT, /* Patent */ TYPE_COMMUNICATION, /* Personal Communication */ TYPE_REPORT, /* Report */ TYPE_STATUTE, /* Statute */ TYPE_THESIS, /* Thesis */ TYPE_MASTERSTHESIS, /* Thesis */ TYPE_PHDTHESIS, /* Thesis */ TYPE_DIPLOMATHESIS, /* Thesis */ TYPE_DOCTORALTHESIS, /* Thesis */ TYPE_HABILITATIONTHESIS, /* Thesis */ TYPE_LICENTIATETHESIS, /* Thesis */ TYPE_UNPUBLISHED, /* Unpublished Work */ }; static void write_type( FILE *fp, int type ) { switch( type ) { case TYPE_UNKNOWN: fprintf( fp, "TYPE_UNKNOWN" ); break; case TYPE_GENERIC: fprintf( fp, "TYPE_GENERIC" ); break; case TYPE_ARTWORK: fprintf( fp, "TYPE_ARTWORK" ); break; case TYPE_AUDIOVISUAL: fprintf( fp, "TYPE_AUDIOVISUAL" ); break; case TYPE_BILL: fprintf( fp, "TYPE_BILL" ); break; case TYPE_BOOK: fprintf( fp, "TYPE_BOOK" ); break; case TYPE_INBOOK: fprintf( fp, "TYPE_INBOOK" ); break; case TYPE_CASE: fprintf( fp, "TYPE_CASE" ); break; case TYPE_CHARTTABLE: fprintf( fp, "TYPE_CHARITABLE" ); break; case TYPE_CLASSICALWORK: fprintf( fp, "TYPE_CLASSICALWORK" ); break; case TYPE_PROGRAM: fprintf( fp, "TYPE_PROGRAM" ); break; case TYPE_INPROCEEDINGS: fprintf( fp, "TYPE_INPROCEEDINGS" ); break; case TYPE_PROCEEDINGS: fprintf( fp, "TYPE_PROCEEDINGS" ); break; case TYPE_EDITEDBOOK: fprintf( fp, "TYPE_EDITEDBOOK" ); break; case TYPE_EQUATION: fprintf( fp, "TYPE_EQUATION" ); break; case TYPE_ELECTRONICARTICLE: fprintf( fp, "TYPE_ELECTRONICARTICLE" ); break; case TYPE_ELECTRONICBOOK: fprintf( fp, "TYPE_ELECTRONICBOOK" ); break; case TYPE_ELECTRONIC: fprintf( fp, "TYPE_ELECTRONIC" ); break; case TYPE_FIGURE: fprintf( fp, "TYPE_FIGURE" ); break; case TYPE_FILMBROADCAST: fprintf( fp, "TYPE_FILMBROADCAST" ); break; case TYPE_GOVERNMENT: fprintf( fp, "TYPE_GOVERNMENT" ); break; case TYPE_HEARING: fprintf( fp, "TYPE_HEARING" ); break; case TYPE_ARTICLE: fprintf( fp, "TYPE_ARTICLE" ); break; case TYPE_LEGALRULE: fprintf( fp, "TYPE_LEGALRULE" ); break; case TYPE_MAGARTICLE: fprintf( fp, "TYPE_MAGARTICLE" ); break; case TYPE_MANUSCRIPT: fprintf( fp, "TYPE_MANUSCRIPT" ); break; case TYPE_MAP: fprintf( fp, "TYPE_MAP" ); break; case TYPE_NEWSARTICLE: fprintf( fp, "TYPE_NEWSARTICLE" ); break; case TYPE_ONLINEDATABASE: fprintf( fp, "TYPE_ONLINEDATABASE" ); break; case TYPE_ONLINEMULTIMEDIA: fprintf( fp, "TYPE_ONLINEMULTIMEDIA" ); break; case TYPE_PATENT: fprintf( fp, "TYPE_PATENT" ); break; case TYPE_COMMUNICATION: fprintf( fp, "TYPE_COMMUNICATION" ); break; case TYPE_REPORT: fprintf( fp, "TYPE_REPORT" ); break; case TYPE_STATUTE: fprintf( fp, "TYPE_STATUTE" ); break; case TYPE_THESIS: fprintf( fp, "TYPE_THESIS" ); break; case TYPE_MASTERSTHESIS: fprintf( fp, "TYPE_MASTERSTHESIS" ); break; case TYPE_PHDTHESIS: fprintf( fp, "TYPE_PHDTHESIS" ); break; case TYPE_DIPLOMATHESIS: fprintf( fp, "TYPE_DIPLOMATHESIS" ); break; case TYPE_DOCTORALTHESIS: fprintf( fp, "TYPE_DOCTORALTHESIS" ); break; case TYPE_HABILITATIONTHESIS:fprintf( fp, "TYPE_HABILITATIONTHESIS" ); break; case TYPE_UNPUBLISHED: fprintf( fp, "TYPE_UNPUBLISHED" ); break; default: fprintf( fp, "Error - type not in enum" );break; } } typedef struct match_type { char *name; int type; } match_type; static int get_type( fields *in, param *p, unsigned long refnum ) { /* Comment out TYPE_GENERIC entries as that is default, but * keep in source as record of mapping decision. */ match_type match_genres[] = { /* MARC Authority elements */ { "art original", TYPE_ARTWORK }, { "art reproduction", TYPE_ARTWORK }, { "article", TYPE_ARTICLE }, { "atlas", TYPE_MAP }, { "autobiography", TYPE_BOOK }, /* { "bibliography", TYPE_GENERIC },*/ { "biography", TYPE_BOOK }, { "book", TYPE_BOOK }, /* { "calendar", TYPE_GENERIC },*/ /* { "catalog", TYPE_GENERIC },*/ { "chart", TYPE_CHARTTABLE }, /* { "comic or graphic novel", TYPE_GENERIC },*/ /* { "comic strip", TYPE_GENERIC },*/ { "conference publication", TYPE_PROCEEDINGS }, { "database", TYPE_ONLINEDATABASE }, /* { "dictionary", TYPE_GENERIC },*/ { "diorama", TYPE_ARTWORK }, /* { "directory", TYPE_GENERIC },*/ { "discography", TYPE_AUDIOVISUAL }, /* { "drama", TYPE_GENERIC },*/ { "encyclopedia", TYPE_BOOK }, /* { "essay", TYPE_GENERIC }, */ /* { "festschrift", TYPE_GENERIC },*/ { "fiction", TYPE_BOOK }, { "filmography", TYPE_FILMBROADCAST }, { "filmstrip", TYPE_FILMBROADCAST }, /* { "finding aid", TYPE_GENERIC },*/ /* { "flash card", TYPE_GENERIC },*/ { "folktale", TYPE_CLASSICALWORK }, { "font", TYPE_ELECTRONIC }, /* { "game", TYPE_GENERIC },*/ { "government publication", TYPE_GOVERNMENT }, { "graphic", TYPE_FIGURE }, { "globe", TYPE_MAP }, /* { "handbook", TYPE_GENERIC },*/ { "history", TYPE_BOOK }, { "hymnal", TYPE_BOOK }, /* { "humor, satire", TYPE_GENERIC },*/ /* { "index", TYPE_GENERIC },*/ /* { "instruction", TYPE_GENERIC },*/ /* { "interview", TYPE_GENERIC },*/ { "issue", TYPE_ARTICLE }, { "journal", TYPE_ARTICLE }, /* { "kit", TYPE_GENERIC },*/ /* { "language instruction", TYPE_GENERIC },*/ /* { "law report or digest", TYPE_GENERIC },*/ /* { "legal article", TYPE_GENERIC },*/ { "legal case and case notes", TYPE_CASE }, { "legislation", TYPE_BILL }, { "letter", TYPE_COMMUNICATION }, { "loose-leaf", TYPE_GENERIC }, { "map", TYPE_MAP }, /* { "memoir", TYPE_GENERIC },*/ /* { "microscope slide", TYPE_GENERIC },*/ /* { "model", TYPE_GENERIC },*/ { "motion picture", TYPE_AUDIOVISUAL }, { "multivolume monograph", TYPE_BOOK }, { "newspaper", TYPE_NEWSARTICLE }, { "novel", TYPE_BOOK }, /* { "numeric data", TYPE_GENERIC },*/ /* { "offprint", TYPE_GENERIC },*/ { "online system or service", TYPE_ELECTRONIC }, { "patent", TYPE_PATENT }, { "periodical", TYPE_MAGARTICLE }, { "picture", TYPE_ARTWORK }, /* { "poetry", TYPE_GENERIC },*/ { "programmed text", TYPE_PROGRAM }, /* { "realia", TYPE_GENERIC },*/ { "rehearsal", TYPE_AUDIOVISUAL }, /* { "remote sensing image", TYPE_GENERIC },*/ /* { "reporting", TYPE_GENERIC },*/ { "report", TYPE_REPORT }, /* { "review", TYPE_GENERIC },*/ /* { "script", TYPE_GENERIC },*/ /* { "series", TYPE_GENERIC },*/ /* { "short story", TYPE_GENERIC },*/ /* { "slide", TYPE_GENERIC },*/ { "sound", TYPE_AUDIOVISUAL }, /* { "speech", TYPE_GENERIC },*/ /* { "standard or specification", TYPE_GENERIC },*/ /* { "statistics", TYPE_GENERIC },*/ /* { "survey of literature", TYPE_GENERIC },*/ { "technical drawing", TYPE_ARTWORK }, { "technical report", TYPE_REPORT }, { "thesis", TYPE_THESIS }, /* { "toy", TYPE_GENERIC },*/ /* { "transparency", TYPE_GENERIC },*/ /* { "treaty", TYPE_GENERIC },*/ { "videorecording", TYPE_AUDIOVISUAL }, { "web site", TYPE_ELECTRONIC }, /* Non-MARC Authority elements */ { "academic journal", TYPE_ARTICLE }, { "magazine", TYPE_MAGARTICLE }, { "hearing", TYPE_HEARING }, { "Ph.D. thesis", TYPE_PHDTHESIS }, { "Masters thesis", TYPE_MASTERSTHESIS }, { "Diploma thesis", TYPE_DIPLOMATHESIS }, { "Doctoral thesis", TYPE_DOCTORALTHESIS }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS }, { "Licentiate thesis", TYPE_LICENTIATETHESIS }, { "communication", TYPE_COMMUNICATION }, { "manuscript", TYPE_MANUSCRIPT }, { "unpublished", TYPE_UNPUBLISHED }, }; int nmatch_genres = sizeof( match_genres ) / sizeof( match_genres[0] ); int i, j, n, maxlevel, type = TYPE_UNKNOWN; char *tag, *data; /* Determine type from genre information */ for ( i=0; in; ++i ) { tag = fields_tag( in, i, FIELDS_CHRP ); if ( strcasecmp( tag, "GENRE:MARC" )!=0 && strcasecmp( tag, "GENRE:BIBUTILS" )!=0 && strcasecmp( tag, "GENRE:UNKNOWN" )!=0 ) continue; data = fields_value( in, i, FIELDS_CHRP ); for ( j=0; jverbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from tag '%s' data '%s': ", tag, data ); write_type( stderr, type ); fprintf( stderr, "\n" ); } if ( type==TYPE_UNKNOWN ) { if ( !strcasecmp( data, "periodical" ) ) type = TYPE_ARTICLE; else if ( !strcasecmp( data, "thesis" ) ) type = TYPE_THESIS; else if ( !strcasecmp( data, "book" ) ) { if ( in->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } else if ( !strcasecmp( data, "collection" ) ) { if ( in->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } if ( type!=TYPE_UNKNOWN ) fields_setused( in, i ); } /* the inbook type should be defined if 'book' in host */ if ( type==TYPE_BOOK && in->level[i]>0 ) type = TYPE_INBOOK; } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from genre element: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } /* Determine from resource information */ if ( type==TYPE_UNKNOWN ) { for ( i=0; in; ++i ) { if ( strcasecmp( fields_tag( in, i, FIELDS_CHRP ), "RESOURCE" ) ) continue; data = fields_value( in, i, FIELDS_CHRP ); if ( !strcasecmp( data, "moving image" ) ) type = TYPE_FILMBROADCAST; else if ( !strcasecmp( data, "software, multimedia" ) ) type = TYPE_PROGRAM; if ( type!=TYPE_UNKNOWN ) fields_setused( in, i ); } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from resource element: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } } /* Determine from issuance information */ if ( type==TYPE_UNKNOWN ) { for ( i=0; in; ++i ) { if ( strcasecmp( fields_tag( in, i, FIELDS_CHRP ), "ISSUANCE" ) ) continue; data = fields_value( in, i, FIELDS_CHRP ); if ( !strcasecmp( data, "monographic" ) ) { if ( in->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from issuance element: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } } /* default to generic or book chapter, depending on maxlevel */ if ( type==TYPE_UNKNOWN ) { maxlevel = fields_maxlevel( in ); if ( maxlevel > 0 ) type = TYPE_INBOOK; else { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot identify TYPE in reference %lu ", refnum+1 ); n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) fprintf( stderr, " %s", (char *) fields_value( in, n, FIELDS_CHRP ) ); fprintf( stderr, " (defaulting to generic)\n" ); type = TYPE_GENERIC; } } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Final type: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } return type; } static void append_type( int type, fields *out, param *p, int *status ) { /* These are restricted to Endnote-defined types */ match_type genrenames[] = { { "Generic", TYPE_GENERIC }, { "Artwork", TYPE_ARTWORK }, { "Audiovisual Material", TYPE_AUDIOVISUAL }, { "Bill", TYPE_BILL }, { "Book", TYPE_BOOK }, { "Book Section", TYPE_INBOOK }, { "Case", TYPE_CASE }, { "Chart or Table", TYPE_CHARTTABLE }, { "Classical Work", TYPE_CLASSICALWORK }, { "Computer Program", TYPE_PROGRAM }, { "Conference Paper", TYPE_INPROCEEDINGS }, { "Conference Proceedings", TYPE_PROCEEDINGS }, { "Edited Book", TYPE_EDITEDBOOK }, { "Equation", TYPE_EQUATION }, { "Electronic Article", TYPE_ELECTRONICARTICLE }, { "Electronic Book", TYPE_ELECTRONICBOOK }, { "Electronic Source", TYPE_ELECTRONIC }, { "Figure", TYPE_FIGURE }, { "Film or Broadcast", TYPE_FILMBROADCAST }, { "Government Document", TYPE_GOVERNMENT }, { "Hearing", TYPE_HEARING }, { "Journal Article", TYPE_ARTICLE }, { "Legal Rule/Regulation", TYPE_LEGALRULE }, { "Magazine Article", TYPE_MAGARTICLE }, { "Manuscript", TYPE_MANUSCRIPT }, { "Map", TYPE_MAP }, { "Newspaper Article", TYPE_NEWSARTICLE }, { "Online Database", TYPE_ONLINEDATABASE }, { "Online Multimedia", TYPE_ONLINEMULTIMEDIA }, { "Patent", TYPE_PATENT }, { "Personal Communication", TYPE_COMMUNICATION }, { "Report", TYPE_REPORT }, { "Statute", TYPE_STATUTE }, { "Thesis", TYPE_THESIS }, { "Thesis", TYPE_PHDTHESIS }, { "Thesis", TYPE_MASTERSTHESIS }, { "Thesis", TYPE_DIPLOMATHESIS }, { "Thesis", TYPE_DOCTORALTHESIS }, { "Thesis", TYPE_HABILITATIONTHESIS }, { "Unpublished Work", TYPE_UNPUBLISHED }, }; int ngenrenames = sizeof( genrenames ) / sizeof( genrenames[0] ); int i, fstatus, found = 0; for ( i=0; iprogname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot identify type %d\n", type ); } } static int append_title( fields *in, char *full, char *sub, char *endtag, int level, fields *out, int *status ) { str *mainttl = fields_findv( in, level, FIELDS_STRP, full ); str *subttl = fields_findv( in, level, FIELDS_STRP, sub ); str fullttl; int fstatus; str_init( &fullttl ); title_combine( &fullttl, mainttl, subttl ); if ( str_memerr( &fullttl ) ) { *status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fullttl ) ) { fstatus = fields_add( out, endtag, str_cstr( &fullttl ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } out: str_free( &fullttl ); return 1; } static void append_people( fields *in, char *tag, char *entag, int level, fields *out, int *status ) { int i, n, flvl, fstatus; str oneperson; char *ftag; str_init( &oneperson ); n = fields_num( in ); for ( i=0; i0 && m<13 ) str_strcpyc( &monday, months[m-1] ); else str_strcpyc( &monday, month ); } if ( month && day ) str_strcatc( &monday, " " ); if ( day ) str_strcatc( &monday, day ); fstatus = fields_add( out, "%8", str_cstr( &monday ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &monday ); } static void append_genrehint( int type, fields *out, vplist *a, int *status ) { vplist_index i; int fstatus; char *g; for ( i=0; in; ++i ) { g = ( char * ) vplist_get( a, i ); if ( !strcmp( g, "journal article" ) && type==TYPE_ARTICLE ) continue; if ( !strcmp( g, "academic journal" ) && type==TYPE_ARTICLE ) continue; if ( !strcmp( g, "collection" ) && type==TYPE_INBOOK ) continue; if ( !strcmp( g, "television broadcast" ) && type==TYPE_FILMBROADCAST ) continue; if ( !strcmp( g, "electronic" ) && type==TYPE_PROGRAM ) continue; if ( !strcmp( g, "magazine" ) && type==TYPE_MAGARTICLE ) continue; if ( !strcmp( g, "miscellaneous" ) && type==TYPE_GENERIC ) continue; if ( !strcmp( g, "hearing" ) && type==TYPE_HEARING ) continue; if ( !strcmp( g, "communication" ) && type==TYPE_COMMUNICATION ) continue; if ( !strcmp( g, "report" ) && type==TYPE_REPORT ) continue; if ( !strcmp( g, "book chapter" ) && type==TYPE_INBOOK ) continue; fstatus = fields_add( out, "%9", g, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_all_genrehint( int type, fields *in, fields *out, int *status ) { vplist a; vplist_init( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_CHRP, &a, "GENRE:BIBUTILS" ); append_genrehint( type, out, &a, status ); vplist_empty( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_CHRP, &a, "GENRE:UNKNOWN" ); append_genrehint( type, out, &a, status ); vplist_free( &a ); } static void append_thesishint( int type, fields *out, int *status ) { int fstatus; if ( type==TYPE_MASTERSTHESIS ) { fstatus = fields_add( out, "%9", "Masters thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_PHDTHESIS ) { fstatus = fields_add( out, "%9", "Ph.D. thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_DIPLOMATHESIS ) { fstatus = fields_add( out, "%9", "Diploma thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_DOCTORALTHESIS ) { fstatus = fields_add( out, "%9", "Doctoral thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_HABILITATIONTHESIS ) { fstatus = fields_add( out, "%9", "Habilitation thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_LICENTIATETHESIS ) { fstatus = fields_add( out, "%9", "Licentiate thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static void append_easyall( fields *in, char *tag, char *entag, int level, fields *out, int *status ) { vplist_index i; int fstatus; vplist a; vplist_init( &a ); fields_findv_each( in, level, FIELDS_CHRP, &a, tag ); for ( i=0; in; ++i ) { fprintf( fp, "%s %s\n", (char*) fields_tag( out, i, FIELDS_CHRP ), (char*) fields_value( out, i, FIELDS_CHRP ) ); } fprintf( fp, "\n" ); fflush( fp ); } static int endout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); status = append_data( in, &out, p, refnum ); if ( status==BIBL_OK ) output( fp, &out ); fields_free( &out ); return status; } static void endout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/endout.c0000755000000000000000000007567600000000000015545 0ustar0000000000000000/* * endout.c * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "bibformats.h" static int endout_write( fields *in, FILE *fp, param *p, unsigned long refnum ); static void endout_writeheader( FILE *outptr, param *p ); void endout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_ENDNOTEOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; if ( p->charsetout == BIBL_CHARSET_UNICODE ) { p->utf8out = p->utf8bom = 1; } p->headerf = endout_writeheader; p->footerf = NULL; p->writef = endout_write; } enum { TYPE_UNKNOWN = 0, TYPE_GENERIC, /* Generic */ TYPE_ARTWORK, /* Artwork */ TYPE_AUDIOVISUAL, /* Audiovisual Material */ TYPE_BILL, /* Bill */ TYPE_BOOK, /* Book */ TYPE_INBOOK, /* Book Section */ TYPE_CASE, /* Case */ TYPE_CHARTTABLE, /* Chart or Table */ TYPE_CLASSICALWORK, /* Classical Work */ TYPE_PROGRAM, /* Computer Program */ TYPE_INPROCEEDINGS, /* Conference Paper */ TYPE_PROCEEDINGS, /* Conference Proceedings */ TYPE_EDITEDBOOK, /* Edited Book */ TYPE_EQUATION, /* Equation */ TYPE_ELECTRONICARTICLE, /* Electronic Article */ TYPE_ELECTRONICBOOK, /* Electronic Book */ TYPE_ELECTRONIC, /* Electronic Source */ TYPE_FIGURE, /* Figure */ TYPE_FILMBROADCAST, /* Film or Broadcast */ TYPE_GOVERNMENT, /* Government Document */ TYPE_HEARING, /* Hearing */ TYPE_ARTICLE, /* Journal Article */ TYPE_LEGALRULE, /* Legal Rule/Regulation */ TYPE_MAGARTICLE, /* Magazine Article */ TYPE_MANUSCRIPT, /* Manuscript */ TYPE_MAP, /* Map */ TYPE_NEWSARTICLE, /* Newspaper Article */ TYPE_ONLINEDATABASE, /* Online Database */ TYPE_ONLINEMULTIMEDIA, /* Online Multimedia */ TYPE_PATENT, /* Patent */ TYPE_COMMUNICATION, /* Personal Communication */ TYPE_REPORT, /* Report */ TYPE_STATUTE, /* Statute */ TYPE_THESIS, /* Thesis */ TYPE_MASTERSTHESIS, /* Thesis */ TYPE_PHDTHESIS, /* Thesis */ TYPE_DIPLOMATHESIS, /* Thesis */ TYPE_DOCTORALTHESIS, /* Thesis */ TYPE_HABILITATIONTHESIS, /* Thesis */ TYPE_LICENTIATETHESIS, /* Thesis */ TYPE_UNPUBLISHED, /* Unpublished Work */ }; static void write_type( FILE *fp, int type ) { switch( type ) { case TYPE_UNKNOWN: fprintf( fp, "TYPE_UNKNOWN" ); break; case TYPE_GENERIC: fprintf( fp, "TYPE_GENERIC" ); break; case TYPE_ARTWORK: fprintf( fp, "TYPE_ARTWORK" ); break; case TYPE_AUDIOVISUAL: fprintf( fp, "TYPE_AUDIOVISUAL" ); break; case TYPE_BILL: fprintf( fp, "TYPE_BILL" ); break; case TYPE_BOOK: fprintf( fp, "TYPE_BOOK" ); break; case TYPE_INBOOK: fprintf( fp, "TYPE_INBOOK" ); break; case TYPE_CASE: fprintf( fp, "TYPE_CASE" ); break; case TYPE_CHARTTABLE: fprintf( fp, "TYPE_CHARITABLE" ); break; case TYPE_CLASSICALWORK: fprintf( fp, "TYPE_CLASSICALWORK" ); break; case TYPE_PROGRAM: fprintf( fp, "TYPE_PROGRAM" ); break; case TYPE_INPROCEEDINGS: fprintf( fp, "TYPE_INPROCEEDINGS" ); break; case TYPE_PROCEEDINGS: fprintf( fp, "TYPE_PROCEEDINGS" ); break; case TYPE_EDITEDBOOK: fprintf( fp, "TYPE_EDITEDBOOK" ); break; case TYPE_EQUATION: fprintf( fp, "TYPE_EQUATION" ); break; case TYPE_ELECTRONICARTICLE: fprintf( fp, "TYPE_ELECTRONICARTICLE" ); break; case TYPE_ELECTRONICBOOK: fprintf( fp, "TYPE_ELECTRONICBOOK" ); break; case TYPE_ELECTRONIC: fprintf( fp, "TYPE_ELECTRONIC" ); break; case TYPE_FIGURE: fprintf( fp, "TYPE_FIGURE" ); break; case TYPE_FILMBROADCAST: fprintf( fp, "TYPE_FILMBROADCAST" ); break; case TYPE_GOVERNMENT: fprintf( fp, "TYPE_GOVERNMENT" ); break; case TYPE_HEARING: fprintf( fp, "TYPE_HEARING" ); break; case TYPE_ARTICLE: fprintf( fp, "TYPE_ARTICLE" ); break; case TYPE_LEGALRULE: fprintf( fp, "TYPE_LEGALRULE" ); break; case TYPE_MAGARTICLE: fprintf( fp, "TYPE_MAGARTICLE" ); break; case TYPE_MANUSCRIPT: fprintf( fp, "TYPE_MANUSCRIPT" ); break; case TYPE_MAP: fprintf( fp, "TYPE_MAP" ); break; case TYPE_NEWSARTICLE: fprintf( fp, "TYPE_NEWSARTICLE" ); break; case TYPE_ONLINEDATABASE: fprintf( fp, "TYPE_ONLINEDATABASE" ); break; case TYPE_ONLINEMULTIMEDIA: fprintf( fp, "TYPE_ONLINEMULTIMEDIA" ); break; case TYPE_PATENT: fprintf( fp, "TYPE_PATENT" ); break; case TYPE_COMMUNICATION: fprintf( fp, "TYPE_COMMUNICATION" ); break; case TYPE_REPORT: fprintf( fp, "TYPE_REPORT" ); break; case TYPE_STATUTE: fprintf( fp, "TYPE_STATUTE" ); break; case TYPE_THESIS: fprintf( fp, "TYPE_THESIS" ); break; case TYPE_MASTERSTHESIS: fprintf( fp, "TYPE_MASTERSTHESIS" ); break; case TYPE_PHDTHESIS: fprintf( fp, "TYPE_PHDTHESIS" ); break; case TYPE_DIPLOMATHESIS: fprintf( fp, "TYPE_DIPLOMATHESIS" ); break; case TYPE_DOCTORALTHESIS: fprintf( fp, "TYPE_DOCTORALTHESIS" ); break; case TYPE_HABILITATIONTHESIS:fprintf( fp, "TYPE_HABILITATIONTHESIS" ); break; case TYPE_UNPUBLISHED: fprintf( fp, "TYPE_UNPUBLISHED" ); break; default: fprintf( fp, "Error - type not in enum" );break; } } typedef struct match_type { char *name; int type; } match_type; static int get_type( fields *in, param *p, unsigned long refnum ) { /* Comment out TYPE_GENERIC entries as that is default, but * keep in source as record of mapping decision. */ match_type match_genres[] = { /* MARC Authority elements */ { "art original", TYPE_ARTWORK }, { "art reproduction", TYPE_ARTWORK }, { "article", TYPE_ARTICLE }, { "atlas", TYPE_MAP }, { "autobiography", TYPE_BOOK }, /* { "bibliography", TYPE_GENERIC },*/ { "biography", TYPE_BOOK }, { "book", TYPE_BOOK }, /* { "calendar", TYPE_GENERIC },*/ /* { "catalog", TYPE_GENERIC },*/ { "chart", TYPE_CHARTTABLE }, /* { "comic or graphic novel", TYPE_GENERIC },*/ /* { "comic strip", TYPE_GENERIC },*/ { "conference publication", TYPE_PROCEEDINGS }, { "database", TYPE_ONLINEDATABASE }, /* { "dictionary", TYPE_GENERIC },*/ { "diorama", TYPE_ARTWORK }, /* { "directory", TYPE_GENERIC },*/ { "discography", TYPE_AUDIOVISUAL }, /* { "drama", TYPE_GENERIC },*/ { "encyclopedia", TYPE_BOOK }, /* { "essay", TYPE_GENERIC }, */ /* { "festschrift", TYPE_GENERIC },*/ { "fiction", TYPE_BOOK }, { "filmography", TYPE_FILMBROADCAST }, { "filmstrip", TYPE_FILMBROADCAST }, /* { "finding aid", TYPE_GENERIC },*/ /* { "flash card", TYPE_GENERIC },*/ { "folktale", TYPE_CLASSICALWORK }, { "font", TYPE_ELECTRONIC }, /* { "game", TYPE_GENERIC },*/ { "government publication", TYPE_GOVERNMENT }, { "graphic", TYPE_FIGURE }, { "globe", TYPE_MAP }, /* { "handbook", TYPE_GENERIC },*/ { "history", TYPE_BOOK }, { "hymnal", TYPE_BOOK }, /* { "humor, satire", TYPE_GENERIC },*/ /* { "index", TYPE_GENERIC },*/ /* { "instruction", TYPE_GENERIC },*/ /* { "interview", TYPE_GENERIC },*/ { "issue", TYPE_ARTICLE }, { "journal", TYPE_ARTICLE }, /* { "kit", TYPE_GENERIC },*/ /* { "language instruction", TYPE_GENERIC },*/ /* { "law report or digest", TYPE_GENERIC },*/ /* { "legal article", TYPE_GENERIC },*/ { "legal case and case notes", TYPE_CASE }, { "legislation", TYPE_BILL }, { "letter", TYPE_COMMUNICATION }, { "loose-leaf", TYPE_GENERIC }, { "map", TYPE_MAP }, /* { "memoir", TYPE_GENERIC },*/ /* { "microscope slide", TYPE_GENERIC },*/ /* { "model", TYPE_GENERIC },*/ { "motion picture", TYPE_AUDIOVISUAL }, { "multivolume monograph", TYPE_BOOK }, { "newspaper", TYPE_NEWSARTICLE }, { "novel", TYPE_BOOK }, /* { "numeric data", TYPE_GENERIC },*/ /* { "offprint", TYPE_GENERIC },*/ { "online system or service", TYPE_ELECTRONIC }, { "patent", TYPE_PATENT }, { "periodical", TYPE_MAGARTICLE }, { "picture", TYPE_ARTWORK }, /* { "poetry", TYPE_GENERIC },*/ { "programmed text", TYPE_PROGRAM }, /* { "realia", TYPE_GENERIC },*/ { "rehearsal", TYPE_AUDIOVISUAL }, /* { "remote sensing image", TYPE_GENERIC },*/ /* { "reporting", TYPE_GENERIC },*/ { "report", TYPE_REPORT }, /* { "review", TYPE_GENERIC },*/ /* { "script", TYPE_GENERIC },*/ /* { "series", TYPE_GENERIC },*/ /* { "short story", TYPE_GENERIC },*/ /* { "slide", TYPE_GENERIC },*/ { "sound", TYPE_AUDIOVISUAL }, /* { "speech", TYPE_GENERIC },*/ /* { "standard or specification", TYPE_GENERIC },*/ /* { "statistics", TYPE_GENERIC },*/ /* { "survey of literature", TYPE_GENERIC },*/ { "technical drawing", TYPE_ARTWORK }, { "technical report", TYPE_REPORT }, { "thesis", TYPE_THESIS }, /* { "toy", TYPE_GENERIC },*/ /* { "transparency", TYPE_GENERIC },*/ /* { "treaty", TYPE_GENERIC },*/ { "videorecording", TYPE_AUDIOVISUAL }, { "web site", TYPE_ELECTRONIC }, /* Non-MARC Authority elements */ { "academic journal", TYPE_ARTICLE }, { "magazine", TYPE_MAGARTICLE }, { "hearing", TYPE_HEARING }, { "Ph.D. thesis", TYPE_PHDTHESIS }, { "Masters thesis", TYPE_MASTERSTHESIS }, { "Diploma thesis", TYPE_DIPLOMATHESIS }, { "Doctoral thesis", TYPE_DOCTORALTHESIS }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS }, { "Licentiate thesis", TYPE_LICENTIATETHESIS }, { "communication", TYPE_COMMUNICATION }, { "manuscript", TYPE_MANUSCRIPT }, { "unpublished", TYPE_UNPUBLISHED }, }; int nmatch_genres = sizeof( match_genres ) / sizeof( match_genres[0] ); int i, j, n, maxlevel, type = TYPE_UNKNOWN; char *tag, *data; /* Determine type from genre information */ for ( i=0; in; ++i ) { tag = fields_tag( in, i, FIELDS_CHRP ); if ( strcasecmp( tag, "GENRE:MARC" )!=0 && strcasecmp( tag, "GENRE:BIBUTILS" )!=0 && strcasecmp( tag, "GENRE:UNKNOWN" )!=0 ) continue; data = fields_value( in, i, FIELDS_CHRP ); for ( j=0; jverbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from tag '%s' data '%s': ", tag, data ); write_type( stderr, type ); fprintf( stderr, "\n" ); } if ( type==TYPE_UNKNOWN ) { if ( !strcasecmp( data, "periodical" ) ) type = TYPE_ARTICLE; else if ( !strcasecmp( data, "thesis" ) ) type = TYPE_THESIS; else if ( !strcasecmp( data, "book" ) ) { if ( in->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } else if ( !strcasecmp( data, "collection" ) ) { if ( in->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } if ( type!=TYPE_UNKNOWN ) fields_setused( in, i ); } /* the inbook type should be defined if 'book' in host */ if ( type==TYPE_BOOK && in->level[i]>0 ) type = TYPE_INBOOK; } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from genre element: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } /* Determine from resource information */ if ( type==TYPE_UNKNOWN ) { for ( i=0; in; ++i ) { if ( strcasecmp( fields_tag( in, i, FIELDS_CHRP ), "RESOURCE" ) ) continue; data = fields_value( in, i, FIELDS_CHRP ); if ( !strcasecmp( data, "moving image" ) ) type = TYPE_FILMBROADCAST; else if ( !strcasecmp( data, "software, multimedia" ) ) type = TYPE_PROGRAM; if ( type!=TYPE_UNKNOWN ) fields_setused( in, i ); } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from resource element: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } } /* Determine from issuance information */ if ( type==TYPE_UNKNOWN ) { for ( i=0; in; ++i ) { if ( strcasecmp( fields_tag( in, i, FIELDS_CHRP ), "ISSUANCE" ) ) continue; data = fields_value( in, i, FIELDS_CHRP ); if ( !strcasecmp( data, "monographic" ) ) { if ( in->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_INBOOK; } } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from issuance element: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } } /* default to generic or book chapter, depending on maxlevel */ if ( type==TYPE_UNKNOWN ) { maxlevel = fields_maxlevel( in ); if ( maxlevel > 0 ) type = TYPE_INBOOK; else { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot identify TYPE in reference %lu ", refnum+1 ); n = fields_find( in, "REFNUM", LEVEL_ANY ); if ( n!=FIELDS_NOTFOUND ) fprintf( stderr, " %s", (char *) fields_value( in, n, FIELDS_CHRP ) ); fprintf( stderr, " (defaulting to generic)\n" ); type = TYPE_GENERIC; } } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Final type: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } return type; } static void append_type( int type, fields *out, param *p, int *status ) { /* These are restricted to Endnote-defined types */ match_type genrenames[] = { { "Generic", TYPE_GENERIC }, { "Artwork", TYPE_ARTWORK }, { "Audiovisual Material", TYPE_AUDIOVISUAL }, { "Bill", TYPE_BILL }, { "Book", TYPE_BOOK }, { "Book Section", TYPE_INBOOK }, { "Case", TYPE_CASE }, { "Chart or Table", TYPE_CHARTTABLE }, { "Classical Work", TYPE_CLASSICALWORK }, { "Computer Program", TYPE_PROGRAM }, { "Conference Paper", TYPE_INPROCEEDINGS }, { "Conference Proceedings", TYPE_PROCEEDINGS }, { "Edited Book", TYPE_EDITEDBOOK }, { "Equation", TYPE_EQUATION }, { "Electronic Article", TYPE_ELECTRONICARTICLE }, { "Electronic Book", TYPE_ELECTRONICBOOK }, { "Electronic Source", TYPE_ELECTRONIC }, { "Figure", TYPE_FIGURE }, { "Film or Broadcast", TYPE_FILMBROADCAST }, { "Government Document", TYPE_GOVERNMENT }, { "Hearing", TYPE_HEARING }, { "Journal Article", TYPE_ARTICLE }, { "Legal Rule/Regulation", TYPE_LEGALRULE }, { "Magazine Article", TYPE_MAGARTICLE }, { "Manuscript", TYPE_MANUSCRIPT }, { "Map", TYPE_MAP }, { "Newspaper Article", TYPE_NEWSARTICLE }, { "Online Database", TYPE_ONLINEDATABASE }, { "Online Multimedia", TYPE_ONLINEMULTIMEDIA }, { "Patent", TYPE_PATENT }, { "Personal Communication", TYPE_COMMUNICATION }, { "Report", TYPE_REPORT }, { "Statute", TYPE_STATUTE }, { "Thesis", TYPE_THESIS }, { "Thesis", TYPE_PHDTHESIS }, { "Thesis", TYPE_MASTERSTHESIS }, { "Thesis", TYPE_DIPLOMATHESIS }, { "Thesis", TYPE_DOCTORALTHESIS }, { "Thesis", TYPE_HABILITATIONTHESIS }, { "Unpublished Work", TYPE_UNPUBLISHED }, }; int ngenrenames = sizeof( genrenames ) / sizeof( genrenames[0] ); int i, fstatus, found = 0; for ( i=0; iprogname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Cannot identify type %d\n", type ); } } static int append_title( fields *in, char *full, char *sub, char *endtag, int level, fields *out, int *status ) { str *mainttl = fields_findv( in, level, FIELDS_STRP, full ); str *subttl = fields_findv( in, level, FIELDS_STRP, sub ); str fullttl; int fstatus; str_init( &fullttl ); title_combine( &fullttl, mainttl, subttl ); if ( str_memerr( &fullttl ) ) { *status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &fullttl ) ) { fstatus = fields_add( out, endtag, str_cstr( &fullttl ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } out: str_free( &fullttl ); return 1; } static void append_people( fields *in, char *tag, char *entag, int level, fields *out, int *status ) { int i, n, flvl, fstatus; str oneperson; char *ftag; str_init( &oneperson ); n = fields_num( in ); for ( i=0; i0 && m<13 ) str_strcpyc( &monday, months[m-1] ); else str_strcpyc( &monday, month ); } if ( month && day ) str_strcatc( &monday, " " ); if ( day ) str_strcatc( &monday, day ); fstatus = fields_add( out, "%8", str_cstr( &monday ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } str_free( &monday ); } static void append_genrehint( int type, fields *out, vplist *a, int *status ) { vplist_index i; int fstatus; char *g; for ( i=0; in; ++i ) { g = ( char * ) vplist_get( a, i ); if ( !strcmp( g, "journal article" ) && type==TYPE_ARTICLE ) continue; if ( !strcmp( g, "academic journal" ) && type==TYPE_ARTICLE ) continue; if ( !strcmp( g, "collection" ) && type==TYPE_INBOOK ) continue; if ( !strcmp( g, "television broadcast" ) && type==TYPE_FILMBROADCAST ) continue; if ( !strcmp( g, "electronic" ) && type==TYPE_PROGRAM ) continue; if ( !strcmp( g, "magazine" ) && type==TYPE_MAGARTICLE ) continue; if ( !strcmp( g, "miscellaneous" ) && type==TYPE_GENERIC ) continue; if ( !strcmp( g, "hearing" ) && type==TYPE_HEARING ) continue; if ( !strcmp( g, "communication" ) && type==TYPE_COMMUNICATION ) continue; if ( !strcmp( g, "report" ) && type==TYPE_REPORT ) continue; if ( !strcmp( g, "book chapter" ) && type==TYPE_INBOOK ) continue; fstatus = fields_add( out, "%9", g, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; return; } } } static void append_all_genrehint( int type, fields *in, fields *out, int *status ) { vplist a; vplist_init( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_CHRP, &a, "GENRE:BIBUTILS" ); append_genrehint( type, out, &a, status ); vplist_empty( &a ); fields_findv_each( in, LEVEL_ANY, FIELDS_CHRP, &a, "GENRE:UNKNOWN" ); append_genrehint( type, out, &a, status ); vplist_free( &a ); } static void append_thesishint( int type, fields *out, int *status ) { int fstatus; if ( type==TYPE_MASTERSTHESIS ) { fstatus = fields_add( out, "%9", "Masters thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_PHDTHESIS ) { fstatus = fields_add( out, "%9", "Ph.D. thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_DIPLOMATHESIS ) { fstatus = fields_add( out, "%9", "Diploma thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_DOCTORALTHESIS ) { fstatus = fields_add( out, "%9", "Doctoral thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_HABILITATIONTHESIS ) { fstatus = fields_add( out, "%9", "Habilitation thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } else if ( type==TYPE_LICENTIATETHESIS ) { fstatus = fields_add( out, "%9", "Licentiate thesis", LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } } static void append_easyall( fields *in, char *tag, char *entag, int level, fields *out, int *status ) { vplist_index i; int fstatus; vplist a; vplist_init( &a ); fields_findv_each( in, level, FIELDS_CHRP, &a, tag ); for ( i=0; in; ++i ) { fprintf( fp, "%s %s\n", (char*) fields_tag( out, i, FIELDS_CHRP ), (char*) fields_value( out, i, FIELDS_CHRP ) ); } fprintf( fp, "\n" ); fflush( fp ); } static int endout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); status = append_data( in, &out, p, refnum ); if ( status==BIBL_OK ) output( fp, &out ); fields_free( &out ); return status; } static void endout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/endtypes.c0000644000000000000000000017123200000000000016060 0ustar0000000000000000/* * endtypes.c * * Copyright (c) Chris Putnam 2003-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" /* if no specific type can be identified */ static lookups generic[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN } }; static lookups journalarticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE",SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; static lookups magazinearticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* magazine name */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* magazine name */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE",TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE,LEVEL_MAIN }, { "%*", "REVIEWEDITEM",SIMPLE,LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER",SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS",SIMPLE,LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|magazine", ALWAYS, LEVEL_HOST } }; static lookups newspaperarticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "REPORTER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* newspaper name */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* newspaper name */ { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE",TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM",SIMPLE,LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER",SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "AUTHORADDRESS",SIMPLE,LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|newspaper", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "AUTHOR", PERSON, LEVEL_HOST }, /* SERIES_AUTHOR */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%?", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups booksection[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_HOST }, /* editor for book */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* book title */ { "%C", "ADDRESS", SIMPLE, LEVEL_HOST }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_HOST }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%Y", "EDITOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_HOST }, { "%?", "TRANSLATOR", PERSON, LEVEL_HOST }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_HOST }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups editedbook[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "EDITOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_HOST }, /* SERIES_EDITOR */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%P", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%?", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups manuscript[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* COLLECTION_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|manuscript", ALWAYS, LEVEL_MAIN } }; static lookups communication[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "ADDRESSEE", PERSON, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|communication", ALWAYS, LEVEL_MAIN} }; static lookups proceedings[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_MAIN }, { "%B", "TITLE", SIMPLE, LEVEL_HOST }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%Y", "EDITOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_HOST }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; static lookups conferencepaper[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups thesis[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "ACADEMIC_DEPARTMENT", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", PAGES, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, /* thesis type */ { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN } }; static lookups program[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%7", "VERSION", SIMPLE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "COMPUTER", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN } }; static lookups audiovisual[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "WRITER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* COLLECTION_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "EXTENTOFWORK", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "PERFORMER", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|mixed material", ALWAYS, LEVEL_MAIN } }; static lookups broadcast[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "DIRECTOR", PERSON, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%Y", "PRODUCER", PERSON, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%?", "PERFORMER", PERSON, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|moving image", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|motion picture", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|television broadcast", ALWAYS, LEVEL_MAIN }, }; static lookups electronic[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "ACCESS_YEAR", SIMPLE, LEVEL_MAIN }, { "%N", "ACCESS_DATE", DATE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "UPDATE_DATE", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups webpage[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "ACCESS_YEAR", SIMPLE, LEVEL_MAIN }, { "%N", "ACCESS_DATE", DATE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "UPDATE_DATE", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|web page", ALWAYS, LEVEL_MAIN }, }; static lookups artwork[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "ARTIST", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|art original", ALWAYS, LEVEL_MAIN } }; static lookups report[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; static lookups map[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "CARTOGRAPHER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%9", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "SCALE", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|cartographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|map", ALWAYS, LEVEL_MAIN } }; static lookups patent[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "PUBLISHED_SOURCE",SIMPLE, LEVEL_MAIN }, { "%C", "COUNTRY", SIMPLE, LEVEL_MAIN }, { "%I", "ASSIGNEE", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", SIMPLE, LEVEL_MAIN }, { "%@", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "SCALE", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN } }; static lookups hearing[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "COMMITTEE:CORP", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", PAGES, LEVEL_MAIN }, { "%S", "LEGISLATIVEBODY:CORP", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* orig publication */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|hearing",ALWAYS, LEVEL_MAIN } }; static lookups bill[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%V", "CODEVOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "BILLNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "CODEPAGES", SIMPLE, LEVEL_MAIN }, { "%&", "CODESECTION", SIMPLE, LEVEL_MAIN }, { "%S", "LEGISLATIVEBODY:CORP", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%?", "SPONSOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups statute[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%V", "CODENUMBER", SIMPLE, LEVEL_MAIN }, { "%N", "PUBLICLAWNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups lawcase[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%E", "REPORTER", TITLE, LEVEL_HOST }, /*Reporter is name of book*/ { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%I", "COURT:CORP", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "PUBLICLAWNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "STARTPAGE", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%?", "COUNSEL", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legal case and case notes", ALWAYS, LEVEL_MAIN } }; static lookups chart[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|chart", ALWAYS, LEVEL_MAIN } }; static lookups unpublished[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN }, }; /* order is important....."Book" matches "Book" and "Book Section", hence * "Book Section must come first */ #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants end_all[] = { REFTYPE( "Generic", generic ), REFTYPE( "Artwork", artwork ), REFTYPE( "Audiovisual Material", audiovisual ), REFTYPE( "Bill", bill ), REFTYPE( "Book Section", booksection ), REFTYPE( "Book", book ), REFTYPE( "Case", lawcase ), REFTYPE( "Chart or Table", chart ), REFTYPE( "Classical Work", generic ), REFTYPE( "Computer Program", program ), REFTYPE( "Conference Paper", conferencepaper ), REFTYPE( "Conference Proceeding", proceedings ), REFTYPE( "Edited Book", editedbook ), /* REFTYPE( "Equation", equation ), */ /* REFTYPE( "Electronic Article", electronicarticle ), */ /* REFTYPE( "Electronic Book", electronicbook ), */ /* REFTYPE( "Figure", figure ), */ REFTYPE( "Film or Broadcast", broadcast ), REFTYPE( "Electronic Source", electronic ), /* REFTYPE( "Government Document", governmentdocument ), */ REFTYPE( "Hearing", hearing ), REFTYPE( "Journal Article", journalarticle ), /* REFTYPE( "Legal Rule/Regulation", legalrule ), */ REFTYPE( "Magazine Article", magazinearticle ), REFTYPE( "Manuscript", manuscript ), REFTYPE( "Map", map ), REFTYPE( "Newspaper Article", newspaperarticle ), /* REFTYPE( "Online Database", onlinedatabase ), */ /* REFTYPE( "Online Multimedia", onlinemultimedia ), */ REFTYPE( "Patent", patent ), REFTYPE( "Personal Communication", communication ), REFTYPE( "Report", report ), REFTYPE( "Statute", statute ), REFTYPE( "Thesis", thesis ), REFTYPE( "Unpublished Work", unpublished ), REFTYPE( "Web Page", webpage ), }; int end_nall = sizeof( end_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/endtypes.c0000755000000000000000000017123200000000000016063 0ustar0000000000000000/* * endtypes.c * * Copyright (c) Chris Putnam 2003-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" /* if no specific type can be identified */ static lookups generic[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN } }; static lookups journalarticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE",SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; static lookups magazinearticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* magazine name */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* magazine name */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE",TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE,LEVEL_MAIN }, { "%*", "REVIEWEDITEM",SIMPLE,LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER",SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS",SIMPLE,LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|magazine", ALWAYS, LEVEL_HOST } }; static lookups newspaperarticle[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "REPORTER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR",PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* newspaper name */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* newspaper name */ { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE",TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION",SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM",SIMPLE,LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER",SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "AUTHORADDRESS",SIMPLE,LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|newspaper", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "AUTHOR", PERSON, LEVEL_HOST }, /* SERIES_AUTHOR */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%?", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups booksection[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_HOST }, /* editor for book */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* book title */ { "%C", "ADDRESS", SIMPLE, LEVEL_HOST }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_HOST }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%Y", "EDITOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_HOST }, { "%?", "TRANSLATOR", PERSON, LEVEL_HOST }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_HOST }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups editedbook[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "EDITOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_HOST }, /* SERIES_EDITOR */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%P", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%?", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups manuscript[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* COLLECTION_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|manuscript", ALWAYS, LEVEL_MAIN } }; static lookups communication[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "ADDRESSEE", PERSON, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|communication", ALWAYS, LEVEL_MAIN} }; static lookups proceedings[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_HOST }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "EDITOR", PERSON, LEVEL_MAIN }, { "%B", "TITLE", SIMPLE, LEVEL_HOST }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%Y", "EDITOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_HOST }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_MAIN } }; static lookups conferencepaper[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%B", "TITLE", TITLE, LEVEL_HOST }, /* journal title */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "%8", "PARTDATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups thesis[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "ACADEMIC_DEPARTMENT", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", PAGES, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, /* thesis type */ { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN } }; static lookups program[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%7", "VERSION", SIMPLE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "COMPUTER", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN } }; static lookups audiovisual[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "WRITER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* COLLECTION_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "EXTENTOFWORK", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "PERFORMER", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|mixed material", ALWAYS, LEVEL_MAIN } }; static lookups broadcast[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%E", "DIRECTOR", PERSON, LEVEL_MAIN }, { "%B", "TITLE", TITLE, LEVEL_HOST }, /* SERIES_TITLE */ { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%Y", "PRODUCER", PERSON, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%?", "PERFORMER", PERSON, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|moving image", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|motion picture", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|television broadcast", ALWAYS, LEVEL_MAIN }, }; static lookups electronic[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "ACCESS_YEAR", SIMPLE, LEVEL_MAIN }, { "%N", "ACCESS_DATE", DATE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "UPDATE_DATE", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups webpage[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "ACCESS_YEAR", SIMPLE, LEVEL_MAIN }, { "%N", "ACCESS_DATE", DATE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "UPDATE_DATE", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|web page", ALWAYS, LEVEL_MAIN }, }; static lookups artwork[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "ARTIST", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|art original", ALWAYS, LEVEL_MAIN } }; static lookups report[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN }, }; static lookups map[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "CARTOGRAPHER", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%9", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "SCALE", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|cartographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|map", ALWAYS, LEVEL_MAIN } }; static lookups patent[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE" , TITLE, LEVEL_MAIN }, { "%B", "PUBLISHED_SOURCE",SIMPLE, LEVEL_MAIN }, { "%C", "COUNTRY", SIMPLE, LEVEL_MAIN }, { "%I", "ASSIGNEE", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "ISSUE", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", SIMPLE, LEVEL_MAIN }, { "%@", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", SIMPLE, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", SIMPLE, LEVEL_MAIN }, { "%1", "SCALE", SIMPLE, LEVEL_MAIN }, { "%2", "CUSTOM2", SIMPLE, LEVEL_MAIN }, { "%3", "CUSTOM3", SIMPLE, LEVEL_MAIN }, { "%4", "CUSTOM4", SIMPLE, LEVEL_MAIN }, { "%#", "CUSTOM5", SIMPLE, LEVEL_MAIN }, { "%$", "CUSTOM6", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN } }; static lookups hearing[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "COMMITTEE:CORP", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES:TOTAL", PAGES, LEVEL_MAIN }, { "%S", "LEGISLATIVEBODY:CORP", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* orig publication */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|hearing",ALWAYS, LEVEL_MAIN } }; static lookups bill[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%V", "CODEVOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "BILLNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "CODEPAGES", SIMPLE, LEVEL_MAIN }, { "%&", "CODESECTION", SIMPLE, LEVEL_MAIN }, { "%S", "LEGISLATIVEBODY:CORP", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%?", "SPONSOR", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups statute[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%V", "CODENUMBER", SIMPLE, LEVEL_MAIN }, { "%N", "PUBLICLAWNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%7", "SESSION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups lawcase[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%E", "REPORTER", TITLE, LEVEL_HOST }, /*Reporter is name of book*/ { "%B", "CODE", SIMPLE, LEVEL_MAIN }, { "%I", "COURT:CORP", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%N", "PUBLICLAWNUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "STARTPAGE", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%?", "COUNSEL", PERSON, LEVEL_MAIN }, { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legal case and case notes", ALWAYS, LEVEL_MAIN } }; static lookups chart[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME" , SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { " ", "GENRE:MARC|chart", ALWAYS, LEVEL_MAIN } }; static lookups unpublished[] = { { "%0", "INTERNAL_TYPE", TYPE, LEVEL_MAIN }, { "%A", "AUTHOR", PERSON, LEVEL_MAIN }, { "%H", "TRANSLATOR", PERSON, LEVEL_MAIN }, { "%Q", "TRANSLATEDTITLE", SIMPLE, LEVEL_MAIN }, { "%D", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "%T", "TITLE", TITLE, LEVEL_MAIN }, { "%J", "TITLE", TITLE, LEVEL_HOST }, /* for refer formats */ { "%E", "2ND_AUTHOR", PERSON, LEVEL_MAIN }, { "%B", "2ND_TITLE", SIMPLE, LEVEL_MAIN }, { "%C", "ADDRESS", SIMPLE, LEVEL_MAIN }, { "%I", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "%V", "VOLUME", SIMPLE, LEVEL_MAIN }, { "%6", "NUMVOLUMES", SIMPLE, LEVEL_HOST }, { "%N", "NUMBER", SIMPLE, LEVEL_MAIN }, { "%P", "PAGES", PAGES, LEVEL_MAIN }, { "%&", "SECTION", SIMPLE, LEVEL_MAIN }, { "%Y", "AUTHOR", PERSON, LEVEL_SERIES }, { "%S", "TITLE", TITLE, LEVEL_SERIES }, { "%7", "EDITION", SIMPLE, LEVEL_MAIN }, { "%8", "DATE:MONTH", DATE, LEVEL_MAIN }, { "%9", "GENRE:UNKNOWN", GENRE, LEVEL_MAIN }, { "%?", "SUB_AUTHOR", PERSON, LEVEL_MAIN }, /* subsidiary-authors */ { "%!", "SHORTTITLE", TITLE, LEVEL_MAIN }, { "%@", "SERIALNUMBER", SERIALNO, LEVEL_MAIN }, { "%(", "TITLE", SIMPLE, LEVEL_ORIG }, /* original pub */ { "%)", "REPRINTEDITION", SIMPLE, LEVEL_MAIN }, { "%*", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, { "%1", "CUSTOM1", NOTES, LEVEL_MAIN }, { "%2", "CUSTOM2", NOTES, LEVEL_MAIN }, { "%3", "CUSTOM3", NOTES, LEVEL_MAIN }, { "%4", "CUSTOM4", NOTES, LEVEL_MAIN }, { "%#", "CUSTOM5", NOTES, LEVEL_MAIN }, { "%$", "CUSTOM6", NOTES, LEVEL_MAIN }, { "%M", "ACCESSNUM", SIMPLE, LEVEL_MAIN }, { "%L", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, { "%F", "REFNUM", SIMPLE, LEVEL_MAIN }, { "%K", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "%X", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "%O", "NOTES", NOTES, LEVEL_MAIN }, { "%U", "URL", URL, LEVEL_MAIN }, { "%>", "PDFLINK", SIMPLE, LEVEL_MAIN }, { "%Z", "NOTES", NOTES, LEVEL_MAIN }, { "%W", "PHYSICALLOC", SIMPLE, LEVEL_MAIN }, /* physical location */ { "%G", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "%+", "AUTHORADDRESS", SIMPLE, LEVEL_MAIN }, { "%^", "CAPTION", SIMPLE, LEVEL_MAIN }, { "%[", "ACCESSDATE", SIMPLE, LEVEL_MAIN }, { "%=", "LASTMODDATE", SIMPLE, LEVEL_MAIN }, { "%~", "DATABASE", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN }, }; /* order is important....."Book" matches "Book" and "Book Section", hence * "Book Section must come first */ #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants end_all[] = { REFTYPE( "Generic", generic ), REFTYPE( "Artwork", artwork ), REFTYPE( "Audiovisual Material", audiovisual ), REFTYPE( "Bill", bill ), REFTYPE( "Book Section", booksection ), REFTYPE( "Book", book ), REFTYPE( "Case", lawcase ), REFTYPE( "Chart or Table", chart ), REFTYPE( "Classical Work", generic ), REFTYPE( "Computer Program", program ), REFTYPE( "Conference Paper", conferencepaper ), REFTYPE( "Conference Proceeding", proceedings ), REFTYPE( "Edited Book", editedbook ), /* REFTYPE( "Equation", equation ), */ /* REFTYPE( "Electronic Article", electronicarticle ), */ /* REFTYPE( "Electronic Book", electronicbook ), */ /* REFTYPE( "Figure", figure ), */ REFTYPE( "Film or Broadcast", broadcast ), REFTYPE( "Electronic Source", electronic ), /* REFTYPE( "Government Document", governmentdocument ), */ REFTYPE( "Hearing", hearing ), REFTYPE( "Journal Article", journalarticle ), /* REFTYPE( "Legal Rule/Regulation", legalrule ), */ REFTYPE( "Magazine Article", magazinearticle ), REFTYPE( "Manuscript", manuscript ), REFTYPE( "Map", map ), REFTYPE( "Newspaper Article", newspaperarticle ), /* REFTYPE( "Online Database", onlinedatabase ), */ /* REFTYPE( "Online Multimedia", onlinemultimedia ), */ REFTYPE( "Patent", patent ), REFTYPE( "Personal Communication", communication ), REFTYPE( "Report", report ), REFTYPE( "Statute", statute ), REFTYPE( "Thesis", thesis ), REFTYPE( "Unpublished Work", unpublished ), REFTYPE( "Web Page", webpage ), }; int end_nall = sizeof( end_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/endxmlin.c0000644000000000000000000003632000000000000016041 0ustar0000000000000000/* * endxmlin.c * * Copyright (c) Chris Putnam 2006-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "xml.h" #include "xml_encoding.h" #include "reftypes.h" #include "bibformats.h" typedef struct { char *attrib; char *internal; } attribs; extern variants end_all[]; extern int end_nall; static int endxmlin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int endxmlin_processf( fields *endin, char *p, char *filename, long nref, param *pm ); extern int endin_typef( fields *endin, char *filename, int nrefs, param *p ); extern int endin_convertf( fields *endin, fields *info, int reftype, param *p ); extern int endin_cleanf( bibl *bin, param *p ); /***************************************************** PUBLIC: void endxmlin_initparams() *****************************************************/ void endxmlin_initparams( param *p, const char *progname ) { p->readformat = BIBL_ENDNOTEXMLIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 1; p->utf8in = 1; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = endxmlin_readf; p->processf = endxmlin_processf; p->cleanf = NULL; p->typef = endin_typef; p->convertf = endin_convertf; p->all = end_all; p->nall = end_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int endxmlin_readf() *****************************************************/ static int xml_readmore( FILE *fp, char *buf, int bufsize, int *bufpos ) { if ( !feof( fp ) && fgets( buf, bufsize, fp ) ) return 0; return 1; } static int endxmlin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { str tmp; char *startptr = NULL, *endptr = NULL; int haveref = 0, inref = 0, done = 0, file_charset = CHARSET_UNKNOWN, m; str_init( &tmp ); while ( !haveref && !done ) { if ( line->data ) { if ( !inref ) { startptr = xml_find_start( line->data, "RECORD" ); if ( startptr ) inref = 1; } else endptr = xml_find_end( line->data, "RECORD" ); } /* If no tag, we can trim up to last 8 bytes */ /* Emptying string can lose fragments of tag */ if ( !startptr ) { if ( line->len > 8 ) { int n = 8; char *p = &(line->data[line->len-1]); while ( *p && n ) { p--; n--; } str_segdel( line, line->data, p ); } } if ( !startptr || !endptr ) { done = xml_readmore( fp, buf, bufsize, bufpos ); str_strcatc( line, buf ); } else { /* we can reallocate in the str_strcat, so re-find */ startptr = xml_find_start( line->data, "RECORD" ); endptr = xml_find_end( line->data, "RECORD" ); str_segcpy( reference, startptr, endptr ); /* clear out information in line */ str_strcpyc( &tmp, endptr ); str_strcpy( line, &tmp ); haveref = 1; } if ( line->data ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int endxmlin_processf() *****************************************************/ /* * add data to fields */ /* * handle fields with (potentially) several style pieces * * * * * * aaaaaa * * * * */ static int endxmlin_datar( xml *node, str *s ) { int status; if ( xml_has_value( node ) ) { str_strcat( s, &(node->value) ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; } if ( node->down && xml_tag_matches( node->down, "style" ) ) { status = endxmlin_datar( node->down, s ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node, "style" ) && node->next ) { status = endxmlin_datar( node->next, s ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_data( xml *node, char *inttag, fields *info, int level ) { int status; str s; str_init( &s ); status = endxmlin_datar( node, &s ); if ( status!=BIBL_OK ) return status; if ( str_has_value( &s ) ) { status = fields_add( info, inttag, s.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &s ); return BIBL_OK; } /* * * <style>ACTUAL TITLE HERE</style><style>MORE TITLE</style> * * */ static int endxmlin_titles( xml *node, fields *info ) { attribs a[] = { { "title", "%T" }, { "secondary-title", "%B" }, { "tertiary-title", "%S" }, { "alt-title", "%!" }, { "short-title", "SHORTTITLE" }, }; int i, status, n = sizeof( a ) / sizeof ( a[0] ); str title; str_init( &title ); for ( i=0; idown ) { str_empty( &title ); status = endxmlin_datar( node, &title ); if ( status!=BIBL_OK ) return BIBL_ERR_MEMERR; str_trimstartingws( &title ); str_trimendingws( &title ); status = fields_add( info, a[i].internal, title.data, 0); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } if ( node->next ) { status = endxmlin_titles( node->next, info ); if ( status!=BIBL_OK ) return status; } str_free( &title ); return BIBL_OK; } /* * * * * * * */ /* * */ static int endxmlin_contributor( xml *node, fields *info, char *int_tag, int level ) { int status; status = endxmlin_data( node, int_tag, info, level ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = endxmlin_contributor( node->next, info, int_tag, level ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_contributors( xml *node, fields *info ) { attribs a[] = { { "authors", "%A" }, { "secondary-authors", "%E" }, { "tertiary-authors", "%Y" }, { "subsidiary-authors", "%?" }, { "translated-authors", "%?" }, }; int i, status, n = sizeof( a ) / sizeof ( a[0] ); for ( i=0; idown ) { status = endxmlin_contributor( node->down, info, a[i].internal, 0 ); if ( status!=BIBL_OK ) return status; } } if ( node->next ) { status = endxmlin_contributors( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_keyword( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "keyword" ) ) { status = endxmlin_data( node, "%K", info, 0 ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = endxmlin_keyword( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_keywords( xml *node, fields *info ) { if ( node->down && xml_tag_matches( node->down, "keyword" ) ) return endxmlin_keyword( node->down, info ); return BIBL_OK; } /* * */ static int endxmlin_ern( xml *node, fields *info ) { if ( xml_tag_matches( node, "electronic-resource-num" ) ) return endxmlin_data( node, "DOI", info, 0 ); return BIBL_OK; } static int endxmlin_language( xml *node, fields *info ) { if ( xml_tag_matches( node, "language" ) ) return endxmlin_data( node, "%G", info, 0 ); return BIBL_OK; } /* * * * internal-pdf://Zukin_1995_The_Cultures_of_Cities-0000551425/Zukin_1995_The_Cultures_of_Cities.pdf * * */ static int endxmlin_fileattach( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "url" ) ) { status = endxmlin_data( node, "FILEATTACH", info, 0 ); if ( status!=BIBL_OK ) return status; } if ( node->down ) { status = endxmlin_fileattach( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = endxmlin_fileattach( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_urls( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "pdf-urls" ) && node->down ) { status = endxmlin_fileattach( node->down, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "url" ) ) { status = endxmlin_data( node, "%U", info, 0 ); if ( status!=BIBL_OK ) return status; } else { if ( node->down ) { if ( xml_tag_matches( node->down, "related-urls" ) || xml_tag_matches( node->down, "pdf-urls" ) || xml_tag_matches( node->down, "url" ) ) { status = endxmlin_urls( node->down, info ); if ( status!=BIBL_OK ) return status; } } } if ( node->next ) { status = endxmlin_urls( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_pubdates( xml *node, fields *info ) { if ( xml_tag_matches( node, "date" ) ) return endxmlin_data( node, "%8", info, 0 ); else { if ( node->down && xml_tag_matches( node->down, "date" ) ) return endxmlin_pubdates( node->down, info ); } return BIBL_OK; } static int endxmlin_dates( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "year" ) ) { status = endxmlin_data( node, "%D", info, 0 ); if ( status!=BIBL_OK ) return status; } else { if ( node->down ) { if ( xml_tag_matches( node->down, "year" ) ) { status = endxmlin_dates( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node->down, "pub-dates" ) ) { status = endxmlin_pubdates( node->down, info ); if ( status!=BIBL_OK ) return status; } } } if ( node->next ) { status = endxmlin_dates( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 17 */ static int endxmlin_reftype( xml *node, fields *info ) { int status; str *s; s = xml_attribute( node, "name" ); if ( str_has_value( s ) ) { status = fields_add( info, "%0", str_cstr( s ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int endxmlin_record( xml *node, fields *info ) { attribs a[] = { { "volume", "%V" }, { "num-vol", "%6" }, { "pages", "%P" }, { "number", "%N" }, { "issue", "%N" }, { "label", "%F" }, { "auth-address", "%C" }, { "auth-affiliation", "%C" }, { "pub-location", "%C" }, { "publisher", "%I" }, { "abstract", "%X" }, { "edition", "%7" }, { "reprint-edition", "%)" }, { "section", "%&" }, { "accession-num", "%M" }, { "call-num", "%L" }, { "isbn", "%@" }, { "notes", "%O" }, { "custom1", "%1" }, { "custom2", "%2" }, { "custom3", "%3" }, { "custom4", "%4" }, { "custom5", "%#" }, { "custom6", "%$" }, }; int i, status, n = sizeof ( a ) / sizeof( a[0] ); if ( xml_tag_matches( node, "DATABASE" ) ) { } else if ( xml_tag_matches( node, "SOURCE-APP" ) ) { } else if ( xml_tag_matches( node, "REC-NUMBER" ) ) { } else if ( xml_tag_matches( node, "ref-type" ) ) { status = endxmlin_reftype( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "contributors" ) ) { if ( node->down ) { status = endxmlin_contributors( node->down, info ); if ( status!=BIBL_OK ) return status; } } else if ( xml_tag_matches( node, "titles" ) ) { if ( node->down ) endxmlin_titles( node->down, info ); } else if ( xml_tag_matches( node, "keywords" ) ) { status = endxmlin_keywords( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "urls" ) ) { status = endxmlin_urls( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "electronic-resource-num" ) ) { status = endxmlin_ern( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "dates" ) ) { status = endxmlin_dates( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "language" ) ) { status = endxmlin_language( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "periodical" ) ) { } else if ( xml_tag_matches( node, "secondary-volume" ) ) { } else if ( xml_tag_matches( node, "secondary-issue" ) ) { } else if ( xml_tag_matches( node, "reprint-status" ) ) { } else if ( xml_tag_matches( node, "orig-pub" ) ) { } else if ( xml_tag_matches( node, "report-id" ) ) { } else if ( xml_tag_matches( node, "coden" ) ) { } else if ( xml_tag_matches( node, "caption" ) ) { } else if ( xml_tag_matches( node, "research-notes" ) ) { } else if ( xml_tag_matches( node, "work-type" ) ) { } else if ( xml_tag_matches( node, "reviewed-item" ) ) { } else if ( xml_tag_matches( node, "availability" ) ) { } else if ( xml_tag_matches( node, "remote-source" ) ) { } else if ( xml_tag_matches( node, "meeting-place" ) ) { } else if ( xml_tag_matches( node, "work-location" ) ) { } else if ( xml_tag_matches( node, "work-extent" ) ) { } else if ( xml_tag_matches( node, "pack-method" ) ) { } else if ( xml_tag_matches( node, "size" ) ) { } else if ( xml_tag_matches( node, "repro-ratio" ) ) { } else if ( xml_tag_matches( node, "remote-database-name" ) ) { } else if ( xml_tag_matches( node, "remote-database-provider" ) ) { } else if ( xml_tag_matches( node, "access-date" ) ) { } else if ( xml_tag_matches( node, "modified-data" ) ) { } else if ( xml_tag_matches( node, "misc1" ) ) { } else if ( xml_tag_matches( node, "misc2" ) ) { } else if ( xml_tag_matches( node, "misc3" ) ) { } else { for ( i=0; inext ) { status = endxmlin_record( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_assembleref( xml *node, fields *info ) { int status; if ( str_is_empty( &(node->tag) ) ) { if ( node->down ) return endxmlin_assembleref( node->down, info ); } else if ( xml_tag_matches( node, "RECORD" ) ) { if ( node->down ) { status = endxmlin_record( node->down, info ); if ( status!=BIBL_OK ) return status; } } return BIBL_OK; } /* endxmlin_processf first operates by converting to endnote input * the endnote->mods conversion happens in convertf. * * this is necessary as the xml format is as nasty and as overloaded * as the tags used in the Refer format output */ static int endxmlin_processf( fields *fin, char *data, char *filename, long nref, param *pm ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = endxmlin_assembleref( &top, fin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; return 0; } hs-bibutils-6.7.0.0/bibutils/endxmlin.c0000755000000000000000000003632000000000000016044 0ustar0000000000000000/* * endxmlin.c * * Copyright (c) Chris Putnam 2006-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "xml.h" #include "xml_encoding.h" #include "reftypes.h" #include "bibformats.h" typedef struct { char *attrib; char *internal; } attribs; extern variants end_all[]; extern int end_nall; static int endxmlin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int endxmlin_processf( fields *endin, char *p, char *filename, long nref, param *pm ); extern int endin_typef( fields *endin, char *filename, int nrefs, param *p ); extern int endin_convertf( fields *endin, fields *info, int reftype, param *p ); extern int endin_cleanf( bibl *bin, param *p ); /***************************************************** PUBLIC: void endxmlin_initparams() *****************************************************/ void endxmlin_initparams( param *p, const char *progname ) { p->readformat = BIBL_ENDNOTEXMLIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 1; p->utf8in = 1; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = endxmlin_readf; p->processf = endxmlin_processf; p->cleanf = NULL; p->typef = endin_typef; p->convertf = endin_convertf; p->all = end_all; p->nall = end_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int endxmlin_readf() *****************************************************/ static int xml_readmore( FILE *fp, char *buf, int bufsize, int *bufpos ) { if ( !feof( fp ) && fgets( buf, bufsize, fp ) ) return 0; return 1; } static int endxmlin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { str tmp; char *startptr = NULL, *endptr = NULL; int haveref = 0, inref = 0, done = 0, file_charset = CHARSET_UNKNOWN, m; str_init( &tmp ); while ( !haveref && !done ) { if ( line->data ) { if ( !inref ) { startptr = xml_find_start( line->data, "RECORD" ); if ( startptr ) inref = 1; } else endptr = xml_find_end( line->data, "RECORD" ); } /* If no tag, we can trim up to last 8 bytes */ /* Emptying string can lose fragments of tag */ if ( !startptr ) { if ( line->len > 8 ) { int n = 8; char *p = &(line->data[line->len-1]); while ( *p && n ) { p--; n--; } str_segdel( line, line->data, p ); } } if ( !startptr || !endptr ) { done = xml_readmore( fp, buf, bufsize, bufpos ); str_strcatc( line, buf ); } else { /* we can reallocate in the str_strcat, so re-find */ startptr = xml_find_start( line->data, "RECORD" ); endptr = xml_find_end( line->data, "RECORD" ); str_segcpy( reference, startptr, endptr ); /* clear out information in line */ str_strcpyc( &tmp, endptr ); str_strcpy( line, &tmp ); haveref = 1; } if ( line->data ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int endxmlin_processf() *****************************************************/ /* * add data to fields */ /* * handle fields with (potentially) several style pieces * * * * * * aaaaaa * * * * */ static int endxmlin_datar( xml *node, str *s ) { int status; if ( xml_has_value( node ) ) { str_strcat( s, &(node->value) ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; } if ( node->down && xml_tag_matches( node->down, "style" ) ) { status = endxmlin_datar( node->down, s ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node, "style" ) && node->next ) { status = endxmlin_datar( node->next, s ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_data( xml *node, char *inttag, fields *info, int level ) { int status; str s; str_init( &s ); status = endxmlin_datar( node, &s ); if ( status!=BIBL_OK ) return status; if ( str_has_value( &s ) ) { status = fields_add( info, inttag, s.data, level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &s ); return BIBL_OK; } /* * * <style>ACTUAL TITLE HERE</style><style>MORE TITLE</style> * * */ static int endxmlin_titles( xml *node, fields *info ) { attribs a[] = { { "title", "%T" }, { "secondary-title", "%B" }, { "tertiary-title", "%S" }, { "alt-title", "%!" }, { "short-title", "SHORTTITLE" }, }; int i, status, n = sizeof( a ) / sizeof ( a[0] ); str title; str_init( &title ); for ( i=0; idown ) { str_empty( &title ); status = endxmlin_datar( node, &title ); if ( status!=BIBL_OK ) return BIBL_ERR_MEMERR; str_trimstartingws( &title ); str_trimendingws( &title ); status = fields_add( info, a[i].internal, title.data, 0); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } if ( node->next ) { status = endxmlin_titles( node->next, info ); if ( status!=BIBL_OK ) return status; } str_free( &title ); return BIBL_OK; } /* * * * * * * */ /* * */ static int endxmlin_contributor( xml *node, fields *info, char *int_tag, int level ) { int status; status = endxmlin_data( node, int_tag, info, level ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = endxmlin_contributor( node->next, info, int_tag, level ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_contributors( xml *node, fields *info ) { attribs a[] = { { "authors", "%A" }, { "secondary-authors", "%E" }, { "tertiary-authors", "%Y" }, { "subsidiary-authors", "%?" }, { "translated-authors", "%?" }, }; int i, status, n = sizeof( a ) / sizeof ( a[0] ); for ( i=0; idown ) { status = endxmlin_contributor( node->down, info, a[i].internal, 0 ); if ( status!=BIBL_OK ) return status; } } if ( node->next ) { status = endxmlin_contributors( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_keyword( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "keyword" ) ) { status = endxmlin_data( node, "%K", info, 0 ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = endxmlin_keyword( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_keywords( xml *node, fields *info ) { if ( node->down && xml_tag_matches( node->down, "keyword" ) ) return endxmlin_keyword( node->down, info ); return BIBL_OK; } /* * */ static int endxmlin_ern( xml *node, fields *info ) { if ( xml_tag_matches( node, "electronic-resource-num" ) ) return endxmlin_data( node, "DOI", info, 0 ); return BIBL_OK; } static int endxmlin_language( xml *node, fields *info ) { if ( xml_tag_matches( node, "language" ) ) return endxmlin_data( node, "%G", info, 0 ); return BIBL_OK; } /* * * * internal-pdf://Zukin_1995_The_Cultures_of_Cities-0000551425/Zukin_1995_The_Cultures_of_Cities.pdf * * */ static int endxmlin_fileattach( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "url" ) ) { status = endxmlin_data( node, "FILEATTACH", info, 0 ); if ( status!=BIBL_OK ) return status; } if ( node->down ) { status = endxmlin_fileattach( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = endxmlin_fileattach( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_urls( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "pdf-urls" ) && node->down ) { status = endxmlin_fileattach( node->down, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "url" ) ) { status = endxmlin_data( node, "%U", info, 0 ); if ( status!=BIBL_OK ) return status; } else { if ( node->down ) { if ( xml_tag_matches( node->down, "related-urls" ) || xml_tag_matches( node->down, "pdf-urls" ) || xml_tag_matches( node->down, "url" ) ) { status = endxmlin_urls( node->down, info ); if ( status!=BIBL_OK ) return status; } } } if ( node->next ) { status = endxmlin_urls( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_pubdates( xml *node, fields *info ) { if ( xml_tag_matches( node, "date" ) ) return endxmlin_data( node, "%8", info, 0 ); else { if ( node->down && xml_tag_matches( node->down, "date" ) ) return endxmlin_pubdates( node->down, info ); } return BIBL_OK; } static int endxmlin_dates( xml *node, fields *info ) { int status; if ( xml_tag_matches( node, "year" ) ) { status = endxmlin_data( node, "%D", info, 0 ); if ( status!=BIBL_OK ) return status; } else { if ( node->down ) { if ( xml_tag_matches( node->down, "year" ) ) { status = endxmlin_dates( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node->down, "pub-dates" ) ) { status = endxmlin_pubdates( node->down, info ); if ( status!=BIBL_OK ) return status; } } } if ( node->next ) { status = endxmlin_dates( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 17 */ static int endxmlin_reftype( xml *node, fields *info ) { int status; str *s; s = xml_attribute( node, "name" ); if ( str_has_value( s ) ) { status = fields_add( info, "%0", str_cstr( s ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int endxmlin_record( xml *node, fields *info ) { attribs a[] = { { "volume", "%V" }, { "num-vol", "%6" }, { "pages", "%P" }, { "number", "%N" }, { "issue", "%N" }, { "label", "%F" }, { "auth-address", "%C" }, { "auth-affiliation", "%C" }, { "pub-location", "%C" }, { "publisher", "%I" }, { "abstract", "%X" }, { "edition", "%7" }, { "reprint-edition", "%)" }, { "section", "%&" }, { "accession-num", "%M" }, { "call-num", "%L" }, { "isbn", "%@" }, { "notes", "%O" }, { "custom1", "%1" }, { "custom2", "%2" }, { "custom3", "%3" }, { "custom4", "%4" }, { "custom5", "%#" }, { "custom6", "%$" }, }; int i, status, n = sizeof ( a ) / sizeof( a[0] ); if ( xml_tag_matches( node, "DATABASE" ) ) { } else if ( xml_tag_matches( node, "SOURCE-APP" ) ) { } else if ( xml_tag_matches( node, "REC-NUMBER" ) ) { } else if ( xml_tag_matches( node, "ref-type" ) ) { status = endxmlin_reftype( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "contributors" ) ) { if ( node->down ) { status = endxmlin_contributors( node->down, info ); if ( status!=BIBL_OK ) return status; } } else if ( xml_tag_matches( node, "titles" ) ) { if ( node->down ) endxmlin_titles( node->down, info ); } else if ( xml_tag_matches( node, "keywords" ) ) { status = endxmlin_keywords( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "urls" ) ) { status = endxmlin_urls( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "electronic-resource-num" ) ) { status = endxmlin_ern( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "dates" ) ) { status = endxmlin_dates( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "language" ) ) { status = endxmlin_language( node, info ); if ( status!=BIBL_OK ) return status; } else if ( xml_tag_matches( node, "periodical" ) ) { } else if ( xml_tag_matches( node, "secondary-volume" ) ) { } else if ( xml_tag_matches( node, "secondary-issue" ) ) { } else if ( xml_tag_matches( node, "reprint-status" ) ) { } else if ( xml_tag_matches( node, "orig-pub" ) ) { } else if ( xml_tag_matches( node, "report-id" ) ) { } else if ( xml_tag_matches( node, "coden" ) ) { } else if ( xml_tag_matches( node, "caption" ) ) { } else if ( xml_tag_matches( node, "research-notes" ) ) { } else if ( xml_tag_matches( node, "work-type" ) ) { } else if ( xml_tag_matches( node, "reviewed-item" ) ) { } else if ( xml_tag_matches( node, "availability" ) ) { } else if ( xml_tag_matches( node, "remote-source" ) ) { } else if ( xml_tag_matches( node, "meeting-place" ) ) { } else if ( xml_tag_matches( node, "work-location" ) ) { } else if ( xml_tag_matches( node, "work-extent" ) ) { } else if ( xml_tag_matches( node, "pack-method" ) ) { } else if ( xml_tag_matches( node, "size" ) ) { } else if ( xml_tag_matches( node, "repro-ratio" ) ) { } else if ( xml_tag_matches( node, "remote-database-name" ) ) { } else if ( xml_tag_matches( node, "remote-database-provider" ) ) { } else if ( xml_tag_matches( node, "access-date" ) ) { } else if ( xml_tag_matches( node, "modified-data" ) ) { } else if ( xml_tag_matches( node, "misc1" ) ) { } else if ( xml_tag_matches( node, "misc2" ) ) { } else if ( xml_tag_matches( node, "misc3" ) ) { } else { for ( i=0; inext ) { status = endxmlin_record( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int endxmlin_assembleref( xml *node, fields *info ) { int status; if ( str_is_empty( &(node->tag) ) ) { if ( node->down ) return endxmlin_assembleref( node->down, info ); } else if ( xml_tag_matches( node, "RECORD" ) ) { if ( node->down ) { status = endxmlin_record( node->down, info ); if ( status!=BIBL_OK ) return status; } } return BIBL_OK; } /* endxmlin_processf first operates by converting to endnote input * the endnote->mods conversion happens in convertf. * * this is necessary as the xml format is as nasty and as overloaded * as the tags used in the Refer format output */ static int endxmlin_processf( fields *fin, char *data, char *filename, long nref, param *pm ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = endxmlin_assembleref( &top, fin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; return 0; } hs-bibutils-6.7.0.0/bibutils/entities.c0000644000000000000000000003452700000000000016056 0ustar0000000000000000/* * entities.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include "entities.h" /* HTML 4.0 entities */ typedef struct entities { char html[20]; unsigned int unicode; } entities; entities html_entities[] = { /* Special Entities */ { """, 34 }, /* quotation mark */ { "&", 38 }, /* ampersand */ { "'", 39 }, /* apostrophe (note not defined in HTML) */ { "(", 40 }, /* left parenthesis */ { ")", 41 }, /* right parenthesis */ { "‐", 45 }, /* hyphen */ { "<", 60 }, /* less-than sign */ { ">", 62 }, /* greater-than sign */ { "?", 63 }, /* question mark */ { "Œ", 338 }, /* Latin cap ligature OE */ { "œ", 339 }, /* Latin small ligature OE */ { "Š", 352 }, /* Latin cap S with caron */ { "š", 353 }, /* Latin cap S with caron */ { "Ÿ", 376 }, /* Latin cap y with diaeresis */ { "ˆ", 710 }, /* modifier letter circumflex */ { "˜", 732 }, /* small tilde */ { " ", 8194 }, /* en space */ { " ", 8195 }, /* em space */ { " ", 8201 }, /* thin space */ { "‌", 8204 }, /* zero width non-joiner */ { "‍", 8205 }, /* zero width joiner */ { "‎", 8206 }, /* left-to-right mark */ { "‏", 8207 }, /* right-to-left mark */ { "–", 8211 }, /* en dash */ { "—", 8212 }, /* em dash */ { "‘", 8216 }, /* left single quotation mark */ { "’", 8217 }, /* right single quot. mark */ { "‚", 8218 }, /* single low-9 quot. mark */ { "“", 8220 }, /* left double quot. mark */ { "”", 8221 }, /* right double quot. mark */ { "„", 8222 }, /* double low-9 quot. mark */ { "†", 8224 }, /* dagger */ { "‡", 8225 }, /* double dagger */ { "‰", 8240 }, /* per mille sign */ { "‹", 8249 }, /* sin. left angle quot mark */ { "›", 8250 }, /* sin. right angle quot mark */ { "€", 8364 }, /* euro sign */ /* Symbols and Greek characters */ { "ƒ", 402 }, /* small f with hook = function */ { "Α", 913 }, /* capital alpha */ { "Β", 914 }, /* capital beta */ { "Γ", 915 }, /* capital gamma */ { "Δ", 916 }, /* capital delta */ { "Ε", 917 }, /* capital epsilon */ { "Ζ", 918 }, /* capital zeta */ { "Η", 919 }, /* capital eta */ { "Θ", 920 }, /* capital theta */ { "Ι", 921 }, /* capital iota */ { "Κ", 922 }, /* capital kappa */ { "Λ", 923 }, /* capital lambda */ { "Μ", 924 }, /* capital mu */ { "Ν", 925 }, /* capital nu */ { "Ξ", 926 }, /* capital xi */ { "Ο", 927 }, /* capital omicron */ { "Π", 928 }, /* capital pi */ { "Ρ", 929 }, /* capital rho */ { "Σ", 931 }, /* capital sigma */ { "Τ", 932 }, /* capital tau */ { "Υ", 933 }, /* capital upsilon */ { "Φ", 934 }, /* capital phi */ { "Χ", 935 }, /* capital chi */ { "Ψ", 936 }, /* capital psi */ { "Ω", 937 }, /* capital omega */ { "α", 945 }, /* small alpha */ { "β", 946 }, /* small beta */ { "γ", 947 }, /* small gamma */ { "δ", 948 }, /* small delta */ { "ε", 949 }, /* small epsilon */ { "ζ", 950 }, /* small zeta */ { "η", 951 }, /* small eta */ { "θ", 952 }, /* small theta */ { "ι", 953 }, /* small iota */ { "κ", 954 }, /* small kappa */ { "λ", 955 }, /* small lambda */ { "μ", 956 }, /* small mu */ { "ν", 957 }, /* small nu */ { "ξ", 958 }, /* small xi */ { "ο", 959 }, /* small omicron */ { "π", 960 }, /* small pi */ { "ρ", 961 }, /* small rho */ { "ς", 962 }, /* small final sigma */ { "σ", 963 }, /* small simga */ { "τ", 964 }, /* small tau */ { "υ", 965 }, /* small upsilon */ { "φ", 966 }, /* small phi */ { "χ", 967 }, /* small chi */ { "ψ", 968 }, /* small psi */ { "ω", 969 }, /* small omega */ { "ϑ",977 }, /* small theta symbol */ { "ϒ", 978 }, /* small upsilon with hook */ { "ϖ", 982 }, /* pi symbol */ { "•", 8226 }, /* bullet = small blk circle */ { "…", 8230 }, /* horizontal ellipsis */ { "′", 8242 }, /* prime = minutes = feet */ { "″", 8243 }, /* double prime */ { "‾", 8254 }, /* overline */ { "⁄", 8260 }, /* fraction slash */ { "℘", 8472 }, /* Weierstrass p = power set */ { "ℑ", 8465 }, /* imaginary part-black cap I */ { "ℜ", 8476 }, /* real part-black cap R */ { "™", 8482 }, /* trademark sign */ { "ℵ",8501 }, /* alef symbol */ { "←", 8592 }, /* left arrow */ { "↑", 8593 }, /* up arrow */ { "→", 8594 }, /* right arrow */ { "↓", 8595 }, /* down arrow */ { "↔", 8596 }, /* left/right arrow */ { "↵", 8629 }, /* down arrow with corner left */ { "⇐", 8656 }, /* left double arrow */ { "⇑", 8657 }, /* up double arrow */ { "⇒", 8658 }, /* up double arrow */ { "⇓", 8659 }, /* up double arrow */ { "⇔", 8660 }, /* up double arrow */ { "∀", 8704}, /* for all */ { "∂", 8706}, /* partial differential */ { "∃", 8707}, /* there exists */ { "∅", 8709}, /* empty set */ { "∇", 8711}, /* nabla=backwards difference */ { "∈", 8712}, /* element of */ { "∉", 8713}, /* not an element of */ { "∋", 8715}, /* contains as member */ { "∏", 8719}, /* n-ary product */ { "∑", 8721}, /* n-ary summation */ { "−", 8722}, /* minuss sign */ { "∗", 8727}, /* asterisk operator */ { "√", 8730}, /* square root */ { "∝", 8733}, /* proportional to */ { "∞", 8734}, /* infinity */ { "∠", 8736}, /* angle */ { "∧", 8743}, /* logical and */ { "∨", 8744}, /* logical or */ { "∩", 8745}, /* intersection */ { "∪", 8746}, /* union */ { "∫", 8747}, /* integral */ { "∴", 8756}, /* therefore */ { "∼", 8764}, /* tilde operator */ { "≅", 8773}, /* approximately equal to */ { "≈", 8776}, /* asymptotic to */ { "≠", 8800}, /* not equal to */ { "≡", 8801}, /* identical to */ { "≤", 8804}, /* less-than or equal to */ { "≥", 8805}, /* greater-than or equal to */ { "⊂", 8834}, /* subset of */ { "⊃", 8835}, /* superset of */ { "⊄", 8836}, /* not a subset of */ { "⊆", 8838}, /* subset of or equal to */ { "⊇", 8839}, /* superset of or equal to */ { "⊕", 8853}, /* circled plus = direct sum */ { "⊗", 8855}, /* circled times = vec prod */ { "⊥", 8869}, /* perpendicular */ { "⋅", 8901}, /* dot operator */ { "⌈", 8968}, /* left ceiling */ { "⌉", 8969}, /* right ceiling */ { "⌊", 8970}, /* left floor */ { "⌋", 8971}, /* right floor */ { "⟨", 9001}, /* left angle bracket */ { "⟩", 9002}, /* right angle bracket */ { "◊", 9674}, /* lozenge */ { "♠", 9824}, /* spades */ { "♣", 9827}, /* clubs */ { "♥", 9829}, /* hearts */ { "♦", 9830}, /* diamonds */ /* Latin-1 */ { " ", 32 }, /* non-breaking space */ { "¡", 161 }, /* inverted exclamation mark */ { "¢", 162 }, /* cent sign */ { "£", 163 }, /* pound sign */ { "¤", 164 }, /* currency sign */ { "¥", 165 }, /* yen sign */ { "¦", 166 }, /* broken vertical bar */ { "§", 167 }, /* section sign */ { "¨", 168 }, /* diaeresis - spacing diaeresis */ { "©", 169 }, /* copyright sign */ { "ª", 170 }, /* feminine ordinal indicator */ { "«", 171 }, /* left-pointing guillemet */ { "¬", 172 }, /* not sign */ { "­", 173 }, /* soft (discretionary) hyphen */ { "®", 174 }, /* registered sign */ { "¯", 175 }, /* macron = overline */ { "°", 176 }, /* degree sign */ { "±", 177 }, /* plus-minus sign */ { "²", 178 }, /* superscript two */ { "³", 179 }, /* superscript three */ { "´", 180 }, /* acute accent = spacing acute */ { "µ", 181 }, /* micro sign */ { "¶", 182 }, /* pilcrow (paragraph) sign */ { "·", 183 }, /* middle dot (georgian comma) */ { "¸", 184 }, /* cedilla = spacing cedilla */ { "¹", 185 }, /* superscript one */ { "º", 186 }, /* masculine ordinal indicator */ { "»", 187 }, /* right pointing guillemet */ { "¼", 188 }, /* 1/4 */ { "½", 189 }, /* 1/2 */ { "¾", 190 }, /* 3/4 */ { "¿", 191 }, /* inverted question mark */ { "À", 192 }, /* cap A with grave */ { "Á", 193 }, /* cap A with acute */ { "Â", 194 }, /* cap A with circumflex */ { "Ã", 195 }, /* cap A with tilde */ { "Ä", 196 }, /* cap A with diaeresis */ { "Å", 197 }, /* cap A with ring */ { "Æ", 198 }, /* cap AE ligature */ { "Ç", 199 }, /* cap C with cedilla */ { "È", 200 }, /* cap E with grave */ { "É", 201 }, /* cap E with acute */ { "Ê", 202 }, /* cap E with circumflex */ { "Ë", 203 }, /* cap E with diaeresis */ { "Ì", 204 }, /* cap I with grave */ { "Í", 205 }, /* cap I with acute */ { "Î", 206 }, /* cap I with circumflex */ { "Ï", 207 }, /* cap I with diaeresis */ { "Ð", 208 }, /* cap letter ETH */ { "Ñ", 209 }, /* cap N with tilde */ { "Ò", 210 }, /* cap O with grave */ { "Ó", 211 }, /* cap O with acute */ { "Ô", 212 }, /* cap O with circumflex */ { "Õ", 213 }, /* cap O with tilde */ { "Ö", 214 }, /* cap O with diaeresis */ { "×", 215 }, /* multiplication sign */ { "Ø", 216 }, /* cap O with stroke */ { "Ù", 217 }, /* cap U with grave */ { "Ú", 218 }, /* cap U with acute */ { "Û", 219 }, /* cap U with circumflex */ { "Ü", 220 }, /* cap U with diaeresis */ { "Ý", 221 }, /* cap Y with acute */ { "Þ", 222 }, /* cap letter THORN */ { "ß", 223 }, /* small sharp s = ess-zed */ { "à", 224 }, /* small a with grave */ { "á", 225 }, /* small a with acute */ { "â", 226 }, /* small a with cirucmflex */ { "ã", 227 }, /* small a with tilde */ { "&amul;", 228 }, /* small a with diaeresis */ { "å", 229 }, /* small a with ring */ { "æ", 230 }, /* small ligature ae */ { "ç", 231 }, /* small c with cedilla */ { "è", 232 }, /* small e with grave */ { "é", 233 }, /* small e with acute */ { "ê", 234 }, /* small e with circumflex */ { "&emul;", 235 }, /* small e with diaeresis */ { "ì", 236 }, /* small i with grave */ { "í", 237 }, /* small i with acute */ { "î", 238 }, /* small i with circumflex */ { "ï", 239 }, /* small i with diaeresis */ { "ð", 240 }, /* latin small letter eth */ { "ñ", 241 }, /* small n with tilde */ { "ò", 242 }, /* small o with grave */ { "ó", 243 }, /* small o with acute */ { "ô", 244 }, /* small o with circumflex */ { "õ", 245 }, /* small o with tilde */ { "ö", 246 }, /* small o with diaeresis */ { "÷", 247 }, /* division sign */ { "ø", 248 }, /* small o with slash */ { "ù", 249 }, /* small u with grave */ { "ú", 250 }, /* small u with acute */ { "û", 251 }, /* small u with circumflex */ { "ü", 252 }, /* small u with diaeresis */ { "ý", 253 }, /* small y with acute */ { "þ", 254 }, /* latin small letter thorn */ { "ÿ", 255 }, /* small y with diaeresis */ }; static unsigned int decode_html_entity( char *s, unsigned int *pi, int *err ) { int nhtml_entities = sizeof( html_entities ) / sizeof( entities ); char *e; int i, n=-1, len; for ( i=0; i #include #include #include "entities.h" /* HTML 4.0 entities */ typedef struct entities { char html[20]; unsigned int unicode; } entities; entities html_entities[] = { /* Special Entities */ { """, 34 }, /* quotation mark */ { "&", 38 }, /* ampersand */ { "'", 39 }, /* apostrophe (note not defined in HTML) */ { "(", 40 }, /* left parenthesis */ { ")", 41 }, /* right parenthesis */ { "‐", 45 }, /* hyphen */ { "<", 60 }, /* less-than sign */ { ">", 62 }, /* greater-than sign */ { "?", 63 }, /* question mark */ { "Œ", 338 }, /* Latin cap ligature OE */ { "œ", 339 }, /* Latin small ligature OE */ { "Š", 352 }, /* Latin cap S with caron */ { "š", 353 }, /* Latin cap S with caron */ { "Ÿ", 376 }, /* Latin cap y with diaeresis */ { "ˆ", 710 }, /* modifier letter circumflex */ { "˜", 732 }, /* small tilde */ { " ", 8194 }, /* en space */ { " ", 8195 }, /* em space */ { " ", 8201 }, /* thin space */ { "‌", 8204 }, /* zero width non-joiner */ { "‍", 8205 }, /* zero width joiner */ { "‎", 8206 }, /* left-to-right mark */ { "‏", 8207 }, /* right-to-left mark */ { "–", 8211 }, /* en dash */ { "—", 8212 }, /* em dash */ { "‘", 8216 }, /* left single quotation mark */ { "’", 8217 }, /* right single quot. mark */ { "‚", 8218 }, /* single low-9 quot. mark */ { "“", 8220 }, /* left double quot. mark */ { "”", 8221 }, /* right double quot. mark */ { "„", 8222 }, /* double low-9 quot. mark */ { "†", 8224 }, /* dagger */ { "‡", 8225 }, /* double dagger */ { "‰", 8240 }, /* per mille sign */ { "‹", 8249 }, /* sin. left angle quot mark */ { "›", 8250 }, /* sin. right angle quot mark */ { "€", 8364 }, /* euro sign */ /* Symbols and Greek characters */ { "ƒ", 402 }, /* small f with hook = function */ { "Α", 913 }, /* capital alpha */ { "Β", 914 }, /* capital beta */ { "Γ", 915 }, /* capital gamma */ { "Δ", 916 }, /* capital delta */ { "Ε", 917 }, /* capital epsilon */ { "Ζ", 918 }, /* capital zeta */ { "Η", 919 }, /* capital eta */ { "Θ", 920 }, /* capital theta */ { "Ι", 921 }, /* capital iota */ { "Κ", 922 }, /* capital kappa */ { "Λ", 923 }, /* capital lambda */ { "Μ", 924 }, /* capital mu */ { "Ν", 925 }, /* capital nu */ { "Ξ", 926 }, /* capital xi */ { "Ο", 927 }, /* capital omicron */ { "Π", 928 }, /* capital pi */ { "Ρ", 929 }, /* capital rho */ { "Σ", 931 }, /* capital sigma */ { "Τ", 932 }, /* capital tau */ { "Υ", 933 }, /* capital upsilon */ { "Φ", 934 }, /* capital phi */ { "Χ", 935 }, /* capital chi */ { "Ψ", 936 }, /* capital psi */ { "Ω", 937 }, /* capital omega */ { "α", 945 }, /* small alpha */ { "β", 946 }, /* small beta */ { "γ", 947 }, /* small gamma */ { "δ", 948 }, /* small delta */ { "ε", 949 }, /* small epsilon */ { "ζ", 950 }, /* small zeta */ { "η", 951 }, /* small eta */ { "θ", 952 }, /* small theta */ { "ι", 953 }, /* small iota */ { "κ", 954 }, /* small kappa */ { "λ", 955 }, /* small lambda */ { "μ", 956 }, /* small mu */ { "ν", 957 }, /* small nu */ { "ξ", 958 }, /* small xi */ { "ο", 959 }, /* small omicron */ { "π", 960 }, /* small pi */ { "ρ", 961 }, /* small rho */ { "ς", 962 }, /* small final sigma */ { "σ", 963 }, /* small simga */ { "τ", 964 }, /* small tau */ { "υ", 965 }, /* small upsilon */ { "φ", 966 }, /* small phi */ { "χ", 967 }, /* small chi */ { "ψ", 968 }, /* small psi */ { "ω", 969 }, /* small omega */ { "ϑ",977 }, /* small theta symbol */ { "ϒ", 978 }, /* small upsilon with hook */ { "ϖ", 982 }, /* pi symbol */ { "•", 8226 }, /* bullet = small blk circle */ { "…", 8230 }, /* horizontal ellipsis */ { "′", 8242 }, /* prime = minutes = feet */ { "″", 8243 }, /* double prime */ { "‾", 8254 }, /* overline */ { "⁄", 8260 }, /* fraction slash */ { "℘", 8472 }, /* Weierstrass p = power set */ { "ℑ", 8465 }, /* imaginary part-black cap I */ { "ℜ", 8476 }, /* real part-black cap R */ { "™", 8482 }, /* trademark sign */ { "ℵ",8501 }, /* alef symbol */ { "←", 8592 }, /* left arrow */ { "↑", 8593 }, /* up arrow */ { "→", 8594 }, /* right arrow */ { "↓", 8595 }, /* down arrow */ { "↔", 8596 }, /* left/right arrow */ { "↵", 8629 }, /* down arrow with corner left */ { "⇐", 8656 }, /* left double arrow */ { "⇑", 8657 }, /* up double arrow */ { "⇒", 8658 }, /* up double arrow */ { "⇓", 8659 }, /* up double arrow */ { "⇔", 8660 }, /* up double arrow */ { "∀", 8704}, /* for all */ { "∂", 8706}, /* partial differential */ { "∃", 8707}, /* there exists */ { "∅", 8709}, /* empty set */ { "∇", 8711}, /* nabla=backwards difference */ { "∈", 8712}, /* element of */ { "∉", 8713}, /* not an element of */ { "∋", 8715}, /* contains as member */ { "∏", 8719}, /* n-ary product */ { "∑", 8721}, /* n-ary summation */ { "−", 8722}, /* minuss sign */ { "∗", 8727}, /* asterisk operator */ { "√", 8730}, /* square root */ { "∝", 8733}, /* proportional to */ { "∞", 8734}, /* infinity */ { "∠", 8736}, /* angle */ { "∧", 8743}, /* logical and */ { "∨", 8744}, /* logical or */ { "∩", 8745}, /* intersection */ { "∪", 8746}, /* union */ { "∫", 8747}, /* integral */ { "∴", 8756}, /* therefore */ { "∼", 8764}, /* tilde operator */ { "≅", 8773}, /* approximately equal to */ { "≈", 8776}, /* asymptotic to */ { "≠", 8800}, /* not equal to */ { "≡", 8801}, /* identical to */ { "≤", 8804}, /* less-than or equal to */ { "≥", 8805}, /* greater-than or equal to */ { "⊂", 8834}, /* subset of */ { "⊃", 8835}, /* superset of */ { "⊄", 8836}, /* not a subset of */ { "⊆", 8838}, /* subset of or equal to */ { "⊇", 8839}, /* superset of or equal to */ { "⊕", 8853}, /* circled plus = direct sum */ { "⊗", 8855}, /* circled times = vec prod */ { "⊥", 8869}, /* perpendicular */ { "⋅", 8901}, /* dot operator */ { "⌈", 8968}, /* left ceiling */ { "⌉", 8969}, /* right ceiling */ { "⌊", 8970}, /* left floor */ { "⌋", 8971}, /* right floor */ { "⟨", 9001}, /* left angle bracket */ { "⟩", 9002}, /* right angle bracket */ { "◊", 9674}, /* lozenge */ { "♠", 9824}, /* spades */ { "♣", 9827}, /* clubs */ { "♥", 9829}, /* hearts */ { "♦", 9830}, /* diamonds */ /* Latin-1 */ { " ", 32 }, /* non-breaking space */ { "¡", 161 }, /* inverted exclamation mark */ { "¢", 162 }, /* cent sign */ { "£", 163 }, /* pound sign */ { "¤", 164 }, /* currency sign */ { "¥", 165 }, /* yen sign */ { "¦", 166 }, /* broken vertical bar */ { "§", 167 }, /* section sign */ { "¨", 168 }, /* diaeresis - spacing diaeresis */ { "©", 169 }, /* copyright sign */ { "ª", 170 }, /* feminine ordinal indicator */ { "«", 171 }, /* left-pointing guillemet */ { "¬", 172 }, /* not sign */ { "­", 173 }, /* soft (discretionary) hyphen */ { "®", 174 }, /* registered sign */ { "¯", 175 }, /* macron = overline */ { "°", 176 }, /* degree sign */ { "±", 177 }, /* plus-minus sign */ { "²", 178 }, /* superscript two */ { "³", 179 }, /* superscript three */ { "´", 180 }, /* acute accent = spacing acute */ { "µ", 181 }, /* micro sign */ { "¶", 182 }, /* pilcrow (paragraph) sign */ { "·", 183 }, /* middle dot (georgian comma) */ { "¸", 184 }, /* cedilla = spacing cedilla */ { "¹", 185 }, /* superscript one */ { "º", 186 }, /* masculine ordinal indicator */ { "»", 187 }, /* right pointing guillemet */ { "¼", 188 }, /* 1/4 */ { "½", 189 }, /* 1/2 */ { "¾", 190 }, /* 3/4 */ { "¿", 191 }, /* inverted question mark */ { "À", 192 }, /* cap A with grave */ { "Á", 193 }, /* cap A with acute */ { "Â", 194 }, /* cap A with circumflex */ { "Ã", 195 }, /* cap A with tilde */ { "Ä", 196 }, /* cap A with diaeresis */ { "Å", 197 }, /* cap A with ring */ { "Æ", 198 }, /* cap AE ligature */ { "Ç", 199 }, /* cap C with cedilla */ { "È", 200 }, /* cap E with grave */ { "É", 201 }, /* cap E with acute */ { "Ê", 202 }, /* cap E with circumflex */ { "Ë", 203 }, /* cap E with diaeresis */ { "Ì", 204 }, /* cap I with grave */ { "Í", 205 }, /* cap I with acute */ { "Î", 206 }, /* cap I with circumflex */ { "Ï", 207 }, /* cap I with diaeresis */ { "Ð", 208 }, /* cap letter ETH */ { "Ñ", 209 }, /* cap N with tilde */ { "Ò", 210 }, /* cap O with grave */ { "Ó", 211 }, /* cap O with acute */ { "Ô", 212 }, /* cap O with circumflex */ { "Õ", 213 }, /* cap O with tilde */ { "Ö", 214 }, /* cap O with diaeresis */ { "×", 215 }, /* multiplication sign */ { "Ø", 216 }, /* cap O with stroke */ { "Ù", 217 }, /* cap U with grave */ { "Ú", 218 }, /* cap U with acute */ { "Û", 219 }, /* cap U with circumflex */ { "Ü", 220 }, /* cap U with diaeresis */ { "Ý", 221 }, /* cap Y with acute */ { "Þ", 222 }, /* cap letter THORN */ { "ß", 223 }, /* small sharp s = ess-zed */ { "à", 224 }, /* small a with grave */ { "á", 225 }, /* small a with acute */ { "â", 226 }, /* small a with cirucmflex */ { "ã", 227 }, /* small a with tilde */ { "&amul;", 228 }, /* small a with diaeresis */ { "å", 229 }, /* small a with ring */ { "æ", 230 }, /* small ligature ae */ { "ç", 231 }, /* small c with cedilla */ { "è", 232 }, /* small e with grave */ { "é", 233 }, /* small e with acute */ { "ê", 234 }, /* small e with circumflex */ { "&emul;", 235 }, /* small e with diaeresis */ { "ì", 236 }, /* small i with grave */ { "í", 237 }, /* small i with acute */ { "î", 238 }, /* small i with circumflex */ { "ï", 239 }, /* small i with diaeresis */ { "ð", 240 }, /* latin small letter eth */ { "ñ", 241 }, /* small n with tilde */ { "ò", 242 }, /* small o with grave */ { "ó", 243 }, /* small o with acute */ { "ô", 244 }, /* small o with circumflex */ { "õ", 245 }, /* small o with tilde */ { "ö", 246 }, /* small o with diaeresis */ { "÷", 247 }, /* division sign */ { "ø", 248 }, /* small o with slash */ { "ù", 249 }, /* small u with grave */ { "ú", 250 }, /* small u with acute */ { "û", 251 }, /* small u with circumflex */ { "ü", 252 }, /* small u with diaeresis */ { "ý", 253 }, /* small y with acute */ { "þ", 254 }, /* latin small letter thorn */ { "ÿ", 255 }, /* small y with diaeresis */ }; static unsigned int decode_html_entity( char *s, unsigned int *pi, int *err ) { int nhtml_entities = sizeof( html_entities ) / sizeof( entities ); char *e; int i, n=-1, len; for ( i=0; i #include #include #include #include "fields.h" fields* fields_new( void ) { fields *f = ( fields * ) malloc( sizeof( fields ) ); if ( f ) fields_init( f ); return f; } void fields_init( fields *f ) { f->used = NULL; f->level = NULL; f->tag = NULL; f->data = NULL; f->max = f->n = 0; } void fields_free( fields *f ) { int i; for ( i=0; imax; ++i ) { str_free( &(f->tag[i]) ); str_free( &(f->data[i]) ); } if ( f->tag ) free( f->tag ); if ( f->data ) free( f->data ); if ( f->used ) free( f->used ); if ( f->level ) free( f->level ); fields_init( f ); } void fields_delete( fields *f ) { fields_free( f ); free( f ); } static int fields_alloc( fields *f ) { int i, alloc = 20; f->tag = (str *) malloc( sizeof(str) * alloc ); f->data = (str *) malloc( sizeof(str) * alloc ); f->used = (int *) calloc( alloc, sizeof(int) ); f->level = (int *) calloc( alloc, sizeof(int) ); if ( !f->tag || !f->data || !f->used || !f->level ){ if ( f->tag ) free( f->tag ); if ( f->data ) free( f->data ); if ( f->used ) free( f->used ); if ( f->level ) free( f->level ); fields_init( f ); return FIELDS_ERR; } f->max = alloc; f->n = 0; for ( i=0; itag[i]) ); str_init( &(f->data[i]) ); } return FIELDS_OK; } static int fields_realloc( fields *f ) { str *newtags, *newdata; int *newused, *newlevel; int i, alloc = f->max * 2; newtags = (str*) realloc( f->tag, sizeof(str) * alloc ); newdata = (str*) realloc( f->data, sizeof(str) * alloc ); newused = (int*) realloc( f->used, sizeof(int) * alloc ); newlevel= (int*) realloc( f->level, sizeof(int) * alloc ); if ( newtags ) f->tag = newtags; if ( newdata ) f->data = newdata; if ( newused ) f->used = newused; if ( newlevel ) f->level = newlevel; if ( !newtags || !newdata || !newused || !newlevel ) return FIELDS_ERR; f->max = alloc; for ( i=f->n; itag[i]) ); str_init( &(f->data[i]) ); } return FIELDS_OK; } int _fields_add( fields *f, char *tag, char *data, int level, int mode ) { int i, n, status; str *t, *d; if ( !tag || !data ) return FIELDS_OK; if ( f->max==0 ) { status = fields_alloc( f ); if ( status!=FIELDS_OK ) return status; } else if ( f->n >= f->max ) { status = fields_realloc( f ); if ( status!=FIELDS_OK ) return status; } /* Don't duplicate identical entries if FIELDS_NO_DUPS */ if ( mode == FIELDS_NO_DUPS ) { for ( i=0; in; i++ ) { t = &(f->tag[i]); d = &(f->data[i]); if ( f->level[i]==level && !strcasecmp( str_cstr( t ), tag ) && !strcasecmp( str_cstr( d ), data ) ) return FIELDS_OK; } } n = f->n; f->used[ n ] = 0; f->level[ n ] = level; str_strcpyc( &(f->tag[n]), tag ); str_strcpyc( &(f->data[n]), data ); if ( str_memerr( &(f->tag[n]) ) || str_memerr( &(f->data[n] ) ) ) return FIELDS_ERR; f->n++; return FIELDS_OK; } int _fields_add_tagsuffix( fields *f, char *tag, char *suffix, char *data, int level, int mode ) { str newtag; int ret; str_init( &newtag ); str_mergestrs( &newtag, tag, suffix, NULL ); if ( str_memerr( &newtag ) ) ret = FIELDS_ERR; else ret = _fields_add( f, newtag.data, data, level, mode ); str_free( &newtag ); return ret; } /* fields_match_level() * * returns 1 if level matched, 0 if not * * level==LEVEL_ANY is a special flag meaning any level can match */ int fields_match_level( fields *f, int n, int level ) { if ( level==LEVEL_ANY ) return 1; if ( fields_level( f, n )==level ) return 1; return 0; } /* fields_match_tag() * * returns 1 if tag matches, 0 if not * */ int fields_match_tag( fields *info, int n, char *tag ) { if ( !strcmp( fields_tag( info, n, FIELDS_CHRP ), tag ) ) return 1; return 0; } int fields_match_casetag( fields *info, int n, char *tag ) { if ( !strcasecmp( fields_tag( info, n, FIELDS_CHRP ), tag ) ) return 1; return 0; } int fields_match_tag_level( fields *info, int n, char *tag, int level ) { if ( !fields_match_level( info, n, level ) ) return 0; return fields_match_tag( info, n, tag ); } int fields_match_casetag_level( fields *info, int n, char *tag, int level ) { if ( !fields_match_level( info, n, level ) ) return 0; return fields_match_casetag( info, n, tag ); } /* fields_find() * * Return position [0,f->n) for match of the tag. * Return FIELDS_NOTFOUND if tag isn't found. */ int fields_find( fields *f, char *tag, int level ) { int i; for ( i=0; in; ++i ) { if ( !fields_match_casetag_level( f, i, tag, level ) ) continue; if ( f->data[i].len ) return i; else { /* if there is no data for the tag, don't "find" it */ /* and set "used" so noise is suppressed */ f->used[i] = 1; } } return FIELDS_NOTFOUND; } int fields_maxlevel( fields *f ) { int i, max = 0; if ( f->n ) { max = f->level[0]; for ( i=1; in; ++i ) { if ( f->level[i] > max ) max = f->level[i]; } } return max; } void fields_clearused( fields *f ) { int i; for ( i=0; in; ++i ) f->used[i] = 0; } void fields_setused( fields *f, int n ) { if ( n >= 0 && n < f->n ) f->used[n] = 1; } /* fields_replace_or_add() * * return FIELDS_OK on success, FIELDS_ERR on memory error */ int fields_replace_or_add( fields *f, char *tag, char *data, int level ) { int n = fields_find( f, tag, level ); if ( n==FIELDS_NOTFOUND ) return fields_add( f, tag, data, level ); else { str_strcpyc( &(f->data[n]), data ); if ( str_memerr( &(f->data[n]) ) ) return FIELDS_ERR; return FIELDS_OK; } } char *fields_null_value = "\0"; int fields_used( fields *f, int n ) { if ( n >= 0 && n < f->n ) return f->used[n]; else return 0; } int fields_notag( fields *f, int n ) { str *t; if ( n >= 0 && n < f->n ) { t = &( f->tag[n] ); if ( t->len > 0 ) return 0; } return 1; } int fields_nodata( fields *f, int n ) { str *d; if ( n >= 0 && n < f->n ) { d = &( f->data[n] ); if ( d->len > 0 ) return 0; } return 1; } int fields_num( fields *f ) { return f->n; } /* * #define FIELDS_CHRP * #define FIELDS_STRP * #define FIELDS_CHRP_NOLEN * #define FIELDS_STRP_NOLEN * * If the length of the tagged value is zero and the mode is * FIELDS_STRP_NOLEN or FIELDS_CHRP_NOLEN, return a pointer to * a static null string as the data field could be new due to * the way str handles initialized strings with no data. * */ void * fields_value( fields *f, int n, int mode ) { intptr_t retn; if ( n<0 || n>= f->n ) return NULL; if ( mode & FIELDS_SETUSE_FLAG ) fields_setused( f, n ); if ( mode & FIELDS_STRP_FLAG ) return &(f->data[n]); else if ( mode & FIELDS_POSP_FLAG ) { retn = n; return ( void * ) retn; /* Rather pointless */ } else { if ( f->data[n].len ) return f->data[n].data; else return fields_null_value; } } void * fields_tag( fields *f, int n, int mode ) { intptr_t retn; if ( n<0 || n>= f->n ) return NULL; if ( mode & FIELDS_STRP_FLAG ) return &(f->tag[n]); else if ( mode & FIELDS_POSP_FLAG ) { retn = n; return ( void * ) retn; /* Rather pointless */ } else { if ( f->tag[n].len ) return f->tag[n].data; else return fields_null_value; } } int fields_level( fields *f, int n ) { if ( n<0 || n>= f->n ) return 0; return f->level[n]; } void * fields_findv( fields *f, int level, int mode, char *tag ) { int i, found = FIELDS_NOTFOUND; intptr_t retn; for ( i=0; in && found==FIELDS_NOTFOUND; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetag( f, i, tag ) ) continue; if ( f->data[i].len!=0 ) found = i; else { if ( mode & FIELDS_NOLENOK_FLAG ) { return (void *) fields_null_value; } else if ( mode & FIELDS_SETUSE_FLAG ) { f->used[i] = 1; /* Suppress "noise" of unused */ } } } if ( found==FIELDS_NOTFOUND ) return NULL; if ( mode & FIELDS_SETUSE_FLAG ) fields_setused( f, found ); if ( mode & FIELDS_STRP_FLAG ) return (void *) &(f->data[found]); else if ( mode & FIELDS_POSP_FLAG ) { retn = found; return (void *) retn; } else return (void *) f->data[found].data; } void * fields_findv_firstof( fields *f, int level, int mode, ... ) { char *tag, *value; va_list argp; va_start( argp, mode ); while ( ( tag = ( char * ) va_arg( argp, char * ) ) ) { value = fields_findv( f, level, mode, tag ); if ( value ) { va_end( argp ); return value; } } va_end( argp ); return NULL; } static int fields_findv_each_add( fields *f, int mode, int n, vplist *a ) { int status; void *v; if ( n<0 || n>= f->n ) return FIELDS_OK; if ( mode & FIELDS_SETUSE_FLAG ) fields_setused( f, n ); if ( mode & FIELDS_STRP_FLAG ) { v = ( void * ) &( f->data[n] ); } else if ( mode & FIELDS_POSP_FLAG ) { v = ( void * )( (long long) n ); } else { v = ( void * ) str_cstr( &( f->data[n] ) ); } status = vplist_add( a, v ); if ( status==VPLIST_OK ) return FIELDS_OK; else return FIELDS_ERR; } int fields_findv_each( fields *f, int level, int mode, vplist *a, char *tag ) { int i, status; for ( i=0; in; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetag( f, i, tag ) ) continue; if ( f->data[i].len!=0 ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) return status; } else { if ( mode & FIELDS_NOLENOK_FLAG ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) return status; } else { f->used[i] = 1; /* Suppress "noise" of unused */ } } } return FIELDS_OK; } static int fields_build_tags( va_list argp, vplist *tags ) { int status; char *tag; while ( ( tag = ( char * ) va_arg( argp, char * ) ) ) { status = vplist_add( tags, tag ); if ( status!=VPLIST_OK ) return FIELDS_ERR; } return FIELDS_OK; } static int fields_match_casetags( fields *f, int n, vplist *tags ) { int i; for ( i=0; in; ++i ) if ( fields_match_casetag( f, n, vplist_get( tags, i ) ) ) return 1; return 0; } int fields_findv_eachof( fields *f, int level, int mode, vplist *a, ... ) { int i, status; va_list argp; vplist tags; vplist_init( &tags ); /* build list of tags to search for */ va_start( argp, a ); status = fields_build_tags( argp, &tags ); va_end( argp ); if ( status!=FIELDS_OK ) goto out; /* search list */ for ( i=0; in; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetags( f, i, &tags ) ) continue; if ( f->data[i].len!=0 || ( mode & FIELDS_NOLENOK_FLAG ) ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) goto out; } else { f->used[i] = 1; /* Suppress "noise" of unused */ } } out: vplist_free( &tags ); return status; } void fields_report( fields *f, FILE *fp ) { int i, n; n = fields_num( f ); fprintf( fp, "# NUM level = LEVEL 'TAG' = 'VALUE'\n" ); for ( i=0; i #include #include #include #include "fields.h" fields* fields_new( void ) { fields *f = ( fields * ) malloc( sizeof( fields ) ); if ( f ) fields_init( f ); return f; } void fields_init( fields *f ) { f->used = NULL; f->level = NULL; f->tag = NULL; f->data = NULL; f->max = f->n = 0; } void fields_free( fields *f ) { int i; for ( i=0; imax; ++i ) { str_free( &(f->tag[i]) ); str_free( &(f->data[i]) ); } if ( f->tag ) free( f->tag ); if ( f->data ) free( f->data ); if ( f->used ) free( f->used ); if ( f->level ) free( f->level ); fields_init( f ); } void fields_delete( fields *f ) { fields_free( f ); free( f ); } static int fields_alloc( fields *f ) { int i, alloc = 20; f->tag = (str *) malloc( sizeof(str) * alloc ); f->data = (str *) malloc( sizeof(str) * alloc ); f->used = (int *) calloc( alloc, sizeof(int) ); f->level = (int *) calloc( alloc, sizeof(int) ); if ( !f->tag || !f->data || !f->used || !f->level ){ if ( f->tag ) free( f->tag ); if ( f->data ) free( f->data ); if ( f->used ) free( f->used ); if ( f->level ) free( f->level ); fields_init( f ); return FIELDS_ERR; } f->max = alloc; f->n = 0; for ( i=0; itag[i]) ); str_init( &(f->data[i]) ); } return FIELDS_OK; } static int fields_realloc( fields *f ) { str *newtags, *newdata; int *newused, *newlevel; int i, alloc = f->max * 2; newtags = (str*) realloc( f->tag, sizeof(str) * alloc ); newdata = (str*) realloc( f->data, sizeof(str) * alloc ); newused = (int*) realloc( f->used, sizeof(int) * alloc ); newlevel= (int*) realloc( f->level, sizeof(int) * alloc ); if ( newtags ) f->tag = newtags; if ( newdata ) f->data = newdata; if ( newused ) f->used = newused; if ( newlevel ) f->level = newlevel; if ( !newtags || !newdata || !newused || !newlevel ) return FIELDS_ERR; f->max = alloc; for ( i=f->n; itag[i]) ); str_init( &(f->data[i]) ); } return FIELDS_OK; } int _fields_add( fields *f, char *tag, char *data, int level, int mode ) { int i, n, status; str *t, *d; if ( !tag || !data ) return FIELDS_OK; if ( f->max==0 ) { status = fields_alloc( f ); if ( status!=FIELDS_OK ) return status; } else if ( f->n >= f->max ) { status = fields_realloc( f ); if ( status!=FIELDS_OK ) return status; } /* Don't duplicate identical entries if FIELDS_NO_DUPS */ if ( mode == FIELDS_NO_DUPS ) { for ( i=0; in; i++ ) { t = &(f->tag[i]); d = &(f->data[i]); if ( f->level[i]==level && !strcasecmp( str_cstr( t ), tag ) && !strcasecmp( str_cstr( d ), data ) ) return FIELDS_OK; } } n = f->n; f->used[ n ] = 0; f->level[ n ] = level; str_strcpyc( &(f->tag[n]), tag ); str_strcpyc( &(f->data[n]), data ); if ( str_memerr( &(f->tag[n]) ) || str_memerr( &(f->data[n] ) ) ) return FIELDS_ERR; f->n++; return FIELDS_OK; } int _fields_add_tagsuffix( fields *f, char *tag, char *suffix, char *data, int level, int mode ) { str newtag; int ret; str_init( &newtag ); str_mergestrs( &newtag, tag, suffix, NULL ); if ( str_memerr( &newtag ) ) ret = FIELDS_ERR; else ret = _fields_add( f, newtag.data, data, level, mode ); str_free( &newtag ); return ret; } /* fields_match_level() * * returns 1 if level matched, 0 if not * * level==LEVEL_ANY is a special flag meaning any level can match */ int fields_match_level( fields *f, int n, int level ) { if ( level==LEVEL_ANY ) return 1; if ( fields_level( f, n )==level ) return 1; return 0; } /* fields_match_tag() * * returns 1 if tag matches, 0 if not * */ int fields_match_tag( fields *info, int n, char *tag ) { if ( !strcmp( fields_tag( info, n, FIELDS_CHRP ), tag ) ) return 1; return 0; } int fields_match_casetag( fields *info, int n, char *tag ) { if ( !strcasecmp( fields_tag( info, n, FIELDS_CHRP ), tag ) ) return 1; return 0; } int fields_match_tag_level( fields *info, int n, char *tag, int level ) { if ( !fields_match_level( info, n, level ) ) return 0; return fields_match_tag( info, n, tag ); } int fields_match_casetag_level( fields *info, int n, char *tag, int level ) { if ( !fields_match_level( info, n, level ) ) return 0; return fields_match_casetag( info, n, tag ); } /* fields_find() * * Return position [0,f->n) for match of the tag. * Return FIELDS_NOTFOUND if tag isn't found. */ int fields_find( fields *f, char *tag, int level ) { int i; for ( i=0; in; ++i ) { if ( !fields_match_casetag_level( f, i, tag, level ) ) continue; if ( f->data[i].len ) return i; else { /* if there is no data for the tag, don't "find" it */ /* and set "used" so noise is suppressed */ f->used[i] = 1; } } return FIELDS_NOTFOUND; } int fields_maxlevel( fields *f ) { int i, max = 0; if ( f->n ) { max = f->level[0]; for ( i=1; in; ++i ) { if ( f->level[i] > max ) max = f->level[i]; } } return max; } void fields_clearused( fields *f ) { int i; for ( i=0; in; ++i ) f->used[i] = 0; } void fields_setused( fields *f, int n ) { if ( n >= 0 && n < f->n ) f->used[n] = 1; } /* fields_replace_or_add() * * return FIELDS_OK on success, FIELDS_ERR on memory error */ int fields_replace_or_add( fields *f, char *tag, char *data, int level ) { int n = fields_find( f, tag, level ); if ( n==FIELDS_NOTFOUND ) return fields_add( f, tag, data, level ); else { str_strcpyc( &(f->data[n]), data ); if ( str_memerr( &(f->data[n]) ) ) return FIELDS_ERR; return FIELDS_OK; } } char *fields_null_value = "\0"; int fields_used( fields *f, int n ) { if ( n >= 0 && n < f->n ) return f->used[n]; else return 0; } int fields_notag( fields *f, int n ) { str *t; if ( n >= 0 && n < f->n ) { t = &( f->tag[n] ); if ( t->len > 0 ) return 0; } return 1; } int fields_nodata( fields *f, int n ) { str *d; if ( n >= 0 && n < f->n ) { d = &( f->data[n] ); if ( d->len > 0 ) return 0; } return 1; } int fields_num( fields *f ) { return f->n; } /* * #define FIELDS_CHRP * #define FIELDS_STRP * #define FIELDS_CHRP_NOLEN * #define FIELDS_STRP_NOLEN * * If the length of the tagged value is zero and the mode is * FIELDS_STRP_NOLEN or FIELDS_CHRP_NOLEN, return a pointer to * a static null string as the data field could be new due to * the way str handles initialized strings with no data. * */ void * fields_value( fields *f, int n, int mode ) { intptr_t retn; if ( n<0 || n>= f->n ) return NULL; if ( mode & FIELDS_SETUSE_FLAG ) fields_setused( f, n ); if ( mode & FIELDS_STRP_FLAG ) return &(f->data[n]); else if ( mode & FIELDS_POSP_FLAG ) { retn = n; return ( void * ) retn; /* Rather pointless */ } else { if ( f->data[n].len ) return f->data[n].data; else return fields_null_value; } } void * fields_tag( fields *f, int n, int mode ) { intptr_t retn; if ( n<0 || n>= f->n ) return NULL; if ( mode & FIELDS_STRP_FLAG ) return &(f->tag[n]); else if ( mode & FIELDS_POSP_FLAG ) { retn = n; return ( void * ) retn; /* Rather pointless */ } else { if ( f->tag[n].len ) return f->tag[n].data; else return fields_null_value; } } int fields_level( fields *f, int n ) { if ( n<0 || n>= f->n ) return 0; return f->level[n]; } void * fields_findv( fields *f, int level, int mode, char *tag ) { int i, found = FIELDS_NOTFOUND; intptr_t retn; for ( i=0; in && found==FIELDS_NOTFOUND; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetag( f, i, tag ) ) continue; if ( f->data[i].len!=0 ) found = i; else { if ( mode & FIELDS_NOLENOK_FLAG ) { return (void *) fields_null_value; } else if ( mode & FIELDS_SETUSE_FLAG ) { f->used[i] = 1; /* Suppress "noise" of unused */ } } } if ( found==FIELDS_NOTFOUND ) return NULL; if ( mode & FIELDS_SETUSE_FLAG ) fields_setused( f, found ); if ( mode & FIELDS_STRP_FLAG ) return (void *) &(f->data[found]); else if ( mode & FIELDS_POSP_FLAG ) { retn = found; return (void *) retn; } else return (void *) f->data[found].data; } void * fields_findv_firstof( fields *f, int level, int mode, ... ) { char *tag, *value; va_list argp; va_start( argp, mode ); while ( ( tag = ( char * ) va_arg( argp, char * ) ) ) { value = fields_findv( f, level, mode, tag ); if ( value ) { va_end( argp ); return value; } } va_end( argp ); return NULL; } static int fields_findv_each_add( fields *f, int mode, int n, vplist *a ) { int status; void *v; if ( n<0 || n>= f->n ) return FIELDS_OK; if ( mode & FIELDS_SETUSE_FLAG ) fields_setused( f, n ); if ( mode & FIELDS_STRP_FLAG ) { v = ( void * ) &( f->data[n] ); } else if ( mode & FIELDS_POSP_FLAG ) { v = ( void * )( (long long) n ); } else { v = ( void * ) str_cstr( &( f->data[n] ) ); } status = vplist_add( a, v ); if ( status==VPLIST_OK ) return FIELDS_OK; else return FIELDS_ERR; } int fields_findv_each( fields *f, int level, int mode, vplist *a, char *tag ) { int i, status; for ( i=0; in; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetag( f, i, tag ) ) continue; if ( f->data[i].len!=0 ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) return status; } else { if ( mode & FIELDS_NOLENOK_FLAG ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) return status; } else { f->used[i] = 1; /* Suppress "noise" of unused */ } } } return FIELDS_OK; } static int fields_build_tags( va_list argp, vplist *tags ) { int status; char *tag; while ( ( tag = ( char * ) va_arg( argp, char * ) ) ) { status = vplist_add( tags, tag ); if ( status!=VPLIST_OK ) return FIELDS_ERR; } return FIELDS_OK; } static int fields_match_casetags( fields *f, int n, vplist *tags ) { int i; for ( i=0; in; ++i ) if ( fields_match_casetag( f, n, vplist_get( tags, i ) ) ) return 1; return 0; } int fields_findv_eachof( fields *f, int level, int mode, vplist *a, ... ) { int i, status; va_list argp; vplist tags; vplist_init( &tags ); /* build list of tags to search for */ va_start( argp, a ); status = fields_build_tags( argp, &tags ); va_end( argp ); if ( status!=FIELDS_OK ) goto out; /* search list */ for ( i=0; in; ++i ) { if ( !fields_match_level( f, i, level ) ) continue; if ( !fields_match_casetags( f, i, &tags ) ) continue; if ( f->data[i].len!=0 || ( mode & FIELDS_NOLENOK_FLAG ) ) { status = fields_findv_each_add( f, mode, i, a ); if ( status!=FIELDS_OK ) goto out; } else { f->used[i] = 1; /* Suppress "noise" of unused */ } } out: vplist_free( &tags ); return status; } void fields_report( fields *f, FILE *fp ) { int i, n; n = fields_num( f ); fprintf( fp, "# NUM level = LEVEL 'TAG' = 'VALUE'\n" ); for ( i=0; i #include "str.h" #include "vplist.h" typedef struct fields { str *tag; str *data; int *used; int *level; int n; int max; } fields; void fields_init( fields *f ); fields *fields_new( void ); void fields_delete( fields *f ); void fields_free( fields *f ); #define FIELDS_CAN_DUP (0) #define FIELDS_NO_DUPS (1) #define fields_add( a, b, c, d ) _fields_add( a, b, c, d, FIELDS_NO_DUPS ) #define fields_add_can_dup( a, b, c, d ) _fields_add( a, b, c, d, FIELDS_CAN_DUP ) #define fields_add_tagsuffix( a, b, c, d, e ) _fields_add( a, b, c, d, e, FIELDS_NO_DUPS ) #define fields_add_tagsuffix_can_dup( a, b, c, d, e ) _fields_add( a, b, c, d, e, FIELDS_CAN_DUP ) int _fields_add( fields *f, char *tag, char *data, int level, int mode ); int _fields_add_tagsuffix( fields *f, char *tag, char *suffix, char *data, int level, int mode ); int fields_maxlevel( fields *f ); void fields_clearused( fields *f ); void fields_setused( fields *f, int n ); int fields_replace_or_add( fields *f, char *tag, char *data, int level ); int fields_num( fields *f ); int fields_used( fields *f, int n ); int fields_notag( fields *f, int n ); int fields_nodata( fields *f, int n ); int fields_match_level( fields *f, int n, int level ); int fields_match_tag( fields *f, int n, char *tag ); int fields_match_casetag( fields *f, int n, char *tag ); int fields_match_tag_level( fields *f, int n, char *tag, int level ); int fields_match_casetag_level( fields *f, int n, char *tag, int level ); void fields_report( fields *f, FILE *fp ); #define FIELDS_STRP_FLAG (2) #define FIELDS_POSP_FLAG (4) #define FIELDS_NOLENOK_FLAG (8) #define FIELDS_SETUSE_FLAG (16) #define FIELDS_CHRP (FIELDS_SETUSE_FLAG ) #define FIELDS_STRP (FIELDS_SETUSE_FLAG | FIELDS_STRP_FLAG ) #define FIELDS_POSP (FIELDS_SETUSE_FLAG | FIELDS_POSP_FLAG ) #define FIELDS_CHRP_NOLEN (FIELDS_SETUSE_FLAG | FIELDS_NOLENOK_FLAG) #define FIELDS_STRP_NOLEN (FIELDS_SETUSE_FLAG | FIELDS_STRP_FLAG | FIELDS_NOLENOK_FLAG) #define FIELDS_POSP_NOLEN (FIELDS_SETUSE_FLAG | FIELDS_POSP_FLAG | FIELDS_NOLENOK_FLAG) #define FIELDS_CHRP_NOUSE ( 0 ) #define FIELDS_STRP_NOUSE ( FIELDS_STRP_FLAG ) void *fields_tag( fields *f, int n, int mode ); void *fields_value( fields *f, int n, int mode ); int fields_level( fields *f, int n ); int fields_find( fields *f, char *searchtag, int level ); void *fields_findv( fields *f, int level, int mode, char *tag ); void *fields_findv_firstof( fields *f, int level, int mode, ... ); int fields_findv_each( fields *f, int level, int mode, vplist *a, char *tag ); int fields_findv_eachof( fields *f, int level, int mode, vplist *a, ... ); #endif hs-bibutils-6.7.0.0/bibutils/gb18030.c0000644000000000000000000001345400000000000015212 0ustar0000000000000000#include #include "gb18030.h" /* GB18030-2000 is an encoding of Unicode character used in China * * {0x00-0x7f} are one byte characters identical to US-ASCII * {0x80} is properly undefined, but many GB18030 encodings make * it the Euro sign (Unicode 0x20AC), so use that * {0x81-0xFE}{0x40-0x7E,0x80-0xFE} a full superset of GBK (with fallback * mappings) * {0x81-0xFE}{0x30-0x39}{0x81-0xFE}{0x30-0x39} maps linearly to ISO 10646 * GB+81308130 = U+0080 up to U+FFFF * GB+90308130 = U+10000 up to U+10FFFF skipping mappings already * defined in 1-byte and 2-byte areas. * * Truth is it's a bit of a mess algorithmically as it doesn't multiply * encode characters, so there are holes in the Unicode mapping that * should be avoided. */ /* This is a "small" region that needs explicit enumeration */ #include "gb18030_enumeration.c" static int in_range( unsigned char n, unsigned char low, unsigned char high ) { if ( n < low || n > high ) return 0; return 1; } /* Get GB 18030 from Unicode Value in Table */ static int gb18030_unicode_table_lookup( unsigned int unicode, unsigned char out[4] ) { int i, j; if ( unicode >= 0x0080 && unicode <= 0xFFE5 ) { /* list is sorted, so should do binary search here */ for ( i=0; i elements. However, most four-byte GB 18030 mappings can be enumerated efficiently within distinct ranges. Therefore, we use elements for all but the 31000 or so assignments above. --> #endif } unsigned int gb18030_to_unicode( unsigned char *s, unsigned char len ) { unsigned int ret; int found; ret = gb18030_table_lookup( s, len, &found ); if ( !found && len==4 ) { ret = gb18030_range_lookup( s, &found ); if ( !found ) ret = '?'; } return ret; } /* * Convert unicode character to gb18030 * * returns number of characters for output */ int gb18030_encode( unsigned int unicode, unsigned char out[4] ) { int len; if ( unicode < 0x80 ) { out[0] = unicode; len = 1; } else { len = gb18030_unicode_table_lookup( unicode, out ); if ( !len ) len = gb18030_unicode_range_lookup( unicode, out ); } return len; } /* * Decode a gb18030 character into unicode */ unsigned int gb18030_decode( char *s, unsigned int *pi ) { unsigned int c; unsigned char uc[4]; int i = *pi; uc[0] = ( unsigned char ) s[i]; if ( ( uc[0] & 128 ) == 0 ) { c = ( unsigned int ) uc[0]; i += 1; } else if ( uc[0] == 0x80 ) { c = 0x20AC; i += 1; } else if ( uc[0] != 0xFF ) { /* multi-byte character */ uc[1] = ( unsigned char ) s[i+1]; uc[2] = ( unsigned char ) s[i+2]; uc[3]= ( unsigned char ) s[i+3]; if ( in_range( uc[1], 0x40, 0x7e ) || in_range( uc[1], 0x80, 0xfe ) ) { /* two-byte character */ c = gb18030_to_unicode( &(uc[0]), 2 ); i += 2; } else if ( in_range( uc[1], 0x30, 0x39 ) && in_range( uc[2], 0x81, 0xfe ) && in_range( uc[3], 0x30, 0x39 ) ) { /* four-byte character */ c = gb18030_to_unicode( &(uc[0]), 4 ); i += 4; } else { /* this is an illegal character */ c = '?'; i += 1; } } else { /* s[i]==0xFF */ /* this is an illegal character */ c = '?'; i += 1; } *pi = i; return c; } hs-bibutils-6.7.0.0/bibutils/gb18030.c0000755000000000000000000001345400000000000015215 0ustar0000000000000000#include #include "gb18030.h" /* GB18030-2000 is an encoding of Unicode character used in China * * {0x00-0x7f} are one byte characters identical to US-ASCII * {0x80} is properly undefined, but many GB18030 encodings make * it the Euro sign (Unicode 0x20AC), so use that * {0x81-0xFE}{0x40-0x7E,0x80-0xFE} a full superset of GBK (with fallback * mappings) * {0x81-0xFE}{0x30-0x39}{0x81-0xFE}{0x30-0x39} maps linearly to ISO 10646 * GB+81308130 = U+0080 up to U+FFFF * GB+90308130 = U+10000 up to U+10FFFF skipping mappings already * defined in 1-byte and 2-byte areas. * * Truth is it's a bit of a mess algorithmically as it doesn't multiply * encode characters, so there are holes in the Unicode mapping that * should be avoided. */ /* This is a "small" region that needs explicit enumeration */ #include "gb18030_enumeration.c" static int in_range( unsigned char n, unsigned char low, unsigned char high ) { if ( n < low || n > high ) return 0; return 1; } /* Get GB 18030 from Unicode Value in Table */ static int gb18030_unicode_table_lookup( unsigned int unicode, unsigned char out[4] ) { int i, j; if ( unicode >= 0x0080 && unicode <= 0xFFE5 ) { /* list is sorted, so should do binary search here */ for ( i=0; i elements. However, most four-byte GB 18030 mappings can be enumerated efficiently within distinct ranges. Therefore, we use elements for all but the 31000 or so assignments above. --> #endif } unsigned int gb18030_to_unicode( unsigned char *s, unsigned char len ) { unsigned int ret; int found; ret = gb18030_table_lookup( s, len, &found ); if ( !found && len==4 ) { ret = gb18030_range_lookup( s, &found ); if ( !found ) ret = '?'; } return ret; } /* * Convert unicode character to gb18030 * * returns number of characters for output */ int gb18030_encode( unsigned int unicode, unsigned char out[4] ) { int len; if ( unicode < 0x80 ) { out[0] = unicode; len = 1; } else { len = gb18030_unicode_table_lookup( unicode, out ); if ( !len ) len = gb18030_unicode_range_lookup( unicode, out ); } return len; } /* * Decode a gb18030 character into unicode */ unsigned int gb18030_decode( char *s, unsigned int *pi ) { unsigned int c; unsigned char uc[4]; int i = *pi; uc[0] = ( unsigned char ) s[i]; if ( ( uc[0] & 128 ) == 0 ) { c = ( unsigned int ) uc[0]; i += 1; } else if ( uc[0] == 0x80 ) { c = 0x20AC; i += 1; } else if ( uc[0] != 0xFF ) { /* multi-byte character */ uc[1] = ( unsigned char ) s[i+1]; uc[2] = ( unsigned char ) s[i+2]; uc[3]= ( unsigned char ) s[i+3]; if ( in_range( uc[1], 0x40, 0x7e ) || in_range( uc[1], 0x80, 0xfe ) ) { /* two-byte character */ c = gb18030_to_unicode( &(uc[0]), 2 ); i += 2; } else if ( in_range( uc[1], 0x30, 0x39 ) && in_range( uc[2], 0x81, 0xfe ) && in_range( uc[3], 0x30, 0x39 ) ) { /* four-byte character */ c = gb18030_to_unicode( &(uc[0]), 4 ); i += 4; } else { /* this is an illegal character */ c = '?'; i += 1; } } else { /* s[i]==0xFF */ /* this is an illegal character */ c = '?'; i += 1; } *pi = i; return c; } hs-bibutils-6.7.0.0/bibutils/gb18030.h0000755000000000000000000000045400000000000015216 0ustar0000000000000000/* * gb18030.h * * Copyright (c) Chris Putnam 2008-2018 * * Source code released under the GPL version 2 * */ #ifndef GB18030_H #define GB18030_H extern int gb18030_encode( unsigned int unicode, unsigned char out[4] ); extern unsigned int gb18030_decode( char *s, unsigned int *pi ); #endif hs-bibutils-6.7.0.0/bibutils/gb18030_enumeration.c0000755000000000000000000416133000000000000017624 0ustar0000000000000000 typedef struct genums_t { unsigned int unicode; unsigned char len; unsigned char bytes[4]; } genums_t; static const genums_t gb18030_enums[] = { {0x0080,4,{0x81,0x30,0x81,0x30,}}, {0x0081,4,{0x81,0x30,0x81,0x31,}}, {0x0082,4,{0x81,0x30,0x81,0x32,}}, {0x0083,4,{0x81,0x30,0x81,0x33,}}, {0x0084,4,{0x81,0x30,0x81,0x34,}}, {0x0085,4,{0x81,0x30,0x81,0x35,}}, {0x0086,4,{0x81,0x30,0x81,0x36,}}, {0x0087,4,{0x81,0x30,0x81,0x37,}}, {0x0088,4,{0x81,0x30,0x81,0x38,}}, {0x0089,4,{0x81,0x30,0x81,0x39,}}, {0x008A,4,{0x81,0x30,0x82,0x30,}}, {0x008B,4,{0x81,0x30,0x82,0x31,}}, {0x008C,4,{0x81,0x30,0x82,0x32,}}, {0x008D,4,{0x81,0x30,0x82,0x33,}}, {0x008E,4,{0x81,0x30,0x82,0x34,}}, {0x008F,4,{0x81,0x30,0x82,0x35,}}, {0x0090,4,{0x81,0x30,0x82,0x36,}}, {0x0091,4,{0x81,0x30,0x82,0x37,}}, {0x0092,4,{0x81,0x30,0x82,0x38,}}, {0x0093,4,{0x81,0x30,0x82,0x39,}}, {0x0094,4,{0x81,0x30,0x83,0x30,}}, {0x0095,4,{0x81,0x30,0x83,0x31,}}, {0x0096,4,{0x81,0x30,0x83,0x32,}}, {0x0097,4,{0x81,0x30,0x83,0x33,}}, {0x0098,4,{0x81,0x30,0x83,0x34,}}, {0x0099,4,{0x81,0x30,0x83,0x35,}}, {0x009A,4,{0x81,0x30,0x83,0x36,}}, {0x009B,4,{0x81,0x30,0x83,0x37,}}, {0x009C,4,{0x81,0x30,0x83,0x38,}}, {0x009D,4,{0x81,0x30,0x83,0x39,}}, {0x009E,4,{0x81,0x30,0x84,0x30,}}, {0x009F,4,{0x81,0x30,0x84,0x31,}}, {0x00A0,4,{0x81,0x30,0x84,0x32,}}, {0x00A1,4,{0x81,0x30,0x84,0x33,}}, {0x00A2,4,{0x81,0x30,0x84,0x34,}}, {0x00A3,4,{0x81,0x30,0x84,0x35,}}, {0x00A4,2,{0xA1,0xE8,0x00,0x00,}}, {0x00A5,4,{0x81,0x30,0x84,0x36,}}, {0x00A6,4,{0x81,0x30,0x84,0x37,}}, {0x00A7,2,{0xA1,0xEC,0x00,0x00,}}, {0x00A8,2,{0xA1,0xA7,0x00,0x00,}}, {0x00A9,4,{0x81,0x30,0x84,0x38,}}, {0x00AA,4,{0x81,0x30,0x84,0x39,}}, {0x00AB,4,{0x81,0x30,0x85,0x30,}}, {0x00AC,4,{0x81,0x30,0x85,0x31,}}, {0x00AD,4,{0x81,0x30,0x85,0x32,}}, {0x00AE,4,{0x81,0x30,0x85,0x33,}}, {0x00AF,4,{0x81,0x30,0x85,0x34,}}, {0x00B0,2,{0xA1,0xE3,0x00,0x00,}}, {0x00B1,2,{0xA1,0xC0,0x00,0x00,}}, {0x00B2,4,{0x81,0x30,0x85,0x35,}}, {0x00B3,4,{0x81,0x30,0x85,0x36,}}, {0x00B4,4,{0x81,0x30,0x85,0x37,}}, {0x00B5,4,{0x81,0x30,0x85,0x38,}}, {0x00B6,4,{0x81,0x30,0x85,0x39,}}, {0x00B7,2,{0xA1,0xA4,0x00,0x00,}}, {0x00B8,4,{0x81,0x30,0x86,0x30,}}, {0x00B9,4,{0x81,0x30,0x86,0x31,}}, {0x00BA,4,{0x81,0x30,0x86,0x32,}}, {0x00BB,4,{0x81,0x30,0x86,0x33,}}, {0x00BC,4,{0x81,0x30,0x86,0x34,}}, {0x00BD,4,{0x81,0x30,0x86,0x35,}}, {0x00BE,4,{0x81,0x30,0x86,0x36,}}, {0x00BF,4,{0x81,0x30,0x86,0x37,}}, {0x00C0,4,{0x81,0x30,0x86,0x38,}}, {0x00C1,4,{0x81,0x30,0x86,0x39,}}, {0x00C2,4,{0x81,0x30,0x87,0x30,}}, {0x00C3,4,{0x81,0x30,0x87,0x31,}}, {0x00C4,4,{0x81,0x30,0x87,0x32,}}, {0x00C5,4,{0x81,0x30,0x87,0x33,}}, {0x00C6,4,{0x81,0x30,0x87,0x34,}}, {0x00C7,4,{0x81,0x30,0x87,0x35,}}, {0x00C8,4,{0x81,0x30,0x87,0x36,}}, {0x00C9,4,{0x81,0x30,0x87,0x37,}}, {0x00CA,4,{0x81,0x30,0x87,0x38,}}, {0x00CB,4,{0x81,0x30,0x87,0x39,}}, {0x00CC,4,{0x81,0x30,0x88,0x30,}}, {0x00CD,4,{0x81,0x30,0x88,0x31,}}, {0x00CE,4,{0x81,0x30,0x88,0x32,}}, {0x00CF,4,{0x81,0x30,0x88,0x33,}}, {0x00D0,4,{0x81,0x30,0x88,0x34,}}, {0x00D1,4,{0x81,0x30,0x88,0x35,}}, {0x00D2,4,{0x81,0x30,0x88,0x36,}}, {0x00D3,4,{0x81,0x30,0x88,0x37,}}, {0x00D4,4,{0x81,0x30,0x88,0x38,}}, {0x00D5,4,{0x81,0x30,0x88,0x39,}}, {0x00D6,4,{0x81,0x30,0x89,0x30,}}, {0x00D7,2,{0xA1,0xC1,0x00,0x00,}}, {0x00D8,4,{0x81,0x30,0x89,0x31,}}, {0x00D9,4,{0x81,0x30,0x89,0x32,}}, {0x00DA,4,{0x81,0x30,0x89,0x33,}}, {0x00DB,4,{0x81,0x30,0x89,0x34,}}, {0x00DC,4,{0x81,0x30,0x89,0x35,}}, {0x00DD,4,{0x81,0x30,0x89,0x36,}}, {0x00DE,4,{0x81,0x30,0x89,0x37,}}, {0x00DF,4,{0x81,0x30,0x89,0x38,}}, {0x00E0,2,{0xA8,0xA4,0x00,0x00,}}, {0x00E1,2,{0xA8,0xA2,0x00,0x00,}}, {0x00E2,4,{0x81,0x30,0x89,0x39,}}, {0x00E3,4,{0x81,0x30,0x8A,0x30,}}, {0x00E4,4,{0x81,0x30,0x8A,0x31,}}, {0x00E5,4,{0x81,0x30,0x8A,0x32,}}, {0x00E6,4,{0x81,0x30,0x8A,0x33,}}, {0x00E7,4,{0x81,0x30,0x8A,0x34,}}, {0x00E8,2,{0xA8,0xA8,0x00,0x00,}}, {0x00E9,2,{0xA8,0xA6,0x00,0x00,}}, {0x00EA,2,{0xA8,0xBA,0x00,0x00,}}, {0x00EB,4,{0x81,0x30,0x8A,0x35,}}, {0x00EC,2,{0xA8,0xAC,0x00,0x00,}}, {0x00ED,2,{0xA8,0xAA,0x00,0x00,}}, {0x00EE,4,{0x81,0x30,0x8A,0x36,}}, {0x00EF,4,{0x81,0x30,0x8A,0x37,}}, {0x00F0,4,{0x81,0x30,0x8A,0x38,}}, {0x00F1,4,{0x81,0x30,0x8A,0x39,}}, {0x00F2,2,{0xA8,0xB0,0x00,0x00,}}, {0x00F3,2,{0xA8,0xAE,0x00,0x00,}}, {0x00F4,4,{0x81,0x30,0x8B,0x30,}}, {0x00F5,4,{0x81,0x30,0x8B,0x31,}}, {0x00F6,4,{0x81,0x30,0x8B,0x32,}}, {0x00F7,2,{0xA1,0xC2,0x00,0x00,}}, {0x00F8,4,{0x81,0x30,0x8B,0x33,}}, {0x00F9,2,{0xA8,0xB4,0x00,0x00,}}, {0x00FA,2,{0xA8,0xB2,0x00,0x00,}}, {0x00FB,4,{0x81,0x30,0x8B,0x34,}}, {0x00FC,2,{0xA8,0xB9,0x00,0x00,}}, {0x00FD,4,{0x81,0x30,0x8B,0x35,}}, {0x00FE,4,{0x81,0x30,0x8B,0x36,}}, {0x00FF,4,{0x81,0x30,0x8B,0x37,}}, {0x0100,4,{0x81,0x30,0x8B,0x38,}}, {0x0101,2,{0xA8,0xA1,0x00,0x00,}}, {0x0102,4,{0x81,0x30,0x8B,0x39,}}, {0x0103,4,{0x81,0x30,0x8C,0x30,}}, {0x0104,4,{0x81,0x30,0x8C,0x31,}}, {0x0105,4,{0x81,0x30,0x8C,0x32,}}, {0x0106,4,{0x81,0x30,0x8C,0x33,}}, {0x0107,4,{0x81,0x30,0x8C,0x34,}}, {0x0108,4,{0x81,0x30,0x8C,0x35,}}, {0x0109,4,{0x81,0x30,0x8C,0x36,}}, {0x010A,4,{0x81,0x30,0x8C,0x37,}}, {0x010B,4,{0x81,0x30,0x8C,0x38,}}, {0x010C,4,{0x81,0x30,0x8C,0x39,}}, {0x010D,4,{0x81,0x30,0x8D,0x30,}}, {0x010E,4,{0x81,0x30,0x8D,0x31,}}, {0x010F,4,{0x81,0x30,0x8D,0x32,}}, {0x0110,4,{0x81,0x30,0x8D,0x33,}}, {0x0111,4,{0x81,0x30,0x8D,0x34,}}, {0x0112,4,{0x81,0x30,0x8D,0x35,}}, {0x0113,2,{0xA8,0xA5,0x00,0x00,}}, {0x0114,4,{0x81,0x30,0x8D,0x36,}}, {0x0115,4,{0x81,0x30,0x8D,0x37,}}, {0x0116,4,{0x81,0x30,0x8D,0x38,}}, {0x0117,4,{0x81,0x30,0x8D,0x39,}}, {0x0118,4,{0x81,0x30,0x8E,0x30,}}, {0x0119,4,{0x81,0x30,0x8E,0x31,}}, {0x011A,4,{0x81,0x30,0x8E,0x32,}}, {0x011B,2,{0xA8,0xA7,0x00,0x00,}}, {0x011C,4,{0x81,0x30,0x8E,0x33,}}, {0x011D,4,{0x81,0x30,0x8E,0x34,}}, {0x011E,4,{0x81,0x30,0x8E,0x35,}}, {0x011F,4,{0x81,0x30,0x8E,0x36,}}, {0x0120,4,{0x81,0x30,0x8E,0x37,}}, {0x0121,4,{0x81,0x30,0x8E,0x38,}}, {0x0122,4,{0x81,0x30,0x8E,0x39,}}, {0x0123,4,{0x81,0x30,0x8F,0x30,}}, {0x0124,4,{0x81,0x30,0x8F,0x31,}}, {0x0125,4,{0x81,0x30,0x8F,0x32,}}, {0x0126,4,{0x81,0x30,0x8F,0x33,}}, {0x0127,4,{0x81,0x30,0x8F,0x34,}}, {0x0128,4,{0x81,0x30,0x8F,0x35,}}, {0x0129,4,{0x81,0x30,0x8F,0x36,}}, {0x012A,4,{0x81,0x30,0x8F,0x37,}}, {0x012B,2,{0xA8,0xA9,0x00,0x00,}}, {0x012C,4,{0x81,0x30,0x8F,0x38,}}, {0x012D,4,{0x81,0x30,0x8F,0x39,}}, {0x012E,4,{0x81,0x30,0x90,0x30,}}, {0x012F,4,{0x81,0x30,0x90,0x31,}}, {0x0130,4,{0x81,0x30,0x90,0x32,}}, {0x0131,4,{0x81,0x30,0x90,0x33,}}, {0x0132,4,{0x81,0x30,0x90,0x34,}}, {0x0133,4,{0x81,0x30,0x90,0x35,}}, {0x0134,4,{0x81,0x30,0x90,0x36,}}, {0x0135,4,{0x81,0x30,0x90,0x37,}}, {0x0136,4,{0x81,0x30,0x90,0x38,}}, {0x0137,4,{0x81,0x30,0x90,0x39,}}, {0x0138,4,{0x81,0x30,0x91,0x30,}}, {0x0139,4,{0x81,0x30,0x91,0x31,}}, {0x013A,4,{0x81,0x30,0x91,0x32,}}, {0x013B,4,{0x81,0x30,0x91,0x33,}}, {0x013C,4,{0x81,0x30,0x91,0x34,}}, {0x013D,4,{0x81,0x30,0x91,0x35,}}, {0x013E,4,{0x81,0x30,0x91,0x36,}}, {0x013F,4,{0x81,0x30,0x91,0x37,}}, {0x0140,4,{0x81,0x30,0x91,0x38,}}, {0x0141,4,{0x81,0x30,0x91,0x39,}}, {0x0142,4,{0x81,0x30,0x92,0x30,}}, {0x0143,4,{0x81,0x30,0x92,0x31,}}, {0x0144,2,{0xA8,0xBD,0x00,0x00,}}, {0x0145,4,{0x81,0x30,0x92,0x32,}}, {0x0146,4,{0x81,0x30,0x92,0x33,}}, {0x0147,4,{0x81,0x30,0x92,0x34,}}, {0x0148,2,{0xA8,0xBE,0x00,0x00,}}, {0x0149,4,{0x81,0x30,0x92,0x35,}}, {0x014A,4,{0x81,0x30,0x92,0x36,}}, {0x014B,4,{0x81,0x30,0x92,0x37,}}, {0x014C,4,{0x81,0x30,0x92,0x38,}}, {0x014D,2,{0xA8,0xAD,0x00,0x00,}}, {0x014E,4,{0x81,0x30,0x92,0x39,}}, {0x014F,4,{0x81,0x30,0x93,0x30,}}, {0x0150,4,{0x81,0x30,0x93,0x31,}}, {0x0151,4,{0x81,0x30,0x93,0x32,}}, {0x0152,4,{0x81,0x30,0x93,0x33,}}, {0x0153,4,{0x81,0x30,0x93,0x34,}}, {0x0154,4,{0x81,0x30,0x93,0x35,}}, {0x0155,4,{0x81,0x30,0x93,0x36,}}, {0x0156,4,{0x81,0x30,0x93,0x37,}}, {0x0157,4,{0x81,0x30,0x93,0x38,}}, {0x0158,4,{0x81,0x30,0x93,0x39,}}, {0x0159,4,{0x81,0x30,0x94,0x30,}}, {0x015A,4,{0x81,0x30,0x94,0x31,}}, {0x015B,4,{0x81,0x30,0x94,0x32,}}, {0x015C,4,{0x81,0x30,0x94,0x33,}}, {0x015D,4,{0x81,0x30,0x94,0x34,}}, {0x015E,4,{0x81,0x30,0x94,0x35,}}, {0x015F,4,{0x81,0x30,0x94,0x36,}}, {0x0160,4,{0x81,0x30,0x94,0x37,}}, {0x0161,4,{0x81,0x30,0x94,0x38,}}, {0x0162,4,{0x81,0x30,0x94,0x39,}}, {0x0163,4,{0x81,0x30,0x95,0x30,}}, {0x0164,4,{0x81,0x30,0x95,0x31,}}, {0x0165,4,{0x81,0x30,0x95,0x32,}}, {0x0166,4,{0x81,0x30,0x95,0x33,}}, {0x0167,4,{0x81,0x30,0x95,0x34,}}, {0x0168,4,{0x81,0x30,0x95,0x35,}}, {0x0169,4,{0x81,0x30,0x95,0x36,}}, {0x016A,4,{0x81,0x30,0x95,0x37,}}, {0x016B,2,{0xA8,0xB1,0x00,0x00,}}, {0x016C,4,{0x81,0x30,0x95,0x38,}}, {0x016D,4,{0x81,0x30,0x95,0x39,}}, {0x016E,4,{0x81,0x30,0x96,0x30,}}, {0x016F,4,{0x81,0x30,0x96,0x31,}}, {0x0170,4,{0x81,0x30,0x96,0x32,}}, {0x0171,4,{0x81,0x30,0x96,0x33,}}, {0x0172,4,{0x81,0x30,0x96,0x34,}}, {0x0173,4,{0x81,0x30,0x96,0x35,}}, {0x0174,4,{0x81,0x30,0x96,0x36,}}, {0x0175,4,{0x81,0x30,0x96,0x37,}}, {0x0176,4,{0x81,0x30,0x96,0x38,}}, {0x0177,4,{0x81,0x30,0x96,0x39,}}, {0x0178,4,{0x81,0x30,0x97,0x30,}}, {0x0179,4,{0x81,0x30,0x97,0x31,}}, {0x017A,4,{0x81,0x30,0x97,0x32,}}, {0x017B,4,{0x81,0x30,0x97,0x33,}}, {0x017C,4,{0x81,0x30,0x97,0x34,}}, {0x017D,4,{0x81,0x30,0x97,0x35,}}, {0x017E,4,{0x81,0x30,0x97,0x36,}}, {0x017F,4,{0x81,0x30,0x97,0x37,}}, {0x0180,4,{0x81,0x30,0x97,0x38,}}, {0x0181,4,{0x81,0x30,0x97,0x39,}}, {0x0182,4,{0x81,0x30,0x98,0x30,}}, {0x0183,4,{0x81,0x30,0x98,0x31,}}, {0x0184,4,{0x81,0x30,0x98,0x32,}}, {0x0185,4,{0x81,0x30,0x98,0x33,}}, {0x0186,4,{0x81,0x30,0x98,0x34,}}, {0x0187,4,{0x81,0x30,0x98,0x35,}}, {0x0188,4,{0x81,0x30,0x98,0x36,}}, {0x0189,4,{0x81,0x30,0x98,0x37,}}, {0x018A,4,{0x81,0x30,0x98,0x38,}}, {0x018B,4,{0x81,0x30,0x98,0x39,}}, {0x018C,4,{0x81,0x30,0x99,0x30,}}, {0x018D,4,{0x81,0x30,0x99,0x31,}}, {0x018E,4,{0x81,0x30,0x99,0x32,}}, {0x018F,4,{0x81,0x30,0x99,0x33,}}, {0x0190,4,{0x81,0x30,0x99,0x34,}}, {0x0191,4,{0x81,0x30,0x99,0x35,}}, {0x0192,4,{0x81,0x30,0x99,0x36,}}, {0x0193,4,{0x81,0x30,0x99,0x37,}}, {0x0194,4,{0x81,0x30,0x99,0x38,}}, {0x0195,4,{0x81,0x30,0x99,0x39,}}, {0x0196,4,{0x81,0x30,0x9A,0x30,}}, {0x0197,4,{0x81,0x30,0x9A,0x31,}}, {0x0198,4,{0x81,0x30,0x9A,0x32,}}, {0x0199,4,{0x81,0x30,0x9A,0x33,}}, {0x019A,4,{0x81,0x30,0x9A,0x34,}}, {0x019B,4,{0x81,0x30,0x9A,0x35,}}, {0x019C,4,{0x81,0x30,0x9A,0x36,}}, {0x019D,4,{0x81,0x30,0x9A,0x37,}}, {0x019E,4,{0x81,0x30,0x9A,0x38,}}, {0x019F,4,{0x81,0x30,0x9A,0x39,}}, {0x01A0,4,{0x81,0x30,0x9B,0x30,}}, {0x01A1,4,{0x81,0x30,0x9B,0x31,}}, {0x01A2,4,{0x81,0x30,0x9B,0x32,}}, {0x01A3,4,{0x81,0x30,0x9B,0x33,}}, {0x01A4,4,{0x81,0x30,0x9B,0x34,}}, {0x01A5,4,{0x81,0x30,0x9B,0x35,}}, {0x01A6,4,{0x81,0x30,0x9B,0x36,}}, {0x01A7,4,{0x81,0x30,0x9B,0x37,}}, {0x01A8,4,{0x81,0x30,0x9B,0x38,}}, {0x01A9,4,{0x81,0x30,0x9B,0x39,}}, {0x01AA,4,{0x81,0x30,0x9C,0x30,}}, {0x01AB,4,{0x81,0x30,0x9C,0x31,}}, {0x01AC,4,{0x81,0x30,0x9C,0x32,}}, {0x01AD,4,{0x81,0x30,0x9C,0x33,}}, {0x01AE,4,{0x81,0x30,0x9C,0x34,}}, {0x01AF,4,{0x81,0x30,0x9C,0x35,}}, {0x01B0,4,{0x81,0x30,0x9C,0x36,}}, {0x01B1,4,{0x81,0x30,0x9C,0x37,}}, {0x01B2,4,{0x81,0x30,0x9C,0x38,}}, {0x01B3,4,{0x81,0x30,0x9C,0x39,}}, {0x01B4,4,{0x81,0x30,0x9D,0x30,}}, {0x01B5,4,{0x81,0x30,0x9D,0x31,}}, {0x01B6,4,{0x81,0x30,0x9D,0x32,}}, {0x01B7,4,{0x81,0x30,0x9D,0x33,}}, {0x01B8,4,{0x81,0x30,0x9D,0x34,}}, {0x01B9,4,{0x81,0x30,0x9D,0x35,}}, {0x01BA,4,{0x81,0x30,0x9D,0x36,}}, {0x01BB,4,{0x81,0x30,0x9D,0x37,}}, {0x01BC,4,{0x81,0x30,0x9D,0x38,}}, {0x01BD,4,{0x81,0x30,0x9D,0x39,}}, {0x01BE,4,{0x81,0x30,0x9E,0x30,}}, {0x01BF,4,{0x81,0x30,0x9E,0x31,}}, {0x01C0,4,{0x81,0x30,0x9E,0x32,}}, {0x01C1,4,{0x81,0x30,0x9E,0x33,}}, {0x01C2,4,{0x81,0x30,0x9E,0x34,}}, {0x01C3,4,{0x81,0x30,0x9E,0x35,}}, {0x01C4,4,{0x81,0x30,0x9E,0x36,}}, {0x01C5,4,{0x81,0x30,0x9E,0x37,}}, {0x01C6,4,{0x81,0x30,0x9E,0x38,}}, {0x01C7,4,{0x81,0x30,0x9E,0x39,}}, {0x01C8,4,{0x81,0x30,0x9F,0x30,}}, {0x01C9,4,{0x81,0x30,0x9F,0x31,}}, {0x01CA,4,{0x81,0x30,0x9F,0x32,}}, {0x01CB,4,{0x81,0x30,0x9F,0x33,}}, {0x01CC,4,{0x81,0x30,0x9F,0x34,}}, {0x01CD,4,{0x81,0x30,0x9F,0x35,}}, {0x01CE,2,{0xA8,0xA3,0x00,0x00,}}, {0x01CF,4,{0x81,0x30,0x9F,0x36,}}, {0x01D0,2,{0xA8,0xAB,0x00,0x00,}}, {0x01D1,4,{0x81,0x30,0x9F,0x37,}}, {0x01D2,2,{0xA8,0xAF,0x00,0x00,}}, {0x01D3,4,{0x81,0x30,0x9F,0x38,}}, {0x01D4,2,{0xA8,0xB3,0x00,0x00,}}, {0x01D5,4,{0x81,0x30,0x9F,0x39,}}, {0x01D6,2,{0xA8,0xB5,0x00,0x00,}}, {0x01D7,4,{0x81,0x30,0xA0,0x30,}}, {0x01D8,2,{0xA8,0xB6,0x00,0x00,}}, {0x01D9,4,{0x81,0x30,0xA0,0x31,}}, {0x01DA,2,{0xA8,0xB7,0x00,0x00,}}, {0x01DB,4,{0x81,0x30,0xA0,0x32,}}, {0x01DC,2,{0xA8,0xB8,0x00,0x00,}}, {0x01DD,4,{0x81,0x30,0xA0,0x33,}}, {0x01DE,4,{0x81,0x30,0xA0,0x34,}}, {0x01DF,4,{0x81,0x30,0xA0,0x35,}}, {0x01E0,4,{0x81,0x30,0xA0,0x36,}}, {0x01E1,4,{0x81,0x30,0xA0,0x37,}}, {0x01E2,4,{0x81,0x30,0xA0,0x38,}}, {0x01E3,4,{0x81,0x30,0xA0,0x39,}}, {0x01E4,4,{0x81,0x30,0xA1,0x30,}}, {0x01E5,4,{0x81,0x30,0xA1,0x31,}}, {0x01E6,4,{0x81,0x30,0xA1,0x32,}}, {0x01E7,4,{0x81,0x30,0xA1,0x33,}}, {0x01E8,4,{0x81,0x30,0xA1,0x34,}}, {0x01E9,4,{0x81,0x30,0xA1,0x35,}}, {0x01EA,4,{0x81,0x30,0xA1,0x36,}}, {0x01EB,4,{0x81,0x30,0xA1,0x37,}}, {0x01EC,4,{0x81,0x30,0xA1,0x38,}}, {0x01ED,4,{0x81,0x30,0xA1,0x39,}}, {0x01EE,4,{0x81,0x30,0xA2,0x30,}}, {0x01EF,4,{0x81,0x30,0xA2,0x31,}}, {0x01F0,4,{0x81,0x30,0xA2,0x32,}}, {0x01F1,4,{0x81,0x30,0xA2,0x33,}}, {0x01F2,4,{0x81,0x30,0xA2,0x34,}}, {0x01F3,4,{0x81,0x30,0xA2,0x35,}}, {0x01F4,4,{0x81,0x30,0xA2,0x36,}}, {0x01F5,4,{0x81,0x30,0xA2,0x37,}}, {0x01F6,4,{0x81,0x30,0xA2,0x38,}}, {0x01F7,4,{0x81,0x30,0xA2,0x39,}}, {0x01F8,4,{0x81,0x30,0xA3,0x30,}}, {0x01F9,2,{0xA8,0xBF,0x00,0x00,}}, {0x01FA,4,{0x81,0x30,0xA3,0x31,}}, {0x01FB,4,{0x81,0x30,0xA3,0x32,}}, {0x01FC,4,{0x81,0x30,0xA3,0x33,}}, {0x01FD,4,{0x81,0x30,0xA3,0x34,}}, {0x01FE,4,{0x81,0x30,0xA3,0x35,}}, {0x01FF,4,{0x81,0x30,0xA3,0x36,}}, {0x0200,4,{0x81,0x30,0xA3,0x37,}}, {0x0201,4,{0x81,0x30,0xA3,0x38,}}, {0x0202,4,{0x81,0x30,0xA3,0x39,}}, {0x0203,4,{0x81,0x30,0xA4,0x30,}}, {0x0204,4,{0x81,0x30,0xA4,0x31,}}, {0x0205,4,{0x81,0x30,0xA4,0x32,}}, {0x0206,4,{0x81,0x30,0xA4,0x33,}}, {0x0207,4,{0x81,0x30,0xA4,0x34,}}, {0x0208,4,{0x81,0x30,0xA4,0x35,}}, {0x0209,4,{0x81,0x30,0xA4,0x36,}}, {0x020A,4,{0x81,0x30,0xA4,0x37,}}, {0x020B,4,{0x81,0x30,0xA4,0x38,}}, {0x020C,4,{0x81,0x30,0xA4,0x39,}}, {0x020D,4,{0x81,0x30,0xA5,0x30,}}, {0x020E,4,{0x81,0x30,0xA5,0x31,}}, {0x020F,4,{0x81,0x30,0xA5,0x32,}}, {0x0210,4,{0x81,0x30,0xA5,0x33,}}, {0x0211,4,{0x81,0x30,0xA5,0x34,}}, {0x0212,4,{0x81,0x30,0xA5,0x35,}}, {0x0213,4,{0x81,0x30,0xA5,0x36,}}, {0x0214,4,{0x81,0x30,0xA5,0x37,}}, {0x0215,4,{0x81,0x30,0xA5,0x38,}}, {0x0216,4,{0x81,0x30,0xA5,0x39,}}, {0x0217,4,{0x81,0x30,0xA6,0x30,}}, {0x0218,4,{0x81,0x30,0xA6,0x31,}}, {0x0219,4,{0x81,0x30,0xA6,0x32,}}, {0x021A,4,{0x81,0x30,0xA6,0x33,}}, {0x021B,4,{0x81,0x30,0xA6,0x34,}}, {0x021C,4,{0x81,0x30,0xA6,0x35,}}, {0x021D,4,{0x81,0x30,0xA6,0x36,}}, {0x021E,4,{0x81,0x30,0xA6,0x37,}}, {0x021F,4,{0x81,0x30,0xA6,0x38,}}, {0x0220,4,{0x81,0x30,0xA6,0x39,}}, {0x0221,4,{0x81,0x30,0xA7,0x30,}}, {0x0222,4,{0x81,0x30,0xA7,0x31,}}, {0x0223,4,{0x81,0x30,0xA7,0x32,}}, {0x0224,4,{0x81,0x30,0xA7,0x33,}}, {0x0225,4,{0x81,0x30,0xA7,0x34,}}, {0x0226,4,{0x81,0x30,0xA7,0x35,}}, {0x0227,4,{0x81,0x30,0xA7,0x36,}}, {0x0228,4,{0x81,0x30,0xA7,0x37,}}, {0x0229,4,{0x81,0x30,0xA7,0x38,}}, {0x022A,4,{0x81,0x30,0xA7,0x39,}}, {0x022B,4,{0x81,0x30,0xA8,0x30,}}, {0x022C,4,{0x81,0x30,0xA8,0x31,}}, {0x022D,4,{0x81,0x30,0xA8,0x32,}}, {0x022E,4,{0x81,0x30,0xA8,0x33,}}, {0x022F,4,{0x81,0x30,0xA8,0x34,}}, {0x0230,4,{0x81,0x30,0xA8,0x35,}}, {0x0231,4,{0x81,0x30,0xA8,0x36,}}, {0x0232,4,{0x81,0x30,0xA8,0x37,}}, {0x0233,4,{0x81,0x30,0xA8,0x38,}}, {0x0234,4,{0x81,0x30,0xA8,0x39,}}, {0x0235,4,{0x81,0x30,0xA9,0x30,}}, {0x0236,4,{0x81,0x30,0xA9,0x31,}}, {0x0237,4,{0x81,0x30,0xA9,0x32,}}, {0x0238,4,{0x81,0x30,0xA9,0x33,}}, {0x0239,4,{0x81,0x30,0xA9,0x34,}}, {0x023A,4,{0x81,0x30,0xA9,0x35,}}, {0x023B,4,{0x81,0x30,0xA9,0x36,}}, {0x023C,4,{0x81,0x30,0xA9,0x37,}}, {0x023D,4,{0x81,0x30,0xA9,0x38,}}, {0x023E,4,{0x81,0x30,0xA9,0x39,}}, {0x023F,4,{0x81,0x30,0xAA,0x30,}}, {0x0240,4,{0x81,0x30,0xAA,0x31,}}, {0x0241,4,{0x81,0x30,0xAA,0x32,}}, {0x0242,4,{0x81,0x30,0xAA,0x33,}}, {0x0243,4,{0x81,0x30,0xAA,0x34,}}, {0x0244,4,{0x81,0x30,0xAA,0x35,}}, {0x0245,4,{0x81,0x30,0xAA,0x36,}}, {0x0246,4,{0x81,0x30,0xAA,0x37,}}, {0x0247,4,{0x81,0x30,0xAA,0x38,}}, {0x0248,4,{0x81,0x30,0xAA,0x39,}}, {0x0249,4,{0x81,0x30,0xAB,0x30,}}, {0x024A,4,{0x81,0x30,0xAB,0x31,}}, {0x024B,4,{0x81,0x30,0xAB,0x32,}}, {0x024C,4,{0x81,0x30,0xAB,0x33,}}, {0x024D,4,{0x81,0x30,0xAB,0x34,}}, {0x024E,4,{0x81,0x30,0xAB,0x35,}}, {0x024F,4,{0x81,0x30,0xAB,0x36,}}, {0x0250,4,{0x81,0x30,0xAB,0x37,}}, {0x0251,2,{0xA8,0xBB,0x00,0x00,}}, {0x0252,4,{0x81,0x30,0xAB,0x38,}}, {0x0253,4,{0x81,0x30,0xAB,0x39,}}, {0x0254,4,{0x81,0x30,0xAC,0x30,}}, {0x0255,4,{0x81,0x30,0xAC,0x31,}}, {0x0256,4,{0x81,0x30,0xAC,0x32,}}, {0x0257,4,{0x81,0x30,0xAC,0x33,}}, {0x0258,4,{0x81,0x30,0xAC,0x34,}}, {0x0259,4,{0x81,0x30,0xAC,0x35,}}, {0x025A,4,{0x81,0x30,0xAC,0x36,}}, {0x025B,4,{0x81,0x30,0xAC,0x37,}}, {0x025C,4,{0x81,0x30,0xAC,0x38,}}, {0x025D,4,{0x81,0x30,0xAC,0x39,}}, {0x025E,4,{0x81,0x30,0xAD,0x30,}}, {0x025F,4,{0x81,0x30,0xAD,0x31,}}, {0x0260,4,{0x81,0x30,0xAD,0x32,}}, {0x0261,2,{0xA8,0xC0,0x00,0x00,}}, {0x0262,4,{0x81,0x30,0xAD,0x33,}}, {0x0263,4,{0x81,0x30,0xAD,0x34,}}, {0x0264,4,{0x81,0x30,0xAD,0x35,}}, {0x0265,4,{0x81,0x30,0xAD,0x36,}}, {0x0266,4,{0x81,0x30,0xAD,0x37,}}, {0x0267,4,{0x81,0x30,0xAD,0x38,}}, {0x0268,4,{0x81,0x30,0xAD,0x39,}}, {0x0269,4,{0x81,0x30,0xAE,0x30,}}, {0x026A,4,{0x81,0x30,0xAE,0x31,}}, {0x026B,4,{0x81,0x30,0xAE,0x32,}}, {0x026C,4,{0x81,0x30,0xAE,0x33,}}, {0x026D,4,{0x81,0x30,0xAE,0x34,}}, {0x026E,4,{0x81,0x30,0xAE,0x35,}}, {0x026F,4,{0x81,0x30,0xAE,0x36,}}, {0x0270,4,{0x81,0x30,0xAE,0x37,}}, {0x0271,4,{0x81,0x30,0xAE,0x38,}}, {0x0272,4,{0x81,0x30,0xAE,0x39,}}, {0x0273,4,{0x81,0x30,0xAF,0x30,}}, {0x0274,4,{0x81,0x30,0xAF,0x31,}}, {0x0275,4,{0x81,0x30,0xAF,0x32,}}, {0x0276,4,{0x81,0x30,0xAF,0x33,}}, {0x0277,4,{0x81,0x30,0xAF,0x34,}}, {0x0278,4,{0x81,0x30,0xAF,0x35,}}, {0x0279,4,{0x81,0x30,0xAF,0x36,}}, {0x027A,4,{0x81,0x30,0xAF,0x37,}}, {0x027B,4,{0x81,0x30,0xAF,0x38,}}, {0x027C,4,{0x81,0x30,0xAF,0x39,}}, {0x027D,4,{0x81,0x30,0xB0,0x30,}}, {0x027E,4,{0x81,0x30,0xB0,0x31,}}, {0x027F,4,{0x81,0x30,0xB0,0x32,}}, {0x0280,4,{0x81,0x30,0xB0,0x33,}}, {0x0281,4,{0x81,0x30,0xB0,0x34,}}, {0x0282,4,{0x81,0x30,0xB0,0x35,}}, {0x0283,4,{0x81,0x30,0xB0,0x36,}}, {0x0284,4,{0x81,0x30,0xB0,0x37,}}, {0x0285,4,{0x81,0x30,0xB0,0x38,}}, {0x0286,4,{0x81,0x30,0xB0,0x39,}}, {0x0287,4,{0x81,0x30,0xB1,0x30,}}, {0x0288,4,{0x81,0x30,0xB1,0x31,}}, {0x0289,4,{0x81,0x30,0xB1,0x32,}}, {0x028A,4,{0x81,0x30,0xB1,0x33,}}, {0x028B,4,{0x81,0x30,0xB1,0x34,}}, {0x028C,4,{0x81,0x30,0xB1,0x35,}}, {0x028D,4,{0x81,0x30,0xB1,0x36,}}, {0x028E,4,{0x81,0x30,0xB1,0x37,}}, {0x028F,4,{0x81,0x30,0xB1,0x38,}}, {0x0290,4,{0x81,0x30,0xB1,0x39,}}, {0x0291,4,{0x81,0x30,0xB2,0x30,}}, {0x0292,4,{0x81,0x30,0xB2,0x31,}}, {0x0293,4,{0x81,0x30,0xB2,0x32,}}, {0x0294,4,{0x81,0x30,0xB2,0x33,}}, {0x0295,4,{0x81,0x30,0xB2,0x34,}}, {0x0296,4,{0x81,0x30,0xB2,0x35,}}, {0x0297,4,{0x81,0x30,0xB2,0x36,}}, {0x0298,4,{0x81,0x30,0xB2,0x37,}}, {0x0299,4,{0x81,0x30,0xB2,0x38,}}, {0x029A,4,{0x81,0x30,0xB2,0x39,}}, {0x029B,4,{0x81,0x30,0xB3,0x30,}}, {0x029C,4,{0x81,0x30,0xB3,0x31,}}, {0x029D,4,{0x81,0x30,0xB3,0x32,}}, {0x029E,4,{0x81,0x30,0xB3,0x33,}}, {0x029F,4,{0x81,0x30,0xB3,0x34,}}, {0x02A0,4,{0x81,0x30,0xB3,0x35,}}, {0x02A1,4,{0x81,0x30,0xB3,0x36,}}, {0x02A2,4,{0x81,0x30,0xB3,0x37,}}, {0x02A3,4,{0x81,0x30,0xB3,0x38,}}, {0x02A4,4,{0x81,0x30,0xB3,0x39,}}, {0x02A5,4,{0x81,0x30,0xB4,0x30,}}, {0x02A6,4,{0x81,0x30,0xB4,0x31,}}, {0x02A7,4,{0x81,0x30,0xB4,0x32,}}, {0x02A8,4,{0x81,0x30,0xB4,0x33,}}, {0x02A9,4,{0x81,0x30,0xB4,0x34,}}, {0x02AA,4,{0x81,0x30,0xB4,0x35,}}, {0x02AB,4,{0x81,0x30,0xB4,0x36,}}, {0x02AC,4,{0x81,0x30,0xB4,0x37,}}, {0x02AD,4,{0x81,0x30,0xB4,0x38,}}, {0x02AE,4,{0x81,0x30,0xB4,0x39,}}, {0x02AF,4,{0x81,0x30,0xB5,0x30,}}, {0x02B0,4,{0x81,0x30,0xB5,0x31,}}, {0x02B1,4,{0x81,0x30,0xB5,0x32,}}, {0x02B2,4,{0x81,0x30,0xB5,0x33,}}, {0x02B3,4,{0x81,0x30,0xB5,0x34,}}, {0x02B4,4,{0x81,0x30,0xB5,0x35,}}, {0x02B5,4,{0x81,0x30,0xB5,0x36,}}, {0x02B6,4,{0x81,0x30,0xB5,0x37,}}, {0x02B7,4,{0x81,0x30,0xB5,0x38,}}, {0x02B8,4,{0x81,0x30,0xB5,0x39,}}, {0x02B9,4,{0x81,0x30,0xB6,0x30,}}, {0x02BA,4,{0x81,0x30,0xB6,0x31,}}, {0x02BB,4,{0x81,0x30,0xB6,0x32,}}, {0x02BC,4,{0x81,0x30,0xB6,0x33,}}, {0x02BD,4,{0x81,0x30,0xB6,0x34,}}, {0x02BE,4,{0x81,0x30,0xB6,0x35,}}, {0x02BF,4,{0x81,0x30,0xB6,0x36,}}, {0x02C0,4,{0x81,0x30,0xB6,0x37,}}, {0x02C1,4,{0x81,0x30,0xB6,0x38,}}, {0x02C2,4,{0x81,0x30,0xB6,0x39,}}, {0x02C3,4,{0x81,0x30,0xB7,0x30,}}, {0x02C4,4,{0x81,0x30,0xB7,0x31,}}, {0x02C5,4,{0x81,0x30,0xB7,0x32,}}, {0x02C6,4,{0x81,0x30,0xB7,0x33,}}, {0x02C7,2,{0xA1,0xA6,0x00,0x00,}}, {0x02C8,4,{0x81,0x30,0xB7,0x34,}}, {0x02C9,2,{0xA1,0xA5,0x00,0x00,}}, {0x02CA,2,{0xA8,0x40,0x00,0x00,}}, {0x02CB,2,{0xA8,0x41,0x00,0x00,}}, {0x02CC,4,{0x81,0x30,0xB7,0x35,}}, {0x02CD,4,{0x81,0x30,0xB7,0x36,}}, {0x02CE,4,{0x81,0x30,0xB7,0x37,}}, {0x02CF,4,{0x81,0x30,0xB7,0x38,}}, {0x02D0,4,{0x81,0x30,0xB7,0x39,}}, {0x02D1,4,{0x81,0x30,0xB8,0x30,}}, {0x02D2,4,{0x81,0x30,0xB8,0x31,}}, {0x02D3,4,{0x81,0x30,0xB8,0x32,}}, {0x02D4,4,{0x81,0x30,0xB8,0x33,}}, {0x02D5,4,{0x81,0x30,0xB8,0x34,}}, {0x02D6,4,{0x81,0x30,0xB8,0x35,}}, {0x02D7,4,{0x81,0x30,0xB8,0x36,}}, {0x02D8,4,{0x81,0x30,0xB8,0x37,}}, {0x02D9,2,{0xA8,0x42,0x00,0x00,}}, {0x02DA,4,{0x81,0x30,0xB8,0x38,}}, {0x02DB,4,{0x81,0x30,0xB8,0x39,}}, {0x02DC,4,{0x81,0x30,0xB9,0x30,}}, {0x02DD,4,{0x81,0x30,0xB9,0x31,}}, {0x02DE,4,{0x81,0x30,0xB9,0x32,}}, {0x02DF,4,{0x81,0x30,0xB9,0x33,}}, {0x02E0,4,{0x81,0x30,0xB9,0x34,}}, {0x02E1,4,{0x81,0x30,0xB9,0x35,}}, {0x02E2,4,{0x81,0x30,0xB9,0x36,}}, {0x02E3,4,{0x81,0x30,0xB9,0x37,}}, {0x02E4,4,{0x81,0x30,0xB9,0x38,}}, {0x02E5,4,{0x81,0x30,0xB9,0x39,}}, {0x02E6,4,{0x81,0x30,0xBA,0x30,}}, {0x02E7,4,{0x81,0x30,0xBA,0x31,}}, {0x02E8,4,{0x81,0x30,0xBA,0x32,}}, {0x02E9,4,{0x81,0x30,0xBA,0x33,}}, {0x02EA,4,{0x81,0x30,0xBA,0x34,}}, {0x02EB,4,{0x81,0x30,0xBA,0x35,}}, {0x02EC,4,{0x81,0x30,0xBA,0x36,}}, {0x02ED,4,{0x81,0x30,0xBA,0x37,}}, {0x02EE,4,{0x81,0x30,0xBA,0x38,}}, {0x02EF,4,{0x81,0x30,0xBA,0x39,}}, {0x02F0,4,{0x81,0x30,0xBB,0x30,}}, {0x02F1,4,{0x81,0x30,0xBB,0x31,}}, {0x02F2,4,{0x81,0x30,0xBB,0x32,}}, {0x02F3,4,{0x81,0x30,0xBB,0x33,}}, {0x02F4,4,{0x81,0x30,0xBB,0x34,}}, {0x02F5,4,{0x81,0x30,0xBB,0x35,}}, {0x02F6,4,{0x81,0x30,0xBB,0x36,}}, {0x02F7,4,{0x81,0x30,0xBB,0x37,}}, {0x02F8,4,{0x81,0x30,0xBB,0x38,}}, {0x02F9,4,{0x81,0x30,0xBB,0x39,}}, {0x02FA,4,{0x81,0x30,0xBC,0x30,}}, {0x02FB,4,{0x81,0x30,0xBC,0x31,}}, {0x02FC,4,{0x81,0x30,0xBC,0x32,}}, {0x02FD,4,{0x81,0x30,0xBC,0x33,}}, {0x02FE,4,{0x81,0x30,0xBC,0x34,}}, {0x02FF,4,{0x81,0x30,0xBC,0x35,}}, {0x0300,4,{0x81,0x30,0xBC,0x36,}}, {0x0301,4,{0x81,0x30,0xBC,0x37,}}, {0x0302,4,{0x81,0x30,0xBC,0x38,}}, {0x0303,4,{0x81,0x30,0xBC,0x39,}}, {0x0304,4,{0x81,0x30,0xBD,0x30,}}, {0x0305,4,{0x81,0x30,0xBD,0x31,}}, {0x0306,4,{0x81,0x30,0xBD,0x32,}}, {0x0307,4,{0x81,0x30,0xBD,0x33,}}, {0x0308,4,{0x81,0x30,0xBD,0x34,}}, {0x0309,4,{0x81,0x30,0xBD,0x35,}}, {0x030A,4,{0x81,0x30,0xBD,0x36,}}, {0x030B,4,{0x81,0x30,0xBD,0x37,}}, {0x030C,4,{0x81,0x30,0xBD,0x38,}}, {0x030D,4,{0x81,0x30,0xBD,0x39,}}, {0x030E,4,{0x81,0x30,0xBE,0x30,}}, {0x030F,4,{0x81,0x30,0xBE,0x31,}}, {0x0310,4,{0x81,0x30,0xBE,0x32,}}, {0x0311,4,{0x81,0x30,0xBE,0x33,}}, {0x0312,4,{0x81,0x30,0xBE,0x34,}}, {0x0313,4,{0x81,0x30,0xBE,0x35,}}, {0x0314,4,{0x81,0x30,0xBE,0x36,}}, {0x0315,4,{0x81,0x30,0xBE,0x37,}}, {0x0316,4,{0x81,0x30,0xBE,0x38,}}, {0x0317,4,{0x81,0x30,0xBE,0x39,}}, {0x0318,4,{0x81,0x30,0xBF,0x30,}}, {0x0319,4,{0x81,0x30,0xBF,0x31,}}, {0x031A,4,{0x81,0x30,0xBF,0x32,}}, {0x031B,4,{0x81,0x30,0xBF,0x33,}}, {0x031C,4,{0x81,0x30,0xBF,0x34,}}, {0x031D,4,{0x81,0x30,0xBF,0x35,}}, {0x031E,4,{0x81,0x30,0xBF,0x36,}}, {0x031F,4,{0x81,0x30,0xBF,0x37,}}, {0x0320,4,{0x81,0x30,0xBF,0x38,}}, {0x0321,4,{0x81,0x30,0xBF,0x39,}}, {0x0322,4,{0x81,0x30,0xC0,0x30,}}, {0x0323,4,{0x81,0x30,0xC0,0x31,}}, {0x0324,4,{0x81,0x30,0xC0,0x32,}}, {0x0325,4,{0x81,0x30,0xC0,0x33,}}, {0x0326,4,{0x81,0x30,0xC0,0x34,}}, {0x0327,4,{0x81,0x30,0xC0,0x35,}}, {0x0328,4,{0x81,0x30,0xC0,0x36,}}, {0x0329,4,{0x81,0x30,0xC0,0x37,}}, {0x032A,4,{0x81,0x30,0xC0,0x38,}}, {0x032B,4,{0x81,0x30,0xC0,0x39,}}, {0x032C,4,{0x81,0x30,0xC1,0x30,}}, {0x032D,4,{0x81,0x30,0xC1,0x31,}}, {0x032E,4,{0x81,0x30,0xC1,0x32,}}, {0x032F,4,{0x81,0x30,0xC1,0x33,}}, {0x0330,4,{0x81,0x30,0xC1,0x34,}}, {0x0331,4,{0x81,0x30,0xC1,0x35,}}, {0x0332,4,{0x81,0x30,0xC1,0x36,}}, {0x0333,4,{0x81,0x30,0xC1,0x37,}}, {0x0334,4,{0x81,0x30,0xC1,0x38,}}, {0x0335,4,{0x81,0x30,0xC1,0x39,}}, {0x0336,4,{0x81,0x30,0xC2,0x30,}}, {0x0337,4,{0x81,0x30,0xC2,0x31,}}, {0x0338,4,{0x81,0x30,0xC2,0x32,}}, {0x0339,4,{0x81,0x30,0xC2,0x33,}}, {0x033A,4,{0x81,0x30,0xC2,0x34,}}, {0x033B,4,{0x81,0x30,0xC2,0x35,}}, {0x033C,4,{0x81,0x30,0xC2,0x36,}}, {0x033D,4,{0x81,0x30,0xC2,0x37,}}, {0x033E,4,{0x81,0x30,0xC2,0x38,}}, {0x033F,4,{0x81,0x30,0xC2,0x39,}}, {0x0340,4,{0x81,0x30,0xC3,0x30,}}, {0x0341,4,{0x81,0x30,0xC3,0x31,}}, {0x0342,4,{0x81,0x30,0xC3,0x32,}}, {0x0343,4,{0x81,0x30,0xC3,0x33,}}, {0x0344,4,{0x81,0x30,0xC3,0x34,}}, {0x0345,4,{0x81,0x30,0xC3,0x35,}}, {0x0346,4,{0x81,0x30,0xC3,0x36,}}, {0x0347,4,{0x81,0x30,0xC3,0x37,}}, {0x0348,4,{0x81,0x30,0xC3,0x38,}}, {0x0349,4,{0x81,0x30,0xC3,0x39,}}, {0x034A,4,{0x81,0x30,0xC4,0x30,}}, {0x034B,4,{0x81,0x30,0xC4,0x31,}}, {0x034C,4,{0x81,0x30,0xC4,0x32,}}, {0x034D,4,{0x81,0x30,0xC4,0x33,}}, {0x034E,4,{0x81,0x30,0xC4,0x34,}}, {0x034F,4,{0x81,0x30,0xC4,0x35,}}, {0x0350,4,{0x81,0x30,0xC4,0x36,}}, {0x0351,4,{0x81,0x30,0xC4,0x37,}}, {0x0352,4,{0x81,0x30,0xC4,0x38,}}, {0x0353,4,{0x81,0x30,0xC4,0x39,}}, {0x0354,4,{0x81,0x30,0xC5,0x30,}}, {0x0355,4,{0x81,0x30,0xC5,0x31,}}, {0x0356,4,{0x81,0x30,0xC5,0x32,}}, {0x0357,4,{0x81,0x30,0xC5,0x33,}}, {0x0358,4,{0x81,0x30,0xC5,0x34,}}, {0x0359,4,{0x81,0x30,0xC5,0x35,}}, {0x035A,4,{0x81,0x30,0xC5,0x36,}}, {0x035B,4,{0x81,0x30,0xC5,0x37,}}, {0x035C,4,{0x81,0x30,0xC5,0x38,}}, {0x035D,4,{0x81,0x30,0xC5,0x39,}}, {0x035E,4,{0x81,0x30,0xC6,0x30,}}, {0x035F,4,{0x81,0x30,0xC6,0x31,}}, {0x0360,4,{0x81,0x30,0xC6,0x32,}}, {0x0361,4,{0x81,0x30,0xC6,0x33,}}, {0x0362,4,{0x81,0x30,0xC6,0x34,}}, {0x0363,4,{0x81,0x30,0xC6,0x35,}}, {0x0364,4,{0x81,0x30,0xC6,0x36,}}, {0x0365,4,{0x81,0x30,0xC6,0x37,}}, {0x0366,4,{0x81,0x30,0xC6,0x38,}}, {0x0367,4,{0x81,0x30,0xC6,0x39,}}, {0x0368,4,{0x81,0x30,0xC7,0x30,}}, {0x0369,4,{0x81,0x30,0xC7,0x31,}}, {0x036A,4,{0x81,0x30,0xC7,0x32,}}, {0x036B,4,{0x81,0x30,0xC7,0x33,}}, {0x036C,4,{0x81,0x30,0xC7,0x34,}}, {0x036D,4,{0x81,0x30,0xC7,0x35,}}, {0x036E,4,{0x81,0x30,0xC7,0x36,}}, {0x036F,4,{0x81,0x30,0xC7,0x37,}}, {0x0370,4,{0x81,0x30,0xC7,0x38,}}, {0x0371,4,{0x81,0x30,0xC7,0x39,}}, {0x0372,4,{0x81,0x30,0xC8,0x30,}}, {0x0373,4,{0x81,0x30,0xC8,0x31,}}, {0x0374,4,{0x81,0x30,0xC8,0x32,}}, {0x0375,4,{0x81,0x30,0xC8,0x33,}}, {0x0376,4,{0x81,0x30,0xC8,0x34,}}, {0x0377,4,{0x81,0x30,0xC8,0x35,}}, {0x0378,4,{0x81,0x30,0xC8,0x36,}}, {0x0379,4,{0x81,0x30,0xC8,0x37,}}, {0x037A,4,{0x81,0x30,0xC8,0x38,}}, {0x037B,4,{0x81,0x30,0xC8,0x39,}}, {0x037C,4,{0x81,0x30,0xC9,0x30,}}, {0x037D,4,{0x81,0x30,0xC9,0x31,}}, {0x037E,4,{0x81,0x30,0xC9,0x32,}}, {0x037F,4,{0x81,0x30,0xC9,0x33,}}, {0x0380,4,{0x81,0x30,0xC9,0x34,}}, {0x0381,4,{0x81,0x30,0xC9,0x35,}}, {0x0382,4,{0x81,0x30,0xC9,0x36,}}, {0x0383,4,{0x81,0x30,0xC9,0x37,}}, {0x0384,4,{0x81,0x30,0xC9,0x38,}}, {0x0385,4,{0x81,0x30,0xC9,0x39,}}, {0x0386,4,{0x81,0x30,0xCA,0x30,}}, {0x0387,4,{0x81,0x30,0xCA,0x31,}}, {0x0388,4,{0x81,0x30,0xCA,0x32,}}, {0x0389,4,{0x81,0x30,0xCA,0x33,}}, {0x038A,4,{0x81,0x30,0xCA,0x34,}}, {0x038B,4,{0x81,0x30,0xCA,0x35,}}, {0x038C,4,{0x81,0x30,0xCA,0x36,}}, {0x038D,4,{0x81,0x30,0xCA,0x37,}}, {0x038E,4,{0x81,0x30,0xCA,0x38,}}, {0x038F,4,{0x81,0x30,0xCA,0x39,}}, {0x0390,4,{0x81,0x30,0xCB,0x30,}}, {0x0391,2,{0xA6,0xA1,0x00,0x00,}}, {0x0392,2,{0xA6,0xA2,0x00,0x00,}}, {0x0393,2,{0xA6,0xA3,0x00,0x00,}}, {0x0394,2,{0xA6,0xA4,0x00,0x00,}}, {0x0395,2,{0xA6,0xA5,0x00,0x00,}}, {0x0396,2,{0xA6,0xA6,0x00,0x00,}}, {0x0397,2,{0xA6,0xA7,0x00,0x00,}}, {0x0398,2,{0xA6,0xA8,0x00,0x00,}}, {0x0399,2,{0xA6,0xA9,0x00,0x00,}}, {0x039A,2,{0xA6,0xAA,0x00,0x00,}}, {0x039B,2,{0xA6,0xAB,0x00,0x00,}}, {0x039C,2,{0xA6,0xAC,0x00,0x00,}}, {0x039D,2,{0xA6,0xAD,0x00,0x00,}}, {0x039E,2,{0xA6,0xAE,0x00,0x00,}}, {0x039F,2,{0xA6,0xAF,0x00,0x00,}}, {0x03A0,2,{0xA6,0xB0,0x00,0x00,}}, {0x03A1,2,{0xA6,0xB1,0x00,0x00,}}, {0x03A2,4,{0x81,0x30,0xCB,0x31,}}, {0x03A3,2,{0xA6,0xB2,0x00,0x00,}}, {0x03A4,2,{0xA6,0xB3,0x00,0x00,}}, {0x03A5,2,{0xA6,0xB4,0x00,0x00,}}, {0x03A6,2,{0xA6,0xB5,0x00,0x00,}}, {0x03A7,2,{0xA6,0xB6,0x00,0x00,}}, {0x03A8,2,{0xA6,0xB7,0x00,0x00,}}, {0x03A9,2,{0xA6,0xB8,0x00,0x00,}}, {0x03AA,4,{0x81,0x30,0xCB,0x32,}}, {0x03AB,4,{0x81,0x30,0xCB,0x33,}}, {0x03AC,4,{0x81,0x30,0xCB,0x34,}}, {0x03AD,4,{0x81,0x30,0xCB,0x35,}}, {0x03AE,4,{0x81,0x30,0xCB,0x36,}}, {0x03AF,4,{0x81,0x30,0xCB,0x37,}}, {0x03B0,4,{0x81,0x30,0xCB,0x38,}}, {0x03B1,2,{0xA6,0xC1,0x00,0x00,}}, {0x03B2,2,{0xA6,0xC2,0x00,0x00,}}, {0x03B3,2,{0xA6,0xC3,0x00,0x00,}}, {0x03B4,2,{0xA6,0xC4,0x00,0x00,}}, {0x03B5,2,{0xA6,0xC5,0x00,0x00,}}, {0x03B6,2,{0xA6,0xC6,0x00,0x00,}}, {0x03B7,2,{0xA6,0xC7,0x00,0x00,}}, {0x03B8,2,{0xA6,0xC8,0x00,0x00,}}, {0x03B9,2,{0xA6,0xC9,0x00,0x00,}}, {0x03BA,2,{0xA6,0xCA,0x00,0x00,}}, {0x03BB,2,{0xA6,0xCB,0x00,0x00,}}, {0x03BC,2,{0xA6,0xCC,0x00,0x00,}}, {0x03BD,2,{0xA6,0xCD,0x00,0x00,}}, {0x03BE,2,{0xA6,0xCE,0x00,0x00,}}, {0x03BF,2,{0xA6,0xCF,0x00,0x00,}}, {0x03C0,2,{0xA6,0xD0,0x00,0x00,}}, {0x03C1,2,{0xA6,0xD1,0x00,0x00,}}, {0x03C2,4,{0x81,0x30,0xCB,0x39,}}, {0x03C3,2,{0xA6,0xD2,0x00,0x00,}}, {0x03C4,2,{0xA6,0xD3,0x00,0x00,}}, {0x03C5,2,{0xA6,0xD4,0x00,0x00,}}, {0x03C6,2,{0xA6,0xD5,0x00,0x00,}}, {0x03C7,2,{0xA6,0xD6,0x00,0x00,}}, {0x03C8,2,{0xA6,0xD7,0x00,0x00,}}, {0x03C9,2,{0xA6,0xD8,0x00,0x00,}}, {0x03CA,4,{0x81,0x30,0xCC,0x30,}}, {0x03CB,4,{0x81,0x30,0xCC,0x31,}}, {0x03CC,4,{0x81,0x30,0xCC,0x32,}}, {0x03CD,4,{0x81,0x30,0xCC,0x33,}}, {0x03CE,4,{0x81,0x30,0xCC,0x34,}}, {0x03CF,4,{0x81,0x30,0xCC,0x35,}}, {0x03D0,4,{0x81,0x30,0xCC,0x36,}}, {0x03D1,4,{0x81,0x30,0xCC,0x37,}}, {0x03D2,4,{0x81,0x30,0xCC,0x38,}}, {0x03D3,4,{0x81,0x30,0xCC,0x39,}}, {0x03D4,4,{0x81,0x30,0xCD,0x30,}}, {0x03D5,4,{0x81,0x30,0xCD,0x31,}}, {0x03D6,4,{0x81,0x30,0xCD,0x32,}}, {0x03D7,4,{0x81,0x30,0xCD,0x33,}}, {0x03D8,4,{0x81,0x30,0xCD,0x34,}}, {0x03D9,4,{0x81,0x30,0xCD,0x35,}}, {0x03DA,4,{0x81,0x30,0xCD,0x36,}}, {0x03DB,4,{0x81,0x30,0xCD,0x37,}}, {0x03DC,4,{0x81,0x30,0xCD,0x38,}}, {0x03DD,4,{0x81,0x30,0xCD,0x39,}}, {0x03DE,4,{0x81,0x30,0xCE,0x30,}}, {0x03DF,4,{0x81,0x30,0xCE,0x31,}}, {0x03E0,4,{0x81,0x30,0xCE,0x32,}}, {0x03E1,4,{0x81,0x30,0xCE,0x33,}}, {0x03E2,4,{0x81,0x30,0xCE,0x34,}}, {0x03E3,4,{0x81,0x30,0xCE,0x35,}}, {0x03E4,4,{0x81,0x30,0xCE,0x36,}}, {0x03E5,4,{0x81,0x30,0xCE,0x37,}}, {0x03E6,4,{0x81,0x30,0xCE,0x38,}}, {0x03E7,4,{0x81,0x30,0xCE,0x39,}}, {0x03E8,4,{0x81,0x30,0xCF,0x30,}}, {0x03E9,4,{0x81,0x30,0xCF,0x31,}}, {0x03EA,4,{0x81,0x30,0xCF,0x32,}}, {0x03EB,4,{0x81,0x30,0xCF,0x33,}}, {0x03EC,4,{0x81,0x30,0xCF,0x34,}}, {0x03ED,4,{0x81,0x30,0xCF,0x35,}}, {0x03EE,4,{0x81,0x30,0xCF,0x36,}}, {0x03EF,4,{0x81,0x30,0xCF,0x37,}}, {0x03F0,4,{0x81,0x30,0xCF,0x38,}}, {0x03F1,4,{0x81,0x30,0xCF,0x39,}}, {0x03F2,4,{0x81,0x30,0xD0,0x30,}}, {0x03F3,4,{0x81,0x30,0xD0,0x31,}}, {0x03F4,4,{0x81,0x30,0xD0,0x32,}}, {0x03F5,4,{0x81,0x30,0xD0,0x33,}}, {0x03F6,4,{0x81,0x30,0xD0,0x34,}}, {0x03F7,4,{0x81,0x30,0xD0,0x35,}}, {0x03F8,4,{0x81,0x30,0xD0,0x36,}}, {0x03F9,4,{0x81,0x30,0xD0,0x37,}}, {0x03FA,4,{0x81,0x30,0xD0,0x38,}}, {0x03FB,4,{0x81,0x30,0xD0,0x39,}}, {0x03FC,4,{0x81,0x30,0xD1,0x30,}}, {0x03FD,4,{0x81,0x30,0xD1,0x31,}}, {0x03FE,4,{0x81,0x30,0xD1,0x32,}}, {0x03FF,4,{0x81,0x30,0xD1,0x33,}}, {0x0400,4,{0x81,0x30,0xD1,0x34,}}, {0x0401,2,{0xA7,0xA7,0x00,0x00,}}, {0x0402,4,{0x81,0x30,0xD1,0x35,}}, {0x0403,4,{0x81,0x30,0xD1,0x36,}}, {0x0404,4,{0x81,0x30,0xD1,0x37,}}, {0x0405,4,{0x81,0x30,0xD1,0x38,}}, {0x0406,4,{0x81,0x30,0xD1,0x39,}}, {0x0407,4,{0x81,0x30,0xD2,0x30,}}, {0x0408,4,{0x81,0x30,0xD2,0x31,}}, {0x0409,4,{0x81,0x30,0xD2,0x32,}}, {0x040A,4,{0x81,0x30,0xD2,0x33,}}, {0x040B,4,{0x81,0x30,0xD2,0x34,}}, {0x040C,4,{0x81,0x30,0xD2,0x35,}}, {0x040D,4,{0x81,0x30,0xD2,0x36,}}, {0x040E,4,{0x81,0x30,0xD2,0x37,}}, {0x040F,4,{0x81,0x30,0xD2,0x38,}}, {0x0410,2,{0xA7,0xA1,0x00,0x00,}}, {0x0411,2,{0xA7,0xA2,0x00,0x00,}}, {0x0412,2,{0xA7,0xA3,0x00,0x00,}}, {0x0413,2,{0xA7,0xA4,0x00,0x00,}}, {0x0414,2,{0xA7,0xA5,0x00,0x00,}}, {0x0415,2,{0xA7,0xA6,0x00,0x00,}}, {0x0416,2,{0xA7,0xA8,0x00,0x00,}}, {0x0417,2,{0xA7,0xA9,0x00,0x00,}}, {0x0418,2,{0xA7,0xAA,0x00,0x00,}}, {0x0419,2,{0xA7,0xAB,0x00,0x00,}}, {0x041A,2,{0xA7,0xAC,0x00,0x00,}}, {0x041B,2,{0xA7,0xAD,0x00,0x00,}}, {0x041C,2,{0xA7,0xAE,0x00,0x00,}}, {0x041D,2,{0xA7,0xAF,0x00,0x00,}}, {0x041E,2,{0xA7,0xB0,0x00,0x00,}}, {0x041F,2,{0xA7,0xB1,0x00,0x00,}}, {0x0420,2,{0xA7,0xB2,0x00,0x00,}}, {0x0421,2,{0xA7,0xB3,0x00,0x00,}}, {0x0422,2,{0xA7,0xB4,0x00,0x00,}}, {0x0423,2,{0xA7,0xB5,0x00,0x00,}}, {0x0424,2,{0xA7,0xB6,0x00,0x00,}}, {0x0425,2,{0xA7,0xB7,0x00,0x00,}}, {0x0426,2,{0xA7,0xB8,0x00,0x00,}}, {0x0427,2,{0xA7,0xB9,0x00,0x00,}}, {0x0428,2,{0xA7,0xBA,0x00,0x00,}}, {0x0429,2,{0xA7,0xBB,0x00,0x00,}}, {0x042A,2,{0xA7,0xBC,0x00,0x00,}}, {0x042B,2,{0xA7,0xBD,0x00,0x00,}}, {0x042C,2,{0xA7,0xBE,0x00,0x00,}}, {0x042D,2,{0xA7,0xBF,0x00,0x00,}}, {0x042E,2,{0xA7,0xC0,0x00,0x00,}}, {0x042F,2,{0xA7,0xC1,0x00,0x00,}}, {0x0430,2,{0xA7,0xD1,0x00,0x00,}}, {0x0431,2,{0xA7,0xD2,0x00,0x00,}}, {0x0432,2,{0xA7,0xD3,0x00,0x00,}}, {0x0433,2,{0xA7,0xD4,0x00,0x00,}}, {0x0434,2,{0xA7,0xD5,0x00,0x00,}}, {0x0435,2,{0xA7,0xD6,0x00,0x00,}}, {0x0436,2,{0xA7,0xD8,0x00,0x00,}}, {0x0437,2,{0xA7,0xD9,0x00,0x00,}}, {0x0438,2,{0xA7,0xDA,0x00,0x00,}}, {0x0439,2,{0xA7,0xDB,0x00,0x00,}}, {0x043A,2,{0xA7,0xDC,0x00,0x00,}}, {0x043B,2,{0xA7,0xDD,0x00,0x00,}}, {0x043C,2,{0xA7,0xDE,0x00,0x00,}}, {0x043D,2,{0xA7,0xDF,0x00,0x00,}}, {0x043E,2,{0xA7,0xE0,0x00,0x00,}}, {0x043F,2,{0xA7,0xE1,0x00,0x00,}}, {0x0440,2,{0xA7,0xE2,0x00,0x00,}}, {0x0441,2,{0xA7,0xE3,0x00,0x00,}}, {0x0442,2,{0xA7,0xE4,0x00,0x00,}}, {0x0443,2,{0xA7,0xE5,0x00,0x00,}}, {0x0444,2,{0xA7,0xE6,0x00,0x00,}}, {0x0445,2,{0xA7,0xE7,0x00,0x00,}}, {0x0446,2,{0xA7,0xE8,0x00,0x00,}}, {0x0447,2,{0xA7,0xE9,0x00,0x00,}}, {0x0448,2,{0xA7,0xEA,0x00,0x00,}}, {0x0449,2,{0xA7,0xEB,0x00,0x00,}}, {0x044A,2,{0xA7,0xEC,0x00,0x00,}}, {0x044B,2,{0xA7,0xED,0x00,0x00,}}, {0x044C,2,{0xA7,0xEE,0x00,0x00,}}, {0x044D,2,{0xA7,0xEF,0x00,0x00,}}, {0x044E,2,{0xA7,0xF0,0x00,0x00,}}, {0x044F,2,{0xA7,0xF1,0x00,0x00,}}, {0x0450,4,{0x81,0x30,0xD2,0x39,}}, {0x0451,2,{0xA7,0xD7,0x00,0x00,}}, {0x2010,2,{0xA9,0x5C,0x00,0x00,}}, {0x2011,4,{0x81,0x36,0xA5,0x32,}}, {0x2012,4,{0x81,0x36,0xA5,0x33,}}, {0x2013,2,{0xA8,0x43,0x00,0x00,}}, {0x2014,2,{0xA1,0xAA,0x00,0x00,}}, {0x2015,2,{0xA8,0x44,0x00,0x00,}}, {0x2016,2,{0xA1,0xAC,0x00,0x00,}}, {0x2017,4,{0x81,0x36,0xA5,0x34,}}, {0x2018,2,{0xA1,0xAE,0x00,0x00,}}, {0x2019,2,{0xA1,0xAF,0x00,0x00,}}, {0x201A,4,{0x81,0x36,0xA5,0x35,}}, {0x201B,4,{0x81,0x36,0xA5,0x36,}}, {0x201C,2,{0xA1,0xB0,0x00,0x00,}}, {0x201D,2,{0xA1,0xB1,0x00,0x00,}}, {0x201E,4,{0x81,0x36,0xA5,0x37,}}, {0x201F,4,{0x81,0x36,0xA5,0x38,}}, {0x2020,4,{0x81,0x36,0xA5,0x39,}}, {0x2021,4,{0x81,0x36,0xA6,0x30,}}, {0x2022,4,{0x81,0x36,0xA6,0x31,}}, {0x2023,4,{0x81,0x36,0xA6,0x32,}}, {0x2024,4,{0x81,0x36,0xA6,0x33,}}, {0x2025,2,{0xA8,0x45,0x00,0x00,}}, {0x2026,2,{0xA1,0xAD,0x00,0x00,}}, {0x2027,4,{0x81,0x36,0xA6,0x34,}}, {0x2028,4,{0x81,0x36,0xA6,0x35,}}, {0x2029,4,{0x81,0x36,0xA6,0x36,}}, {0x202A,4,{0x81,0x36,0xA6,0x37,}}, {0x202B,4,{0x81,0x36,0xA6,0x38,}}, {0x202C,4,{0x81,0x36,0xA6,0x39,}}, {0x202D,4,{0x81,0x36,0xA7,0x30,}}, {0x202E,4,{0x81,0x36,0xA7,0x31,}}, {0x202F,4,{0x81,0x36,0xA7,0x32,}}, {0x2030,2,{0xA1,0xEB,0x00,0x00,}}, {0x2031,4,{0x81,0x36,0xA7,0x33,}}, {0x2032,2,{0xA1,0xE4,0x00,0x00,}}, {0x2033,2,{0xA1,0xE5,0x00,0x00,}}, {0x2034,4,{0x81,0x36,0xA7,0x34,}}, {0x2035,2,{0xA8,0x46,0x00,0x00,}}, {0x2036,4,{0x81,0x36,0xA7,0x35,}}, {0x2037,4,{0x81,0x36,0xA7,0x36,}}, {0x2038,4,{0x81,0x36,0xA7,0x37,}}, {0x2039,4,{0x81,0x36,0xA7,0x38,}}, {0x203A,4,{0x81,0x36,0xA7,0x39,}}, {0x203B,2,{0xA1,0xF9,0x00,0x00,}}, {0x203C,4,{0x81,0x36,0xA8,0x30,}}, {0x203D,4,{0x81,0x36,0xA8,0x31,}}, {0x203E,4,{0x81,0x36,0xA8,0x32,}}, {0x203F,4,{0x81,0x36,0xA8,0x33,}}, {0x2040,4,{0x81,0x36,0xA8,0x34,}}, {0x2041,4,{0x81,0x36,0xA8,0x35,}}, {0x2042,4,{0x81,0x36,0xA8,0x36,}}, {0x2043,4,{0x81,0x36,0xA8,0x37,}}, {0x2044,4,{0x81,0x36,0xA8,0x38,}}, {0x2045,4,{0x81,0x36,0xA8,0x39,}}, {0x2046,4,{0x81,0x36,0xA9,0x30,}}, {0x2047,4,{0x81,0x36,0xA9,0x31,}}, {0x2048,4,{0x81,0x36,0xA9,0x32,}}, {0x2049,4,{0x81,0x36,0xA9,0x33,}}, {0x204A,4,{0x81,0x36,0xA9,0x34,}}, {0x204B,4,{0x81,0x36,0xA9,0x35,}}, {0x204C,4,{0x81,0x36,0xA9,0x36,}}, {0x204D,4,{0x81,0x36,0xA9,0x37,}}, {0x204E,4,{0x81,0x36,0xA9,0x38,}}, {0x204F,4,{0x81,0x36,0xA9,0x39,}}, {0x2050,4,{0x81,0x36,0xAA,0x30,}}, {0x2051,4,{0x81,0x36,0xAA,0x31,}}, {0x2052,4,{0x81,0x36,0xAA,0x32,}}, {0x2053,4,{0x81,0x36,0xAA,0x33,}}, {0x2054,4,{0x81,0x36,0xAA,0x34,}}, {0x2055,4,{0x81,0x36,0xAA,0x35,}}, {0x2056,4,{0x81,0x36,0xAA,0x36,}}, {0x2057,4,{0x81,0x36,0xAA,0x37,}}, {0x2058,4,{0x81,0x36,0xAA,0x38,}}, {0x2059,4,{0x81,0x36,0xAA,0x39,}}, {0x205A,4,{0x81,0x36,0xAB,0x30,}}, {0x205B,4,{0x81,0x36,0xAB,0x31,}}, {0x205C,4,{0x81,0x36,0xAB,0x32,}}, {0x205D,4,{0x81,0x36,0xAB,0x33,}}, {0x205E,4,{0x81,0x36,0xAB,0x34,}}, {0x205F,4,{0x81,0x36,0xAB,0x35,}}, {0x2060,4,{0x81,0x36,0xAB,0x36,}}, {0x2061,4,{0x81,0x36,0xAB,0x37,}}, {0x2062,4,{0x81,0x36,0xAB,0x38,}}, {0x2063,4,{0x81,0x36,0xAB,0x39,}}, {0x2064,4,{0x81,0x36,0xAC,0x30,}}, {0x2065,4,{0x81,0x36,0xAC,0x31,}}, {0x2066,4,{0x81,0x36,0xAC,0x32,}}, {0x2067,4,{0x81,0x36,0xAC,0x33,}}, {0x2068,4,{0x81,0x36,0xAC,0x34,}}, {0x2069,4,{0x81,0x36,0xAC,0x35,}}, {0x206A,4,{0x81,0x36,0xAC,0x36,}}, {0x206B,4,{0x81,0x36,0xAC,0x37,}}, {0x206C,4,{0x81,0x36,0xAC,0x38,}}, {0x206D,4,{0x81,0x36,0xAC,0x39,}}, {0x206E,4,{0x81,0x36,0xAD,0x30,}}, {0x206F,4,{0x81,0x36,0xAD,0x31,}}, {0x2070,4,{0x81,0x36,0xAD,0x32,}}, {0x2071,4,{0x81,0x36,0xAD,0x33,}}, {0x2072,4,{0x81,0x36,0xAD,0x34,}}, {0x2073,4,{0x81,0x36,0xAD,0x35,}}, {0x2074,4,{0x81,0x36,0xAD,0x36,}}, {0x2075,4,{0x81,0x36,0xAD,0x37,}}, {0x2076,4,{0x81,0x36,0xAD,0x38,}}, {0x2077,4,{0x81,0x36,0xAD,0x39,}}, {0x2078,4,{0x81,0x36,0xAE,0x30,}}, {0x2079,4,{0x81,0x36,0xAE,0x31,}}, {0x207A,4,{0x81,0x36,0xAE,0x32,}}, {0x207B,4,{0x81,0x36,0xAE,0x33,}}, {0x207C,4,{0x81,0x36,0xAE,0x34,}}, {0x207D,4,{0x81,0x36,0xAE,0x35,}}, {0x207E,4,{0x81,0x36,0xAE,0x36,}}, {0x207F,4,{0x81,0x36,0xAE,0x37,}}, {0x2080,4,{0x81,0x36,0xAE,0x38,}}, {0x2081,4,{0x81,0x36,0xAE,0x39,}}, {0x2082,4,{0x81,0x36,0xAF,0x30,}}, {0x2083,4,{0x81,0x36,0xAF,0x31,}}, {0x2084,4,{0x81,0x36,0xAF,0x32,}}, {0x2085,4,{0x81,0x36,0xAF,0x33,}}, {0x2086,4,{0x81,0x36,0xAF,0x34,}}, {0x2087,4,{0x81,0x36,0xAF,0x35,}}, {0x2088,4,{0x81,0x36,0xAF,0x36,}}, {0x2089,4,{0x81,0x36,0xAF,0x37,}}, {0x208A,4,{0x81,0x36,0xAF,0x38,}}, {0x208B,4,{0x81,0x36,0xAF,0x39,}}, {0x208C,4,{0x81,0x36,0xB0,0x30,}}, {0x208D,4,{0x81,0x36,0xB0,0x31,}}, {0x208E,4,{0x81,0x36,0xB0,0x32,}}, {0x208F,4,{0x81,0x36,0xB0,0x33,}}, {0x2090,4,{0x81,0x36,0xB0,0x34,}}, {0x2091,4,{0x81,0x36,0xB0,0x35,}}, {0x2092,4,{0x81,0x36,0xB0,0x36,}}, {0x2093,4,{0x81,0x36,0xB0,0x37,}}, {0x2094,4,{0x81,0x36,0xB0,0x38,}}, {0x2095,4,{0x81,0x36,0xB0,0x39,}}, {0x2096,4,{0x81,0x36,0xB1,0x30,}}, {0x2097,4,{0x81,0x36,0xB1,0x31,}}, {0x2098,4,{0x81,0x36,0xB1,0x32,}}, {0x2099,4,{0x81,0x36,0xB1,0x33,}}, {0x209A,4,{0x81,0x36,0xB1,0x34,}}, {0x209B,4,{0x81,0x36,0xB1,0x35,}}, {0x209C,4,{0x81,0x36,0xB1,0x36,}}, {0x209D,4,{0x81,0x36,0xB1,0x37,}}, {0x209E,4,{0x81,0x36,0xB1,0x38,}}, {0x209F,4,{0x81,0x36,0xB1,0x39,}}, {0x20A0,4,{0x81,0x36,0xB2,0x30,}}, {0x20A1,4,{0x81,0x36,0xB2,0x31,}}, {0x20A2,4,{0x81,0x36,0xB2,0x32,}}, {0x20A3,4,{0x81,0x36,0xB2,0x33,}}, {0x20A4,4,{0x81,0x36,0xB2,0x34,}}, {0x20A5,4,{0x81,0x36,0xB2,0x35,}}, {0x20A6,4,{0x81,0x36,0xB2,0x36,}}, {0x20A7,4,{0x81,0x36,0xB2,0x37,}}, {0x20A8,4,{0x81,0x36,0xB2,0x38,}}, {0x20A9,4,{0x81,0x36,0xB2,0x39,}}, {0x20AA,4,{0x81,0x36,0xB3,0x30,}}, {0x20AB,4,{0x81,0x36,0xB3,0x31,}}, {0x20AC,2,{0xA2,0xE3,0x00,0x00,}}, {0x20AD,4,{0x81,0x36,0xB3,0x32,}}, {0x20AE,4,{0x81,0x36,0xB3,0x33,}}, {0x20AF,4,{0x81,0x36,0xB3,0x34,}}, {0x20B0,4,{0x81,0x36,0xB3,0x35,}}, {0x20B1,4,{0x81,0x36,0xB3,0x36,}}, {0x20B2,4,{0x81,0x36,0xB3,0x37,}}, {0x20B3,4,{0x81,0x36,0xB3,0x38,}}, {0x20B4,4,{0x81,0x36,0xB3,0x39,}}, {0x20B5,4,{0x81,0x36,0xB4,0x30,}}, {0x20B6,4,{0x81,0x36,0xB4,0x31,}}, {0x20B7,4,{0x81,0x36,0xB4,0x32,}}, {0x20B8,4,{0x81,0x36,0xB4,0x33,}}, {0x20B9,4,{0x81,0x36,0xB4,0x34,}}, {0x20BA,4,{0x81,0x36,0xB4,0x35,}}, {0x20BB,4,{0x81,0x36,0xB4,0x36,}}, {0x20BC,4,{0x81,0x36,0xB4,0x37,}}, {0x20BD,4,{0x81,0x36,0xB4,0x38,}}, {0x20BE,4,{0x81,0x36,0xB4,0x39,}}, {0x20BF,4,{0x81,0x36,0xB5,0x30,}}, {0x20C0,4,{0x81,0x36,0xB5,0x31,}}, {0x20C1,4,{0x81,0x36,0xB5,0x32,}}, {0x20C2,4,{0x81,0x36,0xB5,0x33,}}, {0x20C3,4,{0x81,0x36,0xB5,0x34,}}, {0x20C4,4,{0x81,0x36,0xB5,0x35,}}, {0x20C5,4,{0x81,0x36,0xB5,0x36,}}, {0x20C6,4,{0x81,0x36,0xB5,0x37,}}, {0x20C7,4,{0x81,0x36,0xB5,0x38,}}, {0x20C8,4,{0x81,0x36,0xB5,0x39,}}, {0x20C9,4,{0x81,0x36,0xB6,0x30,}}, {0x20CA,4,{0x81,0x36,0xB6,0x31,}}, {0x20CB,4,{0x81,0x36,0xB6,0x32,}}, {0x20CC,4,{0x81,0x36,0xB6,0x33,}}, {0x20CD,4,{0x81,0x36,0xB6,0x34,}}, {0x20CE,4,{0x81,0x36,0xB6,0x35,}}, {0x20CF,4,{0x81,0x36,0xB6,0x36,}}, {0x20D0,4,{0x81,0x36,0xB6,0x37,}}, {0x20D1,4,{0x81,0x36,0xB6,0x38,}}, {0x20D2,4,{0x81,0x36,0xB6,0x39,}}, {0x20D3,4,{0x81,0x36,0xB7,0x30,}}, {0x20D4,4,{0x81,0x36,0xB7,0x31,}}, {0x20D5,4,{0x81,0x36,0xB7,0x32,}}, {0x20D6,4,{0x81,0x36,0xB7,0x33,}}, {0x20D7,4,{0x81,0x36,0xB7,0x34,}}, {0x20D8,4,{0x81,0x36,0xB7,0x35,}}, {0x20D9,4,{0x81,0x36,0xB7,0x36,}}, {0x20DA,4,{0x81,0x36,0xB7,0x37,}}, {0x20DB,4,{0x81,0x36,0xB7,0x38,}}, {0x20DC,4,{0x81,0x36,0xB7,0x39,}}, {0x20DD,4,{0x81,0x36,0xB8,0x30,}}, {0x20DE,4,{0x81,0x36,0xB8,0x31,}}, {0x20DF,4,{0x81,0x36,0xB8,0x32,}}, {0x20E0,4,{0x81,0x36,0xB8,0x33,}}, {0x20E1,4,{0x81,0x36,0xB8,0x34,}}, {0x20E2,4,{0x81,0x36,0xB8,0x35,}}, {0x20E3,4,{0x81,0x36,0xB8,0x36,}}, {0x20E4,4,{0x81,0x36,0xB8,0x37,}}, {0x20E5,4,{0x81,0x36,0xB8,0x38,}}, {0x20E6,4,{0x81,0x36,0xB8,0x39,}}, {0x20E7,4,{0x81,0x36,0xB9,0x30,}}, {0x20E8,4,{0x81,0x36,0xB9,0x31,}}, {0x20E9,4,{0x81,0x36,0xB9,0x32,}}, {0x20EA,4,{0x81,0x36,0xB9,0x33,}}, {0x20EB,4,{0x81,0x36,0xB9,0x34,}}, {0x20EC,4,{0x81,0x36,0xB9,0x35,}}, {0x20ED,4,{0x81,0x36,0xB9,0x36,}}, {0x20EE,4,{0x81,0x36,0xB9,0x37,}}, {0x20EF,4,{0x81,0x36,0xB9,0x38,}}, {0x20F0,4,{0x81,0x36,0xB9,0x39,}}, {0x20F1,4,{0x81,0x36,0xBA,0x30,}}, {0x20F2,4,{0x81,0x36,0xBA,0x31,}}, {0x20F3,4,{0x81,0x36,0xBA,0x32,}}, {0x20F4,4,{0x81,0x36,0xBA,0x33,}}, {0x20F5,4,{0x81,0x36,0xBA,0x34,}}, {0x20F6,4,{0x81,0x36,0xBA,0x35,}}, {0x20F7,4,{0x81,0x36,0xBA,0x36,}}, {0x20F8,4,{0x81,0x36,0xBA,0x37,}}, {0x20F9,4,{0x81,0x36,0xBA,0x38,}}, {0x20FA,4,{0x81,0x36,0xBA,0x39,}}, {0x20FB,4,{0x81,0x36,0xBB,0x30,}}, {0x20FC,4,{0x81,0x36,0xBB,0x31,}}, {0x20FD,4,{0x81,0x36,0xBB,0x32,}}, {0x20FE,4,{0x81,0x36,0xBB,0x33,}}, {0x20FF,4,{0x81,0x36,0xBB,0x34,}}, {0x2100,4,{0x81,0x36,0xBB,0x35,}}, {0x2101,4,{0x81,0x36,0xBB,0x36,}}, {0x2102,4,{0x81,0x36,0xBB,0x37,}}, {0x2103,2,{0xA1,0xE6,0x00,0x00,}}, {0x2104,4,{0x81,0x36,0xBB,0x38,}}, {0x2105,2,{0xA8,0x47,0x00,0x00,}}, {0x2106,4,{0x81,0x36,0xBB,0x39,}}, {0x2107,4,{0x81,0x36,0xBC,0x30,}}, {0x2108,4,{0x81,0x36,0xBC,0x31,}}, {0x2109,2,{0xA8,0x48,0x00,0x00,}}, {0x210A,4,{0x81,0x36,0xBC,0x32,}}, {0x210B,4,{0x81,0x36,0xBC,0x33,}}, {0x210C,4,{0x81,0x36,0xBC,0x34,}}, {0x210D,4,{0x81,0x36,0xBC,0x35,}}, {0x210E,4,{0x81,0x36,0xBC,0x36,}}, {0x210F,4,{0x81,0x36,0xBC,0x37,}}, {0x2110,4,{0x81,0x36,0xBC,0x38,}}, {0x2111,4,{0x81,0x36,0xBC,0x39,}}, {0x2112,4,{0x81,0x36,0xBD,0x30,}}, {0x2113,4,{0x81,0x36,0xBD,0x31,}}, {0x2114,4,{0x81,0x36,0xBD,0x32,}}, {0x2115,4,{0x81,0x36,0xBD,0x33,}}, {0x2116,2,{0xA1,0xED,0x00,0x00,}}, {0x2117,4,{0x81,0x36,0xBD,0x34,}}, {0x2118,4,{0x81,0x36,0xBD,0x35,}}, {0x2119,4,{0x81,0x36,0xBD,0x36,}}, {0x211A,4,{0x81,0x36,0xBD,0x37,}}, {0x211B,4,{0x81,0x36,0xBD,0x38,}}, {0x211C,4,{0x81,0x36,0xBD,0x39,}}, {0x211D,4,{0x81,0x36,0xBE,0x30,}}, {0x211E,4,{0x81,0x36,0xBE,0x31,}}, {0x211F,4,{0x81,0x36,0xBE,0x32,}}, {0x2120,4,{0x81,0x36,0xBE,0x33,}}, {0x2121,2,{0xA9,0x59,0x00,0x00,}}, {0x2122,4,{0x81,0x36,0xBE,0x34,}}, {0x2123,4,{0x81,0x36,0xBE,0x35,}}, {0x2124,4,{0x81,0x36,0xBE,0x36,}}, {0x2125,4,{0x81,0x36,0xBE,0x37,}}, {0x2126,4,{0x81,0x36,0xBE,0x38,}}, {0x2127,4,{0x81,0x36,0xBE,0x39,}}, {0x2128,4,{0x81,0x36,0xBF,0x30,}}, {0x2129,4,{0x81,0x36,0xBF,0x31,}}, {0x212A,4,{0x81,0x36,0xBF,0x32,}}, {0x212B,4,{0x81,0x36,0xBF,0x33,}}, {0x212C,4,{0x81,0x36,0xBF,0x34,}}, {0x212D,4,{0x81,0x36,0xBF,0x35,}}, {0x212E,4,{0x81,0x36,0xBF,0x36,}}, {0x212F,4,{0x81,0x36,0xBF,0x37,}}, {0x2130,4,{0x81,0x36,0xBF,0x38,}}, {0x2131,4,{0x81,0x36,0xBF,0x39,}}, {0x2132,4,{0x81,0x36,0xC0,0x30,}}, {0x2133,4,{0x81,0x36,0xC0,0x31,}}, {0x2134,4,{0x81,0x36,0xC0,0x32,}}, {0x2135,4,{0x81,0x36,0xC0,0x33,}}, {0x2136,4,{0x81,0x36,0xC0,0x34,}}, {0x2137,4,{0x81,0x36,0xC0,0x35,}}, {0x2138,4,{0x81,0x36,0xC0,0x36,}}, {0x2139,4,{0x81,0x36,0xC0,0x37,}}, {0x213A,4,{0x81,0x36,0xC0,0x38,}}, {0x213B,4,{0x81,0x36,0xC0,0x39,}}, {0x213C,4,{0x81,0x36,0xC1,0x30,}}, {0x213D,4,{0x81,0x36,0xC1,0x31,}}, {0x213E,4,{0x81,0x36,0xC1,0x32,}}, {0x213F,4,{0x81,0x36,0xC1,0x33,}}, {0x2140,4,{0x81,0x36,0xC1,0x34,}}, {0x2141,4,{0x81,0x36,0xC1,0x35,}}, {0x2142,4,{0x81,0x36,0xC1,0x36,}}, {0x2143,4,{0x81,0x36,0xC1,0x37,}}, {0x2144,4,{0x81,0x36,0xC1,0x38,}}, {0x2145,4,{0x81,0x36,0xC1,0x39,}}, {0x2146,4,{0x81,0x36,0xC2,0x30,}}, {0x2147,4,{0x81,0x36,0xC2,0x31,}}, {0x2148,4,{0x81,0x36,0xC2,0x32,}}, {0x2149,4,{0x81,0x36,0xC2,0x33,}}, {0x214A,4,{0x81,0x36,0xC2,0x34,}}, {0x214B,4,{0x81,0x36,0xC2,0x35,}}, {0x214C,4,{0x81,0x36,0xC2,0x36,}}, {0x214D,4,{0x81,0x36,0xC2,0x37,}}, {0x214E,4,{0x81,0x36,0xC2,0x38,}}, {0x214F,4,{0x81,0x36,0xC2,0x39,}}, {0x2150,4,{0x81,0x36,0xC3,0x30,}}, {0x2151,4,{0x81,0x36,0xC3,0x31,}}, {0x2152,4,{0x81,0x36,0xC3,0x32,}}, {0x2153,4,{0x81,0x36,0xC3,0x33,}}, {0x2154,4,{0x81,0x36,0xC3,0x34,}}, {0x2155,4,{0x81,0x36,0xC3,0x35,}}, {0x2156,4,{0x81,0x36,0xC3,0x36,}}, {0x2157,4,{0x81,0x36,0xC3,0x37,}}, {0x2158,4,{0x81,0x36,0xC3,0x38,}}, {0x2159,4,{0x81,0x36,0xC3,0x39,}}, {0x215A,4,{0x81,0x36,0xC4,0x30,}}, {0x215B,4,{0x81,0x36,0xC4,0x31,}}, {0x215C,4,{0x81,0x36,0xC4,0x32,}}, {0x215D,4,{0x81,0x36,0xC4,0x33,}}, {0x215E,4,{0x81,0x36,0xC4,0x34,}}, {0x215F,4,{0x81,0x36,0xC4,0x35,}}, {0x2160,2,{0xA2,0xF1,0x00,0x00,}}, {0x2161,2,{0xA2,0xF2,0x00,0x00,}}, {0x2162,2,{0xA2,0xF3,0x00,0x00,}}, {0x2163,2,{0xA2,0xF4,0x00,0x00,}}, {0x2164,2,{0xA2,0xF5,0x00,0x00,}}, {0x2165,2,{0xA2,0xF6,0x00,0x00,}}, {0x2166,2,{0xA2,0xF7,0x00,0x00,}}, {0x2167,2,{0xA2,0xF8,0x00,0x00,}}, {0x2168,2,{0xA2,0xF9,0x00,0x00,}}, {0x2169,2,{0xA2,0xFA,0x00,0x00,}}, {0x216A,2,{0xA2,0xFB,0x00,0x00,}}, {0x216B,2,{0xA2,0xFC,0x00,0x00,}}, {0x216C,4,{0x81,0x36,0xC4,0x36,}}, {0x216D,4,{0x81,0x36,0xC4,0x37,}}, {0x216E,4,{0x81,0x36,0xC4,0x38,}}, {0x216F,4,{0x81,0x36,0xC4,0x39,}}, {0x2170,2,{0xA2,0xA1,0x00,0x00,}}, {0x2171,2,{0xA2,0xA2,0x00,0x00,}}, {0x2172,2,{0xA2,0xA3,0x00,0x00,}}, {0x2173,2,{0xA2,0xA4,0x00,0x00,}}, {0x2174,2,{0xA2,0xA5,0x00,0x00,}}, {0x2175,2,{0xA2,0xA6,0x00,0x00,}}, {0x2176,2,{0xA2,0xA7,0x00,0x00,}}, {0x2177,2,{0xA2,0xA8,0x00,0x00,}}, {0x2178,2,{0xA2,0xA9,0x00,0x00,}}, {0x2179,2,{0xA2,0xAA,0x00,0x00,}}, {0x217A,4,{0x81,0x36,0xC5,0x30,}}, {0x217B,4,{0x81,0x36,0xC5,0x31,}}, {0x217C,4,{0x81,0x36,0xC5,0x32,}}, {0x217D,4,{0x81,0x36,0xC5,0x33,}}, {0x217E,4,{0x81,0x36,0xC5,0x34,}}, {0x217F,4,{0x81,0x36,0xC5,0x35,}}, {0x2180,4,{0x81,0x36,0xC5,0x36,}}, {0x2181,4,{0x81,0x36,0xC5,0x37,}}, {0x2182,4,{0x81,0x36,0xC5,0x38,}}, {0x2183,4,{0x81,0x36,0xC5,0x39,}}, {0x2184,4,{0x81,0x36,0xC6,0x30,}}, {0x2185,4,{0x81,0x36,0xC6,0x31,}}, {0x2186,4,{0x81,0x36,0xC6,0x32,}}, {0x2187,4,{0x81,0x36,0xC6,0x33,}}, {0x2188,4,{0x81,0x36,0xC6,0x34,}}, {0x2189,4,{0x81,0x36,0xC6,0x35,}}, {0x218A,4,{0x81,0x36,0xC6,0x36,}}, {0x218B,4,{0x81,0x36,0xC6,0x37,}}, {0x218C,4,{0x81,0x36,0xC6,0x38,}}, {0x218D,4,{0x81,0x36,0xC6,0x39,}}, {0x218E,4,{0x81,0x36,0xC7,0x30,}}, {0x218F,4,{0x81,0x36,0xC7,0x31,}}, {0x2190,2,{0xA1,0xFB,0x00,0x00,}}, {0x2191,2,{0xA1,0xFC,0x00,0x00,}}, {0x2192,2,{0xA1,0xFA,0x00,0x00,}}, {0x2193,2,{0xA1,0xFD,0x00,0x00,}}, {0x2194,4,{0x81,0x36,0xC7,0x32,}}, {0x2195,4,{0x81,0x36,0xC7,0x33,}}, {0x2196,2,{0xA8,0x49,0x00,0x00,}}, {0x2197,2,{0xA8,0x4A,0x00,0x00,}}, {0x2198,2,{0xA8,0x4B,0x00,0x00,}}, {0x2199,2,{0xA8,0x4C,0x00,0x00,}}, {0x219A,4,{0x81,0x36,0xC7,0x34,}}, {0x219B,4,{0x81,0x36,0xC7,0x35,}}, {0x219C,4,{0x81,0x36,0xC7,0x36,}}, {0x219D,4,{0x81,0x36,0xC7,0x37,}}, {0x219E,4,{0x81,0x36,0xC7,0x38,}}, {0x219F,4,{0x81,0x36,0xC7,0x39,}}, {0x21A0,4,{0x81,0x36,0xC8,0x30,}}, {0x21A1,4,{0x81,0x36,0xC8,0x31,}}, {0x21A2,4,{0x81,0x36,0xC8,0x32,}}, {0x21A3,4,{0x81,0x36,0xC8,0x33,}}, {0x21A4,4,{0x81,0x36,0xC8,0x34,}}, {0x21A5,4,{0x81,0x36,0xC8,0x35,}}, {0x21A6,4,{0x81,0x36,0xC8,0x36,}}, {0x21A7,4,{0x81,0x36,0xC8,0x37,}}, {0x21A8,4,{0x81,0x36,0xC8,0x38,}}, {0x21A9,4,{0x81,0x36,0xC8,0x39,}}, {0x21AA,4,{0x81,0x36,0xC9,0x30,}}, {0x21AB,4,{0x81,0x36,0xC9,0x31,}}, {0x21AC,4,{0x81,0x36,0xC9,0x32,}}, {0x21AD,4,{0x81,0x36,0xC9,0x33,}}, {0x21AE,4,{0x81,0x36,0xC9,0x34,}}, {0x21AF,4,{0x81,0x36,0xC9,0x35,}}, {0x21B0,4,{0x81,0x36,0xC9,0x36,}}, {0x21B1,4,{0x81,0x36,0xC9,0x37,}}, {0x21B2,4,{0x81,0x36,0xC9,0x38,}}, {0x21B3,4,{0x81,0x36,0xC9,0x39,}}, {0x21B4,4,{0x81,0x36,0xCA,0x30,}}, {0x21B5,4,{0x81,0x36,0xCA,0x31,}}, {0x21B6,4,{0x81,0x36,0xCA,0x32,}}, {0x21B7,4,{0x81,0x36,0xCA,0x33,}}, {0x21B8,4,{0x81,0x36,0xCA,0x34,}}, {0x21B9,4,{0x81,0x36,0xCA,0x35,}}, {0x21BA,4,{0x81,0x36,0xCA,0x36,}}, {0x21BB,4,{0x81,0x36,0xCA,0x37,}}, {0x21BC,4,{0x81,0x36,0xCA,0x38,}}, {0x21BD,4,{0x81,0x36,0xCA,0x39,}}, {0x21BE,4,{0x81,0x36,0xCB,0x30,}}, {0x21BF,4,{0x81,0x36,0xCB,0x31,}}, {0x21C0,4,{0x81,0x36,0xCB,0x32,}}, {0x21C1,4,{0x81,0x36,0xCB,0x33,}}, {0x21C2,4,{0x81,0x36,0xCB,0x34,}}, {0x21C3,4,{0x81,0x36,0xCB,0x35,}}, {0x21C4,4,{0x81,0x36,0xCB,0x36,}}, {0x21C5,4,{0x81,0x36,0xCB,0x37,}}, {0x21C6,4,{0x81,0x36,0xCB,0x38,}}, {0x21C7,4,{0x81,0x36,0xCB,0x39,}}, {0x21C8,4,{0x81,0x36,0xCC,0x30,}}, {0x21C9,4,{0x81,0x36,0xCC,0x31,}}, {0x21CA,4,{0x81,0x36,0xCC,0x32,}}, {0x21CB,4,{0x81,0x36,0xCC,0x33,}}, {0x21CC,4,{0x81,0x36,0xCC,0x34,}}, {0x21CD,4,{0x81,0x36,0xCC,0x35,}}, {0x21CE,4,{0x81,0x36,0xCC,0x36,}}, {0x21CF,4,{0x81,0x36,0xCC,0x37,}}, {0x21D0,4,{0x81,0x36,0xCC,0x38,}}, {0x21D1,4,{0x81,0x36,0xCC,0x39,}}, {0x21D2,4,{0x81,0x36,0xCD,0x30,}}, {0x21D3,4,{0x81,0x36,0xCD,0x31,}}, {0x21D4,4,{0x81,0x36,0xCD,0x32,}}, {0x21D5,4,{0x81,0x36,0xCD,0x33,}}, {0x21D6,4,{0x81,0x36,0xCD,0x34,}}, {0x21D7,4,{0x81,0x36,0xCD,0x35,}}, {0x21D8,4,{0x81,0x36,0xCD,0x36,}}, {0x21D9,4,{0x81,0x36,0xCD,0x37,}}, {0x21DA,4,{0x81,0x36,0xCD,0x38,}}, {0x21DB,4,{0x81,0x36,0xCD,0x39,}}, {0x21DC,4,{0x81,0x36,0xCE,0x30,}}, {0x21DD,4,{0x81,0x36,0xCE,0x31,}}, {0x21DE,4,{0x81,0x36,0xCE,0x32,}}, {0x21DF,4,{0x81,0x36,0xCE,0x33,}}, {0x21E0,4,{0x81,0x36,0xCE,0x34,}}, {0x21E1,4,{0x81,0x36,0xCE,0x35,}}, {0x21E2,4,{0x81,0x36,0xCE,0x36,}}, {0x21E3,4,{0x81,0x36,0xCE,0x37,}}, {0x21E4,4,{0x81,0x36,0xCE,0x38,}}, {0x21E5,4,{0x81,0x36,0xCE,0x39,}}, {0x21E6,4,{0x81,0x36,0xCF,0x30,}}, {0x21E7,4,{0x81,0x36,0xCF,0x31,}}, {0x21E8,4,{0x81,0x36,0xCF,0x32,}}, {0x21E9,4,{0x81,0x36,0xCF,0x33,}}, {0x21EA,4,{0x81,0x36,0xCF,0x34,}}, {0x21EB,4,{0x81,0x36,0xCF,0x35,}}, {0x21EC,4,{0x81,0x36,0xCF,0x36,}}, {0x21ED,4,{0x81,0x36,0xCF,0x37,}}, {0x21EE,4,{0x81,0x36,0xCF,0x38,}}, {0x21EF,4,{0x81,0x36,0xCF,0x39,}}, {0x21F0,4,{0x81,0x36,0xD0,0x30,}}, {0x21F1,4,{0x81,0x36,0xD0,0x31,}}, {0x21F2,4,{0x81,0x36,0xD0,0x32,}}, {0x21F3,4,{0x81,0x36,0xD0,0x33,}}, {0x21F4,4,{0x81,0x36,0xD0,0x34,}}, {0x21F5,4,{0x81,0x36,0xD0,0x35,}}, {0x21F6,4,{0x81,0x36,0xD0,0x36,}}, {0x21F7,4,{0x81,0x36,0xD0,0x37,}}, {0x21F8,4,{0x81,0x36,0xD0,0x38,}}, {0x21F9,4,{0x81,0x36,0xD0,0x39,}}, {0x21FA,4,{0x81,0x36,0xD1,0x30,}}, {0x21FB,4,{0x81,0x36,0xD1,0x31,}}, {0x21FC,4,{0x81,0x36,0xD1,0x32,}}, {0x21FD,4,{0x81,0x36,0xD1,0x33,}}, {0x21FE,4,{0x81,0x36,0xD1,0x34,}}, {0x21FF,4,{0x81,0x36,0xD1,0x35,}}, {0x2200,4,{0x81,0x36,0xD1,0x36,}}, {0x2201,4,{0x81,0x36,0xD1,0x37,}}, {0x2202,4,{0x81,0x36,0xD1,0x38,}}, {0x2203,4,{0x81,0x36,0xD1,0x39,}}, {0x2204,4,{0x81,0x36,0xD2,0x30,}}, {0x2205,4,{0x81,0x36,0xD2,0x31,}}, {0x2206,4,{0x81,0x36,0xD2,0x32,}}, {0x2207,4,{0x81,0x36,0xD2,0x33,}}, {0x2208,2,{0xA1,0xCA,0x00,0x00,}}, {0x2209,4,{0x81,0x36,0xD2,0x34,}}, {0x220A,4,{0x81,0x36,0xD2,0x35,}}, {0x220B,4,{0x81,0x36,0xD2,0x36,}}, {0x220C,4,{0x81,0x36,0xD2,0x37,}}, {0x220D,4,{0x81,0x36,0xD2,0x38,}}, {0x220E,4,{0x81,0x36,0xD2,0x39,}}, {0x220F,2,{0xA1,0xC7,0x00,0x00,}}, {0x2210,4,{0x81,0x36,0xD3,0x30,}}, {0x2211,2,{0xA1,0xC6,0x00,0x00,}}, {0x2212,4,{0x81,0x36,0xD3,0x31,}}, {0x2213,4,{0x81,0x36,0xD3,0x32,}}, {0x2214,4,{0x81,0x36,0xD3,0x33,}}, {0x2215,2,{0xA8,0x4D,0x00,0x00,}}, {0x2216,4,{0x81,0x36,0xD3,0x34,}}, {0x2217,4,{0x81,0x36,0xD3,0x35,}}, {0x2218,4,{0x81,0x36,0xD3,0x36,}}, {0x2219,4,{0x81,0x36,0xD3,0x37,}}, {0x221A,2,{0xA1,0xCC,0x00,0x00,}}, {0x221B,4,{0x81,0x36,0xD3,0x38,}}, {0x221C,4,{0x81,0x36,0xD3,0x39,}}, {0x221D,2,{0xA1,0xD8,0x00,0x00,}}, {0x221E,2,{0xA1,0xDE,0x00,0x00,}}, {0x221F,2,{0xA8,0x4E,0x00,0x00,}}, {0x2220,2,{0xA1,0xCF,0x00,0x00,}}, {0x2221,4,{0x81,0x36,0xD4,0x30,}}, {0x2222,4,{0x81,0x36,0xD4,0x31,}}, {0x2223,2,{0xA8,0x4F,0x00,0x00,}}, {0x2224,4,{0x81,0x36,0xD4,0x32,}}, {0x2225,2,{0xA1,0xCE,0x00,0x00,}}, {0x2226,4,{0x81,0x36,0xD4,0x33,}}, {0x2227,2,{0xA1,0xC4,0x00,0x00,}}, {0x2228,2,{0xA1,0xC5,0x00,0x00,}}, {0x2229,2,{0xA1,0xC9,0x00,0x00,}}, {0x222A,2,{0xA1,0xC8,0x00,0x00,}}, {0x222B,2,{0xA1,0xD2,0x00,0x00,}}, {0x222C,4,{0x81,0x36,0xD4,0x34,}}, {0x222D,4,{0x81,0x36,0xD4,0x35,}}, {0x222E,2,{0xA1,0xD3,0x00,0x00,}}, {0x222F,4,{0x81,0x36,0xD4,0x36,}}, {0x2230,4,{0x81,0x36,0xD4,0x37,}}, {0x2231,4,{0x81,0x36,0xD4,0x38,}}, {0x2232,4,{0x81,0x36,0xD4,0x39,}}, {0x2233,4,{0x81,0x36,0xD5,0x30,}}, {0x2234,2,{0xA1,0xE0,0x00,0x00,}}, {0x2235,2,{0xA1,0xDF,0x00,0x00,}}, {0x2236,2,{0xA1,0xC3,0x00,0x00,}}, {0x2237,2,{0xA1,0xCB,0x00,0x00,}}, {0x2238,4,{0x81,0x36,0xD5,0x31,}}, {0x2239,4,{0x81,0x36,0xD5,0x32,}}, {0x223A,4,{0x81,0x36,0xD5,0x33,}}, {0x223B,4,{0x81,0x36,0xD5,0x34,}}, {0x223C,4,{0x81,0x36,0xD5,0x35,}}, {0x223D,2,{0xA1,0xD7,0x00,0x00,}}, {0x223E,4,{0x81,0x36,0xD5,0x36,}}, {0x223F,4,{0x81,0x36,0xD5,0x37,}}, {0x2240,4,{0x81,0x36,0xD5,0x38,}}, {0x2241,4,{0x81,0x36,0xD5,0x39,}}, {0x2242,4,{0x81,0x36,0xD6,0x30,}}, {0x2243,4,{0x81,0x36,0xD6,0x31,}}, {0x2244,4,{0x81,0x36,0xD6,0x32,}}, {0x2245,4,{0x81,0x36,0xD6,0x33,}}, {0x2246,4,{0x81,0x36,0xD6,0x34,}}, {0x2247,4,{0x81,0x36,0xD6,0x35,}}, {0x2248,2,{0xA1,0xD6,0x00,0x00,}}, {0x2249,4,{0x81,0x36,0xD6,0x36,}}, {0x224A,4,{0x81,0x36,0xD6,0x37,}}, {0x224B,4,{0x81,0x36,0xD6,0x38,}}, {0x224C,2,{0xA1,0xD5,0x00,0x00,}}, {0x224D,4,{0x81,0x36,0xD6,0x39,}}, {0x224E,4,{0x81,0x36,0xD7,0x30,}}, {0x224F,4,{0x81,0x36,0xD7,0x31,}}, {0x2250,4,{0x81,0x36,0xD7,0x32,}}, {0x2251,4,{0x81,0x36,0xD7,0x33,}}, {0x2252,2,{0xA8,0x50,0x00,0x00,}}, {0x2253,4,{0x81,0x36,0xD7,0x34,}}, {0x2254,4,{0x81,0x36,0xD7,0x35,}}, {0x2255,4,{0x81,0x36,0xD7,0x36,}}, {0x2256,4,{0x81,0x36,0xD7,0x37,}}, {0x2257,4,{0x81,0x36,0xD7,0x38,}}, {0x2258,4,{0x81,0x36,0xD7,0x39,}}, {0x2259,4,{0x81,0x36,0xD8,0x30,}}, {0x225A,4,{0x81,0x36,0xD8,0x31,}}, {0x225B,4,{0x81,0x36,0xD8,0x32,}}, {0x225C,4,{0x81,0x36,0xD8,0x33,}}, {0x225D,4,{0x81,0x36,0xD8,0x34,}}, {0x225E,4,{0x81,0x36,0xD8,0x35,}}, {0x225F,4,{0x81,0x36,0xD8,0x36,}}, {0x2260,2,{0xA1,0xD9,0x00,0x00,}}, {0x2261,2,{0xA1,0xD4,0x00,0x00,}}, {0x2262,4,{0x81,0x36,0xD8,0x37,}}, {0x2263,4,{0x81,0x36,0xD8,0x38,}}, {0x2264,2,{0xA1,0xDC,0x00,0x00,}}, {0x2265,2,{0xA1,0xDD,0x00,0x00,}}, {0x2266,2,{0xA8,0x51,0x00,0x00,}}, {0x2267,2,{0xA8,0x52,0x00,0x00,}}, {0x2268,4,{0x81,0x36,0xD8,0x39,}}, {0x2269,4,{0x81,0x36,0xD9,0x30,}}, {0x226A,4,{0x81,0x36,0xD9,0x31,}}, {0x226B,4,{0x81,0x36,0xD9,0x32,}}, {0x226C,4,{0x81,0x36,0xD9,0x33,}}, {0x226D,4,{0x81,0x36,0xD9,0x34,}}, {0x226E,2,{0xA1,0xDA,0x00,0x00,}}, {0x226F,2,{0xA1,0xDB,0x00,0x00,}}, {0x2270,4,{0x81,0x36,0xD9,0x35,}}, {0x2271,4,{0x81,0x36,0xD9,0x36,}}, {0x2272,4,{0x81,0x36,0xD9,0x37,}}, {0x2273,4,{0x81,0x36,0xD9,0x38,}}, {0x2274,4,{0x81,0x36,0xD9,0x39,}}, {0x2275,4,{0x81,0x36,0xDA,0x30,}}, {0x2276,4,{0x81,0x36,0xDA,0x31,}}, {0x2277,4,{0x81,0x36,0xDA,0x32,}}, {0x2278,4,{0x81,0x36,0xDA,0x33,}}, {0x2279,4,{0x81,0x36,0xDA,0x34,}}, {0x227A,4,{0x81,0x36,0xDA,0x35,}}, {0x227B,4,{0x81,0x36,0xDA,0x36,}}, {0x227C,4,{0x81,0x36,0xDA,0x37,}}, {0x227D,4,{0x81,0x36,0xDA,0x38,}}, {0x227E,4,{0x81,0x36,0xDA,0x39,}}, {0x227F,4,{0x81,0x36,0xDB,0x30,}}, {0x2280,4,{0x81,0x36,0xDB,0x31,}}, {0x2281,4,{0x81,0x36,0xDB,0x32,}}, {0x2282,4,{0x81,0x36,0xDB,0x33,}}, {0x2283,4,{0x81,0x36,0xDB,0x34,}}, {0x2284,4,{0x81,0x36,0xDB,0x35,}}, {0x2285,4,{0x81,0x36,0xDB,0x36,}}, {0x2286,4,{0x81,0x36,0xDB,0x37,}}, {0x2287,4,{0x81,0x36,0xDB,0x38,}}, {0x2288,4,{0x81,0x36,0xDB,0x39,}}, {0x2289,4,{0x81,0x36,0xDC,0x30,}}, {0x228A,4,{0x81,0x36,0xDC,0x31,}}, {0x228B,4,{0x81,0x36,0xDC,0x32,}}, {0x228C,4,{0x81,0x36,0xDC,0x33,}}, {0x228D,4,{0x81,0x36,0xDC,0x34,}}, {0x228E,4,{0x81,0x36,0xDC,0x35,}}, {0x228F,4,{0x81,0x36,0xDC,0x36,}}, {0x2290,4,{0x81,0x36,0xDC,0x37,}}, {0x2291,4,{0x81,0x36,0xDC,0x38,}}, {0x2292,4,{0x81,0x36,0xDC,0x39,}}, {0x2293,4,{0x81,0x36,0xDD,0x30,}}, {0x2294,4,{0x81,0x36,0xDD,0x31,}}, {0x2295,2,{0xA8,0x92,0x00,0x00,}}, {0x2296,4,{0x81,0x36,0xDD,0x32,}}, {0x2297,4,{0x81,0x36,0xDD,0x33,}}, {0x2298,4,{0x81,0x36,0xDD,0x34,}}, {0x2299,2,{0xA1,0xD1,0x00,0x00,}}, {0x229A,4,{0x81,0x36,0xDD,0x35,}}, {0x229B,4,{0x81,0x36,0xDD,0x36,}}, {0x229C,4,{0x81,0x36,0xDD,0x37,}}, {0x229D,4,{0x81,0x36,0xDD,0x38,}}, {0x229E,4,{0x81,0x36,0xDD,0x39,}}, {0x229F,4,{0x81,0x36,0xDE,0x30,}}, {0x22A0,4,{0x81,0x36,0xDE,0x31,}}, {0x22A1,4,{0x81,0x36,0xDE,0x32,}}, {0x22A2,4,{0x81,0x36,0xDE,0x33,}}, {0x22A3,4,{0x81,0x36,0xDE,0x34,}}, {0x22A4,4,{0x81,0x36,0xDE,0x35,}}, {0x22A5,2,{0xA1,0xCD,0x00,0x00,}}, {0x22A6,4,{0x81,0x36,0xDE,0x36,}}, {0x22A7,4,{0x81,0x36,0xDE,0x37,}}, {0x22A8,4,{0x81,0x36,0xDE,0x38,}}, {0x22A9,4,{0x81,0x36,0xDE,0x39,}}, {0x22AA,4,{0x81,0x36,0xDF,0x30,}}, {0x22AB,4,{0x81,0x36,0xDF,0x31,}}, {0x22AC,4,{0x81,0x36,0xDF,0x32,}}, {0x22AD,4,{0x81,0x36,0xDF,0x33,}}, {0x22AE,4,{0x81,0x36,0xDF,0x34,}}, {0x22AF,4,{0x81,0x36,0xDF,0x35,}}, {0x22B0,4,{0x81,0x36,0xDF,0x36,}}, {0x22B1,4,{0x81,0x36,0xDF,0x37,}}, {0x22B2,4,{0x81,0x36,0xDF,0x38,}}, {0x22B3,4,{0x81,0x36,0xDF,0x39,}}, {0x22B4,4,{0x81,0x36,0xE0,0x30,}}, {0x22B5,4,{0x81,0x36,0xE0,0x31,}}, {0x22B6,4,{0x81,0x36,0xE0,0x32,}}, {0x22B7,4,{0x81,0x36,0xE0,0x33,}}, {0x22B8,4,{0x81,0x36,0xE0,0x34,}}, {0x22B9,4,{0x81,0x36,0xE0,0x35,}}, {0x22BA,4,{0x81,0x36,0xE0,0x36,}}, {0x22BB,4,{0x81,0x36,0xE0,0x37,}}, {0x22BC,4,{0x81,0x36,0xE0,0x38,}}, {0x22BD,4,{0x81,0x36,0xE0,0x39,}}, {0x22BE,4,{0x81,0x36,0xE1,0x30,}}, {0x22BF,2,{0xA8,0x53,0x00,0x00,}}, {0x22C0,4,{0x81,0x36,0xE1,0x31,}}, {0x22C1,4,{0x81,0x36,0xE1,0x32,}}, {0x22C2,4,{0x81,0x36,0xE1,0x33,}}, {0x22C3,4,{0x81,0x36,0xE1,0x34,}}, {0x22C4,4,{0x81,0x36,0xE1,0x35,}}, {0x22C5,4,{0x81,0x36,0xE1,0x36,}}, {0x22C6,4,{0x81,0x36,0xE1,0x37,}}, {0x22C7,4,{0x81,0x36,0xE1,0x38,}}, {0x22C8,4,{0x81,0x36,0xE1,0x39,}}, {0x22C9,4,{0x81,0x36,0xE2,0x30,}}, {0x22CA,4,{0x81,0x36,0xE2,0x31,}}, {0x22CB,4,{0x81,0x36,0xE2,0x32,}}, {0x22CC,4,{0x81,0x36,0xE2,0x33,}}, {0x22CD,4,{0x81,0x36,0xE2,0x34,}}, {0x22CE,4,{0x81,0x36,0xE2,0x35,}}, {0x22CF,4,{0x81,0x36,0xE2,0x36,}}, {0x22D0,4,{0x81,0x36,0xE2,0x37,}}, {0x22D1,4,{0x81,0x36,0xE2,0x38,}}, {0x22D2,4,{0x81,0x36,0xE2,0x39,}}, {0x22D3,4,{0x81,0x36,0xE3,0x30,}}, {0x22D4,4,{0x81,0x36,0xE3,0x31,}}, {0x22D5,4,{0x81,0x36,0xE3,0x32,}}, {0x22D6,4,{0x81,0x36,0xE3,0x33,}}, {0x22D7,4,{0x81,0x36,0xE3,0x34,}}, {0x22D8,4,{0x81,0x36,0xE3,0x35,}}, {0x22D9,4,{0x81,0x36,0xE3,0x36,}}, {0x22DA,4,{0x81,0x36,0xE3,0x37,}}, {0x22DB,4,{0x81,0x36,0xE3,0x38,}}, {0x22DC,4,{0x81,0x36,0xE3,0x39,}}, {0x22DD,4,{0x81,0x36,0xE4,0x30,}}, {0x22DE,4,{0x81,0x36,0xE4,0x31,}}, {0x22DF,4,{0x81,0x36,0xE4,0x32,}}, {0x22E0,4,{0x81,0x36,0xE4,0x33,}}, {0x22E1,4,{0x81,0x36,0xE4,0x34,}}, {0x22E2,4,{0x81,0x36,0xE4,0x35,}}, {0x22E3,4,{0x81,0x36,0xE4,0x36,}}, {0x22E4,4,{0x81,0x36,0xE4,0x37,}}, {0x22E5,4,{0x81,0x36,0xE4,0x38,}}, {0x22E6,4,{0x81,0x36,0xE4,0x39,}}, {0x22E7,4,{0x81,0x36,0xE5,0x30,}}, {0x22E8,4,{0x81,0x36,0xE5,0x31,}}, {0x22E9,4,{0x81,0x36,0xE5,0x32,}}, {0x22EA,4,{0x81,0x36,0xE5,0x33,}}, {0x22EB,4,{0x81,0x36,0xE5,0x34,}}, {0x22EC,4,{0x81,0x36,0xE5,0x35,}}, {0x22ED,4,{0x81,0x36,0xE5,0x36,}}, {0x22EE,4,{0x81,0x36,0xE5,0x37,}}, {0x22EF,4,{0x81,0x36,0xE5,0x38,}}, {0x22F0,4,{0x81,0x36,0xE5,0x39,}}, {0x22F1,4,{0x81,0x36,0xE6,0x30,}}, {0x22F2,4,{0x81,0x36,0xE6,0x31,}}, {0x22F3,4,{0x81,0x36,0xE6,0x32,}}, {0x22F4,4,{0x81,0x36,0xE6,0x33,}}, {0x22F5,4,{0x81,0x36,0xE6,0x34,}}, {0x22F6,4,{0x81,0x36,0xE6,0x35,}}, {0x22F7,4,{0x81,0x36,0xE6,0x36,}}, {0x22F8,4,{0x81,0x36,0xE6,0x37,}}, {0x22F9,4,{0x81,0x36,0xE6,0x38,}}, {0x22FA,4,{0x81,0x36,0xE6,0x39,}}, {0x22FB,4,{0x81,0x36,0xE7,0x30,}}, {0x22FC,4,{0x81,0x36,0xE7,0x31,}}, {0x22FD,4,{0x81,0x36,0xE7,0x32,}}, {0x22FE,4,{0x81,0x36,0xE7,0x33,}}, {0x22FF,4,{0x81,0x36,0xE7,0x34,}}, {0x2300,4,{0x81,0x36,0xE7,0x35,}}, {0x2301,4,{0x81,0x36,0xE7,0x36,}}, {0x2302,4,{0x81,0x36,0xE7,0x37,}}, {0x2303,4,{0x81,0x36,0xE7,0x38,}}, {0x2304,4,{0x81,0x36,0xE7,0x39,}}, {0x2305,4,{0x81,0x36,0xE8,0x30,}}, {0x2306,4,{0x81,0x36,0xE8,0x31,}}, {0x2307,4,{0x81,0x36,0xE8,0x32,}}, {0x2308,4,{0x81,0x36,0xE8,0x33,}}, {0x2309,4,{0x81,0x36,0xE8,0x34,}}, {0x230A,4,{0x81,0x36,0xE8,0x35,}}, {0x230B,4,{0x81,0x36,0xE8,0x36,}}, {0x230C,4,{0x81,0x36,0xE8,0x37,}}, {0x230D,4,{0x81,0x36,0xE8,0x38,}}, {0x230E,4,{0x81,0x36,0xE8,0x39,}}, {0x230F,4,{0x81,0x36,0xE9,0x30,}}, {0x2310,4,{0x81,0x36,0xE9,0x31,}}, {0x2311,4,{0x81,0x36,0xE9,0x32,}}, {0x2312,2,{0xA1,0xD0,0x00,0x00,}}, {0x2313,4,{0x81,0x36,0xE9,0x33,}}, {0x2314,4,{0x81,0x36,0xE9,0x34,}}, {0x2315,4,{0x81,0x36,0xE9,0x35,}}, {0x2316,4,{0x81,0x36,0xE9,0x36,}}, {0x2317,4,{0x81,0x36,0xE9,0x37,}}, {0x2318,4,{0x81,0x36,0xE9,0x38,}}, {0x2319,4,{0x81,0x36,0xE9,0x39,}}, {0x231A,4,{0x81,0x36,0xEA,0x30,}}, {0x231B,4,{0x81,0x36,0xEA,0x31,}}, {0x231C,4,{0x81,0x36,0xEA,0x32,}}, {0x231D,4,{0x81,0x36,0xEA,0x33,}}, {0x231E,4,{0x81,0x36,0xEA,0x34,}}, {0x231F,4,{0x81,0x36,0xEA,0x35,}}, {0x2320,4,{0x81,0x36,0xEA,0x36,}}, {0x2321,4,{0x81,0x36,0xEA,0x37,}}, {0x2322,4,{0x81,0x36,0xEA,0x38,}}, {0x2323,4,{0x81,0x36,0xEA,0x39,}}, {0x2324,4,{0x81,0x36,0xEB,0x30,}}, {0x2325,4,{0x81,0x36,0xEB,0x31,}}, {0x2326,4,{0x81,0x36,0xEB,0x32,}}, {0x2327,4,{0x81,0x36,0xEB,0x33,}}, {0x2328,4,{0x81,0x36,0xEB,0x34,}}, {0x2329,4,{0x81,0x36,0xEB,0x35,}}, {0x232A,4,{0x81,0x36,0xEB,0x36,}}, {0x232B,4,{0x81,0x36,0xEB,0x37,}}, {0x232C,4,{0x81,0x36,0xEB,0x38,}}, {0x232D,4,{0x81,0x36,0xEB,0x39,}}, {0x232E,4,{0x81,0x36,0xEC,0x30,}}, {0x232F,4,{0x81,0x36,0xEC,0x31,}}, {0x2330,4,{0x81,0x36,0xEC,0x32,}}, {0x2331,4,{0x81,0x36,0xEC,0x33,}}, {0x2332,4,{0x81,0x36,0xEC,0x34,}}, {0x2333,4,{0x81,0x36,0xEC,0x35,}}, {0x2334,4,{0x81,0x36,0xEC,0x36,}}, {0x2335,4,{0x81,0x36,0xEC,0x37,}}, {0x2336,4,{0x81,0x36,0xEC,0x38,}}, {0x2337,4,{0x81,0x36,0xEC,0x39,}}, {0x2338,4,{0x81,0x36,0xED,0x30,}}, {0x2339,4,{0x81,0x36,0xED,0x31,}}, {0x233A,4,{0x81,0x36,0xED,0x32,}}, {0x233B,4,{0x81,0x36,0xED,0x33,}}, {0x233C,4,{0x81,0x36,0xED,0x34,}}, {0x233D,4,{0x81,0x36,0xED,0x35,}}, {0x233E,4,{0x81,0x36,0xED,0x36,}}, {0x233F,4,{0x81,0x36,0xED,0x37,}}, {0x2340,4,{0x81,0x36,0xED,0x38,}}, {0x2341,4,{0x81,0x36,0xED,0x39,}}, {0x2342,4,{0x81,0x36,0xEE,0x30,}}, {0x2343,4,{0x81,0x36,0xEE,0x31,}}, {0x2344,4,{0x81,0x36,0xEE,0x32,}}, {0x2345,4,{0x81,0x36,0xEE,0x33,}}, {0x2346,4,{0x81,0x36,0xEE,0x34,}}, {0x2347,4,{0x81,0x36,0xEE,0x35,}}, {0x2348,4,{0x81,0x36,0xEE,0x36,}}, {0x2349,4,{0x81,0x36,0xEE,0x37,}}, {0x234A,4,{0x81,0x36,0xEE,0x38,}}, {0x234B,4,{0x81,0x36,0xEE,0x39,}}, {0x234C,4,{0x81,0x36,0xEF,0x30,}}, {0x234D,4,{0x81,0x36,0xEF,0x31,}}, {0x234E,4,{0x81,0x36,0xEF,0x32,}}, {0x234F,4,{0x81,0x36,0xEF,0x33,}}, {0x2350,4,{0x81,0x36,0xEF,0x34,}}, {0x2351,4,{0x81,0x36,0xEF,0x35,}}, {0x2352,4,{0x81,0x36,0xEF,0x36,}}, {0x2353,4,{0x81,0x36,0xEF,0x37,}}, {0x2354,4,{0x81,0x36,0xEF,0x38,}}, {0x2355,4,{0x81,0x36,0xEF,0x39,}}, {0x2356,4,{0x81,0x36,0xF0,0x30,}}, {0x2357,4,{0x81,0x36,0xF0,0x31,}}, {0x2358,4,{0x81,0x36,0xF0,0x32,}}, {0x2359,4,{0x81,0x36,0xF0,0x33,}}, {0x235A,4,{0x81,0x36,0xF0,0x34,}}, {0x235B,4,{0x81,0x36,0xF0,0x35,}}, {0x235C,4,{0x81,0x36,0xF0,0x36,}}, {0x235D,4,{0x81,0x36,0xF0,0x37,}}, {0x235E,4,{0x81,0x36,0xF0,0x38,}}, {0x235F,4,{0x81,0x36,0xF0,0x39,}}, {0x2360,4,{0x81,0x36,0xF1,0x30,}}, {0x2361,4,{0x81,0x36,0xF1,0x31,}}, {0x2362,4,{0x81,0x36,0xF1,0x32,}}, {0x2363,4,{0x81,0x36,0xF1,0x33,}}, {0x2364,4,{0x81,0x36,0xF1,0x34,}}, {0x2365,4,{0x81,0x36,0xF1,0x35,}}, {0x2366,4,{0x81,0x36,0xF1,0x36,}}, {0x2367,4,{0x81,0x36,0xF1,0x37,}}, {0x2368,4,{0x81,0x36,0xF1,0x38,}}, {0x2369,4,{0x81,0x36,0xF1,0x39,}}, {0x236A,4,{0x81,0x36,0xF2,0x30,}}, {0x236B,4,{0x81,0x36,0xF2,0x31,}}, {0x236C,4,{0x81,0x36,0xF2,0x32,}}, {0x236D,4,{0x81,0x36,0xF2,0x33,}}, {0x236E,4,{0x81,0x36,0xF2,0x34,}}, {0x236F,4,{0x81,0x36,0xF2,0x35,}}, {0x2370,4,{0x81,0x36,0xF2,0x36,}}, {0x2371,4,{0x81,0x36,0xF2,0x37,}}, {0x2372,4,{0x81,0x36,0xF2,0x38,}}, {0x2373,4,{0x81,0x36,0xF2,0x39,}}, {0x2374,4,{0x81,0x36,0xF3,0x30,}}, {0x2375,4,{0x81,0x36,0xF3,0x31,}}, {0x2376,4,{0x81,0x36,0xF3,0x32,}}, {0x2377,4,{0x81,0x36,0xF3,0x33,}}, {0x2378,4,{0x81,0x36,0xF3,0x34,}}, {0x2379,4,{0x81,0x36,0xF3,0x35,}}, {0x237A,4,{0x81,0x36,0xF3,0x36,}}, {0x237B,4,{0x81,0x36,0xF3,0x37,}}, {0x237C,4,{0x81,0x36,0xF3,0x38,}}, {0x237D,4,{0x81,0x36,0xF3,0x39,}}, {0x237E,4,{0x81,0x36,0xF4,0x30,}}, {0x237F,4,{0x81,0x36,0xF4,0x31,}}, {0x2380,4,{0x81,0x36,0xF4,0x32,}}, {0x2381,4,{0x81,0x36,0xF4,0x33,}}, {0x2382,4,{0x81,0x36,0xF4,0x34,}}, {0x2383,4,{0x81,0x36,0xF4,0x35,}}, {0x2384,4,{0x81,0x36,0xF4,0x36,}}, {0x2385,4,{0x81,0x36,0xF4,0x37,}}, {0x2386,4,{0x81,0x36,0xF4,0x38,}}, {0x2387,4,{0x81,0x36,0xF4,0x39,}}, {0x2388,4,{0x81,0x36,0xF5,0x30,}}, {0x2389,4,{0x81,0x36,0xF5,0x31,}}, {0x238A,4,{0x81,0x36,0xF5,0x32,}}, {0x238B,4,{0x81,0x36,0xF5,0x33,}}, {0x238C,4,{0x81,0x36,0xF5,0x34,}}, {0x238D,4,{0x81,0x36,0xF5,0x35,}}, {0x238E,4,{0x81,0x36,0xF5,0x36,}}, {0x238F,4,{0x81,0x36,0xF5,0x37,}}, {0x2390,4,{0x81,0x36,0xF5,0x38,}}, {0x2391,4,{0x81,0x36,0xF5,0x39,}}, {0x2392,4,{0x81,0x36,0xF6,0x30,}}, {0x2393,4,{0x81,0x36,0xF6,0x31,}}, {0x2394,4,{0x81,0x36,0xF6,0x32,}}, {0x2395,4,{0x81,0x36,0xF6,0x33,}}, {0x2396,4,{0x81,0x36,0xF6,0x34,}}, {0x2397,4,{0x81,0x36,0xF6,0x35,}}, {0x2398,4,{0x81,0x36,0xF6,0x36,}}, {0x2399,4,{0x81,0x36,0xF6,0x37,}}, {0x239A,4,{0x81,0x36,0xF6,0x38,}}, {0x239B,4,{0x81,0x36,0xF6,0x39,}}, {0x239C,4,{0x81,0x36,0xF7,0x30,}}, {0x239D,4,{0x81,0x36,0xF7,0x31,}}, {0x239E,4,{0x81,0x36,0xF7,0x32,}}, {0x239F,4,{0x81,0x36,0xF7,0x33,}}, {0x23A0,4,{0x81,0x36,0xF7,0x34,}}, {0x23A1,4,{0x81,0x36,0xF7,0x35,}}, {0x23A2,4,{0x81,0x36,0xF7,0x36,}}, {0x23A3,4,{0x81,0x36,0xF7,0x37,}}, {0x23A4,4,{0x81,0x36,0xF7,0x38,}}, {0x23A5,4,{0x81,0x36,0xF7,0x39,}}, {0x23A6,4,{0x81,0x36,0xF8,0x30,}}, {0x23A7,4,{0x81,0x36,0xF8,0x31,}}, {0x23A8,4,{0x81,0x36,0xF8,0x32,}}, {0x23A9,4,{0x81,0x36,0xF8,0x33,}}, {0x23AA,4,{0x81,0x36,0xF8,0x34,}}, {0x23AB,4,{0x81,0x36,0xF8,0x35,}}, {0x23AC,4,{0x81,0x36,0xF8,0x36,}}, {0x23AD,4,{0x81,0x36,0xF8,0x37,}}, {0x23AE,4,{0x81,0x36,0xF8,0x38,}}, {0x23AF,4,{0x81,0x36,0xF8,0x39,}}, {0x23B0,4,{0x81,0x36,0xF9,0x30,}}, {0x23B1,4,{0x81,0x36,0xF9,0x31,}}, {0x23B2,4,{0x81,0x36,0xF9,0x32,}}, {0x23B3,4,{0x81,0x36,0xF9,0x33,}}, {0x23B4,4,{0x81,0x36,0xF9,0x34,}}, {0x23B5,4,{0x81,0x36,0xF9,0x35,}}, {0x23B6,4,{0x81,0x36,0xF9,0x36,}}, {0x23B7,4,{0x81,0x36,0xF9,0x37,}}, {0x23B8,4,{0x81,0x36,0xF9,0x38,}}, {0x23B9,4,{0x81,0x36,0xF9,0x39,}}, {0x23BA,4,{0x81,0x36,0xFA,0x30,}}, {0x23BB,4,{0x81,0x36,0xFA,0x31,}}, {0x23BC,4,{0x81,0x36,0xFA,0x32,}}, {0x23BD,4,{0x81,0x36,0xFA,0x33,}}, {0x23BE,4,{0x81,0x36,0xFA,0x34,}}, {0x23BF,4,{0x81,0x36,0xFA,0x35,}}, {0x23C0,4,{0x81,0x36,0xFA,0x36,}}, {0x23C1,4,{0x81,0x36,0xFA,0x37,}}, {0x23C2,4,{0x81,0x36,0xFA,0x38,}}, {0x23C3,4,{0x81,0x36,0xFA,0x39,}}, {0x23C4,4,{0x81,0x36,0xFB,0x30,}}, {0x23C5,4,{0x81,0x36,0xFB,0x31,}}, {0x23C6,4,{0x81,0x36,0xFB,0x32,}}, {0x23C7,4,{0x81,0x36,0xFB,0x33,}}, {0x23C8,4,{0x81,0x36,0xFB,0x34,}}, {0x23C9,4,{0x81,0x36,0xFB,0x35,}}, {0x23CA,4,{0x81,0x36,0xFB,0x36,}}, {0x23CB,4,{0x81,0x36,0xFB,0x37,}}, {0x23CC,4,{0x81,0x36,0xFB,0x38,}}, {0x23CD,4,{0x81,0x36,0xFB,0x39,}}, {0x23CE,4,{0x81,0x36,0xFC,0x30,}}, {0x23CF,4,{0x81,0x36,0xFC,0x31,}}, {0x23D0,4,{0x81,0x36,0xFC,0x32,}}, {0x23D1,4,{0x81,0x36,0xFC,0x33,}}, {0x23D2,4,{0x81,0x36,0xFC,0x34,}}, {0x23D3,4,{0x81,0x36,0xFC,0x35,}}, {0x23D4,4,{0x81,0x36,0xFC,0x36,}}, {0x23D5,4,{0x81,0x36,0xFC,0x37,}}, {0x23D6,4,{0x81,0x36,0xFC,0x38,}}, {0x23D7,4,{0x81,0x36,0xFC,0x39,}}, {0x23D8,4,{0x81,0x36,0xFD,0x30,}}, {0x23D9,4,{0x81,0x36,0xFD,0x31,}}, {0x23DA,4,{0x81,0x36,0xFD,0x32,}}, {0x23DB,4,{0x81,0x36,0xFD,0x33,}}, {0x23DC,4,{0x81,0x36,0xFD,0x34,}}, {0x23DD,4,{0x81,0x36,0xFD,0x35,}}, {0x23DE,4,{0x81,0x36,0xFD,0x36,}}, {0x23DF,4,{0x81,0x36,0xFD,0x37,}}, {0x23E0,4,{0x81,0x36,0xFD,0x38,}}, {0x23E1,4,{0x81,0x36,0xFD,0x39,}}, {0x23E2,4,{0x81,0x36,0xFE,0x30,}}, {0x23E3,4,{0x81,0x36,0xFE,0x31,}}, {0x23E4,4,{0x81,0x36,0xFE,0x32,}}, {0x23E5,4,{0x81,0x36,0xFE,0x33,}}, {0x23E6,4,{0x81,0x36,0xFE,0x34,}}, {0x23E7,4,{0x81,0x36,0xFE,0x35,}}, {0x23E8,4,{0x81,0x36,0xFE,0x36,}}, {0x23E9,4,{0x81,0x36,0xFE,0x37,}}, {0x23EA,4,{0x81,0x36,0xFE,0x38,}}, {0x23EB,4,{0x81,0x36,0xFE,0x39,}}, {0x23EC,4,{0x81,0x37,0x81,0x30,}}, {0x23ED,4,{0x81,0x37,0x81,0x31,}}, {0x23EE,4,{0x81,0x37,0x81,0x32,}}, {0x23EF,4,{0x81,0x37,0x81,0x33,}}, {0x23F0,4,{0x81,0x37,0x81,0x34,}}, {0x23F1,4,{0x81,0x37,0x81,0x35,}}, {0x23F2,4,{0x81,0x37,0x81,0x36,}}, {0x23F3,4,{0x81,0x37,0x81,0x37,}}, {0x23F4,4,{0x81,0x37,0x81,0x38,}}, {0x23F5,4,{0x81,0x37,0x81,0x39,}}, {0x23F6,4,{0x81,0x37,0x82,0x30,}}, {0x23F7,4,{0x81,0x37,0x82,0x31,}}, {0x23F8,4,{0x81,0x37,0x82,0x32,}}, {0x23F9,4,{0x81,0x37,0x82,0x33,}}, {0x23FA,4,{0x81,0x37,0x82,0x34,}}, {0x23FB,4,{0x81,0x37,0x82,0x35,}}, {0x23FC,4,{0x81,0x37,0x82,0x36,}}, {0x23FD,4,{0x81,0x37,0x82,0x37,}}, {0x23FE,4,{0x81,0x37,0x82,0x38,}}, {0x23FF,4,{0x81,0x37,0x82,0x39,}}, {0x2400,4,{0x81,0x37,0x83,0x30,}}, {0x2401,4,{0x81,0x37,0x83,0x31,}}, {0x2402,4,{0x81,0x37,0x83,0x32,}}, {0x2403,4,{0x81,0x37,0x83,0x33,}}, {0x2404,4,{0x81,0x37,0x83,0x34,}}, {0x2405,4,{0x81,0x37,0x83,0x35,}}, {0x2406,4,{0x81,0x37,0x83,0x36,}}, {0x2407,4,{0x81,0x37,0x83,0x37,}}, {0x2408,4,{0x81,0x37,0x83,0x38,}}, {0x2409,4,{0x81,0x37,0x83,0x39,}}, {0x240A,4,{0x81,0x37,0x84,0x30,}}, {0x240B,4,{0x81,0x37,0x84,0x31,}}, {0x240C,4,{0x81,0x37,0x84,0x32,}}, {0x240D,4,{0x81,0x37,0x84,0x33,}}, {0x240E,4,{0x81,0x37,0x84,0x34,}}, {0x240F,4,{0x81,0x37,0x84,0x35,}}, {0x2410,4,{0x81,0x37,0x84,0x36,}}, {0x2411,4,{0x81,0x37,0x84,0x37,}}, {0x2412,4,{0x81,0x37,0x84,0x38,}}, {0x2413,4,{0x81,0x37,0x84,0x39,}}, {0x2414,4,{0x81,0x37,0x85,0x30,}}, {0x2415,4,{0x81,0x37,0x85,0x31,}}, {0x2416,4,{0x81,0x37,0x85,0x32,}}, {0x2417,4,{0x81,0x37,0x85,0x33,}}, {0x2418,4,{0x81,0x37,0x85,0x34,}}, {0x2419,4,{0x81,0x37,0x85,0x35,}}, {0x241A,4,{0x81,0x37,0x85,0x36,}}, {0x241B,4,{0x81,0x37,0x85,0x37,}}, {0x241C,4,{0x81,0x37,0x85,0x38,}}, {0x241D,4,{0x81,0x37,0x85,0x39,}}, {0x241E,4,{0x81,0x37,0x86,0x30,}}, {0x241F,4,{0x81,0x37,0x86,0x31,}}, {0x2420,4,{0x81,0x37,0x86,0x32,}}, {0x2421,4,{0x81,0x37,0x86,0x33,}}, {0x2422,4,{0x81,0x37,0x86,0x34,}}, {0x2423,4,{0x81,0x37,0x86,0x35,}}, {0x2424,4,{0x81,0x37,0x86,0x36,}}, {0x2425,4,{0x81,0x37,0x86,0x37,}}, {0x2426,4,{0x81,0x37,0x86,0x38,}}, {0x2427,4,{0x81,0x37,0x86,0x39,}}, {0x2428,4,{0x81,0x37,0x87,0x30,}}, {0x2429,4,{0x81,0x37,0x87,0x31,}}, {0x242A,4,{0x81,0x37,0x87,0x32,}}, {0x242B,4,{0x81,0x37,0x87,0x33,}}, {0x242C,4,{0x81,0x37,0x87,0x34,}}, {0x242D,4,{0x81,0x37,0x87,0x35,}}, {0x242E,4,{0x81,0x37,0x87,0x36,}}, {0x242F,4,{0x81,0x37,0x87,0x37,}}, {0x2430,4,{0x81,0x37,0x87,0x38,}}, {0x2431,4,{0x81,0x37,0x87,0x39,}}, {0x2432,4,{0x81,0x37,0x88,0x30,}}, {0x2433,4,{0x81,0x37,0x88,0x31,}}, {0x2434,4,{0x81,0x37,0x88,0x32,}}, {0x2435,4,{0x81,0x37,0x88,0x33,}}, {0x2436,4,{0x81,0x37,0x88,0x34,}}, {0x2437,4,{0x81,0x37,0x88,0x35,}}, {0x2438,4,{0x81,0x37,0x88,0x36,}}, {0x2439,4,{0x81,0x37,0x88,0x37,}}, {0x243A,4,{0x81,0x37,0x88,0x38,}}, {0x243B,4,{0x81,0x37,0x88,0x39,}}, {0x243C,4,{0x81,0x37,0x89,0x30,}}, {0x243D,4,{0x81,0x37,0x89,0x31,}}, {0x243E,4,{0x81,0x37,0x89,0x32,}}, {0x243F,4,{0x81,0x37,0x89,0x33,}}, {0x2440,4,{0x81,0x37,0x89,0x34,}}, {0x2441,4,{0x81,0x37,0x89,0x35,}}, {0x2442,4,{0x81,0x37,0x89,0x36,}}, {0x2443,4,{0x81,0x37,0x89,0x37,}}, {0x2444,4,{0x81,0x37,0x89,0x38,}}, {0x2445,4,{0x81,0x37,0x89,0x39,}}, {0x2446,4,{0x81,0x37,0x8A,0x30,}}, {0x2447,4,{0x81,0x37,0x8A,0x31,}}, {0x2448,4,{0x81,0x37,0x8A,0x32,}}, {0x2449,4,{0x81,0x37,0x8A,0x33,}}, {0x244A,4,{0x81,0x37,0x8A,0x34,}}, {0x244B,4,{0x81,0x37,0x8A,0x35,}}, {0x244C,4,{0x81,0x37,0x8A,0x36,}}, {0x244D,4,{0x81,0x37,0x8A,0x37,}}, {0x244E,4,{0x81,0x37,0x8A,0x38,}}, {0x244F,4,{0x81,0x37,0x8A,0x39,}}, {0x2450,4,{0x81,0x37,0x8B,0x30,}}, {0x2451,4,{0x81,0x37,0x8B,0x31,}}, {0x2452,4,{0x81,0x37,0x8B,0x32,}}, {0x2453,4,{0x81,0x37,0x8B,0x33,}}, {0x2454,4,{0x81,0x37,0x8B,0x34,}}, {0x2455,4,{0x81,0x37,0x8B,0x35,}}, {0x2456,4,{0x81,0x37,0x8B,0x36,}}, {0x2457,4,{0x81,0x37,0x8B,0x37,}}, {0x2458,4,{0x81,0x37,0x8B,0x38,}}, {0x2459,4,{0x81,0x37,0x8B,0x39,}}, {0x245A,4,{0x81,0x37,0x8C,0x30,}}, {0x245B,4,{0x81,0x37,0x8C,0x31,}}, {0x245C,4,{0x81,0x37,0x8C,0x32,}}, {0x245D,4,{0x81,0x37,0x8C,0x33,}}, {0x245E,4,{0x81,0x37,0x8C,0x34,}}, {0x245F,4,{0x81,0x37,0x8C,0x35,}}, {0x2460,2,{0xA2,0xD9,0x00,0x00,}}, {0x2461,2,{0xA2,0xDA,0x00,0x00,}}, {0x2462,2,{0xA2,0xDB,0x00,0x00,}}, {0x2463,2,{0xA2,0xDC,0x00,0x00,}}, {0x2464,2,{0xA2,0xDD,0x00,0x00,}}, {0x2465,2,{0xA2,0xDE,0x00,0x00,}}, {0x2466,2,{0xA2,0xDF,0x00,0x00,}}, {0x2467,2,{0xA2,0xE0,0x00,0x00,}}, {0x2468,2,{0xA2,0xE1,0x00,0x00,}}, {0x2469,2,{0xA2,0xE2,0x00,0x00,}}, {0x246A,4,{0x81,0x37,0x8C,0x36,}}, {0x246B,4,{0x81,0x37,0x8C,0x37,}}, {0x246C,4,{0x81,0x37,0x8C,0x38,}}, {0x246D,4,{0x81,0x37,0x8C,0x39,}}, {0x246E,4,{0x81,0x37,0x8D,0x30,}}, {0x246F,4,{0x81,0x37,0x8D,0x31,}}, {0x2470,4,{0x81,0x37,0x8D,0x32,}}, {0x2471,4,{0x81,0x37,0x8D,0x33,}}, {0x2472,4,{0x81,0x37,0x8D,0x34,}}, {0x2473,4,{0x81,0x37,0x8D,0x35,}}, {0x2474,2,{0xA2,0xC5,0x00,0x00,}}, {0x2475,2,{0xA2,0xC6,0x00,0x00,}}, {0x2476,2,{0xA2,0xC7,0x00,0x00,}}, {0x2477,2,{0xA2,0xC8,0x00,0x00,}}, {0x2478,2,{0xA2,0xC9,0x00,0x00,}}, {0x2479,2,{0xA2,0xCA,0x00,0x00,}}, {0x247A,2,{0xA2,0xCB,0x00,0x00,}}, {0x247B,2,{0xA2,0xCC,0x00,0x00,}}, {0x247C,2,{0xA2,0xCD,0x00,0x00,}}, {0x247D,2,{0xA2,0xCE,0x00,0x00,}}, {0x247E,2,{0xA2,0xCF,0x00,0x00,}}, {0x247F,2,{0xA2,0xD0,0x00,0x00,}}, {0x2480,2,{0xA2,0xD1,0x00,0x00,}}, {0x2481,2,{0xA2,0xD2,0x00,0x00,}}, {0x2482,2,{0xA2,0xD3,0x00,0x00,}}, {0x2483,2,{0xA2,0xD4,0x00,0x00,}}, {0x2484,2,{0xA2,0xD5,0x00,0x00,}}, {0x2485,2,{0xA2,0xD6,0x00,0x00,}}, {0x2486,2,{0xA2,0xD7,0x00,0x00,}}, {0x2487,2,{0xA2,0xD8,0x00,0x00,}}, {0x2488,2,{0xA2,0xB1,0x00,0x00,}}, {0x2489,2,{0xA2,0xB2,0x00,0x00,}}, {0x248A,2,{0xA2,0xB3,0x00,0x00,}}, {0x248B,2,{0xA2,0xB4,0x00,0x00,}}, {0x248C,2,{0xA2,0xB5,0x00,0x00,}}, {0x248D,2,{0xA2,0xB6,0x00,0x00,}}, {0x248E,2,{0xA2,0xB7,0x00,0x00,}}, {0x248F,2,{0xA2,0xB8,0x00,0x00,}}, {0x2490,2,{0xA2,0xB9,0x00,0x00,}}, {0x2491,2,{0xA2,0xBA,0x00,0x00,}}, {0x2492,2,{0xA2,0xBB,0x00,0x00,}}, {0x2493,2,{0xA2,0xBC,0x00,0x00,}}, {0x2494,2,{0xA2,0xBD,0x00,0x00,}}, {0x2495,2,{0xA2,0xBE,0x00,0x00,}}, {0x2496,2,{0xA2,0xBF,0x00,0x00,}}, {0x2497,2,{0xA2,0xC0,0x00,0x00,}}, {0x2498,2,{0xA2,0xC1,0x00,0x00,}}, {0x2499,2,{0xA2,0xC2,0x00,0x00,}}, {0x249A,2,{0xA2,0xC3,0x00,0x00,}}, {0x249B,2,{0xA2,0xC4,0x00,0x00,}}, {0x249C,4,{0x81,0x37,0x8D,0x36,}}, {0x249D,4,{0x81,0x37,0x8D,0x37,}}, {0x249E,4,{0x81,0x37,0x8D,0x38,}}, {0x249F,4,{0x81,0x37,0x8D,0x39,}}, {0x24A0,4,{0x81,0x37,0x8E,0x30,}}, {0x24A1,4,{0x81,0x37,0x8E,0x31,}}, {0x24A2,4,{0x81,0x37,0x8E,0x32,}}, {0x24A3,4,{0x81,0x37,0x8E,0x33,}}, {0x24A4,4,{0x81,0x37,0x8E,0x34,}}, {0x24A5,4,{0x81,0x37,0x8E,0x35,}}, {0x24A6,4,{0x81,0x37,0x8E,0x36,}}, {0x24A7,4,{0x81,0x37,0x8E,0x37,}}, {0x24A8,4,{0x81,0x37,0x8E,0x38,}}, {0x24A9,4,{0x81,0x37,0x8E,0x39,}}, {0x24AA,4,{0x81,0x37,0x8F,0x30,}}, {0x24AB,4,{0x81,0x37,0x8F,0x31,}}, {0x24AC,4,{0x81,0x37,0x8F,0x32,}}, {0x24AD,4,{0x81,0x37,0x8F,0x33,}}, {0x24AE,4,{0x81,0x37,0x8F,0x34,}}, {0x24AF,4,{0x81,0x37,0x8F,0x35,}}, {0x24B0,4,{0x81,0x37,0x8F,0x36,}}, {0x24B1,4,{0x81,0x37,0x8F,0x37,}}, {0x24B2,4,{0x81,0x37,0x8F,0x38,}}, {0x24B3,4,{0x81,0x37,0x8F,0x39,}}, {0x24B4,4,{0x81,0x37,0x90,0x30,}}, {0x24B5,4,{0x81,0x37,0x90,0x31,}}, {0x24B6,4,{0x81,0x37,0x90,0x32,}}, {0x24B7,4,{0x81,0x37,0x90,0x33,}}, {0x24B8,4,{0x81,0x37,0x90,0x34,}}, {0x24B9,4,{0x81,0x37,0x90,0x35,}}, {0x24BA,4,{0x81,0x37,0x90,0x36,}}, {0x24BB,4,{0x81,0x37,0x90,0x37,}}, {0x24BC,4,{0x81,0x37,0x90,0x38,}}, {0x24BD,4,{0x81,0x37,0x90,0x39,}}, {0x24BE,4,{0x81,0x37,0x91,0x30,}}, {0x24BF,4,{0x81,0x37,0x91,0x31,}}, {0x24C0,4,{0x81,0x37,0x91,0x32,}}, {0x24C1,4,{0x81,0x37,0x91,0x33,}}, {0x24C2,4,{0x81,0x37,0x91,0x34,}}, {0x24C3,4,{0x81,0x37,0x91,0x35,}}, {0x24C4,4,{0x81,0x37,0x91,0x36,}}, {0x24C5,4,{0x81,0x37,0x91,0x37,}}, {0x24C6,4,{0x81,0x37,0x91,0x38,}}, {0x24C7,4,{0x81,0x37,0x91,0x39,}}, {0x24C8,4,{0x81,0x37,0x92,0x30,}}, {0x24C9,4,{0x81,0x37,0x92,0x31,}}, {0x24CA,4,{0x81,0x37,0x92,0x32,}}, {0x24CB,4,{0x81,0x37,0x92,0x33,}}, {0x24CC,4,{0x81,0x37,0x92,0x34,}}, {0x24CD,4,{0x81,0x37,0x92,0x35,}}, {0x24CE,4,{0x81,0x37,0x92,0x36,}}, {0x24CF,4,{0x81,0x37,0x92,0x37,}}, {0x24D0,4,{0x81,0x37,0x92,0x38,}}, {0x24D1,4,{0x81,0x37,0x92,0x39,}}, {0x24D2,4,{0x81,0x37,0x93,0x30,}}, {0x24D3,4,{0x81,0x37,0x93,0x31,}}, {0x24D4,4,{0x81,0x37,0x93,0x32,}}, {0x24D5,4,{0x81,0x37,0x93,0x33,}}, {0x24D6,4,{0x81,0x37,0x93,0x34,}}, {0x24D7,4,{0x81,0x37,0x93,0x35,}}, {0x24D8,4,{0x81,0x37,0x93,0x36,}}, {0x24D9,4,{0x81,0x37,0x93,0x37,}}, {0x24DA,4,{0x81,0x37,0x93,0x38,}}, {0x24DB,4,{0x81,0x37,0x93,0x39,}}, {0x24DC,4,{0x81,0x37,0x94,0x30,}}, {0x24DD,4,{0x81,0x37,0x94,0x31,}}, {0x24DE,4,{0x81,0x37,0x94,0x32,}}, {0x24DF,4,{0x81,0x37,0x94,0x33,}}, {0x24E0,4,{0x81,0x37,0x94,0x34,}}, {0x24E1,4,{0x81,0x37,0x94,0x35,}}, {0x24E2,4,{0x81,0x37,0x94,0x36,}}, {0x24E3,4,{0x81,0x37,0x94,0x37,}}, {0x24E4,4,{0x81,0x37,0x94,0x38,}}, {0x24E5,4,{0x81,0x37,0x94,0x39,}}, {0x24E6,4,{0x81,0x37,0x95,0x30,}}, {0x24E7,4,{0x81,0x37,0x95,0x31,}}, {0x24E8,4,{0x81,0x37,0x95,0x32,}}, {0x24E9,4,{0x81,0x37,0x95,0x33,}}, {0x24EA,4,{0x81,0x37,0x95,0x34,}}, {0x24EB,4,{0x81,0x37,0x95,0x35,}}, {0x24EC,4,{0x81,0x37,0x95,0x36,}}, {0x24ED,4,{0x81,0x37,0x95,0x37,}}, {0x24EE,4,{0x81,0x37,0x95,0x38,}}, {0x24EF,4,{0x81,0x37,0x95,0x39,}}, {0x24F0,4,{0x81,0x37,0x96,0x30,}}, {0x24F1,4,{0x81,0x37,0x96,0x31,}}, {0x24F2,4,{0x81,0x37,0x96,0x32,}}, {0x24F3,4,{0x81,0x37,0x96,0x33,}}, {0x24F4,4,{0x81,0x37,0x96,0x34,}}, {0x24F5,4,{0x81,0x37,0x96,0x35,}}, {0x24F6,4,{0x81,0x37,0x96,0x36,}}, {0x24F7,4,{0x81,0x37,0x96,0x37,}}, {0x24F8,4,{0x81,0x37,0x96,0x38,}}, {0x24F9,4,{0x81,0x37,0x96,0x39,}}, {0x24FA,4,{0x81,0x37,0x97,0x30,}}, {0x24FB,4,{0x81,0x37,0x97,0x31,}}, {0x24FC,4,{0x81,0x37,0x97,0x32,}}, {0x24FD,4,{0x81,0x37,0x97,0x33,}}, {0x24FE,4,{0x81,0x37,0x97,0x34,}}, {0x24FF,4,{0x81,0x37,0x97,0x35,}}, {0x2500,2,{0xA9,0xA4,0x00,0x00,}}, {0x2501,2,{0xA9,0xA5,0x00,0x00,}}, {0x2502,2,{0xA9,0xA6,0x00,0x00,}}, {0x2503,2,{0xA9,0xA7,0x00,0x00,}}, {0x2504,2,{0xA9,0xA8,0x00,0x00,}}, {0x2505,2,{0xA9,0xA9,0x00,0x00,}}, {0x2506,2,{0xA9,0xAA,0x00,0x00,}}, {0x2507,2,{0xA9,0xAB,0x00,0x00,}}, {0x2508,2,{0xA9,0xAC,0x00,0x00,}}, {0x2509,2,{0xA9,0xAD,0x00,0x00,}}, {0x250A,2,{0xA9,0xAE,0x00,0x00,}}, {0x250B,2,{0xA9,0xAF,0x00,0x00,}}, {0x250C,2,{0xA9,0xB0,0x00,0x00,}}, {0x250D,2,{0xA9,0xB1,0x00,0x00,}}, {0x250E,2,{0xA9,0xB2,0x00,0x00,}}, {0x250F,2,{0xA9,0xB3,0x00,0x00,}}, {0x2510,2,{0xA9,0xB4,0x00,0x00,}}, {0x2511,2,{0xA9,0xB5,0x00,0x00,}}, {0x2512,2,{0xA9,0xB6,0x00,0x00,}}, {0x2513,2,{0xA9,0xB7,0x00,0x00,}}, {0x2514,2,{0xA9,0xB8,0x00,0x00,}}, {0x2515,2,{0xA9,0xB9,0x00,0x00,}}, {0x2516,2,{0xA9,0xBA,0x00,0x00,}}, {0x2517,2,{0xA9,0xBB,0x00,0x00,}}, {0x2518,2,{0xA9,0xBC,0x00,0x00,}}, {0x2519,2,{0xA9,0xBD,0x00,0x00,}}, {0x251A,2,{0xA9,0xBE,0x00,0x00,}}, {0x251B,2,{0xA9,0xBF,0x00,0x00,}}, {0x251C,2,{0xA9,0xC0,0x00,0x00,}}, {0x251D,2,{0xA9,0xC1,0x00,0x00,}}, {0x251E,2,{0xA9,0xC2,0x00,0x00,}}, {0x251F,2,{0xA9,0xC3,0x00,0x00,}}, {0x2520,2,{0xA9,0xC4,0x00,0x00,}}, {0x2521,2,{0xA9,0xC5,0x00,0x00,}}, {0x2522,2,{0xA9,0xC6,0x00,0x00,}}, {0x2523,2,{0xA9,0xC7,0x00,0x00,}}, {0x2524,2,{0xA9,0xC8,0x00,0x00,}}, {0x2525,2,{0xA9,0xC9,0x00,0x00,}}, {0x2526,2,{0xA9,0xCA,0x00,0x00,}}, {0x2527,2,{0xA9,0xCB,0x00,0x00,}}, {0x2528,2,{0xA9,0xCC,0x00,0x00,}}, {0x2529,2,{0xA9,0xCD,0x00,0x00,}}, {0x252A,2,{0xA9,0xCE,0x00,0x00,}}, {0x252B,2,{0xA9,0xCF,0x00,0x00,}}, {0x252C,2,{0xA9,0xD0,0x00,0x00,}}, {0x252D,2,{0xA9,0xD1,0x00,0x00,}}, {0x252E,2,{0xA9,0xD2,0x00,0x00,}}, {0x252F,2,{0xA9,0xD3,0x00,0x00,}}, {0x2530,2,{0xA9,0xD4,0x00,0x00,}}, {0x2531,2,{0xA9,0xD5,0x00,0x00,}}, {0x2532,2,{0xA9,0xD6,0x00,0x00,}}, {0x2533,2,{0xA9,0xD7,0x00,0x00,}}, {0x2534,2,{0xA9,0xD8,0x00,0x00,}}, {0x2535,2,{0xA9,0xD9,0x00,0x00,}}, {0x2536,2,{0xA9,0xDA,0x00,0x00,}}, {0x2537,2,{0xA9,0xDB,0x00,0x00,}}, {0x2538,2,{0xA9,0xDC,0x00,0x00,}}, {0x2539,2,{0xA9,0xDD,0x00,0x00,}}, {0x253A,2,{0xA9,0xDE,0x00,0x00,}}, {0x253B,2,{0xA9,0xDF,0x00,0x00,}}, {0x253C,2,{0xA9,0xE0,0x00,0x00,}}, {0x253D,2,{0xA9,0xE1,0x00,0x00,}}, {0x253E,2,{0xA9,0xE2,0x00,0x00,}}, {0x253F,2,{0xA9,0xE3,0x00,0x00,}}, {0x2540,2,{0xA9,0xE4,0x00,0x00,}}, {0x2541,2,{0xA9,0xE5,0x00,0x00,}}, {0x2542,2,{0xA9,0xE6,0x00,0x00,}}, {0x2543,2,{0xA9,0xE7,0x00,0x00,}}, {0x2544,2,{0xA9,0xE8,0x00,0x00,}}, {0x2545,2,{0xA9,0xE9,0x00,0x00,}}, {0x2546,2,{0xA9,0xEA,0x00,0x00,}}, {0x2547,2,{0xA9,0xEB,0x00,0x00,}}, {0x2548,2,{0xA9,0xEC,0x00,0x00,}}, {0x2549,2,{0xA9,0xED,0x00,0x00,}}, {0x254A,2,{0xA9,0xEE,0x00,0x00,}}, {0x254B,2,{0xA9,0xEF,0x00,0x00,}}, {0x254C,4,{0x81,0x37,0x97,0x36,}}, {0x254D,4,{0x81,0x37,0x97,0x37,}}, {0x254E,4,{0x81,0x37,0x97,0x38,}}, {0x254F,4,{0x81,0x37,0x97,0x39,}}, {0x2550,2,{0xA8,0x54,0x00,0x00,}}, {0x2551,2,{0xA8,0x55,0x00,0x00,}}, {0x2552,2,{0xA8,0x56,0x00,0x00,}}, {0x2553,2,{0xA8,0x57,0x00,0x00,}}, {0x2554,2,{0xA8,0x58,0x00,0x00,}}, {0x2555,2,{0xA8,0x59,0x00,0x00,}}, {0x2556,2,{0xA8,0x5A,0x00,0x00,}}, {0x2557,2,{0xA8,0x5B,0x00,0x00,}}, {0x2558,2,{0xA8,0x5C,0x00,0x00,}}, {0x2559,2,{0xA8,0x5D,0x00,0x00,}}, {0x255A,2,{0xA8,0x5E,0x00,0x00,}}, {0x255B,2,{0xA8,0x5F,0x00,0x00,}}, {0x255C,2,{0xA8,0x60,0x00,0x00,}}, {0x255D,2,{0xA8,0x61,0x00,0x00,}}, {0x255E,2,{0xA8,0x62,0x00,0x00,}}, {0x255F,2,{0xA8,0x63,0x00,0x00,}}, {0x2560,2,{0xA8,0x64,0x00,0x00,}}, {0x2561,2,{0xA8,0x65,0x00,0x00,}}, {0x2562,2,{0xA8,0x66,0x00,0x00,}}, {0x2563,2,{0xA8,0x67,0x00,0x00,}}, {0x2564,2,{0xA8,0x68,0x00,0x00,}}, {0x2565,2,{0xA8,0x69,0x00,0x00,}}, {0x2566,2,{0xA8,0x6A,0x00,0x00,}}, {0x2567,2,{0xA8,0x6B,0x00,0x00,}}, {0x2568,2,{0xA8,0x6C,0x00,0x00,}}, {0x2569,2,{0xA8,0x6D,0x00,0x00,}}, {0x256A,2,{0xA8,0x6E,0x00,0x00,}}, {0x256B,2,{0xA8,0x6F,0x00,0x00,}}, {0x256C,2,{0xA8,0x70,0x00,0x00,}}, {0x256D,2,{0xA8,0x71,0x00,0x00,}}, {0x256E,2,{0xA8,0x72,0x00,0x00,}}, {0x256F,2,{0xA8,0x73,0x00,0x00,}}, {0x2570,2,{0xA8,0x74,0x00,0x00,}}, {0x2571,2,{0xA8,0x75,0x00,0x00,}}, {0x2572,2,{0xA8,0x76,0x00,0x00,}}, {0x2573,2,{0xA8,0x77,0x00,0x00,}}, {0x2574,4,{0x81,0x37,0x98,0x30,}}, {0x2575,4,{0x81,0x37,0x98,0x31,}}, {0x2576,4,{0x81,0x37,0x98,0x32,}}, {0x2577,4,{0x81,0x37,0x98,0x33,}}, {0x2578,4,{0x81,0x37,0x98,0x34,}}, {0x2579,4,{0x81,0x37,0x98,0x35,}}, {0x257A,4,{0x81,0x37,0x98,0x36,}}, {0x257B,4,{0x81,0x37,0x98,0x37,}}, {0x257C,4,{0x81,0x37,0x98,0x38,}}, {0x257D,4,{0x81,0x37,0x98,0x39,}}, {0x257E,4,{0x81,0x37,0x99,0x30,}}, {0x257F,4,{0x81,0x37,0x99,0x31,}}, {0x2580,4,{0x81,0x37,0x99,0x32,}}, {0x2581,2,{0xA8,0x78,0x00,0x00,}}, {0x2582,2,{0xA8,0x79,0x00,0x00,}}, {0x2583,2,{0xA8,0x7A,0x00,0x00,}}, {0x2584,2,{0xA8,0x7B,0x00,0x00,}}, {0x2585,2,{0xA8,0x7C,0x00,0x00,}}, {0x2586,2,{0xA8,0x7D,0x00,0x00,}}, {0x2587,2,{0xA8,0x7E,0x00,0x00,}}, {0x2588,2,{0xA8,0x80,0x00,0x00,}}, {0x2589,2,{0xA8,0x81,0x00,0x00,}}, {0x258A,2,{0xA8,0x82,0x00,0x00,}}, {0x258B,2,{0xA8,0x83,0x00,0x00,}}, {0x258C,2,{0xA8,0x84,0x00,0x00,}}, {0x258D,2,{0xA8,0x85,0x00,0x00,}}, {0x258E,2,{0xA8,0x86,0x00,0x00,}}, {0x258F,2,{0xA8,0x87,0x00,0x00,}}, {0x2590,4,{0x81,0x37,0x99,0x33,}}, {0x2591,4,{0x81,0x37,0x99,0x34,}}, {0x2592,4,{0x81,0x37,0x99,0x35,}}, {0x2593,2,{0xA8,0x88,0x00,0x00,}}, {0x2594,2,{0xA8,0x89,0x00,0x00,}}, {0x2595,2,{0xA8,0x8A,0x00,0x00,}}, {0x2596,4,{0x81,0x37,0x99,0x36,}}, {0x2597,4,{0x81,0x37,0x99,0x37,}}, {0x2598,4,{0x81,0x37,0x99,0x38,}}, {0x2599,4,{0x81,0x37,0x99,0x39,}}, {0x259A,4,{0x81,0x37,0x9A,0x30,}}, {0x259B,4,{0x81,0x37,0x9A,0x31,}}, {0x259C,4,{0x81,0x37,0x9A,0x32,}}, {0x259D,4,{0x81,0x37,0x9A,0x33,}}, {0x259E,4,{0x81,0x37,0x9A,0x34,}}, {0x259F,4,{0x81,0x37,0x9A,0x35,}}, {0x25A0,2,{0xA1,0xF6,0x00,0x00,}}, {0x25A1,2,{0xA1,0xF5,0x00,0x00,}}, {0x25A2,4,{0x81,0x37,0x9A,0x36,}}, {0x25A3,4,{0x81,0x37,0x9A,0x37,}}, {0x25A4,4,{0x81,0x37,0x9A,0x38,}}, {0x25A5,4,{0x81,0x37,0x9A,0x39,}}, {0x25A6,4,{0x81,0x37,0x9B,0x30,}}, {0x25A7,4,{0x81,0x37,0x9B,0x31,}}, {0x25A8,4,{0x81,0x37,0x9B,0x32,}}, {0x25A9,4,{0x81,0x37,0x9B,0x33,}}, {0x25AA,4,{0x81,0x37,0x9B,0x34,}}, {0x25AB,4,{0x81,0x37,0x9B,0x35,}}, {0x25AC,4,{0x81,0x37,0x9B,0x36,}}, {0x25AD,4,{0x81,0x37,0x9B,0x37,}}, {0x25AE,4,{0x81,0x37,0x9B,0x38,}}, {0x25AF,4,{0x81,0x37,0x9B,0x39,}}, {0x25B0,4,{0x81,0x37,0x9C,0x30,}}, {0x25B1,4,{0x81,0x37,0x9C,0x31,}}, {0x25B2,2,{0xA1,0xF8,0x00,0x00,}}, {0x25B3,2,{0xA1,0xF7,0x00,0x00,}}, {0x25B4,4,{0x81,0x37,0x9C,0x32,}}, {0x25B5,4,{0x81,0x37,0x9C,0x33,}}, {0x25B6,4,{0x81,0x37,0x9C,0x34,}}, {0x25B7,4,{0x81,0x37,0x9C,0x35,}}, {0x25B8,4,{0x81,0x37,0x9C,0x36,}}, {0x25B9,4,{0x81,0x37,0x9C,0x37,}}, {0x25BA,4,{0x81,0x37,0x9C,0x38,}}, {0x25BB,4,{0x81,0x37,0x9C,0x39,}}, {0x25BC,2,{0xA8,0x8B,0x00,0x00,}}, {0x25BD,2,{0xA8,0x8C,0x00,0x00,}}, {0x25BE,4,{0x81,0x37,0x9D,0x30,}}, {0x25BF,4,{0x81,0x37,0x9D,0x31,}}, {0x25C0,4,{0x81,0x37,0x9D,0x32,}}, {0x25C1,4,{0x81,0x37,0x9D,0x33,}}, {0x25C2,4,{0x81,0x37,0x9D,0x34,}}, {0x25C3,4,{0x81,0x37,0x9D,0x35,}}, {0x25C4,4,{0x81,0x37,0x9D,0x36,}}, {0x25C5,4,{0x81,0x37,0x9D,0x37,}}, {0x25C6,2,{0xA1,0xF4,0x00,0x00,}}, {0x25C7,2,{0xA1,0xF3,0x00,0x00,}}, {0x25C8,4,{0x81,0x37,0x9D,0x38,}}, {0x25C9,4,{0x81,0x37,0x9D,0x39,}}, {0x25CA,4,{0x81,0x37,0x9E,0x30,}}, {0x25CB,2,{0xA1,0xF0,0x00,0x00,}}, {0x25CC,4,{0x81,0x37,0x9E,0x31,}}, {0x25CD,4,{0x81,0x37,0x9E,0x32,}}, {0x25CE,2,{0xA1,0xF2,0x00,0x00,}}, {0x25CF,2,{0xA1,0xF1,0x00,0x00,}}, {0x25D0,4,{0x81,0x37,0x9E,0x33,}}, {0x25D1,4,{0x81,0x37,0x9E,0x34,}}, {0x25D2,4,{0x81,0x37,0x9E,0x35,}}, {0x25D3,4,{0x81,0x37,0x9E,0x36,}}, {0x25D4,4,{0x81,0x37,0x9E,0x37,}}, {0x25D5,4,{0x81,0x37,0x9E,0x38,}}, {0x25D6,4,{0x81,0x37,0x9E,0x39,}}, {0x25D7,4,{0x81,0x37,0x9F,0x30,}}, {0x25D8,4,{0x81,0x37,0x9F,0x31,}}, {0x25D9,4,{0x81,0x37,0x9F,0x32,}}, {0x25DA,4,{0x81,0x37,0x9F,0x33,}}, {0x25DB,4,{0x81,0x37,0x9F,0x34,}}, {0x25DC,4,{0x81,0x37,0x9F,0x35,}}, {0x25DD,4,{0x81,0x37,0x9F,0x36,}}, {0x25DE,4,{0x81,0x37,0x9F,0x37,}}, {0x25DF,4,{0x81,0x37,0x9F,0x38,}}, {0x25E0,4,{0x81,0x37,0x9F,0x39,}}, {0x25E1,4,{0x81,0x37,0xA0,0x30,}}, {0x25E2,2,{0xA8,0x8D,0x00,0x00,}}, {0x25E3,2,{0xA8,0x8E,0x00,0x00,}}, {0x25E4,2,{0xA8,0x8F,0x00,0x00,}}, {0x25E5,2,{0xA8,0x90,0x00,0x00,}}, {0x25E6,4,{0x81,0x37,0xA0,0x31,}}, {0x25E7,4,{0x81,0x37,0xA0,0x32,}}, {0x25E8,4,{0x81,0x37,0xA0,0x33,}}, {0x25E9,4,{0x81,0x37,0xA0,0x34,}}, {0x25EA,4,{0x81,0x37,0xA0,0x35,}}, {0x25EB,4,{0x81,0x37,0xA0,0x36,}}, {0x25EC,4,{0x81,0x37,0xA0,0x37,}}, {0x25ED,4,{0x81,0x37,0xA0,0x38,}}, {0x25EE,4,{0x81,0x37,0xA0,0x39,}}, {0x25EF,4,{0x81,0x37,0xA1,0x30,}}, {0x25F0,4,{0x81,0x37,0xA1,0x31,}}, {0x25F1,4,{0x81,0x37,0xA1,0x32,}}, {0x25F2,4,{0x81,0x37,0xA1,0x33,}}, {0x25F3,4,{0x81,0x37,0xA1,0x34,}}, {0x25F4,4,{0x81,0x37,0xA1,0x35,}}, {0x25F5,4,{0x81,0x37,0xA1,0x36,}}, {0x25F6,4,{0x81,0x37,0xA1,0x37,}}, {0x25F7,4,{0x81,0x37,0xA1,0x38,}}, {0x25F8,4,{0x81,0x37,0xA1,0x39,}}, {0x25F9,4,{0x81,0x37,0xA2,0x30,}}, {0x25FA,4,{0x81,0x37,0xA2,0x31,}}, {0x25FB,4,{0x81,0x37,0xA2,0x32,}}, {0x25FC,4,{0x81,0x37,0xA2,0x33,}}, {0x25FD,4,{0x81,0x37,0xA2,0x34,}}, {0x25FE,4,{0x81,0x37,0xA2,0x35,}}, {0x25FF,4,{0x81,0x37,0xA2,0x36,}}, {0x2600,4,{0x81,0x37,0xA2,0x37,}}, {0x2601,4,{0x81,0x37,0xA2,0x38,}}, {0x2602,4,{0x81,0x37,0xA2,0x39,}}, {0x2603,4,{0x81,0x37,0xA3,0x30,}}, {0x2604,4,{0x81,0x37,0xA3,0x31,}}, {0x2605,2,{0xA1,0xEF,0x00,0x00,}}, {0x2606,2,{0xA1,0xEE,0x00,0x00,}}, {0x2607,4,{0x81,0x37,0xA3,0x32,}}, {0x2608,4,{0x81,0x37,0xA3,0x33,}}, {0x2609,2,{0xA8,0x91,0x00,0x00,}}, {0x260A,4,{0x81,0x37,0xA3,0x34,}}, {0x260B,4,{0x81,0x37,0xA3,0x35,}}, {0x260C,4,{0x81,0x37,0xA3,0x36,}}, {0x260D,4,{0x81,0x37,0xA3,0x37,}}, {0x260E,4,{0x81,0x37,0xA3,0x38,}}, {0x260F,4,{0x81,0x37,0xA3,0x39,}}, {0x2610,4,{0x81,0x37,0xA4,0x30,}}, {0x2611,4,{0x81,0x37,0xA4,0x31,}}, {0x2612,4,{0x81,0x37,0xA4,0x32,}}, {0x2613,4,{0x81,0x37,0xA4,0x33,}}, {0x2614,4,{0x81,0x37,0xA4,0x34,}}, {0x2615,4,{0x81,0x37,0xA4,0x35,}}, {0x2616,4,{0x81,0x37,0xA4,0x36,}}, {0x2617,4,{0x81,0x37,0xA4,0x37,}}, {0x2618,4,{0x81,0x37,0xA4,0x38,}}, {0x2619,4,{0x81,0x37,0xA4,0x39,}}, {0x261A,4,{0x81,0x37,0xA5,0x30,}}, {0x261B,4,{0x81,0x37,0xA5,0x31,}}, {0x261C,4,{0x81,0x37,0xA5,0x32,}}, {0x261D,4,{0x81,0x37,0xA5,0x33,}}, {0x261E,4,{0x81,0x37,0xA5,0x34,}}, {0x261F,4,{0x81,0x37,0xA5,0x35,}}, {0x2620,4,{0x81,0x37,0xA5,0x36,}}, {0x2621,4,{0x81,0x37,0xA5,0x37,}}, {0x2622,4,{0x81,0x37,0xA5,0x38,}}, {0x2623,4,{0x81,0x37,0xA5,0x39,}}, {0x2624,4,{0x81,0x37,0xA6,0x30,}}, {0x2625,4,{0x81,0x37,0xA6,0x31,}}, {0x2626,4,{0x81,0x37,0xA6,0x32,}}, {0x2627,4,{0x81,0x37,0xA6,0x33,}}, {0x2628,4,{0x81,0x37,0xA6,0x34,}}, {0x2629,4,{0x81,0x37,0xA6,0x35,}}, {0x262A,4,{0x81,0x37,0xA6,0x36,}}, {0x262B,4,{0x81,0x37,0xA6,0x37,}}, {0x262C,4,{0x81,0x37,0xA6,0x38,}}, {0x262D,4,{0x81,0x37,0xA6,0x39,}}, {0x262E,4,{0x81,0x37,0xA7,0x30,}}, {0x262F,4,{0x81,0x37,0xA7,0x31,}}, {0x2630,4,{0x81,0x37,0xA7,0x32,}}, {0x2631,4,{0x81,0x37,0xA7,0x33,}}, {0x2632,4,{0x81,0x37,0xA7,0x34,}}, {0x2633,4,{0x81,0x37,0xA7,0x35,}}, {0x2634,4,{0x81,0x37,0xA7,0x36,}}, {0x2635,4,{0x81,0x37,0xA7,0x37,}}, {0x2636,4,{0x81,0x37,0xA7,0x38,}}, {0x2637,4,{0x81,0x37,0xA7,0x39,}}, {0x2638,4,{0x81,0x37,0xA8,0x30,}}, {0x2639,4,{0x81,0x37,0xA8,0x31,}}, {0x263A,4,{0x81,0x37,0xA8,0x32,}}, {0x263B,4,{0x81,0x37,0xA8,0x33,}}, {0x263C,4,{0x81,0x37,0xA8,0x34,}}, {0x263D,4,{0x81,0x37,0xA8,0x35,}}, {0x263E,4,{0x81,0x37,0xA8,0x36,}}, {0x263F,4,{0x81,0x37,0xA8,0x37,}}, {0x2640,2,{0xA1,0xE2,0x00,0x00,}}, {0x2641,4,{0x81,0x37,0xA8,0x38,}}, {0x2642,2,{0xA1,0xE1,0x00,0x00,}}, {0x2E81,2,{0xFE,0x50,0x00,0x00,}}, {0x2E82,4,{0x81,0x38,0xFD,0x39,}}, {0x2E83,4,{0x81,0x38,0xFE,0x30,}}, {0x2E84,2,{0xFE,0x54,0x00,0x00,}}, {0x2E85,4,{0x81,0x38,0xFE,0x31,}}, {0x2E86,4,{0x81,0x38,0xFE,0x32,}}, {0x2E87,4,{0x81,0x38,0xFE,0x33,}}, {0x2E88,2,{0xFE,0x57,0x00,0x00,}}, {0x2E89,4,{0x81,0x38,0xFE,0x34,}}, {0x2E8A,4,{0x81,0x38,0xFE,0x35,}}, {0x2E8B,2,{0xFE,0x58,0x00,0x00,}}, {0x2E8C,2,{0xFE,0x5D,0x00,0x00,}}, {0x2E8D,4,{0x81,0x38,0xFE,0x36,}}, {0x2E8E,4,{0x81,0x38,0xFE,0x37,}}, {0x2E8F,4,{0x81,0x38,0xFE,0x38,}}, {0x2E90,4,{0x81,0x38,0xFE,0x39,}}, {0x2E91,4,{0x81,0x39,0x81,0x30,}}, {0x2E92,4,{0x81,0x39,0x81,0x31,}}, {0x2E93,4,{0x81,0x39,0x81,0x32,}}, {0x2E94,4,{0x81,0x39,0x81,0x33,}}, {0x2E95,4,{0x81,0x39,0x81,0x34,}}, {0x2E96,4,{0x81,0x39,0x81,0x35,}}, {0x2E97,2,{0xFE,0x5E,0x00,0x00,}}, {0x2E98,4,{0x81,0x39,0x81,0x36,}}, {0x2E99,4,{0x81,0x39,0x81,0x37,}}, {0x2E9A,4,{0x81,0x39,0x81,0x38,}}, {0x2E9B,4,{0x81,0x39,0x81,0x39,}}, {0x2E9C,4,{0x81,0x39,0x82,0x30,}}, {0x2E9D,4,{0x81,0x39,0x82,0x31,}}, {0x2E9E,4,{0x81,0x39,0x82,0x32,}}, {0x2E9F,4,{0x81,0x39,0x82,0x33,}}, {0x2EA0,4,{0x81,0x39,0x82,0x34,}}, {0x2EA1,4,{0x81,0x39,0x82,0x35,}}, {0x2EA2,4,{0x81,0x39,0x82,0x36,}}, {0x2EA3,4,{0x81,0x39,0x82,0x37,}}, {0x2EA4,4,{0x81,0x39,0x82,0x38,}}, {0x2EA5,4,{0x81,0x39,0x82,0x39,}}, {0x2EA6,4,{0x81,0x39,0x83,0x30,}}, {0x2EA7,2,{0xFE,0x6B,0x00,0x00,}}, {0x2EA8,4,{0x81,0x39,0x83,0x31,}}, {0x2EA9,4,{0x81,0x39,0x83,0x32,}}, {0x2EAA,2,{0xFE,0x6E,0x00,0x00,}}, {0x2EAB,4,{0x81,0x39,0x83,0x33,}}, {0x2EAC,4,{0x81,0x39,0x83,0x34,}}, {0x2EAD,4,{0x81,0x39,0x83,0x35,}}, {0x2EAE,2,{0xFE,0x71,0x00,0x00,}}, {0x2EAF,4,{0x81,0x39,0x83,0x36,}}, {0x2EB0,4,{0x81,0x39,0x83,0x37,}}, {0x2EB1,4,{0x81,0x39,0x83,0x38,}}, {0x2EB2,4,{0x81,0x39,0x83,0x39,}}, {0x2EB3,2,{0xFE,0x73,0x00,0x00,}}, {0x2EB4,4,{0x81,0x39,0x84,0x30,}}, {0x2EB5,4,{0x81,0x39,0x84,0x31,}}, {0x2EB6,2,{0xFE,0x74,0x00,0x00,}}, {0x2EB7,2,{0xFE,0x75,0x00,0x00,}}, {0x2EB8,4,{0x81,0x39,0x84,0x32,}}, {0x2EB9,4,{0x81,0x39,0x84,0x33,}}, {0x2EBA,4,{0x81,0x39,0x84,0x34,}}, {0x2EBB,2,{0xFE,0x79,0x00,0x00,}}, {0x2EBC,4,{0x81,0x39,0x84,0x35,}}, {0x2EBD,4,{0x81,0x39,0x84,0x36,}}, {0x2EBE,4,{0x81,0x39,0x84,0x37,}}, {0x2EBF,4,{0x81,0x39,0x84,0x38,}}, {0x2EC0,4,{0x81,0x39,0x84,0x39,}}, {0x2EC1,4,{0x81,0x39,0x85,0x30,}}, {0x2EC2,4,{0x81,0x39,0x85,0x31,}}, {0x2EC3,4,{0x81,0x39,0x85,0x32,}}, {0x2EC4,4,{0x81,0x39,0x85,0x33,}}, {0x2EC5,4,{0x81,0x39,0x85,0x34,}}, {0x2EC6,4,{0x81,0x39,0x85,0x35,}}, {0x2EC7,4,{0x81,0x39,0x85,0x36,}}, {0x2EC8,4,{0x81,0x39,0x85,0x37,}}, {0x2EC9,4,{0x81,0x39,0x85,0x38,}}, {0x2ECA,2,{0xFE,0x84,0x00,0x00,}}, {0x2ECB,4,{0x81,0x39,0x85,0x39,}}, {0x2ECC,4,{0x81,0x39,0x86,0x30,}}, {0x2ECD,4,{0x81,0x39,0x86,0x31,}}, {0x2ECE,4,{0x81,0x39,0x86,0x32,}}, {0x2ECF,4,{0x81,0x39,0x86,0x33,}}, {0x2ED0,4,{0x81,0x39,0x86,0x34,}}, {0x2ED1,4,{0x81,0x39,0x86,0x35,}}, {0x2ED2,4,{0x81,0x39,0x86,0x36,}}, {0x2ED3,4,{0x81,0x39,0x86,0x37,}}, {0x2ED4,4,{0x81,0x39,0x86,0x38,}}, {0x2ED5,4,{0x81,0x39,0x86,0x39,}}, {0x2ED6,4,{0x81,0x39,0x87,0x30,}}, {0x2ED7,4,{0x81,0x39,0x87,0x31,}}, {0x2ED8,4,{0x81,0x39,0x87,0x32,}}, {0x2ED9,4,{0x81,0x39,0x87,0x33,}}, {0x2EDA,4,{0x81,0x39,0x87,0x34,}}, {0x2EDB,4,{0x81,0x39,0x87,0x35,}}, {0x2EDC,4,{0x81,0x39,0x87,0x36,}}, {0x2EDD,4,{0x81,0x39,0x87,0x37,}}, {0x2EDE,4,{0x81,0x39,0x87,0x38,}}, {0x2EDF,4,{0x81,0x39,0x87,0x39,}}, {0x2EE0,4,{0x81,0x39,0x88,0x30,}}, {0x2EE1,4,{0x81,0x39,0x88,0x31,}}, {0x2EE2,4,{0x81,0x39,0x88,0x32,}}, {0x2EE3,4,{0x81,0x39,0x88,0x33,}}, {0x2EE4,4,{0x81,0x39,0x88,0x34,}}, {0x2EE5,4,{0x81,0x39,0x88,0x35,}}, {0x2EE6,4,{0x81,0x39,0x88,0x36,}}, {0x2EE7,4,{0x81,0x39,0x88,0x37,}}, {0x2EE8,4,{0x81,0x39,0x88,0x38,}}, {0x2EE9,4,{0x81,0x39,0x88,0x39,}}, {0x2EEA,4,{0x81,0x39,0x89,0x30,}}, {0x2EEB,4,{0x81,0x39,0x89,0x31,}}, {0x2EEC,4,{0x81,0x39,0x89,0x32,}}, {0x2EED,4,{0x81,0x39,0x89,0x33,}}, {0x2EEE,4,{0x81,0x39,0x89,0x34,}}, {0x2EEF,4,{0x81,0x39,0x89,0x35,}}, {0x2EF0,4,{0x81,0x39,0x89,0x36,}}, {0x2EF1,4,{0x81,0x39,0x89,0x37,}}, {0x2EF2,4,{0x81,0x39,0x89,0x38,}}, {0x2EF3,4,{0x81,0x39,0x89,0x39,}}, {0x2EF4,4,{0x81,0x39,0x8A,0x30,}}, {0x2EF5,4,{0x81,0x39,0x8A,0x31,}}, {0x2EF6,4,{0x81,0x39,0x8A,0x32,}}, {0x2EF7,4,{0x81,0x39,0x8A,0x33,}}, {0x2EF8,4,{0x81,0x39,0x8A,0x34,}}, {0x2EF9,4,{0x81,0x39,0x8A,0x35,}}, {0x2EFA,4,{0x81,0x39,0x8A,0x36,}}, {0x2EFB,4,{0x81,0x39,0x8A,0x37,}}, {0x2EFC,4,{0x81,0x39,0x8A,0x38,}}, {0x2EFD,4,{0x81,0x39,0x8A,0x39,}}, {0x2EFE,4,{0x81,0x39,0x8B,0x30,}}, {0x2EFF,4,{0x81,0x39,0x8B,0x31,}}, {0x2F00,4,{0x81,0x39,0x8B,0x32,}}, {0x2F01,4,{0x81,0x39,0x8B,0x33,}}, {0x2F02,4,{0x81,0x39,0x8B,0x34,}}, {0x2F03,4,{0x81,0x39,0x8B,0x35,}}, {0x2F04,4,{0x81,0x39,0x8B,0x36,}}, {0x2F05,4,{0x81,0x39,0x8B,0x37,}}, {0x2F06,4,{0x81,0x39,0x8B,0x38,}}, {0x2F07,4,{0x81,0x39,0x8B,0x39,}}, {0x2F08,4,{0x81,0x39,0x8C,0x30,}}, {0x2F09,4,{0x81,0x39,0x8C,0x31,}}, {0x2F0A,4,{0x81,0x39,0x8C,0x32,}}, {0x2F0B,4,{0x81,0x39,0x8C,0x33,}}, {0x2F0C,4,{0x81,0x39,0x8C,0x34,}}, {0x2F0D,4,{0x81,0x39,0x8C,0x35,}}, {0x2F0E,4,{0x81,0x39,0x8C,0x36,}}, {0x2F0F,4,{0x81,0x39,0x8C,0x37,}}, {0x2F10,4,{0x81,0x39,0x8C,0x38,}}, {0x2F11,4,{0x81,0x39,0x8C,0x39,}}, {0x2F12,4,{0x81,0x39,0x8D,0x30,}}, {0x2F13,4,{0x81,0x39,0x8D,0x31,}}, {0x2F14,4,{0x81,0x39,0x8D,0x32,}}, {0x2F15,4,{0x81,0x39,0x8D,0x33,}}, {0x2F16,4,{0x81,0x39,0x8D,0x34,}}, {0x2F17,4,{0x81,0x39,0x8D,0x35,}}, {0x2F18,4,{0x81,0x39,0x8D,0x36,}}, {0x2F19,4,{0x81,0x39,0x8D,0x37,}}, {0x2F1A,4,{0x81,0x39,0x8D,0x38,}}, {0x2F1B,4,{0x81,0x39,0x8D,0x39,}}, {0x2F1C,4,{0x81,0x39,0x8E,0x30,}}, {0x2F1D,4,{0x81,0x39,0x8E,0x31,}}, {0x2F1E,4,{0x81,0x39,0x8E,0x32,}}, {0x2F1F,4,{0x81,0x39,0x8E,0x33,}}, {0x2F20,4,{0x81,0x39,0x8E,0x34,}}, {0x2F21,4,{0x81,0x39,0x8E,0x35,}}, {0x2F22,4,{0x81,0x39,0x8E,0x36,}}, {0x2F23,4,{0x81,0x39,0x8E,0x37,}}, {0x2F24,4,{0x81,0x39,0x8E,0x38,}}, {0x2F25,4,{0x81,0x39,0x8E,0x39,}}, {0x2F26,4,{0x81,0x39,0x8F,0x30,}}, {0x2F27,4,{0x81,0x39,0x8F,0x31,}}, {0x2F28,4,{0x81,0x39,0x8F,0x32,}}, {0x2F29,4,{0x81,0x39,0x8F,0x33,}}, {0x2F2A,4,{0x81,0x39,0x8F,0x34,}}, {0x2F2B,4,{0x81,0x39,0x8F,0x35,}}, {0x2F2C,4,{0x81,0x39,0x8F,0x36,}}, {0x2F2D,4,{0x81,0x39,0x8F,0x37,}}, {0x2F2E,4,{0x81,0x39,0x8F,0x38,}}, {0x2F2F,4,{0x81,0x39,0x8F,0x39,}}, {0x2F30,4,{0x81,0x39,0x90,0x30,}}, {0x2F31,4,{0x81,0x39,0x90,0x31,}}, {0x2F32,4,{0x81,0x39,0x90,0x32,}}, {0x2F33,4,{0x81,0x39,0x90,0x33,}}, {0x2F34,4,{0x81,0x39,0x90,0x34,}}, {0x2F35,4,{0x81,0x39,0x90,0x35,}}, {0x2F36,4,{0x81,0x39,0x90,0x36,}}, {0x2F37,4,{0x81,0x39,0x90,0x37,}}, {0x2F38,4,{0x81,0x39,0x90,0x38,}}, {0x2F39,4,{0x81,0x39,0x90,0x39,}}, {0x2F3A,4,{0x81,0x39,0x91,0x30,}}, {0x2F3B,4,{0x81,0x39,0x91,0x31,}}, {0x2F3C,4,{0x81,0x39,0x91,0x32,}}, {0x2F3D,4,{0x81,0x39,0x91,0x33,}}, {0x2F3E,4,{0x81,0x39,0x91,0x34,}}, {0x2F3F,4,{0x81,0x39,0x91,0x35,}}, {0x2F40,4,{0x81,0x39,0x91,0x36,}}, {0x2F41,4,{0x81,0x39,0x91,0x37,}}, {0x2F42,4,{0x81,0x39,0x91,0x38,}}, {0x2F43,4,{0x81,0x39,0x91,0x39,}}, {0x2F44,4,{0x81,0x39,0x92,0x30,}}, {0x2F45,4,{0x81,0x39,0x92,0x31,}}, {0x2F46,4,{0x81,0x39,0x92,0x32,}}, {0x2F47,4,{0x81,0x39,0x92,0x33,}}, {0x2F48,4,{0x81,0x39,0x92,0x34,}}, {0x2F49,4,{0x81,0x39,0x92,0x35,}}, {0x2F4A,4,{0x81,0x39,0x92,0x36,}}, {0x2F4B,4,{0x81,0x39,0x92,0x37,}}, {0x2F4C,4,{0x81,0x39,0x92,0x38,}}, {0x2F4D,4,{0x81,0x39,0x92,0x39,}}, {0x2F4E,4,{0x81,0x39,0x93,0x30,}}, {0x2F4F,4,{0x81,0x39,0x93,0x31,}}, {0x2F50,4,{0x81,0x39,0x93,0x32,}}, {0x2F51,4,{0x81,0x39,0x93,0x33,}}, {0x2F52,4,{0x81,0x39,0x93,0x34,}}, {0x2F53,4,{0x81,0x39,0x93,0x35,}}, {0x2F54,4,{0x81,0x39,0x93,0x36,}}, {0x2F55,4,{0x81,0x39,0x93,0x37,}}, {0x2F56,4,{0x81,0x39,0x93,0x38,}}, {0x2F57,4,{0x81,0x39,0x93,0x39,}}, {0x2F58,4,{0x81,0x39,0x94,0x30,}}, {0x2F59,4,{0x81,0x39,0x94,0x31,}}, {0x2F5A,4,{0x81,0x39,0x94,0x32,}}, {0x2F5B,4,{0x81,0x39,0x94,0x33,}}, {0x2F5C,4,{0x81,0x39,0x94,0x34,}}, {0x2F5D,4,{0x81,0x39,0x94,0x35,}}, {0x2F5E,4,{0x81,0x39,0x94,0x36,}}, {0x2F5F,4,{0x81,0x39,0x94,0x37,}}, {0x2F60,4,{0x81,0x39,0x94,0x38,}}, {0x2F61,4,{0x81,0x39,0x94,0x39,}}, {0x2F62,4,{0x81,0x39,0x95,0x30,}}, {0x2F63,4,{0x81,0x39,0x95,0x31,}}, {0x2F64,4,{0x81,0x39,0x95,0x32,}}, {0x2F65,4,{0x81,0x39,0x95,0x33,}}, {0x2F66,4,{0x81,0x39,0x95,0x34,}}, {0x2F67,4,{0x81,0x39,0x95,0x35,}}, {0x2F68,4,{0x81,0x39,0x95,0x36,}}, {0x2F69,4,{0x81,0x39,0x95,0x37,}}, {0x2F6A,4,{0x81,0x39,0x95,0x38,}}, {0x2F6B,4,{0x81,0x39,0x95,0x39,}}, {0x2F6C,4,{0x81,0x39,0x96,0x30,}}, {0x2F6D,4,{0x81,0x39,0x96,0x31,}}, {0x2F6E,4,{0x81,0x39,0x96,0x32,}}, {0x2F6F,4,{0x81,0x39,0x96,0x33,}}, {0x2F70,4,{0x81,0x39,0x96,0x34,}}, {0x2F71,4,{0x81,0x39,0x96,0x35,}}, {0x2F72,4,{0x81,0x39,0x96,0x36,}}, {0x2F73,4,{0x81,0x39,0x96,0x37,}}, {0x2F74,4,{0x81,0x39,0x96,0x38,}}, {0x2F75,4,{0x81,0x39,0x96,0x39,}}, {0x2F76,4,{0x81,0x39,0x97,0x30,}}, {0x2F77,4,{0x81,0x39,0x97,0x31,}}, {0x2F78,4,{0x81,0x39,0x97,0x32,}}, {0x2F79,4,{0x81,0x39,0x97,0x33,}}, {0x2F7A,4,{0x81,0x39,0x97,0x34,}}, {0x2F7B,4,{0x81,0x39,0x97,0x35,}}, {0x2F7C,4,{0x81,0x39,0x97,0x36,}}, {0x2F7D,4,{0x81,0x39,0x97,0x37,}}, {0x2F7E,4,{0x81,0x39,0x97,0x38,}}, {0x2F7F,4,{0x81,0x39,0x97,0x39,}}, {0x2F80,4,{0x81,0x39,0x98,0x30,}}, {0x2F81,4,{0x81,0x39,0x98,0x31,}}, {0x2F82,4,{0x81,0x39,0x98,0x32,}}, {0x2F83,4,{0x81,0x39,0x98,0x33,}}, {0x2F84,4,{0x81,0x39,0x98,0x34,}}, {0x2F85,4,{0x81,0x39,0x98,0x35,}}, {0x2F86,4,{0x81,0x39,0x98,0x36,}}, {0x2F87,4,{0x81,0x39,0x98,0x37,}}, {0x2F88,4,{0x81,0x39,0x98,0x38,}}, {0x2F89,4,{0x81,0x39,0x98,0x39,}}, {0x2F8A,4,{0x81,0x39,0x99,0x30,}}, {0x2F8B,4,{0x81,0x39,0x99,0x31,}}, {0x2F8C,4,{0x81,0x39,0x99,0x32,}}, {0x2F8D,4,{0x81,0x39,0x99,0x33,}}, {0x2F8E,4,{0x81,0x39,0x99,0x34,}}, {0x2F8F,4,{0x81,0x39,0x99,0x35,}}, {0x2F90,4,{0x81,0x39,0x99,0x36,}}, {0x2F91,4,{0x81,0x39,0x99,0x37,}}, {0x2F92,4,{0x81,0x39,0x99,0x38,}}, {0x2F93,4,{0x81,0x39,0x99,0x39,}}, {0x2F94,4,{0x81,0x39,0x9A,0x30,}}, {0x2F95,4,{0x81,0x39,0x9A,0x31,}}, {0x2F96,4,{0x81,0x39,0x9A,0x32,}}, {0x2F97,4,{0x81,0x39,0x9A,0x33,}}, {0x2F98,4,{0x81,0x39,0x9A,0x34,}}, {0x2F99,4,{0x81,0x39,0x9A,0x35,}}, {0x2F9A,4,{0x81,0x39,0x9A,0x36,}}, {0x2F9B,4,{0x81,0x39,0x9A,0x37,}}, {0x2F9C,4,{0x81,0x39,0x9A,0x38,}}, {0x2F9D,4,{0x81,0x39,0x9A,0x39,}}, {0x2F9E,4,{0x81,0x39,0x9B,0x30,}}, {0x2F9F,4,{0x81,0x39,0x9B,0x31,}}, {0x2FA0,4,{0x81,0x39,0x9B,0x32,}}, {0x2FA1,4,{0x81,0x39,0x9B,0x33,}}, {0x2FA2,4,{0x81,0x39,0x9B,0x34,}}, {0x2FA3,4,{0x81,0x39,0x9B,0x35,}}, {0x2FA4,4,{0x81,0x39,0x9B,0x36,}}, {0x2FA5,4,{0x81,0x39,0x9B,0x37,}}, {0x2FA6,4,{0x81,0x39,0x9B,0x38,}}, {0x2FA7,4,{0x81,0x39,0x9B,0x39,}}, {0x2FA8,4,{0x81,0x39,0x9C,0x30,}}, {0x2FA9,4,{0x81,0x39,0x9C,0x31,}}, {0x2FAA,4,{0x81,0x39,0x9C,0x32,}}, {0x2FAB,4,{0x81,0x39,0x9C,0x33,}}, {0x2FAC,4,{0x81,0x39,0x9C,0x34,}}, {0x2FAD,4,{0x81,0x39,0x9C,0x35,}}, {0x2FAE,4,{0x81,0x39,0x9C,0x36,}}, {0x2FAF,4,{0x81,0x39,0x9C,0x37,}}, {0x2FB0,4,{0x81,0x39,0x9C,0x38,}}, {0x2FB1,4,{0x81,0x39,0x9C,0x39,}}, {0x2FB2,4,{0x81,0x39,0x9D,0x30,}}, {0x2FB3,4,{0x81,0x39,0x9D,0x31,}}, {0x2FB4,4,{0x81,0x39,0x9D,0x32,}}, {0x2FB5,4,{0x81,0x39,0x9D,0x33,}}, {0x2FB6,4,{0x81,0x39,0x9D,0x34,}}, {0x2FB7,4,{0x81,0x39,0x9D,0x35,}}, {0x2FB8,4,{0x81,0x39,0x9D,0x36,}}, {0x2FB9,4,{0x81,0x39,0x9D,0x37,}}, {0x2FBA,4,{0x81,0x39,0x9D,0x38,}}, {0x2FBB,4,{0x81,0x39,0x9D,0x39,}}, {0x2FBC,4,{0x81,0x39,0x9E,0x30,}}, {0x2FBD,4,{0x81,0x39,0x9E,0x31,}}, {0x2FBE,4,{0x81,0x39,0x9E,0x32,}}, {0x2FBF,4,{0x81,0x39,0x9E,0x33,}}, {0x2FC0,4,{0x81,0x39,0x9E,0x34,}}, {0x2FC1,4,{0x81,0x39,0x9E,0x35,}}, {0x2FC2,4,{0x81,0x39,0x9E,0x36,}}, {0x2FC3,4,{0x81,0x39,0x9E,0x37,}}, {0x2FC4,4,{0x81,0x39,0x9E,0x38,}}, {0x2FC5,4,{0x81,0x39,0x9E,0x39,}}, {0x2FC6,4,{0x81,0x39,0x9F,0x30,}}, {0x2FC7,4,{0x81,0x39,0x9F,0x31,}}, {0x2FC8,4,{0x81,0x39,0x9F,0x32,}}, {0x2FC9,4,{0x81,0x39,0x9F,0x33,}}, {0x2FCA,4,{0x81,0x39,0x9F,0x34,}}, {0x2FCB,4,{0x81,0x39,0x9F,0x35,}}, {0x2FCC,4,{0x81,0x39,0x9F,0x36,}}, {0x2FCD,4,{0x81,0x39,0x9F,0x37,}}, {0x2FCE,4,{0x81,0x39,0x9F,0x38,}}, {0x2FCF,4,{0x81,0x39,0x9F,0x39,}}, {0x2FD0,4,{0x81,0x39,0xA0,0x30,}}, {0x2FD1,4,{0x81,0x39,0xA0,0x31,}}, {0x2FD2,4,{0x81,0x39,0xA0,0x32,}}, {0x2FD3,4,{0x81,0x39,0xA0,0x33,}}, {0x2FD4,4,{0x81,0x39,0xA0,0x34,}}, {0x2FD5,4,{0x81,0x39,0xA0,0x35,}}, {0x2FD6,4,{0x81,0x39,0xA0,0x36,}}, {0x2FD7,4,{0x81,0x39,0xA0,0x37,}}, {0x2FD8,4,{0x81,0x39,0xA0,0x38,}}, {0x2FD9,4,{0x81,0x39,0xA0,0x39,}}, {0x2FDA,4,{0x81,0x39,0xA1,0x30,}}, {0x2FDB,4,{0x81,0x39,0xA1,0x31,}}, {0x2FDC,4,{0x81,0x39,0xA1,0x32,}}, {0x2FDD,4,{0x81,0x39,0xA1,0x33,}}, {0x2FDE,4,{0x81,0x39,0xA1,0x34,}}, {0x2FDF,4,{0x81,0x39,0xA1,0x35,}}, {0x2FE0,4,{0x81,0x39,0xA1,0x36,}}, {0x2FE1,4,{0x81,0x39,0xA1,0x37,}}, {0x2FE2,4,{0x81,0x39,0xA1,0x38,}}, {0x2FE3,4,{0x81,0x39,0xA1,0x39,}}, {0x2FE4,4,{0x81,0x39,0xA2,0x30,}}, {0x2FE5,4,{0x81,0x39,0xA2,0x31,}}, {0x2FE6,4,{0x81,0x39,0xA2,0x32,}}, {0x2FE7,4,{0x81,0x39,0xA2,0x33,}}, {0x2FE8,4,{0x81,0x39,0xA2,0x34,}}, {0x2FE9,4,{0x81,0x39,0xA2,0x35,}}, {0x2FEA,4,{0x81,0x39,0xA2,0x36,}}, {0x2FEB,4,{0x81,0x39,0xA2,0x37,}}, {0x2FEC,4,{0x81,0x39,0xA2,0x38,}}, {0x2FED,4,{0x81,0x39,0xA2,0x39,}}, {0x2FEE,4,{0x81,0x39,0xA3,0x30,}}, {0x2FEF,4,{0x81,0x39,0xA3,0x31,}}, {0x2FF0,2,{0xA9,0x8A,0x00,0x00,}}, {0x2FF1,2,{0xA9,0x8B,0x00,0x00,}}, {0x2FF2,2,{0xA9,0x8C,0x00,0x00,}}, {0x2FF3,2,{0xA9,0x8D,0x00,0x00,}}, {0x2FF4,2,{0xA9,0x8E,0x00,0x00,}}, {0x2FF5,2,{0xA9,0x8F,0x00,0x00,}}, {0x2FF6,2,{0xA9,0x90,0x00,0x00,}}, {0x2FF7,2,{0xA9,0x91,0x00,0x00,}}, {0x2FF8,2,{0xA9,0x92,0x00,0x00,}}, {0x2FF9,2,{0xA9,0x93,0x00,0x00,}}, {0x2FFA,2,{0xA9,0x94,0x00,0x00,}}, {0x2FFB,2,{0xA9,0x95,0x00,0x00,}}, {0x2FFC,4,{0x81,0x39,0xA3,0x32,}}, {0x2FFD,4,{0x81,0x39,0xA3,0x33,}}, {0x2FFE,4,{0x81,0x39,0xA3,0x34,}}, {0x2FFF,4,{0x81,0x39,0xA3,0x35,}}, {0x3000,2,{0xA1,0xA1,0x00,0x00,}}, {0x3001,2,{0xA1,0xA2,0x00,0x00,}}, {0x3002,2,{0xA1,0xA3,0x00,0x00,}}, {0x3003,2,{0xA1,0xA8,0x00,0x00,}}, {0x3004,4,{0x81,0x39,0xA3,0x36,}}, {0x3005,2,{0xA1,0xA9,0x00,0x00,}}, {0x3006,2,{0xA9,0x65,0x00,0x00,}}, {0x3007,2,{0xA9,0x96,0x00,0x00,}}, {0x3008,2,{0xA1,0xB4,0x00,0x00,}}, {0x3009,2,{0xA1,0xB5,0x00,0x00,}}, {0x300A,2,{0xA1,0xB6,0x00,0x00,}}, {0x300B,2,{0xA1,0xB7,0x00,0x00,}}, {0x300C,2,{0xA1,0xB8,0x00,0x00,}}, {0x300D,2,{0xA1,0xB9,0x00,0x00,}}, {0x300E,2,{0xA1,0xBA,0x00,0x00,}}, {0x300F,2,{0xA1,0xBB,0x00,0x00,}}, {0x3010,2,{0xA1,0xBE,0x00,0x00,}}, {0x3011,2,{0xA1,0xBF,0x00,0x00,}}, {0x3012,2,{0xA8,0x93,0x00,0x00,}}, {0x3013,2,{0xA1,0xFE,0x00,0x00,}}, {0x3014,2,{0xA1,0xB2,0x00,0x00,}}, {0x3015,2,{0xA1,0xB3,0x00,0x00,}}, {0x3016,2,{0xA1,0xBC,0x00,0x00,}}, {0x3017,2,{0xA1,0xBD,0x00,0x00,}}, {0x3018,4,{0x81,0x39,0xA3,0x37,}}, {0x3019,4,{0x81,0x39,0xA3,0x38,}}, {0x301A,4,{0x81,0x39,0xA3,0x39,}}, {0x301B,4,{0x81,0x39,0xA4,0x30,}}, {0x301C,4,{0x81,0x39,0xA4,0x31,}}, {0x301D,2,{0xA8,0x94,0x00,0x00,}}, {0x301E,2,{0xA8,0x95,0x00,0x00,}}, {0x301F,4,{0x81,0x39,0xA4,0x32,}}, {0x3020,4,{0x81,0x39,0xA4,0x33,}}, {0x3021,2,{0xA9,0x40,0x00,0x00,}}, {0x3022,2,{0xA9,0x41,0x00,0x00,}}, {0x3023,2,{0xA9,0x42,0x00,0x00,}}, {0x3024,2,{0xA9,0x43,0x00,0x00,}}, {0x3025,2,{0xA9,0x44,0x00,0x00,}}, {0x3026,2,{0xA9,0x45,0x00,0x00,}}, {0x3027,2,{0xA9,0x46,0x00,0x00,}}, {0x3028,2,{0xA9,0x47,0x00,0x00,}}, {0x3029,2,{0xA9,0x48,0x00,0x00,}}, {0x302A,4,{0x81,0x39,0xA4,0x34,}}, {0x302B,4,{0x81,0x39,0xA4,0x35,}}, {0x302C,4,{0x81,0x39,0xA4,0x36,}}, {0x302D,4,{0x81,0x39,0xA4,0x37,}}, {0x302E,4,{0x81,0x39,0xA4,0x38,}}, {0x302F,4,{0x81,0x39,0xA4,0x39,}}, {0x3030,4,{0x81,0x39,0xA5,0x30,}}, {0x3031,4,{0x81,0x39,0xA5,0x31,}}, {0x3032,4,{0x81,0x39,0xA5,0x32,}}, {0x3033,4,{0x81,0x39,0xA5,0x33,}}, {0x3034,4,{0x81,0x39,0xA5,0x34,}}, {0x3035,4,{0x81,0x39,0xA5,0x35,}}, {0x3036,4,{0x81,0x39,0xA5,0x36,}}, {0x3037,4,{0x81,0x39,0xA5,0x37,}}, {0x3038,4,{0x81,0x39,0xA5,0x38,}}, {0x3039,4,{0x81,0x39,0xA5,0x39,}}, {0x303A,4,{0x81,0x39,0xA6,0x30,}}, {0x303B,4,{0x81,0x39,0xA6,0x31,}}, {0x303C,4,{0x81,0x39,0xA6,0x32,}}, {0x303D,4,{0x81,0x39,0xA6,0x33,}}, {0x303E,2,{0xA9,0x89,0x00,0x00,}}, {0x303F,4,{0x81,0x39,0xA6,0x34,}}, {0x3040,4,{0x81,0x39,0xA6,0x35,}}, {0x3041,2,{0xA4,0xA1,0x00,0x00,}}, {0x3042,2,{0xA4,0xA2,0x00,0x00,}}, {0x3043,2,{0xA4,0xA3,0x00,0x00,}}, {0x3044,2,{0xA4,0xA4,0x00,0x00,}}, {0x3045,2,{0xA4,0xA5,0x00,0x00,}}, {0x3046,2,{0xA4,0xA6,0x00,0x00,}}, {0x3047,2,{0xA4,0xA7,0x00,0x00,}}, {0x3048,2,{0xA4,0xA8,0x00,0x00,}}, {0x3049,2,{0xA4,0xA9,0x00,0x00,}}, {0x304A,2,{0xA4,0xAA,0x00,0x00,}}, {0x304B,2,{0xA4,0xAB,0x00,0x00,}}, {0x304C,2,{0xA4,0xAC,0x00,0x00,}}, {0x304D,2,{0xA4,0xAD,0x00,0x00,}}, {0x304E,2,{0xA4,0xAE,0x00,0x00,}}, {0x304F,2,{0xA4,0xAF,0x00,0x00,}}, {0x3050,2,{0xA4,0xB0,0x00,0x00,}}, {0x3051,2,{0xA4,0xB1,0x00,0x00,}}, {0x3052,2,{0xA4,0xB2,0x00,0x00,}}, {0x3053,2,{0xA4,0xB3,0x00,0x00,}}, {0x3054,2,{0xA4,0xB4,0x00,0x00,}}, {0x3055,2,{0xA4,0xB5,0x00,0x00,}}, {0x3056,2,{0xA4,0xB6,0x00,0x00,}}, {0x3057,2,{0xA4,0xB7,0x00,0x00,}}, {0x3058,2,{0xA4,0xB8,0x00,0x00,}}, {0x3059,2,{0xA4,0xB9,0x00,0x00,}}, {0x305A,2,{0xA4,0xBA,0x00,0x00,}}, {0x305B,2,{0xA4,0xBB,0x00,0x00,}}, {0x305C,2,{0xA4,0xBC,0x00,0x00,}}, {0x305D,2,{0xA4,0xBD,0x00,0x00,}}, {0x305E,2,{0xA4,0xBE,0x00,0x00,}}, {0x305F,2,{0xA4,0xBF,0x00,0x00,}}, {0x3060,2,{0xA4,0xC0,0x00,0x00,}}, {0x3061,2,{0xA4,0xC1,0x00,0x00,}}, {0x3062,2,{0xA4,0xC2,0x00,0x00,}}, {0x3063,2,{0xA4,0xC3,0x00,0x00,}}, {0x3064,2,{0xA4,0xC4,0x00,0x00,}}, {0x3065,2,{0xA4,0xC5,0x00,0x00,}}, {0x3066,2,{0xA4,0xC6,0x00,0x00,}}, {0x3067,2,{0xA4,0xC7,0x00,0x00,}}, {0x3068,2,{0xA4,0xC8,0x00,0x00,}}, {0x3069,2,{0xA4,0xC9,0x00,0x00,}}, {0x306A,2,{0xA4,0xCA,0x00,0x00,}}, {0x306B,2,{0xA4,0xCB,0x00,0x00,}}, {0x306C,2,{0xA4,0xCC,0x00,0x00,}}, {0x306D,2,{0xA4,0xCD,0x00,0x00,}}, {0x306E,2,{0xA4,0xCE,0x00,0x00,}}, {0x306F,2,{0xA4,0xCF,0x00,0x00,}}, {0x3070,2,{0xA4,0xD0,0x00,0x00,}}, {0x3071,2,{0xA4,0xD1,0x00,0x00,}}, {0x3072,2,{0xA4,0xD2,0x00,0x00,}}, {0x3073,2,{0xA4,0xD3,0x00,0x00,}}, {0x3074,2,{0xA4,0xD4,0x00,0x00,}}, {0x3075,2,{0xA4,0xD5,0x00,0x00,}}, {0x3076,2,{0xA4,0xD6,0x00,0x00,}}, {0x3077,2,{0xA4,0xD7,0x00,0x00,}}, {0x3078,2,{0xA4,0xD8,0x00,0x00,}}, {0x3079,2,{0xA4,0xD9,0x00,0x00,}}, {0x307A,2,{0xA4,0xDA,0x00,0x00,}}, {0x307B,2,{0xA4,0xDB,0x00,0x00,}}, {0x307C,2,{0xA4,0xDC,0x00,0x00,}}, {0x307D,2,{0xA4,0xDD,0x00,0x00,}}, {0x307E,2,{0xA4,0xDE,0x00,0x00,}}, {0x307F,2,{0xA4,0xDF,0x00,0x00,}}, {0x3080,2,{0xA4,0xE0,0x00,0x00,}}, {0x3081,2,{0xA4,0xE1,0x00,0x00,}}, {0x3082,2,{0xA4,0xE2,0x00,0x00,}}, {0x3083,2,{0xA4,0xE3,0x00,0x00,}}, {0x3084,2,{0xA4,0xE4,0x00,0x00,}}, {0x3085,2,{0xA4,0xE5,0x00,0x00,}}, {0x3086,2,{0xA4,0xE6,0x00,0x00,}}, {0x3087,2,{0xA4,0xE7,0x00,0x00,}}, {0x3088,2,{0xA4,0xE8,0x00,0x00,}}, {0x3089,2,{0xA4,0xE9,0x00,0x00,}}, {0x308A,2,{0xA4,0xEA,0x00,0x00,}}, {0x308B,2,{0xA4,0xEB,0x00,0x00,}}, {0x308C,2,{0xA4,0xEC,0x00,0x00,}}, {0x308D,2,{0xA4,0xED,0x00,0x00,}}, {0x308E,2,{0xA4,0xEE,0x00,0x00,}}, {0x308F,2,{0xA4,0xEF,0x00,0x00,}}, {0x3090,2,{0xA4,0xF0,0x00,0x00,}}, {0x3091,2,{0xA4,0xF1,0x00,0x00,}}, {0x3092,2,{0xA4,0xF2,0x00,0x00,}}, {0x3093,2,{0xA4,0xF3,0x00,0x00,}}, {0x3094,4,{0x81,0x39,0xA6,0x36,}}, {0x3095,4,{0x81,0x39,0xA6,0x37,}}, {0x3096,4,{0x81,0x39,0xA6,0x38,}}, {0x3097,4,{0x81,0x39,0xA6,0x39,}}, {0x3098,4,{0x81,0x39,0xA7,0x30,}}, {0x3099,4,{0x81,0x39,0xA7,0x31,}}, {0x309A,4,{0x81,0x39,0xA7,0x32,}}, {0x309B,2,{0xA9,0x61,0x00,0x00,}}, {0x309C,2,{0xA9,0x62,0x00,0x00,}}, {0x309D,2,{0xA9,0x66,0x00,0x00,}}, {0x309E,2,{0xA9,0x67,0x00,0x00,}}, {0x309F,4,{0x81,0x39,0xA7,0x33,}}, {0x30A0,4,{0x81,0x39,0xA7,0x34,}}, {0x30A1,2,{0xA5,0xA1,0x00,0x00,}}, {0x30A2,2,{0xA5,0xA2,0x00,0x00,}}, {0x30A3,2,{0xA5,0xA3,0x00,0x00,}}, {0x30A4,2,{0xA5,0xA4,0x00,0x00,}}, {0x30A5,2,{0xA5,0xA5,0x00,0x00,}}, {0x30A6,2,{0xA5,0xA6,0x00,0x00,}}, {0x30A7,2,{0xA5,0xA7,0x00,0x00,}}, {0x30A8,2,{0xA5,0xA8,0x00,0x00,}}, {0x30A9,2,{0xA5,0xA9,0x00,0x00,}}, {0x30AA,2,{0xA5,0xAA,0x00,0x00,}}, {0x30AB,2,{0xA5,0xAB,0x00,0x00,}}, {0x30AC,2,{0xA5,0xAC,0x00,0x00,}}, {0x30AD,2,{0xA5,0xAD,0x00,0x00,}}, {0x30AE,2,{0xA5,0xAE,0x00,0x00,}}, {0x30AF,2,{0xA5,0xAF,0x00,0x00,}}, {0x30B0,2,{0xA5,0xB0,0x00,0x00,}}, {0x30B1,2,{0xA5,0xB1,0x00,0x00,}}, {0x30B2,2,{0xA5,0xB2,0x00,0x00,}}, {0x30B3,2,{0xA5,0xB3,0x00,0x00,}}, {0x30B4,2,{0xA5,0xB4,0x00,0x00,}}, {0x30B5,2,{0xA5,0xB5,0x00,0x00,}}, {0x30B6,2,{0xA5,0xB6,0x00,0x00,}}, {0x30B7,2,{0xA5,0xB7,0x00,0x00,}}, {0x30B8,2,{0xA5,0xB8,0x00,0x00,}}, {0x30B9,2,{0xA5,0xB9,0x00,0x00,}}, {0x30BA,2,{0xA5,0xBA,0x00,0x00,}}, {0x30BB,2,{0xA5,0xBB,0x00,0x00,}}, {0x30BC,2,{0xA5,0xBC,0x00,0x00,}}, {0x30BD,2,{0xA5,0xBD,0x00,0x00,}}, {0x30BE,2,{0xA5,0xBE,0x00,0x00,}}, {0x30BF,2,{0xA5,0xBF,0x00,0x00,}}, {0x30C0,2,{0xA5,0xC0,0x00,0x00,}}, {0x30C1,2,{0xA5,0xC1,0x00,0x00,}}, {0x30C2,2,{0xA5,0xC2,0x00,0x00,}}, {0x30C3,2,{0xA5,0xC3,0x00,0x00,}}, {0x30C4,2,{0xA5,0xC4,0x00,0x00,}}, {0x30C5,2,{0xA5,0xC5,0x00,0x00,}}, {0x30C6,2,{0xA5,0xC6,0x00,0x00,}}, {0x30C7,2,{0xA5,0xC7,0x00,0x00,}}, {0x30C8,2,{0xA5,0xC8,0x00,0x00,}}, {0x30C9,2,{0xA5,0xC9,0x00,0x00,}}, {0x30CA,2,{0xA5,0xCA,0x00,0x00,}}, {0x30CB,2,{0xA5,0xCB,0x00,0x00,}}, {0x30CC,2,{0xA5,0xCC,0x00,0x00,}}, {0x30CD,2,{0xA5,0xCD,0x00,0x00,}}, {0x30CE,2,{0xA5,0xCE,0x00,0x00,}}, {0x30CF,2,{0xA5,0xCF,0x00,0x00,}}, {0x30D0,2,{0xA5,0xD0,0x00,0x00,}}, {0x30D1,2,{0xA5,0xD1,0x00,0x00,}}, {0x30D2,2,{0xA5,0xD2,0x00,0x00,}}, {0x30D3,2,{0xA5,0xD3,0x00,0x00,}}, {0x30D4,2,{0xA5,0xD4,0x00,0x00,}}, {0x30D5,2,{0xA5,0xD5,0x00,0x00,}}, {0x30D6,2,{0xA5,0xD6,0x00,0x00,}}, {0x30D7,2,{0xA5,0xD7,0x00,0x00,}}, {0x30D8,2,{0xA5,0xD8,0x00,0x00,}}, {0x30D9,2,{0xA5,0xD9,0x00,0x00,}}, {0x30DA,2,{0xA5,0xDA,0x00,0x00,}}, {0x30DB,2,{0xA5,0xDB,0x00,0x00,}}, {0x30DC,2,{0xA5,0xDC,0x00,0x00,}}, {0x30DD,2,{0xA5,0xDD,0x00,0x00,}}, {0x30DE,2,{0xA5,0xDE,0x00,0x00,}}, {0x30DF,2,{0xA5,0xDF,0x00,0x00,}}, {0x30E0,2,{0xA5,0xE0,0x00,0x00,}}, {0x30E1,2,{0xA5,0xE1,0x00,0x00,}}, {0x30E2,2,{0xA5,0xE2,0x00,0x00,}}, {0x30E3,2,{0xA5,0xE3,0x00,0x00,}}, {0x30E4,2,{0xA5,0xE4,0x00,0x00,}}, {0x30E5,2,{0xA5,0xE5,0x00,0x00,}}, {0x30E6,2,{0xA5,0xE6,0x00,0x00,}}, {0x30E7,2,{0xA5,0xE7,0x00,0x00,}}, {0x30E8,2,{0xA5,0xE8,0x00,0x00,}}, {0x30E9,2,{0xA5,0xE9,0x00,0x00,}}, {0x30EA,2,{0xA5,0xEA,0x00,0x00,}}, {0x30EB,2,{0xA5,0xEB,0x00,0x00,}}, {0x30EC,2,{0xA5,0xEC,0x00,0x00,}}, {0x30ED,2,{0xA5,0xED,0x00,0x00,}}, {0x30EE,2,{0xA5,0xEE,0x00,0x00,}}, {0x30EF,2,{0xA5,0xEF,0x00,0x00,}}, {0x30F0,2,{0xA5,0xF0,0x00,0x00,}}, {0x30F1,2,{0xA5,0xF1,0x00,0x00,}}, {0x30F2,2,{0xA5,0xF2,0x00,0x00,}}, {0x30F3,2,{0xA5,0xF3,0x00,0x00,}}, {0x30F4,2,{0xA5,0xF4,0x00,0x00,}}, {0x30F5,2,{0xA5,0xF5,0x00,0x00,}}, {0x30F6,2,{0xA5,0xF6,0x00,0x00,}}, {0x30F7,4,{0x81,0x39,0xA7,0x35,}}, {0x30F8,4,{0x81,0x39,0xA7,0x36,}}, {0x30F9,4,{0x81,0x39,0xA7,0x37,}}, {0x30FA,4,{0x81,0x39,0xA7,0x38,}}, {0x30FB,4,{0x81,0x39,0xA7,0x39,}}, {0x30FC,2,{0xA9,0x60,0x00,0x00,}}, {0x30FD,2,{0xA9,0x63,0x00,0x00,}}, {0x30FE,2,{0xA9,0x64,0x00,0x00,}}, {0x30FF,4,{0x81,0x39,0xA8,0x30,}}, {0x3100,4,{0x81,0x39,0xA8,0x31,}}, {0x3101,4,{0x81,0x39,0xA8,0x32,}}, {0x3102,4,{0x81,0x39,0xA8,0x33,}}, {0x3103,4,{0x81,0x39,0xA8,0x34,}}, {0x3104,4,{0x81,0x39,0xA8,0x35,}}, {0x3105,2,{0xA8,0xC5,0x00,0x00,}}, {0x3106,2,{0xA8,0xC6,0x00,0x00,}}, {0x3107,2,{0xA8,0xC7,0x00,0x00,}}, {0x3108,2,{0xA8,0xC8,0x00,0x00,}}, {0x3109,2,{0xA8,0xC9,0x00,0x00,}}, {0x310A,2,{0xA8,0xCA,0x00,0x00,}}, {0x310B,2,{0xA8,0xCB,0x00,0x00,}}, {0x310C,2,{0xA8,0xCC,0x00,0x00,}}, {0x310D,2,{0xA8,0xCD,0x00,0x00,}}, {0x310E,2,{0xA8,0xCE,0x00,0x00,}}, {0x310F,2,{0xA8,0xCF,0x00,0x00,}}, {0x3110,2,{0xA8,0xD0,0x00,0x00,}}, {0x3111,2,{0xA8,0xD1,0x00,0x00,}}, {0x3112,2,{0xA8,0xD2,0x00,0x00,}}, {0x3113,2,{0xA8,0xD3,0x00,0x00,}}, {0x3114,2,{0xA8,0xD4,0x00,0x00,}}, {0x3115,2,{0xA8,0xD5,0x00,0x00,}}, {0x3116,2,{0xA8,0xD6,0x00,0x00,}}, {0x3117,2,{0xA8,0xD7,0x00,0x00,}}, {0x3118,2,{0xA8,0xD8,0x00,0x00,}}, {0x3119,2,{0xA8,0xD9,0x00,0x00,}}, {0x311A,2,{0xA8,0xDA,0x00,0x00,}}, {0x311B,2,{0xA8,0xDB,0x00,0x00,}}, {0x311C,2,{0xA8,0xDC,0x00,0x00,}}, {0x311D,2,{0xA8,0xDD,0x00,0x00,}}, {0x311E,2,{0xA8,0xDE,0x00,0x00,}}, {0x311F,2,{0xA8,0xDF,0x00,0x00,}}, {0x3120,2,{0xA8,0xE0,0x00,0x00,}}, {0x3121,2,{0xA8,0xE1,0x00,0x00,}}, {0x3122,2,{0xA8,0xE2,0x00,0x00,}}, {0x3123,2,{0xA8,0xE3,0x00,0x00,}}, {0x3124,2,{0xA8,0xE4,0x00,0x00,}}, {0x3125,2,{0xA8,0xE5,0x00,0x00,}}, {0x3126,2,{0xA8,0xE6,0x00,0x00,}}, {0x3127,2,{0xA8,0xE7,0x00,0x00,}}, {0x3128,2,{0xA8,0xE8,0x00,0x00,}}, {0x3129,2,{0xA8,0xE9,0x00,0x00,}}, {0x312A,4,{0x81,0x39,0xA8,0x36,}}, {0x312B,4,{0x81,0x39,0xA8,0x37,}}, {0x312C,4,{0x81,0x39,0xA8,0x38,}}, {0x312D,4,{0x81,0x39,0xA8,0x39,}}, {0x312E,4,{0x81,0x39,0xA9,0x30,}}, {0x312F,4,{0x81,0x39,0xA9,0x31,}}, {0x3130,4,{0x81,0x39,0xA9,0x32,}}, {0x3131,4,{0x81,0x39,0xA9,0x33,}}, {0x3132,4,{0x81,0x39,0xA9,0x34,}}, {0x3133,4,{0x81,0x39,0xA9,0x35,}}, {0x3134,4,{0x81,0x39,0xA9,0x36,}}, {0x3135,4,{0x81,0x39,0xA9,0x37,}}, {0x3136,4,{0x81,0x39,0xA9,0x38,}}, {0x3137,4,{0x81,0x39,0xA9,0x39,}}, {0x3138,4,{0x81,0x39,0xAA,0x30,}}, {0x3139,4,{0x81,0x39,0xAA,0x31,}}, {0x313A,4,{0x81,0x39,0xAA,0x32,}}, {0x313B,4,{0x81,0x39,0xAA,0x33,}}, {0x313C,4,{0x81,0x39,0xAA,0x34,}}, {0x313D,4,{0x81,0x39,0xAA,0x35,}}, {0x313E,4,{0x81,0x39,0xAA,0x36,}}, {0x313F,4,{0x81,0x39,0xAA,0x37,}}, {0x3140,4,{0x81,0x39,0xAA,0x38,}}, {0x3141,4,{0x81,0x39,0xAA,0x39,}}, {0x3142,4,{0x81,0x39,0xAB,0x30,}}, {0x3143,4,{0x81,0x39,0xAB,0x31,}}, {0x3144,4,{0x81,0x39,0xAB,0x32,}}, {0x3145,4,{0x81,0x39,0xAB,0x33,}}, {0x3146,4,{0x81,0x39,0xAB,0x34,}}, {0x3147,4,{0x81,0x39,0xAB,0x35,}}, {0x3148,4,{0x81,0x39,0xAB,0x36,}}, {0x3149,4,{0x81,0x39,0xAB,0x37,}}, {0x314A,4,{0x81,0x39,0xAB,0x38,}}, {0x314B,4,{0x81,0x39,0xAB,0x39,}}, {0x314C,4,{0x81,0x39,0xAC,0x30,}}, {0x314D,4,{0x81,0x39,0xAC,0x31,}}, {0x314E,4,{0x81,0x39,0xAC,0x32,}}, {0x314F,4,{0x81,0x39,0xAC,0x33,}}, {0x3150,4,{0x81,0x39,0xAC,0x34,}}, {0x3151,4,{0x81,0x39,0xAC,0x35,}}, {0x3152,4,{0x81,0x39,0xAC,0x36,}}, {0x3153,4,{0x81,0x39,0xAC,0x37,}}, {0x3154,4,{0x81,0x39,0xAC,0x38,}}, {0x3155,4,{0x81,0x39,0xAC,0x39,}}, {0x3156,4,{0x81,0x39,0xAD,0x30,}}, {0x3157,4,{0x81,0x39,0xAD,0x31,}}, {0x3158,4,{0x81,0x39,0xAD,0x32,}}, {0x3159,4,{0x81,0x39,0xAD,0x33,}}, {0x315A,4,{0x81,0x39,0xAD,0x34,}}, {0x315B,4,{0x81,0x39,0xAD,0x35,}}, {0x315C,4,{0x81,0x39,0xAD,0x36,}}, {0x315D,4,{0x81,0x39,0xAD,0x37,}}, {0x315E,4,{0x81,0x39,0xAD,0x38,}}, {0x315F,4,{0x81,0x39,0xAD,0x39,}}, {0x3160,4,{0x81,0x39,0xAE,0x30,}}, {0x3161,4,{0x81,0x39,0xAE,0x31,}}, {0x3162,4,{0x81,0x39,0xAE,0x32,}}, {0x3163,4,{0x81,0x39,0xAE,0x33,}}, {0x3164,4,{0x81,0x39,0xAE,0x34,}}, {0x3165,4,{0x81,0x39,0xAE,0x35,}}, {0x3166,4,{0x81,0x39,0xAE,0x36,}}, {0x3167,4,{0x81,0x39,0xAE,0x37,}}, {0x3168,4,{0x81,0x39,0xAE,0x38,}}, {0x3169,4,{0x81,0x39,0xAE,0x39,}}, {0x316A,4,{0x81,0x39,0xAF,0x30,}}, {0x316B,4,{0x81,0x39,0xAF,0x31,}}, {0x316C,4,{0x81,0x39,0xAF,0x32,}}, {0x316D,4,{0x81,0x39,0xAF,0x33,}}, {0x316E,4,{0x81,0x39,0xAF,0x34,}}, {0x316F,4,{0x81,0x39,0xAF,0x35,}}, {0x3170,4,{0x81,0x39,0xAF,0x36,}}, {0x3171,4,{0x81,0x39,0xAF,0x37,}}, {0x3172,4,{0x81,0x39,0xAF,0x38,}}, {0x3173,4,{0x81,0x39,0xAF,0x39,}}, {0x3174,4,{0x81,0x39,0xB0,0x30,}}, {0x3175,4,{0x81,0x39,0xB0,0x31,}}, {0x3176,4,{0x81,0x39,0xB0,0x32,}}, {0x3177,4,{0x81,0x39,0xB0,0x33,}}, {0x3178,4,{0x81,0x39,0xB0,0x34,}}, {0x3179,4,{0x81,0x39,0xB0,0x35,}}, {0x317A,4,{0x81,0x39,0xB0,0x36,}}, {0x317B,4,{0x81,0x39,0xB0,0x37,}}, {0x317C,4,{0x81,0x39,0xB0,0x38,}}, {0x317D,4,{0x81,0x39,0xB0,0x39,}}, {0x317E,4,{0x81,0x39,0xB1,0x30,}}, {0x317F,4,{0x81,0x39,0xB1,0x31,}}, {0x3180,4,{0x81,0x39,0xB1,0x32,}}, {0x3181,4,{0x81,0x39,0xB1,0x33,}}, {0x3182,4,{0x81,0x39,0xB1,0x34,}}, {0x3183,4,{0x81,0x39,0xB1,0x35,}}, {0x3184,4,{0x81,0x39,0xB1,0x36,}}, {0x3185,4,{0x81,0x39,0xB1,0x37,}}, {0x3186,4,{0x81,0x39,0xB1,0x38,}}, {0x3187,4,{0x81,0x39,0xB1,0x39,}}, {0x3188,4,{0x81,0x39,0xB2,0x30,}}, {0x3189,4,{0x81,0x39,0xB2,0x31,}}, {0x318A,4,{0x81,0x39,0xB2,0x32,}}, {0x318B,4,{0x81,0x39,0xB2,0x33,}}, {0x318C,4,{0x81,0x39,0xB2,0x34,}}, {0x318D,4,{0x81,0x39,0xB2,0x35,}}, {0x318E,4,{0x81,0x39,0xB2,0x36,}}, {0x318F,4,{0x81,0x39,0xB2,0x37,}}, {0x3190,4,{0x81,0x39,0xB2,0x38,}}, {0x3191,4,{0x81,0x39,0xB2,0x39,}}, {0x3192,4,{0x81,0x39,0xB3,0x30,}}, {0x3193,4,{0x81,0x39,0xB3,0x31,}}, {0x3194,4,{0x81,0x39,0xB3,0x32,}}, {0x3195,4,{0x81,0x39,0xB3,0x33,}}, {0x3196,4,{0x81,0x39,0xB3,0x34,}}, {0x3197,4,{0x81,0x39,0xB3,0x35,}}, {0x3198,4,{0x81,0x39,0xB3,0x36,}}, {0x3199,4,{0x81,0x39,0xB3,0x37,}}, {0x319A,4,{0x81,0x39,0xB3,0x38,}}, {0x319B,4,{0x81,0x39,0xB3,0x39,}}, {0x319C,4,{0x81,0x39,0xB4,0x30,}}, {0x319D,4,{0x81,0x39,0xB4,0x31,}}, {0x319E,4,{0x81,0x39,0xB4,0x32,}}, {0x319F,4,{0x81,0x39,0xB4,0x33,}}, {0x31A0,4,{0x81,0x39,0xB4,0x34,}}, {0x31A1,4,{0x81,0x39,0xB4,0x35,}}, {0x31A2,4,{0x81,0x39,0xB4,0x36,}}, {0x31A3,4,{0x81,0x39,0xB4,0x37,}}, {0x31A4,4,{0x81,0x39,0xB4,0x38,}}, {0x31A5,4,{0x81,0x39,0xB4,0x39,}}, {0x31A6,4,{0x81,0x39,0xB5,0x30,}}, {0x31A7,4,{0x81,0x39,0xB5,0x31,}}, {0x31A8,4,{0x81,0x39,0xB5,0x32,}}, {0x31A9,4,{0x81,0x39,0xB5,0x33,}}, {0x31AA,4,{0x81,0x39,0xB5,0x34,}}, {0x31AB,4,{0x81,0x39,0xB5,0x35,}}, {0x31AC,4,{0x81,0x39,0xB5,0x36,}}, {0x31AD,4,{0x81,0x39,0xB5,0x37,}}, {0x31AE,4,{0x81,0x39,0xB5,0x38,}}, {0x31AF,4,{0x81,0x39,0xB5,0x39,}}, {0x31B0,4,{0x81,0x39,0xB6,0x30,}}, {0x31B1,4,{0x81,0x39,0xB6,0x31,}}, {0x31B2,4,{0x81,0x39,0xB6,0x32,}}, {0x31B3,4,{0x81,0x39,0xB6,0x33,}}, {0x31B4,4,{0x81,0x39,0xB6,0x34,}}, {0x31B5,4,{0x81,0x39,0xB6,0x35,}}, {0x31B6,4,{0x81,0x39,0xB6,0x36,}}, {0x31B7,4,{0x81,0x39,0xB6,0x37,}}, {0x31B8,4,{0x81,0x39,0xB6,0x38,}}, {0x31B9,4,{0x81,0x39,0xB6,0x39,}}, {0x31BA,4,{0x81,0x39,0xB7,0x30,}}, {0x31BB,4,{0x81,0x39,0xB7,0x31,}}, {0x31BC,4,{0x81,0x39,0xB7,0x32,}}, {0x31BD,4,{0x81,0x39,0xB7,0x33,}}, {0x31BE,4,{0x81,0x39,0xB7,0x34,}}, {0x31BF,4,{0x81,0x39,0xB7,0x35,}}, {0x31C0,4,{0x81,0x39,0xB7,0x36,}}, {0x31C1,4,{0x81,0x39,0xB7,0x37,}}, {0x31C2,4,{0x81,0x39,0xB7,0x38,}}, {0x31C3,4,{0x81,0x39,0xB7,0x39,}}, {0x31C4,4,{0x81,0x39,0xB8,0x30,}}, {0x31C5,4,{0x81,0x39,0xB8,0x31,}}, {0x31C6,4,{0x81,0x39,0xB8,0x32,}}, {0x31C7,4,{0x81,0x39,0xB8,0x33,}}, {0x31C8,4,{0x81,0x39,0xB8,0x34,}}, {0x31C9,4,{0x81,0x39,0xB8,0x35,}}, {0x31CA,4,{0x81,0x39,0xB8,0x36,}}, {0x31CB,4,{0x81,0x39,0xB8,0x37,}}, {0x31CC,4,{0x81,0x39,0xB8,0x38,}}, {0x31CD,4,{0x81,0x39,0xB8,0x39,}}, {0x31CE,4,{0x81,0x39,0xB9,0x30,}}, {0x31CF,4,{0x81,0x39,0xB9,0x31,}}, {0x31D0,4,{0x81,0x39,0xB9,0x32,}}, {0x31D1,4,{0x81,0x39,0xB9,0x33,}}, {0x31D2,4,{0x81,0x39,0xB9,0x34,}}, {0x31D3,4,{0x81,0x39,0xB9,0x35,}}, {0x31D4,4,{0x81,0x39,0xB9,0x36,}}, {0x31D5,4,{0x81,0x39,0xB9,0x37,}}, {0x31D6,4,{0x81,0x39,0xB9,0x38,}}, {0x31D7,4,{0x81,0x39,0xB9,0x39,}}, {0x31D8,4,{0x81,0x39,0xBA,0x30,}}, {0x31D9,4,{0x81,0x39,0xBA,0x31,}}, {0x31DA,4,{0x81,0x39,0xBA,0x32,}}, {0x31DB,4,{0x81,0x39,0xBA,0x33,}}, {0x31DC,4,{0x81,0x39,0xBA,0x34,}}, {0x31DD,4,{0x81,0x39,0xBA,0x35,}}, {0x31DE,4,{0x81,0x39,0xBA,0x36,}}, {0x31DF,4,{0x81,0x39,0xBA,0x37,}}, {0x31E0,4,{0x81,0x39,0xBA,0x38,}}, {0x31E1,4,{0x81,0x39,0xBA,0x39,}}, {0x31E2,4,{0x81,0x39,0xBB,0x30,}}, {0x31E3,4,{0x81,0x39,0xBB,0x31,}}, {0x31E4,4,{0x81,0x39,0xBB,0x32,}}, {0x31E5,4,{0x81,0x39,0xBB,0x33,}}, {0x31E6,4,{0x81,0x39,0xBB,0x34,}}, {0x31E7,4,{0x81,0x39,0xBB,0x35,}}, {0x31E8,4,{0x81,0x39,0xBB,0x36,}}, {0x31E9,4,{0x81,0x39,0xBB,0x37,}}, {0x31EA,4,{0x81,0x39,0xBB,0x38,}}, {0x31EB,4,{0x81,0x39,0xBB,0x39,}}, {0x31EC,4,{0x81,0x39,0xBC,0x30,}}, {0x31ED,4,{0x81,0x39,0xBC,0x31,}}, {0x31EE,4,{0x81,0x39,0xBC,0x32,}}, {0x31EF,4,{0x81,0x39,0xBC,0x33,}}, {0x31F0,4,{0x81,0x39,0xBC,0x34,}}, {0x31F1,4,{0x81,0x39,0xBC,0x35,}}, {0x31F2,4,{0x81,0x39,0xBC,0x36,}}, {0x31F3,4,{0x81,0x39,0xBC,0x37,}}, {0x31F4,4,{0x81,0x39,0xBC,0x38,}}, {0x31F5,4,{0x81,0x39,0xBC,0x39,}}, {0x31F6,4,{0x81,0x39,0xBD,0x30,}}, {0x31F7,4,{0x81,0x39,0xBD,0x31,}}, {0x31F8,4,{0x81,0x39,0xBD,0x32,}}, {0x31F9,4,{0x81,0x39,0xBD,0x33,}}, {0x31FA,4,{0x81,0x39,0xBD,0x34,}}, {0x31FB,4,{0x81,0x39,0xBD,0x35,}}, {0x31FC,4,{0x81,0x39,0xBD,0x36,}}, {0x31FD,4,{0x81,0x39,0xBD,0x37,}}, {0x31FE,4,{0x81,0x39,0xBD,0x38,}}, {0x31FF,4,{0x81,0x39,0xBD,0x39,}}, {0x3200,4,{0x81,0x39,0xBE,0x30,}}, {0x3201,4,{0x81,0x39,0xBE,0x31,}}, {0x3202,4,{0x81,0x39,0xBE,0x32,}}, {0x3203,4,{0x81,0x39,0xBE,0x33,}}, {0x3204,4,{0x81,0x39,0xBE,0x34,}}, {0x3205,4,{0x81,0x39,0xBE,0x35,}}, {0x3206,4,{0x81,0x39,0xBE,0x36,}}, {0x3207,4,{0x81,0x39,0xBE,0x37,}}, {0x3208,4,{0x81,0x39,0xBE,0x38,}}, {0x3209,4,{0x81,0x39,0xBE,0x39,}}, {0x320A,4,{0x81,0x39,0xBF,0x30,}}, {0x320B,4,{0x81,0x39,0xBF,0x31,}}, {0x320C,4,{0x81,0x39,0xBF,0x32,}}, {0x320D,4,{0x81,0x39,0xBF,0x33,}}, {0x320E,4,{0x81,0x39,0xBF,0x34,}}, {0x320F,4,{0x81,0x39,0xBF,0x35,}}, {0x3210,4,{0x81,0x39,0xBF,0x36,}}, {0x3211,4,{0x81,0x39,0xBF,0x37,}}, {0x3212,4,{0x81,0x39,0xBF,0x38,}}, {0x3213,4,{0x81,0x39,0xBF,0x39,}}, {0x3214,4,{0x81,0x39,0xC0,0x30,}}, {0x3215,4,{0x81,0x39,0xC0,0x31,}}, {0x3216,4,{0x81,0x39,0xC0,0x32,}}, {0x3217,4,{0x81,0x39,0xC0,0x33,}}, {0x3218,4,{0x81,0x39,0xC0,0x34,}}, {0x3219,4,{0x81,0x39,0xC0,0x35,}}, {0x321A,4,{0x81,0x39,0xC0,0x36,}}, {0x321B,4,{0x81,0x39,0xC0,0x37,}}, {0x321C,4,{0x81,0x39,0xC0,0x38,}}, {0x321D,4,{0x81,0x39,0xC0,0x39,}}, {0x321E,4,{0x81,0x39,0xC1,0x30,}}, {0x321F,4,{0x81,0x39,0xC1,0x31,}}, {0x3220,2,{0xA2,0xE5,0x00,0x00,}}, {0x3221,2,{0xA2,0xE6,0x00,0x00,}}, {0x3222,2,{0xA2,0xE7,0x00,0x00,}}, {0x3223,2,{0xA2,0xE8,0x00,0x00,}}, {0x3224,2,{0xA2,0xE9,0x00,0x00,}}, {0x3225,2,{0xA2,0xEA,0x00,0x00,}}, {0x3226,2,{0xA2,0xEB,0x00,0x00,}}, {0x3227,2,{0xA2,0xEC,0x00,0x00,}}, {0x3228,2,{0xA2,0xED,0x00,0x00,}}, {0x3229,2,{0xA2,0xEE,0x00,0x00,}}, {0x322A,4,{0x81,0x39,0xC1,0x32,}}, {0x322B,4,{0x81,0x39,0xC1,0x33,}}, {0x322C,4,{0x81,0x39,0xC1,0x34,}}, {0x322D,4,{0x81,0x39,0xC1,0x35,}}, {0x322E,4,{0x81,0x39,0xC1,0x36,}}, {0x322F,4,{0x81,0x39,0xC1,0x37,}}, {0x3230,4,{0x81,0x39,0xC1,0x38,}}, {0x3231,2,{0xA9,0x5A,0x00,0x00,}}, {0x3232,4,{0x81,0x39,0xC1,0x39,}}, {0x3233,4,{0x81,0x39,0xC2,0x30,}}, {0x3234,4,{0x81,0x39,0xC2,0x31,}}, {0x3235,4,{0x81,0x39,0xC2,0x32,}}, {0x3236,4,{0x81,0x39,0xC2,0x33,}}, {0x3237,4,{0x81,0x39,0xC2,0x34,}}, {0x3238,4,{0x81,0x39,0xC2,0x35,}}, {0x3239,4,{0x81,0x39,0xC2,0x36,}}, {0x323A,4,{0x81,0x39,0xC2,0x37,}}, {0x323B,4,{0x81,0x39,0xC2,0x38,}}, {0x323C,4,{0x81,0x39,0xC2,0x39,}}, {0x323D,4,{0x81,0x39,0xC3,0x30,}}, {0x323E,4,{0x81,0x39,0xC3,0x31,}}, {0x323F,4,{0x81,0x39,0xC3,0x32,}}, {0x3240,4,{0x81,0x39,0xC3,0x33,}}, {0x3241,4,{0x81,0x39,0xC3,0x34,}}, {0x3242,4,{0x81,0x39,0xC3,0x35,}}, {0x3243,4,{0x81,0x39,0xC3,0x36,}}, {0x3244,4,{0x81,0x39,0xC3,0x37,}}, {0x3245,4,{0x81,0x39,0xC3,0x38,}}, {0x3246,4,{0x81,0x39,0xC3,0x39,}}, {0x3247,4,{0x81,0x39,0xC4,0x30,}}, {0x3248,4,{0x81,0x39,0xC4,0x31,}}, {0x3249,4,{0x81,0x39,0xC4,0x32,}}, {0x324A,4,{0x81,0x39,0xC4,0x33,}}, {0x324B,4,{0x81,0x39,0xC4,0x34,}}, {0x324C,4,{0x81,0x39,0xC4,0x35,}}, {0x324D,4,{0x81,0x39,0xC4,0x36,}}, {0x324E,4,{0x81,0x39,0xC4,0x37,}}, {0x324F,4,{0x81,0x39,0xC4,0x38,}}, {0x3250,4,{0x81,0x39,0xC4,0x39,}}, {0x3251,4,{0x81,0x39,0xC5,0x30,}}, {0x3252,4,{0x81,0x39,0xC5,0x31,}}, {0x3253,4,{0x81,0x39,0xC5,0x32,}}, {0x3254,4,{0x81,0x39,0xC5,0x33,}}, {0x3255,4,{0x81,0x39,0xC5,0x34,}}, {0x3256,4,{0x81,0x39,0xC5,0x35,}}, {0x3257,4,{0x81,0x39,0xC5,0x36,}}, {0x3258,4,{0x81,0x39,0xC5,0x37,}}, {0x3259,4,{0x81,0x39,0xC5,0x38,}}, {0x325A,4,{0x81,0x39,0xC5,0x39,}}, {0x325B,4,{0x81,0x39,0xC6,0x30,}}, {0x325C,4,{0x81,0x39,0xC6,0x31,}}, {0x325D,4,{0x81,0x39,0xC6,0x32,}}, {0x325E,4,{0x81,0x39,0xC6,0x33,}}, {0x325F,4,{0x81,0x39,0xC6,0x34,}}, {0x3260,4,{0x81,0x39,0xC6,0x35,}}, {0x3261,4,{0x81,0x39,0xC6,0x36,}}, {0x3262,4,{0x81,0x39,0xC6,0x37,}}, {0x3263,4,{0x81,0x39,0xC6,0x38,}}, {0x3264,4,{0x81,0x39,0xC6,0x39,}}, {0x3265,4,{0x81,0x39,0xC7,0x30,}}, {0x3266,4,{0x81,0x39,0xC7,0x31,}}, {0x3267,4,{0x81,0x39,0xC7,0x32,}}, {0x3268,4,{0x81,0x39,0xC7,0x33,}}, {0x3269,4,{0x81,0x39,0xC7,0x34,}}, {0x326A,4,{0x81,0x39,0xC7,0x35,}}, {0x326B,4,{0x81,0x39,0xC7,0x36,}}, {0x326C,4,{0x81,0x39,0xC7,0x37,}}, {0x326D,4,{0x81,0x39,0xC7,0x38,}}, {0x326E,4,{0x81,0x39,0xC7,0x39,}}, {0x326F,4,{0x81,0x39,0xC8,0x30,}}, {0x3270,4,{0x81,0x39,0xC8,0x31,}}, {0x3271,4,{0x81,0x39,0xC8,0x32,}}, {0x3272,4,{0x81,0x39,0xC8,0x33,}}, {0x3273,4,{0x81,0x39,0xC8,0x34,}}, {0x3274,4,{0x81,0x39,0xC8,0x35,}}, {0x3275,4,{0x81,0x39,0xC8,0x36,}}, {0x3276,4,{0x81,0x39,0xC8,0x37,}}, {0x3277,4,{0x81,0x39,0xC8,0x38,}}, {0x3278,4,{0x81,0x39,0xC8,0x39,}}, {0x3279,4,{0x81,0x39,0xC9,0x30,}}, {0x327A,4,{0x81,0x39,0xC9,0x31,}}, {0x327B,4,{0x81,0x39,0xC9,0x32,}}, {0x327C,4,{0x81,0x39,0xC9,0x33,}}, {0x327D,4,{0x81,0x39,0xC9,0x34,}}, {0x327E,4,{0x81,0x39,0xC9,0x35,}}, {0x327F,4,{0x81,0x39,0xC9,0x36,}}, {0x3280,4,{0x81,0x39,0xC9,0x37,}}, {0x3281,4,{0x81,0x39,0xC9,0x38,}}, {0x3282,4,{0x81,0x39,0xC9,0x39,}}, {0x3283,4,{0x81,0x39,0xCA,0x30,}}, {0x3284,4,{0x81,0x39,0xCA,0x31,}}, {0x3285,4,{0x81,0x39,0xCA,0x32,}}, {0x3286,4,{0x81,0x39,0xCA,0x33,}}, {0x3287,4,{0x81,0x39,0xCA,0x34,}}, {0x3288,4,{0x81,0x39,0xCA,0x35,}}, {0x3289,4,{0x81,0x39,0xCA,0x36,}}, {0x328A,4,{0x81,0x39,0xCA,0x37,}}, {0x328B,4,{0x81,0x39,0xCA,0x38,}}, {0x328C,4,{0x81,0x39,0xCA,0x39,}}, {0x328D,4,{0x81,0x39,0xCB,0x30,}}, {0x328E,4,{0x81,0x39,0xCB,0x31,}}, {0x328F,4,{0x81,0x39,0xCB,0x32,}}, {0x3290,4,{0x81,0x39,0xCB,0x33,}}, {0x3291,4,{0x81,0x39,0xCB,0x34,}}, {0x3292,4,{0x81,0x39,0xCB,0x35,}}, {0x3293,4,{0x81,0x39,0xCB,0x36,}}, {0x3294,4,{0x81,0x39,0xCB,0x37,}}, {0x3295,4,{0x81,0x39,0xCB,0x38,}}, {0x3296,4,{0x81,0x39,0xCB,0x39,}}, {0x3297,4,{0x81,0x39,0xCC,0x30,}}, {0x3298,4,{0x81,0x39,0xCC,0x31,}}, {0x3299,4,{0x81,0x39,0xCC,0x32,}}, {0x329A,4,{0x81,0x39,0xCC,0x33,}}, {0x329B,4,{0x81,0x39,0xCC,0x34,}}, {0x329C,4,{0x81,0x39,0xCC,0x35,}}, {0x329D,4,{0x81,0x39,0xCC,0x36,}}, {0x329E,4,{0x81,0x39,0xCC,0x37,}}, {0x329F,4,{0x81,0x39,0xCC,0x38,}}, {0x32A0,4,{0x81,0x39,0xCC,0x39,}}, {0x32A1,4,{0x81,0x39,0xCD,0x30,}}, {0x32A2,4,{0x81,0x39,0xCD,0x31,}}, {0x32A3,2,{0xA9,0x49,0x00,0x00,}}, {0x32A4,4,{0x81,0x39,0xCD,0x32,}}, {0x32A5,4,{0x81,0x39,0xCD,0x33,}}, {0x32A6,4,{0x81,0x39,0xCD,0x34,}}, {0x32A7,4,{0x81,0x39,0xCD,0x35,}}, {0x32A8,4,{0x81,0x39,0xCD,0x36,}}, {0x32A9,4,{0x81,0x39,0xCD,0x37,}}, {0x32AA,4,{0x81,0x39,0xCD,0x38,}}, {0x32AB,4,{0x81,0x39,0xCD,0x39,}}, {0x32AC,4,{0x81,0x39,0xCE,0x30,}}, {0x32AD,4,{0x81,0x39,0xCE,0x31,}}, {0x32AE,4,{0x81,0x39,0xCE,0x32,}}, {0x32AF,4,{0x81,0x39,0xCE,0x33,}}, {0x32B0,4,{0x81,0x39,0xCE,0x34,}}, {0x32B1,4,{0x81,0x39,0xCE,0x35,}}, {0x32B2,4,{0x81,0x39,0xCE,0x36,}}, {0x32B3,4,{0x81,0x39,0xCE,0x37,}}, {0x32B4,4,{0x81,0x39,0xCE,0x38,}}, {0x32B5,4,{0x81,0x39,0xCE,0x39,}}, {0x32B6,4,{0x81,0x39,0xCF,0x30,}}, {0x32B7,4,{0x81,0x39,0xCF,0x31,}}, {0x32B8,4,{0x81,0x39,0xCF,0x32,}}, {0x32B9,4,{0x81,0x39,0xCF,0x33,}}, {0x32BA,4,{0x81,0x39,0xCF,0x34,}}, {0x32BB,4,{0x81,0x39,0xCF,0x35,}}, {0x32BC,4,{0x81,0x39,0xCF,0x36,}}, {0x32BD,4,{0x81,0x39,0xCF,0x37,}}, {0x32BE,4,{0x81,0x39,0xCF,0x38,}}, {0x32BF,4,{0x81,0x39,0xCF,0x39,}}, {0x32C0,4,{0x81,0x39,0xD0,0x30,}}, {0x32C1,4,{0x81,0x39,0xD0,0x31,}}, {0x32C2,4,{0x81,0x39,0xD0,0x32,}}, {0x32C3,4,{0x81,0x39,0xD0,0x33,}}, {0x32C4,4,{0x81,0x39,0xD0,0x34,}}, {0x32C5,4,{0x81,0x39,0xD0,0x35,}}, {0x32C6,4,{0x81,0x39,0xD0,0x36,}}, {0x32C7,4,{0x81,0x39,0xD0,0x37,}}, {0x32C8,4,{0x81,0x39,0xD0,0x38,}}, {0x32C9,4,{0x81,0x39,0xD0,0x39,}}, {0x32CA,4,{0x81,0x39,0xD1,0x30,}}, {0x32CB,4,{0x81,0x39,0xD1,0x31,}}, {0x32CC,4,{0x81,0x39,0xD1,0x32,}}, {0x32CD,4,{0x81,0x39,0xD1,0x33,}}, {0x32CE,4,{0x81,0x39,0xD1,0x34,}}, {0x32CF,4,{0x81,0x39,0xD1,0x35,}}, {0x32D0,4,{0x81,0x39,0xD1,0x36,}}, {0x32D1,4,{0x81,0x39,0xD1,0x37,}}, {0x32D2,4,{0x81,0x39,0xD1,0x38,}}, {0x32D3,4,{0x81,0x39,0xD1,0x39,}}, {0x32D4,4,{0x81,0x39,0xD2,0x30,}}, {0x32D5,4,{0x81,0x39,0xD2,0x31,}}, {0x32D6,4,{0x81,0x39,0xD2,0x32,}}, {0x32D7,4,{0x81,0x39,0xD2,0x33,}}, {0x32D8,4,{0x81,0x39,0xD2,0x34,}}, {0x32D9,4,{0x81,0x39,0xD2,0x35,}}, {0x32DA,4,{0x81,0x39,0xD2,0x36,}}, {0x32DB,4,{0x81,0x39,0xD2,0x37,}}, {0x32DC,4,{0x81,0x39,0xD2,0x38,}}, {0x32DD,4,{0x81,0x39,0xD2,0x39,}}, {0x32DE,4,{0x81,0x39,0xD3,0x30,}}, {0x32DF,4,{0x81,0x39,0xD3,0x31,}}, {0x32E0,4,{0x81,0x39,0xD3,0x32,}}, {0x32E1,4,{0x81,0x39,0xD3,0x33,}}, {0x32E2,4,{0x81,0x39,0xD3,0x34,}}, {0x32E3,4,{0x81,0x39,0xD3,0x35,}}, {0x32E4,4,{0x81,0x39,0xD3,0x36,}}, {0x32E5,4,{0x81,0x39,0xD3,0x37,}}, {0x32E6,4,{0x81,0x39,0xD3,0x38,}}, {0x32E7,4,{0x81,0x39,0xD3,0x39,}}, {0x32E8,4,{0x81,0x39,0xD4,0x30,}}, {0x32E9,4,{0x81,0x39,0xD4,0x31,}}, {0x32EA,4,{0x81,0x39,0xD4,0x32,}}, {0x32EB,4,{0x81,0x39,0xD4,0x33,}}, {0x32EC,4,{0x81,0x39,0xD4,0x34,}}, {0x32ED,4,{0x81,0x39,0xD4,0x35,}}, {0x32EE,4,{0x81,0x39,0xD4,0x36,}}, {0x32EF,4,{0x81,0x39,0xD4,0x37,}}, {0x32F0,4,{0x81,0x39,0xD4,0x38,}}, {0x32F1,4,{0x81,0x39,0xD4,0x39,}}, {0x32F2,4,{0x81,0x39,0xD5,0x30,}}, {0x32F3,4,{0x81,0x39,0xD5,0x31,}}, {0x32F4,4,{0x81,0x39,0xD5,0x32,}}, {0x32F5,4,{0x81,0x39,0xD5,0x33,}}, {0x32F6,4,{0x81,0x39,0xD5,0x34,}}, {0x32F7,4,{0x81,0x39,0xD5,0x35,}}, {0x32F8,4,{0x81,0x39,0xD5,0x36,}}, {0x32F9,4,{0x81,0x39,0xD5,0x37,}}, {0x32FA,4,{0x81,0x39,0xD5,0x38,}}, {0x32FB,4,{0x81,0x39,0xD5,0x39,}}, {0x32FC,4,{0x81,0x39,0xD6,0x30,}}, {0x32FD,4,{0x81,0x39,0xD6,0x31,}}, {0x32FE,4,{0x81,0x39,0xD6,0x32,}}, {0x32FF,4,{0x81,0x39,0xD6,0x33,}}, {0x3300,4,{0x81,0x39,0xD6,0x34,}}, {0x3301,4,{0x81,0x39,0xD6,0x35,}}, {0x3302,4,{0x81,0x39,0xD6,0x36,}}, {0x3303,4,{0x81,0x39,0xD6,0x37,}}, {0x3304,4,{0x81,0x39,0xD6,0x38,}}, {0x3305,4,{0x81,0x39,0xD6,0x39,}}, {0x3306,4,{0x81,0x39,0xD7,0x30,}}, {0x3307,4,{0x81,0x39,0xD7,0x31,}}, {0x3308,4,{0x81,0x39,0xD7,0x32,}}, {0x3309,4,{0x81,0x39,0xD7,0x33,}}, {0x330A,4,{0x81,0x39,0xD7,0x34,}}, {0x330B,4,{0x81,0x39,0xD7,0x35,}}, {0x330C,4,{0x81,0x39,0xD7,0x36,}}, {0x330D,4,{0x81,0x39,0xD7,0x37,}}, {0x330E,4,{0x81,0x39,0xD7,0x38,}}, {0x330F,4,{0x81,0x39,0xD7,0x39,}}, {0x3310,4,{0x81,0x39,0xD8,0x30,}}, {0x3311,4,{0x81,0x39,0xD8,0x31,}}, {0x3312,4,{0x81,0x39,0xD8,0x32,}}, {0x3313,4,{0x81,0x39,0xD8,0x33,}}, {0x3314,4,{0x81,0x39,0xD8,0x34,}}, {0x3315,4,{0x81,0x39,0xD8,0x35,}}, {0x3316,4,{0x81,0x39,0xD8,0x36,}}, {0x3317,4,{0x81,0x39,0xD8,0x37,}}, {0x3318,4,{0x81,0x39,0xD8,0x38,}}, {0x3319,4,{0x81,0x39,0xD8,0x39,}}, {0x331A,4,{0x81,0x39,0xD9,0x30,}}, {0x331B,4,{0x81,0x39,0xD9,0x31,}}, {0x331C,4,{0x81,0x39,0xD9,0x32,}}, {0x331D,4,{0x81,0x39,0xD9,0x33,}}, {0x331E,4,{0x81,0x39,0xD9,0x34,}}, {0x331F,4,{0x81,0x39,0xD9,0x35,}}, {0x3320,4,{0x81,0x39,0xD9,0x36,}}, {0x3321,4,{0x81,0x39,0xD9,0x37,}}, {0x3322,4,{0x81,0x39,0xD9,0x38,}}, {0x3323,4,{0x81,0x39,0xD9,0x39,}}, {0x3324,4,{0x81,0x39,0xDA,0x30,}}, {0x3325,4,{0x81,0x39,0xDA,0x31,}}, {0x3326,4,{0x81,0x39,0xDA,0x32,}}, {0x3327,4,{0x81,0x39,0xDA,0x33,}}, {0x3328,4,{0x81,0x39,0xDA,0x34,}}, {0x3329,4,{0x81,0x39,0xDA,0x35,}}, {0x332A,4,{0x81,0x39,0xDA,0x36,}}, {0x332B,4,{0x81,0x39,0xDA,0x37,}}, {0x332C,4,{0x81,0x39,0xDA,0x38,}}, {0x332D,4,{0x81,0x39,0xDA,0x39,}}, {0x332E,4,{0x81,0x39,0xDB,0x30,}}, {0x332F,4,{0x81,0x39,0xDB,0x31,}}, {0x3330,4,{0x81,0x39,0xDB,0x32,}}, {0x3331,4,{0x81,0x39,0xDB,0x33,}}, {0x3332,4,{0x81,0x39,0xDB,0x34,}}, {0x3333,4,{0x81,0x39,0xDB,0x35,}}, {0x3334,4,{0x81,0x39,0xDB,0x36,}}, {0x3335,4,{0x81,0x39,0xDB,0x37,}}, {0x3336,4,{0x81,0x39,0xDB,0x38,}}, {0x3337,4,{0x81,0x39,0xDB,0x39,}}, {0x3338,4,{0x81,0x39,0xDC,0x30,}}, {0x3339,4,{0x81,0x39,0xDC,0x31,}}, {0x333A,4,{0x81,0x39,0xDC,0x32,}}, {0x333B,4,{0x81,0x39,0xDC,0x33,}}, {0x333C,4,{0x81,0x39,0xDC,0x34,}}, {0x333D,4,{0x81,0x39,0xDC,0x35,}}, {0x333E,4,{0x81,0x39,0xDC,0x36,}}, {0x333F,4,{0x81,0x39,0xDC,0x37,}}, {0x3340,4,{0x81,0x39,0xDC,0x38,}}, {0x3341,4,{0x81,0x39,0xDC,0x39,}}, {0x3342,4,{0x81,0x39,0xDD,0x30,}}, {0x3343,4,{0x81,0x39,0xDD,0x31,}}, {0x3344,4,{0x81,0x39,0xDD,0x32,}}, {0x3345,4,{0x81,0x39,0xDD,0x33,}}, {0x3346,4,{0x81,0x39,0xDD,0x34,}}, {0x3347,4,{0x81,0x39,0xDD,0x35,}}, {0x3348,4,{0x81,0x39,0xDD,0x36,}}, {0x3349,4,{0x81,0x39,0xDD,0x37,}}, {0x334A,4,{0x81,0x39,0xDD,0x38,}}, {0x334B,4,{0x81,0x39,0xDD,0x39,}}, {0x334C,4,{0x81,0x39,0xDE,0x30,}}, {0x334D,4,{0x81,0x39,0xDE,0x31,}}, {0x334E,4,{0x81,0x39,0xDE,0x32,}}, {0x334F,4,{0x81,0x39,0xDE,0x33,}}, {0x3350,4,{0x81,0x39,0xDE,0x34,}}, {0x3351,4,{0x81,0x39,0xDE,0x35,}}, {0x3352,4,{0x81,0x39,0xDE,0x36,}}, {0x3353,4,{0x81,0x39,0xDE,0x37,}}, {0x3354,4,{0x81,0x39,0xDE,0x38,}}, {0x3355,4,{0x81,0x39,0xDE,0x39,}}, {0x3356,4,{0x81,0x39,0xDF,0x30,}}, {0x3357,4,{0x81,0x39,0xDF,0x31,}}, {0x3358,4,{0x81,0x39,0xDF,0x32,}}, {0x3359,4,{0x81,0x39,0xDF,0x33,}}, {0x335A,4,{0x81,0x39,0xDF,0x34,}}, {0x335B,4,{0x81,0x39,0xDF,0x35,}}, {0x335C,4,{0x81,0x39,0xDF,0x36,}}, {0x335D,4,{0x81,0x39,0xDF,0x37,}}, {0x335E,4,{0x81,0x39,0xDF,0x38,}}, {0x335F,4,{0x81,0x39,0xDF,0x39,}}, {0x3360,4,{0x81,0x39,0xE0,0x30,}}, {0x3361,4,{0x81,0x39,0xE0,0x31,}}, {0x3362,4,{0x81,0x39,0xE0,0x32,}}, {0x3363,4,{0x81,0x39,0xE0,0x33,}}, {0x3364,4,{0x81,0x39,0xE0,0x34,}}, {0x3365,4,{0x81,0x39,0xE0,0x35,}}, {0x3366,4,{0x81,0x39,0xE0,0x36,}}, {0x3367,4,{0x81,0x39,0xE0,0x37,}}, {0x3368,4,{0x81,0x39,0xE0,0x38,}}, {0x3369,4,{0x81,0x39,0xE0,0x39,}}, {0x336A,4,{0x81,0x39,0xE1,0x30,}}, {0x336B,4,{0x81,0x39,0xE1,0x31,}}, {0x336C,4,{0x81,0x39,0xE1,0x32,}}, {0x336D,4,{0x81,0x39,0xE1,0x33,}}, {0x336E,4,{0x81,0x39,0xE1,0x34,}}, {0x336F,4,{0x81,0x39,0xE1,0x35,}}, {0x3370,4,{0x81,0x39,0xE1,0x36,}}, {0x3371,4,{0x81,0x39,0xE1,0x37,}}, {0x3372,4,{0x81,0x39,0xE1,0x38,}}, {0x3373,4,{0x81,0x39,0xE1,0x39,}}, {0x3374,4,{0x81,0x39,0xE2,0x30,}}, {0x3375,4,{0x81,0x39,0xE2,0x31,}}, {0x3376,4,{0x81,0x39,0xE2,0x32,}}, {0x3377,4,{0x81,0x39,0xE2,0x33,}}, {0x3378,4,{0x81,0x39,0xE2,0x34,}}, {0x3379,4,{0x81,0x39,0xE2,0x35,}}, {0x337A,4,{0x81,0x39,0xE2,0x36,}}, {0x337B,4,{0x81,0x39,0xE2,0x37,}}, {0x337C,4,{0x81,0x39,0xE2,0x38,}}, {0x337D,4,{0x81,0x39,0xE2,0x39,}}, {0x337E,4,{0x81,0x39,0xE3,0x30,}}, {0x337F,4,{0x81,0x39,0xE3,0x31,}}, {0x3380,4,{0x81,0x39,0xE3,0x32,}}, {0x3381,4,{0x81,0x39,0xE3,0x33,}}, {0x3382,4,{0x81,0x39,0xE3,0x34,}}, {0x3383,4,{0x81,0x39,0xE3,0x35,}}, {0x3384,4,{0x81,0x39,0xE3,0x36,}}, {0x3385,4,{0x81,0x39,0xE3,0x37,}}, {0x3386,4,{0x81,0x39,0xE3,0x38,}}, {0x3387,4,{0x81,0x39,0xE3,0x39,}}, {0x3388,4,{0x81,0x39,0xE4,0x30,}}, {0x3389,4,{0x81,0x39,0xE4,0x31,}}, {0x338A,4,{0x81,0x39,0xE4,0x32,}}, {0x338B,4,{0x81,0x39,0xE4,0x33,}}, {0x338C,4,{0x81,0x39,0xE4,0x34,}}, {0x338D,4,{0x81,0x39,0xE4,0x35,}}, {0x338E,2,{0xA9,0x4A,0x00,0x00,}}, {0x338F,2,{0xA9,0x4B,0x00,0x00,}}, {0x3390,4,{0x81,0x39,0xE4,0x36,}}, {0x3391,4,{0x81,0x39,0xE4,0x37,}}, {0x3392,4,{0x81,0x39,0xE4,0x38,}}, {0x3393,4,{0x81,0x39,0xE4,0x39,}}, {0x3394,4,{0x81,0x39,0xE5,0x30,}}, {0x3395,4,{0x81,0x39,0xE5,0x31,}}, {0x3396,4,{0x81,0x39,0xE5,0x32,}}, {0x3397,4,{0x81,0x39,0xE5,0x33,}}, {0x3398,4,{0x81,0x39,0xE5,0x34,}}, {0x3399,4,{0x81,0x39,0xE5,0x35,}}, {0x339A,4,{0x81,0x39,0xE5,0x36,}}, {0x339B,4,{0x81,0x39,0xE5,0x37,}}, {0x339C,2,{0xA9,0x4C,0x00,0x00,}}, {0x339D,2,{0xA9,0x4D,0x00,0x00,}}, {0x339E,2,{0xA9,0x4E,0x00,0x00,}}, {0x339F,4,{0x81,0x39,0xE5,0x38,}}, {0x33A0,4,{0x81,0x39,0xE5,0x39,}}, {0x33A1,2,{0xA9,0x4F,0x00,0x00,}}, {0x33A2,4,{0x81,0x39,0xE6,0x30,}}, {0x33A3,4,{0x81,0x39,0xE6,0x31,}}, {0x33A4,4,{0x81,0x39,0xE6,0x32,}}, {0x33A5,4,{0x81,0x39,0xE6,0x33,}}, {0x33A6,4,{0x81,0x39,0xE6,0x34,}}, {0x33A7,4,{0x81,0x39,0xE6,0x35,}}, {0x33A8,4,{0x81,0x39,0xE6,0x36,}}, {0x33A9,4,{0x81,0x39,0xE6,0x37,}}, {0x33AA,4,{0x81,0x39,0xE6,0x38,}}, {0x33AB,4,{0x81,0x39,0xE6,0x39,}}, {0x33AC,4,{0x81,0x39,0xE7,0x30,}}, {0x33AD,4,{0x81,0x39,0xE7,0x31,}}, {0x33AE,4,{0x81,0x39,0xE7,0x32,}}, {0x33AF,4,{0x81,0x39,0xE7,0x33,}}, {0x33B0,4,{0x81,0x39,0xE7,0x34,}}, {0x33B1,4,{0x81,0x39,0xE7,0x35,}}, {0x33B2,4,{0x81,0x39,0xE7,0x36,}}, {0x33B3,4,{0x81,0x39,0xE7,0x37,}}, {0x33B4,4,{0x81,0x39,0xE7,0x38,}}, {0x33B5,4,{0x81,0x39,0xE7,0x39,}}, {0x33B6,4,{0x81,0x39,0xE8,0x30,}}, {0x33B7,4,{0x81,0x39,0xE8,0x31,}}, {0x33B8,4,{0x81,0x39,0xE8,0x32,}}, {0x33B9,4,{0x81,0x39,0xE8,0x33,}}, {0x33BA,4,{0x81,0x39,0xE8,0x34,}}, {0x33BB,4,{0x81,0x39,0xE8,0x35,}}, {0x33BC,4,{0x81,0x39,0xE8,0x36,}}, {0x33BD,4,{0x81,0x39,0xE8,0x37,}}, {0x33BE,4,{0x81,0x39,0xE8,0x38,}}, {0x33BF,4,{0x81,0x39,0xE8,0x39,}}, {0x33C0,4,{0x81,0x39,0xE9,0x30,}}, {0x33C1,4,{0x81,0x39,0xE9,0x31,}}, {0x33C2,4,{0x81,0x39,0xE9,0x32,}}, {0x33C3,4,{0x81,0x39,0xE9,0x33,}}, {0x33C4,2,{0xA9,0x50,0x00,0x00,}}, {0x33C5,4,{0x81,0x39,0xE9,0x34,}}, {0x33C6,4,{0x81,0x39,0xE9,0x35,}}, {0x33C7,4,{0x81,0x39,0xE9,0x36,}}, {0x33C8,4,{0x81,0x39,0xE9,0x37,}}, {0x33C9,4,{0x81,0x39,0xE9,0x38,}}, {0x33CA,4,{0x81,0x39,0xE9,0x39,}}, {0x33CB,4,{0x81,0x39,0xEA,0x30,}}, {0x33CC,4,{0x81,0x39,0xEA,0x31,}}, {0x33CD,4,{0x81,0x39,0xEA,0x32,}}, {0x33CE,2,{0xA9,0x51,0x00,0x00,}}, {0x33CF,4,{0x81,0x39,0xEA,0x33,}}, {0x33D0,4,{0x81,0x39,0xEA,0x34,}}, {0x33D1,2,{0xA9,0x52,0x00,0x00,}}, {0x33D2,2,{0xA9,0x53,0x00,0x00,}}, {0x33D3,4,{0x81,0x39,0xEA,0x35,}}, {0x33D4,4,{0x81,0x39,0xEA,0x36,}}, {0x33D5,2,{0xA9,0x54,0x00,0x00,}}, {0x33D6,4,{0x81,0x39,0xEA,0x37,}}, {0x33D7,4,{0x81,0x39,0xEA,0x38,}}, {0x33D8,4,{0x81,0x39,0xEA,0x39,}}, {0x33D9,4,{0x81,0x39,0xEB,0x30,}}, {0x33DA,4,{0x81,0x39,0xEB,0x31,}}, {0x33DB,4,{0x81,0x39,0xEB,0x32,}}, {0x33DC,4,{0x81,0x39,0xEB,0x33,}}, {0x33DD,4,{0x81,0x39,0xEB,0x34,}}, {0x33DE,4,{0x81,0x39,0xEB,0x35,}}, {0x33DF,4,{0x81,0x39,0xEB,0x36,}}, {0x33E0,4,{0x81,0x39,0xEB,0x37,}}, {0x33E1,4,{0x81,0x39,0xEB,0x38,}}, {0x33E2,4,{0x81,0x39,0xEB,0x39,}}, {0x33E3,4,{0x81,0x39,0xEC,0x30,}}, {0x33E4,4,{0x81,0x39,0xEC,0x31,}}, {0x33E5,4,{0x81,0x39,0xEC,0x32,}}, {0x33E6,4,{0x81,0x39,0xEC,0x33,}}, {0x33E7,4,{0x81,0x39,0xEC,0x34,}}, {0x33E8,4,{0x81,0x39,0xEC,0x35,}}, {0x33E9,4,{0x81,0x39,0xEC,0x36,}}, {0x33EA,4,{0x81,0x39,0xEC,0x37,}}, {0x33EB,4,{0x81,0x39,0xEC,0x38,}}, {0x33EC,4,{0x81,0x39,0xEC,0x39,}}, {0x33ED,4,{0x81,0x39,0xED,0x30,}}, {0x33EE,4,{0x81,0x39,0xED,0x31,}}, {0x33EF,4,{0x81,0x39,0xED,0x32,}}, {0x33F0,4,{0x81,0x39,0xED,0x33,}}, {0x33F1,4,{0x81,0x39,0xED,0x34,}}, {0x33F2,4,{0x81,0x39,0xED,0x35,}}, {0x33F3,4,{0x81,0x39,0xED,0x36,}}, {0x33F4,4,{0x81,0x39,0xED,0x37,}}, {0x33F5,4,{0x81,0x39,0xED,0x38,}}, {0x33F6,4,{0x81,0x39,0xED,0x39,}}, {0x33F7,4,{0x81,0x39,0xEE,0x30,}}, {0x33F8,4,{0x81,0x39,0xEE,0x31,}}, {0x33F9,4,{0x81,0x39,0xEE,0x32,}}, {0x33FA,4,{0x81,0x39,0xEE,0x33,}}, {0x33FB,4,{0x81,0x39,0xEE,0x34,}}, {0x33FC,4,{0x81,0x39,0xEE,0x35,}}, {0x33FD,4,{0x81,0x39,0xEE,0x36,}}, {0x33FE,4,{0x81,0x39,0xEE,0x37,}}, {0x33FF,4,{0x81,0x39,0xEE,0x38,}}, {0x3400,4,{0x81,0x39,0xEE,0x39,}}, {0x3401,4,{0x81,0x39,0xEF,0x30,}}, {0x3402,4,{0x81,0x39,0xEF,0x31,}}, {0x3403,4,{0x81,0x39,0xEF,0x32,}}, {0x3404,4,{0x81,0x39,0xEF,0x33,}}, {0x3405,4,{0x81,0x39,0xEF,0x34,}}, {0x3406,4,{0x81,0x39,0xEF,0x35,}}, {0x3407,4,{0x81,0x39,0xEF,0x36,}}, {0x3408,4,{0x81,0x39,0xEF,0x37,}}, {0x3409,4,{0x81,0x39,0xEF,0x38,}}, {0x340A,4,{0x81,0x39,0xEF,0x39,}}, {0x340B,4,{0x81,0x39,0xF0,0x30,}}, {0x340C,4,{0x81,0x39,0xF0,0x31,}}, {0x340D,4,{0x81,0x39,0xF0,0x32,}}, {0x340E,4,{0x81,0x39,0xF0,0x33,}}, {0x340F,4,{0x81,0x39,0xF0,0x34,}}, {0x3410,4,{0x81,0x39,0xF0,0x35,}}, {0x3411,4,{0x81,0x39,0xF0,0x36,}}, {0x3412,4,{0x81,0x39,0xF0,0x37,}}, {0x3413,4,{0x81,0x39,0xF0,0x38,}}, {0x3414,4,{0x81,0x39,0xF0,0x39,}}, {0x3415,4,{0x81,0x39,0xF1,0x30,}}, {0x3416,4,{0x81,0x39,0xF1,0x31,}}, {0x3417,4,{0x81,0x39,0xF1,0x32,}}, {0x3418,4,{0x81,0x39,0xF1,0x33,}}, {0x3419,4,{0x81,0x39,0xF1,0x34,}}, {0x341A,4,{0x81,0x39,0xF1,0x35,}}, {0x341B,4,{0x81,0x39,0xF1,0x36,}}, {0x341C,4,{0x81,0x39,0xF1,0x37,}}, {0x341D,4,{0x81,0x39,0xF1,0x38,}}, {0x341E,4,{0x81,0x39,0xF1,0x39,}}, {0x341F,4,{0x81,0x39,0xF2,0x30,}}, {0x3420,4,{0x81,0x39,0xF2,0x31,}}, {0x3421,4,{0x81,0x39,0xF2,0x32,}}, {0x3422,4,{0x81,0x39,0xF2,0x33,}}, {0x3423,4,{0x81,0x39,0xF2,0x34,}}, {0x3424,4,{0x81,0x39,0xF2,0x35,}}, {0x3425,4,{0x81,0x39,0xF2,0x36,}}, {0x3426,4,{0x81,0x39,0xF2,0x37,}}, {0x3427,4,{0x81,0x39,0xF2,0x38,}}, {0x3428,4,{0x81,0x39,0xF2,0x39,}}, {0x3429,4,{0x81,0x39,0xF3,0x30,}}, {0x342A,4,{0x81,0x39,0xF3,0x31,}}, {0x342B,4,{0x81,0x39,0xF3,0x32,}}, {0x342C,4,{0x81,0x39,0xF3,0x33,}}, {0x342D,4,{0x81,0x39,0xF3,0x34,}}, {0x342E,4,{0x81,0x39,0xF3,0x35,}}, {0x342F,4,{0x81,0x39,0xF3,0x36,}}, {0x3430,4,{0x81,0x39,0xF3,0x37,}}, {0x3431,4,{0x81,0x39,0xF3,0x38,}}, {0x3432,4,{0x81,0x39,0xF3,0x39,}}, {0x3433,4,{0x81,0x39,0xF4,0x30,}}, {0x3434,4,{0x81,0x39,0xF4,0x31,}}, {0x3435,4,{0x81,0x39,0xF4,0x32,}}, {0x3436,4,{0x81,0x39,0xF4,0x33,}}, {0x3437,4,{0x81,0x39,0xF4,0x34,}}, {0x3438,4,{0x81,0x39,0xF4,0x35,}}, {0x3439,4,{0x81,0x39,0xF4,0x36,}}, {0x343A,4,{0x81,0x39,0xF4,0x37,}}, {0x343B,4,{0x81,0x39,0xF4,0x38,}}, {0x343C,4,{0x81,0x39,0xF4,0x39,}}, {0x343D,4,{0x81,0x39,0xF5,0x30,}}, {0x343E,4,{0x81,0x39,0xF5,0x31,}}, {0x343F,4,{0x81,0x39,0xF5,0x32,}}, {0x3440,4,{0x81,0x39,0xF5,0x33,}}, {0x3441,4,{0x81,0x39,0xF5,0x34,}}, {0x3442,4,{0x81,0x39,0xF5,0x35,}}, {0x3443,4,{0x81,0x39,0xF5,0x36,}}, {0x3444,4,{0x81,0x39,0xF5,0x37,}}, {0x3445,4,{0x81,0x39,0xF5,0x38,}}, {0x3446,4,{0x81,0x39,0xF5,0x39,}}, {0x3447,2,{0xFE,0x56,0x00,0x00,}}, {0x3448,4,{0x81,0x39,0xF6,0x30,}}, {0x3449,4,{0x81,0x39,0xF6,0x31,}}, {0x344A,4,{0x81,0x39,0xF6,0x32,}}, {0x344B,4,{0x81,0x39,0xF6,0x33,}}, {0x344C,4,{0x81,0x39,0xF6,0x34,}}, {0x344D,4,{0x81,0x39,0xF6,0x35,}}, {0x344E,4,{0x81,0x39,0xF6,0x36,}}, {0x344F,4,{0x81,0x39,0xF6,0x37,}}, {0x3450,4,{0x81,0x39,0xF6,0x38,}}, {0x3451,4,{0x81,0x39,0xF6,0x39,}}, {0x3452,4,{0x81,0x39,0xF7,0x30,}}, {0x3453,4,{0x81,0x39,0xF7,0x31,}}, {0x3454,4,{0x81,0x39,0xF7,0x32,}}, {0x3455,4,{0x81,0x39,0xF7,0x33,}}, {0x3456,4,{0x81,0x39,0xF7,0x34,}}, {0x3457,4,{0x81,0x39,0xF7,0x35,}}, {0x3458,4,{0x81,0x39,0xF7,0x36,}}, {0x3459,4,{0x81,0x39,0xF7,0x37,}}, {0x345A,4,{0x81,0x39,0xF7,0x38,}}, {0x345B,4,{0x81,0x39,0xF7,0x39,}}, {0x345C,4,{0x81,0x39,0xF8,0x30,}}, {0x345D,4,{0x81,0x39,0xF8,0x31,}}, {0x345E,4,{0x81,0x39,0xF8,0x32,}}, {0x345F,4,{0x81,0x39,0xF8,0x33,}}, {0x3460,4,{0x81,0x39,0xF8,0x34,}}, {0x3461,4,{0x81,0x39,0xF8,0x35,}}, {0x3462,4,{0x81,0x39,0xF8,0x36,}}, {0x3463,4,{0x81,0x39,0xF8,0x37,}}, {0x3464,4,{0x81,0x39,0xF8,0x38,}}, {0x3465,4,{0x81,0x39,0xF8,0x39,}}, {0x3466,4,{0x81,0x39,0xF9,0x30,}}, {0x3467,4,{0x81,0x39,0xF9,0x31,}}, {0x3468,4,{0x81,0x39,0xF9,0x32,}}, {0x3469,4,{0x81,0x39,0xF9,0x33,}}, {0x346A,4,{0x81,0x39,0xF9,0x34,}}, {0x346B,4,{0x81,0x39,0xF9,0x35,}}, {0x346C,4,{0x81,0x39,0xF9,0x36,}}, {0x346D,4,{0x81,0x39,0xF9,0x37,}}, {0x346E,4,{0x81,0x39,0xF9,0x38,}}, {0x346F,4,{0x81,0x39,0xF9,0x39,}}, {0x3470,4,{0x81,0x39,0xFA,0x30,}}, {0x3471,4,{0x81,0x39,0xFA,0x31,}}, {0x3472,4,{0x81,0x39,0xFA,0x32,}}, {0x3473,2,{0xFE,0x55,0x00,0x00,}}, {0x3474,4,{0x81,0x39,0xFA,0x33,}}, {0x3475,4,{0x81,0x39,0xFA,0x34,}}, {0x3476,4,{0x81,0x39,0xFA,0x35,}}, {0x3477,4,{0x81,0x39,0xFA,0x36,}}, {0x3478,4,{0x81,0x39,0xFA,0x37,}}, {0x3479,4,{0x81,0x39,0xFA,0x38,}}, {0x347A,4,{0x81,0x39,0xFA,0x39,}}, {0x347B,4,{0x81,0x39,0xFB,0x30,}}, {0x347C,4,{0x81,0x39,0xFB,0x31,}}, {0x347D,4,{0x81,0x39,0xFB,0x32,}}, {0x347E,4,{0x81,0x39,0xFB,0x33,}}, {0x347F,4,{0x81,0x39,0xFB,0x34,}}, {0x3480,4,{0x81,0x39,0xFB,0x35,}}, {0x3481,4,{0x81,0x39,0xFB,0x36,}}, {0x3482,4,{0x81,0x39,0xFB,0x37,}}, {0x3483,4,{0x81,0x39,0xFB,0x38,}}, {0x3484,4,{0x81,0x39,0xFB,0x39,}}, {0x3485,4,{0x81,0x39,0xFC,0x30,}}, {0x3486,4,{0x81,0x39,0xFC,0x31,}}, {0x3487,4,{0x81,0x39,0xFC,0x32,}}, {0x3488,4,{0x81,0x39,0xFC,0x33,}}, {0x3489,4,{0x81,0x39,0xFC,0x34,}}, {0x348A,4,{0x81,0x39,0xFC,0x35,}}, {0x348B,4,{0x81,0x39,0xFC,0x36,}}, {0x348C,4,{0x81,0x39,0xFC,0x37,}}, {0x348D,4,{0x81,0x39,0xFC,0x38,}}, {0x348E,4,{0x81,0x39,0xFC,0x39,}}, {0x348F,4,{0x81,0x39,0xFD,0x30,}}, {0x3490,4,{0x81,0x39,0xFD,0x31,}}, {0x3491,4,{0x81,0x39,0xFD,0x32,}}, {0x3492,4,{0x81,0x39,0xFD,0x33,}}, {0x3493,4,{0x81,0x39,0xFD,0x34,}}, {0x3494,4,{0x81,0x39,0xFD,0x35,}}, {0x3495,4,{0x81,0x39,0xFD,0x36,}}, {0x3496,4,{0x81,0x39,0xFD,0x37,}}, {0x3497,4,{0x81,0x39,0xFD,0x38,}}, {0x3498,4,{0x81,0x39,0xFD,0x39,}}, {0x3499,4,{0x81,0x39,0xFE,0x30,}}, {0x349A,4,{0x81,0x39,0xFE,0x31,}}, {0x349B,4,{0x81,0x39,0xFE,0x32,}}, {0x349C,4,{0x81,0x39,0xFE,0x33,}}, {0x349D,4,{0x81,0x39,0xFE,0x34,}}, {0x349E,4,{0x81,0x39,0xFE,0x35,}}, {0x349F,4,{0x81,0x39,0xFE,0x36,}}, {0x34A0,4,{0x81,0x39,0xFE,0x37,}}, {0x34A1,4,{0x81,0x39,0xFE,0x38,}}, {0x34A2,4,{0x81,0x39,0xFE,0x39,}}, {0x34A3,4,{0x82,0x30,0x81,0x30,}}, {0x34A4,4,{0x82,0x30,0x81,0x31,}}, {0x34A5,4,{0x82,0x30,0x81,0x32,}}, {0x34A6,4,{0x82,0x30,0x81,0x33,}}, {0x34A7,4,{0x82,0x30,0x81,0x34,}}, {0x34A8,4,{0x82,0x30,0x81,0x35,}}, {0x34A9,4,{0x82,0x30,0x81,0x36,}}, {0x34AA,4,{0x82,0x30,0x81,0x37,}}, {0x34AB,4,{0x82,0x30,0x81,0x38,}}, {0x34AC,4,{0x82,0x30,0x81,0x39,}}, {0x34AD,4,{0x82,0x30,0x82,0x30,}}, {0x34AE,4,{0x82,0x30,0x82,0x31,}}, {0x34AF,4,{0x82,0x30,0x82,0x32,}}, {0x34B0,4,{0x82,0x30,0x82,0x33,}}, {0x34B1,4,{0x82,0x30,0x82,0x34,}}, {0x34B2,4,{0x82,0x30,0x82,0x35,}}, {0x34B3,4,{0x82,0x30,0x82,0x36,}}, {0x34B4,4,{0x82,0x30,0x82,0x37,}}, {0x34B5,4,{0x82,0x30,0x82,0x38,}}, {0x34B6,4,{0x82,0x30,0x82,0x39,}}, {0x34B7,4,{0x82,0x30,0x83,0x30,}}, {0x34B8,4,{0x82,0x30,0x83,0x31,}}, {0x34B9,4,{0x82,0x30,0x83,0x32,}}, {0x34BA,4,{0x82,0x30,0x83,0x33,}}, {0x34BB,4,{0x82,0x30,0x83,0x34,}}, {0x34BC,4,{0x82,0x30,0x83,0x35,}}, {0x34BD,4,{0x82,0x30,0x83,0x36,}}, {0x34BE,4,{0x82,0x30,0x83,0x37,}}, {0x34BF,4,{0x82,0x30,0x83,0x38,}}, {0x34C0,4,{0x82,0x30,0x83,0x39,}}, {0x34C1,4,{0x82,0x30,0x84,0x30,}}, {0x34C2,4,{0x82,0x30,0x84,0x31,}}, {0x34C3,4,{0x82,0x30,0x84,0x32,}}, {0x34C4,4,{0x82,0x30,0x84,0x33,}}, {0x34C5,4,{0x82,0x30,0x84,0x34,}}, {0x34C6,4,{0x82,0x30,0x84,0x35,}}, {0x34C7,4,{0x82,0x30,0x84,0x36,}}, {0x34C8,4,{0x82,0x30,0x84,0x37,}}, {0x34C9,4,{0x82,0x30,0x84,0x38,}}, {0x34CA,4,{0x82,0x30,0x84,0x39,}}, {0x34CB,4,{0x82,0x30,0x85,0x30,}}, {0x34CC,4,{0x82,0x30,0x85,0x31,}}, {0x34CD,4,{0x82,0x30,0x85,0x32,}}, {0x34CE,4,{0x82,0x30,0x85,0x33,}}, {0x34CF,4,{0x82,0x30,0x85,0x34,}}, {0x34D0,4,{0x82,0x30,0x85,0x35,}}, {0x34D1,4,{0x82,0x30,0x85,0x36,}}, {0x34D2,4,{0x82,0x30,0x85,0x37,}}, {0x34D3,4,{0x82,0x30,0x85,0x38,}}, {0x34D4,4,{0x82,0x30,0x85,0x39,}}, {0x34D5,4,{0x82,0x30,0x86,0x30,}}, {0x34D6,4,{0x82,0x30,0x86,0x31,}}, {0x34D7,4,{0x82,0x30,0x86,0x32,}}, {0x34D8,4,{0x82,0x30,0x86,0x33,}}, {0x34D9,4,{0x82,0x30,0x86,0x34,}}, {0x34DA,4,{0x82,0x30,0x86,0x35,}}, {0x34DB,4,{0x82,0x30,0x86,0x36,}}, {0x34DC,4,{0x82,0x30,0x86,0x37,}}, {0x34DD,4,{0x82,0x30,0x86,0x38,}}, {0x34DE,4,{0x82,0x30,0x86,0x39,}}, {0x34DF,4,{0x82,0x30,0x87,0x30,}}, {0x34E0,4,{0x82,0x30,0x87,0x31,}}, {0x34E1,4,{0x82,0x30,0x87,0x32,}}, {0x34E2,4,{0x82,0x30,0x87,0x33,}}, {0x34E3,4,{0x82,0x30,0x87,0x34,}}, {0x34E4,4,{0x82,0x30,0x87,0x35,}}, {0x34E5,4,{0x82,0x30,0x87,0x36,}}, {0x34E6,4,{0x82,0x30,0x87,0x37,}}, {0x34E7,4,{0x82,0x30,0x87,0x38,}}, {0x34E8,4,{0x82,0x30,0x87,0x39,}}, {0x34E9,4,{0x82,0x30,0x88,0x30,}}, {0x34EA,4,{0x82,0x30,0x88,0x31,}}, {0x34EB,4,{0x82,0x30,0x88,0x32,}}, {0x34EC,4,{0x82,0x30,0x88,0x33,}}, {0x34ED,4,{0x82,0x30,0x88,0x34,}}, {0x34EE,4,{0x82,0x30,0x88,0x35,}}, {0x34EF,4,{0x82,0x30,0x88,0x36,}}, {0x34F0,4,{0x82,0x30,0x88,0x37,}}, {0x34F1,4,{0x82,0x30,0x88,0x38,}}, {0x34F2,4,{0x82,0x30,0x88,0x39,}}, {0x34F3,4,{0x82,0x30,0x89,0x30,}}, {0x34F4,4,{0x82,0x30,0x89,0x31,}}, {0x34F5,4,{0x82,0x30,0x89,0x32,}}, {0x34F6,4,{0x82,0x30,0x89,0x33,}}, {0x34F7,4,{0x82,0x30,0x89,0x34,}}, {0x34F8,4,{0x82,0x30,0x89,0x35,}}, {0x34F9,4,{0x82,0x30,0x89,0x36,}}, {0x34FA,4,{0x82,0x30,0x89,0x37,}}, {0x34FB,4,{0x82,0x30,0x89,0x38,}}, {0x34FC,4,{0x82,0x30,0x89,0x39,}}, {0x34FD,4,{0x82,0x30,0x8A,0x30,}}, {0x34FE,4,{0x82,0x30,0x8A,0x31,}}, {0x34FF,4,{0x82,0x30,0x8A,0x32,}}, {0x3500,4,{0x82,0x30,0x8A,0x33,}}, {0x3501,4,{0x82,0x30,0x8A,0x34,}}, {0x3502,4,{0x82,0x30,0x8A,0x35,}}, {0x3503,4,{0x82,0x30,0x8A,0x36,}}, {0x3504,4,{0x82,0x30,0x8A,0x37,}}, {0x3505,4,{0x82,0x30,0x8A,0x38,}}, {0x3506,4,{0x82,0x30,0x8A,0x39,}}, {0x3507,4,{0x82,0x30,0x8B,0x30,}}, {0x3508,4,{0x82,0x30,0x8B,0x31,}}, {0x3509,4,{0x82,0x30,0x8B,0x32,}}, {0x350A,4,{0x82,0x30,0x8B,0x33,}}, {0x350B,4,{0x82,0x30,0x8B,0x34,}}, {0x350C,4,{0x82,0x30,0x8B,0x35,}}, {0x350D,4,{0x82,0x30,0x8B,0x36,}}, {0x350E,4,{0x82,0x30,0x8B,0x37,}}, {0x350F,4,{0x82,0x30,0x8B,0x38,}}, {0x3510,4,{0x82,0x30,0x8B,0x39,}}, {0x3511,4,{0x82,0x30,0x8C,0x30,}}, {0x3512,4,{0x82,0x30,0x8C,0x31,}}, {0x3513,4,{0x82,0x30,0x8C,0x32,}}, {0x3514,4,{0x82,0x30,0x8C,0x33,}}, {0x3515,4,{0x82,0x30,0x8C,0x34,}}, {0x3516,4,{0x82,0x30,0x8C,0x35,}}, {0x3517,4,{0x82,0x30,0x8C,0x36,}}, {0x3518,4,{0x82,0x30,0x8C,0x37,}}, {0x3519,4,{0x82,0x30,0x8C,0x38,}}, {0x351A,4,{0x82,0x30,0x8C,0x39,}}, {0x351B,4,{0x82,0x30,0x8D,0x30,}}, {0x351C,4,{0x82,0x30,0x8D,0x31,}}, {0x351D,4,{0x82,0x30,0x8D,0x32,}}, {0x351E,4,{0x82,0x30,0x8D,0x33,}}, {0x351F,4,{0x82,0x30,0x8D,0x34,}}, {0x3520,4,{0x82,0x30,0x8D,0x35,}}, {0x3521,4,{0x82,0x30,0x8D,0x36,}}, {0x3522,4,{0x82,0x30,0x8D,0x37,}}, {0x3523,4,{0x82,0x30,0x8D,0x38,}}, {0x3524,4,{0x82,0x30,0x8D,0x39,}}, {0x3525,4,{0x82,0x30,0x8E,0x30,}}, {0x3526,4,{0x82,0x30,0x8E,0x31,}}, {0x3527,4,{0x82,0x30,0x8E,0x32,}}, {0x3528,4,{0x82,0x30,0x8E,0x33,}}, {0x3529,4,{0x82,0x30,0x8E,0x34,}}, {0x352A,4,{0x82,0x30,0x8E,0x35,}}, {0x352B,4,{0x82,0x30,0x8E,0x36,}}, {0x352C,4,{0x82,0x30,0x8E,0x37,}}, {0x352D,4,{0x82,0x30,0x8E,0x38,}}, {0x352E,4,{0x82,0x30,0x8E,0x39,}}, {0x352F,4,{0x82,0x30,0x8F,0x30,}}, {0x3530,4,{0x82,0x30,0x8F,0x31,}}, {0x3531,4,{0x82,0x30,0x8F,0x32,}}, {0x3532,4,{0x82,0x30,0x8F,0x33,}}, {0x3533,4,{0x82,0x30,0x8F,0x34,}}, {0x3534,4,{0x82,0x30,0x8F,0x35,}}, {0x3535,4,{0x82,0x30,0x8F,0x36,}}, {0x3536,4,{0x82,0x30,0x8F,0x37,}}, {0x3537,4,{0x82,0x30,0x8F,0x38,}}, {0x3538,4,{0x82,0x30,0x8F,0x39,}}, {0x3539,4,{0x82,0x30,0x90,0x30,}}, {0x353A,4,{0x82,0x30,0x90,0x31,}}, {0x353B,4,{0x82,0x30,0x90,0x32,}}, {0x353C,4,{0x82,0x30,0x90,0x33,}}, {0x353D,4,{0x82,0x30,0x90,0x34,}}, {0x353E,4,{0x82,0x30,0x90,0x35,}}, {0x353F,4,{0x82,0x30,0x90,0x36,}}, {0x3540,4,{0x82,0x30,0x90,0x37,}}, {0x3541,4,{0x82,0x30,0x90,0x38,}}, {0x3542,4,{0x82,0x30,0x90,0x39,}}, {0x3543,4,{0x82,0x30,0x91,0x30,}}, {0x3544,4,{0x82,0x30,0x91,0x31,}}, {0x3545,4,{0x82,0x30,0x91,0x32,}}, {0x3546,4,{0x82,0x30,0x91,0x33,}}, {0x3547,4,{0x82,0x30,0x91,0x34,}}, {0x3548,4,{0x82,0x30,0x91,0x35,}}, {0x3549,4,{0x82,0x30,0x91,0x36,}}, {0x354A,4,{0x82,0x30,0x91,0x37,}}, {0x354B,4,{0x82,0x30,0x91,0x38,}}, {0x354C,4,{0x82,0x30,0x91,0x39,}}, {0x354D,4,{0x82,0x30,0x92,0x30,}}, {0x354E,4,{0x82,0x30,0x92,0x31,}}, {0x354F,4,{0x82,0x30,0x92,0x32,}}, {0x3550,4,{0x82,0x30,0x92,0x33,}}, {0x3551,4,{0x82,0x30,0x92,0x34,}}, {0x3552,4,{0x82,0x30,0x92,0x35,}}, {0x3553,4,{0x82,0x30,0x92,0x36,}}, {0x3554,4,{0x82,0x30,0x92,0x37,}}, {0x3555,4,{0x82,0x30,0x92,0x38,}}, {0x3556,4,{0x82,0x30,0x92,0x39,}}, {0x3557,4,{0x82,0x30,0x93,0x30,}}, {0x3558,4,{0x82,0x30,0x93,0x31,}}, {0x3559,4,{0x82,0x30,0x93,0x32,}}, {0x355A,4,{0x82,0x30,0x93,0x33,}}, {0x355B,4,{0x82,0x30,0x93,0x34,}}, {0x355C,4,{0x82,0x30,0x93,0x35,}}, {0x355D,4,{0x82,0x30,0x93,0x36,}}, {0x355E,4,{0x82,0x30,0x93,0x37,}}, {0x355F,4,{0x82,0x30,0x93,0x38,}}, {0x3560,4,{0x82,0x30,0x93,0x39,}}, {0x3561,4,{0x82,0x30,0x94,0x30,}}, {0x3562,4,{0x82,0x30,0x94,0x31,}}, {0x3563,4,{0x82,0x30,0x94,0x32,}}, {0x3564,4,{0x82,0x30,0x94,0x33,}}, {0x3565,4,{0x82,0x30,0x94,0x34,}}, {0x3566,4,{0x82,0x30,0x94,0x35,}}, {0x3567,4,{0x82,0x30,0x94,0x36,}}, {0x3568,4,{0x82,0x30,0x94,0x37,}}, {0x3569,4,{0x82,0x30,0x94,0x38,}}, {0x356A,4,{0x82,0x30,0x94,0x39,}}, {0x356B,4,{0x82,0x30,0x95,0x30,}}, {0x356C,4,{0x82,0x30,0x95,0x31,}}, {0x356D,4,{0x82,0x30,0x95,0x32,}}, {0x356E,4,{0x82,0x30,0x95,0x33,}}, {0x356F,4,{0x82,0x30,0x95,0x34,}}, {0x3570,4,{0x82,0x30,0x95,0x35,}}, {0x3571,4,{0x82,0x30,0x95,0x36,}}, {0x3572,4,{0x82,0x30,0x95,0x37,}}, {0x3573,4,{0x82,0x30,0x95,0x38,}}, {0x3574,4,{0x82,0x30,0x95,0x39,}}, {0x3575,4,{0x82,0x30,0x96,0x30,}}, {0x3576,4,{0x82,0x30,0x96,0x31,}}, {0x3577,4,{0x82,0x30,0x96,0x32,}}, {0x3578,4,{0x82,0x30,0x96,0x33,}}, {0x3579,4,{0x82,0x30,0x96,0x34,}}, {0x357A,4,{0x82,0x30,0x96,0x35,}}, {0x357B,4,{0x82,0x30,0x96,0x36,}}, {0x357C,4,{0x82,0x30,0x96,0x37,}}, {0x357D,4,{0x82,0x30,0x96,0x38,}}, {0x357E,4,{0x82,0x30,0x96,0x39,}}, {0x357F,4,{0x82,0x30,0x97,0x30,}}, {0x3580,4,{0x82,0x30,0x97,0x31,}}, {0x3581,4,{0x82,0x30,0x97,0x32,}}, {0x3582,4,{0x82,0x30,0x97,0x33,}}, {0x3583,4,{0x82,0x30,0x97,0x34,}}, {0x3584,4,{0x82,0x30,0x97,0x35,}}, {0x3585,4,{0x82,0x30,0x97,0x36,}}, {0x3586,4,{0x82,0x30,0x97,0x37,}}, {0x3587,4,{0x82,0x30,0x97,0x38,}}, {0x3588,4,{0x82,0x30,0x97,0x39,}}, {0x3589,4,{0x82,0x30,0x98,0x30,}}, {0x358A,4,{0x82,0x30,0x98,0x31,}}, {0x358B,4,{0x82,0x30,0x98,0x32,}}, {0x358C,4,{0x82,0x30,0x98,0x33,}}, {0x358D,4,{0x82,0x30,0x98,0x34,}}, {0x358E,4,{0x82,0x30,0x98,0x35,}}, {0x358F,4,{0x82,0x30,0x98,0x36,}}, {0x3590,4,{0x82,0x30,0x98,0x37,}}, {0x3591,4,{0x82,0x30,0x98,0x38,}}, {0x3592,4,{0x82,0x30,0x98,0x39,}}, {0x3593,4,{0x82,0x30,0x99,0x30,}}, {0x3594,4,{0x82,0x30,0x99,0x31,}}, {0x3595,4,{0x82,0x30,0x99,0x32,}}, {0x3596,4,{0x82,0x30,0x99,0x33,}}, {0x3597,4,{0x82,0x30,0x99,0x34,}}, {0x3598,4,{0x82,0x30,0x99,0x35,}}, {0x3599,4,{0x82,0x30,0x99,0x36,}}, {0x359A,4,{0x82,0x30,0x99,0x37,}}, {0x359B,4,{0x82,0x30,0x99,0x38,}}, {0x359C,4,{0x82,0x30,0x99,0x39,}}, {0x359D,4,{0x82,0x30,0x9A,0x30,}}, {0x359E,2,{0xFE,0x5A,0x00,0x00,}}, {0x359F,4,{0x82,0x30,0x9A,0x31,}}, {0x35A0,4,{0x82,0x30,0x9A,0x32,}}, {0x35A1,4,{0x82,0x30,0x9A,0x33,}}, {0x35A2,4,{0x82,0x30,0x9A,0x34,}}, {0x35A3,4,{0x82,0x30,0x9A,0x35,}}, {0x35A4,4,{0x82,0x30,0x9A,0x36,}}, {0x35A5,4,{0x82,0x30,0x9A,0x37,}}, {0x35A6,4,{0x82,0x30,0x9A,0x38,}}, {0x35A7,4,{0x82,0x30,0x9A,0x39,}}, {0x35A8,4,{0x82,0x30,0x9B,0x30,}}, {0x35A9,4,{0x82,0x30,0x9B,0x31,}}, {0x35AA,4,{0x82,0x30,0x9B,0x32,}}, {0x35AB,4,{0x82,0x30,0x9B,0x33,}}, {0x35AC,4,{0x82,0x30,0x9B,0x34,}}, {0x35AD,4,{0x82,0x30,0x9B,0x35,}}, {0x35AE,4,{0x82,0x30,0x9B,0x36,}}, {0x35AF,4,{0x82,0x30,0x9B,0x37,}}, {0x35B0,4,{0x82,0x30,0x9B,0x38,}}, {0x35B1,4,{0x82,0x30,0x9B,0x39,}}, {0x35B2,4,{0x82,0x30,0x9C,0x30,}}, {0x35B3,4,{0x82,0x30,0x9C,0x31,}}, {0x35B4,4,{0x82,0x30,0x9C,0x32,}}, {0x35B5,4,{0x82,0x30,0x9C,0x33,}}, {0x35B6,4,{0x82,0x30,0x9C,0x34,}}, {0x35B7,4,{0x82,0x30,0x9C,0x35,}}, {0x35B8,4,{0x82,0x30,0x9C,0x36,}}, {0x35B9,4,{0x82,0x30,0x9C,0x37,}}, {0x35BA,4,{0x82,0x30,0x9C,0x38,}}, {0x35BB,4,{0x82,0x30,0x9C,0x39,}}, {0x35BC,4,{0x82,0x30,0x9D,0x30,}}, {0x35BD,4,{0x82,0x30,0x9D,0x31,}}, {0x35BE,4,{0x82,0x30,0x9D,0x32,}}, {0x35BF,4,{0x82,0x30,0x9D,0x33,}}, {0x35C0,4,{0x82,0x30,0x9D,0x34,}}, {0x35C1,4,{0x82,0x30,0x9D,0x35,}}, {0x35C2,4,{0x82,0x30,0x9D,0x36,}}, {0x35C3,4,{0x82,0x30,0x9D,0x37,}}, {0x35C4,4,{0x82,0x30,0x9D,0x38,}}, {0x35C5,4,{0x82,0x30,0x9D,0x39,}}, {0x35C6,4,{0x82,0x30,0x9E,0x30,}}, {0x35C7,4,{0x82,0x30,0x9E,0x31,}}, {0x35C8,4,{0x82,0x30,0x9E,0x32,}}, {0x35C9,4,{0x82,0x30,0x9E,0x33,}}, {0x35CA,4,{0x82,0x30,0x9E,0x34,}}, {0x35CB,4,{0x82,0x30,0x9E,0x35,}}, {0x35CC,4,{0x82,0x30,0x9E,0x36,}}, {0x35CD,4,{0x82,0x30,0x9E,0x37,}}, {0x35CE,4,{0x82,0x30,0x9E,0x38,}}, {0x35CF,4,{0x82,0x30,0x9E,0x39,}}, {0x35D0,4,{0x82,0x30,0x9F,0x30,}}, {0x35D1,4,{0x82,0x30,0x9F,0x31,}}, {0x35D2,4,{0x82,0x30,0x9F,0x32,}}, {0x35D3,4,{0x82,0x30,0x9F,0x33,}}, {0x35D4,4,{0x82,0x30,0x9F,0x34,}}, {0x35D5,4,{0x82,0x30,0x9F,0x35,}}, {0x35D6,4,{0x82,0x30,0x9F,0x36,}}, {0x35D7,4,{0x82,0x30,0x9F,0x37,}}, {0x35D8,4,{0x82,0x30,0x9F,0x38,}}, {0x35D9,4,{0x82,0x30,0x9F,0x39,}}, {0x35DA,4,{0x82,0x30,0xA0,0x30,}}, {0x35DB,4,{0x82,0x30,0xA0,0x31,}}, {0x35DC,4,{0x82,0x30,0xA0,0x32,}}, {0x35DD,4,{0x82,0x30,0xA0,0x33,}}, {0x35DE,4,{0x82,0x30,0xA0,0x34,}}, {0x35DF,4,{0x82,0x30,0xA0,0x35,}}, {0x35E0,4,{0x82,0x30,0xA0,0x36,}}, {0x35E1,4,{0x82,0x30,0xA0,0x37,}}, {0x35E2,4,{0x82,0x30,0xA0,0x38,}}, {0x35E3,4,{0x82,0x30,0xA0,0x39,}}, {0x35E4,4,{0x82,0x30,0xA1,0x30,}}, {0x35E5,4,{0x82,0x30,0xA1,0x31,}}, {0x35E6,4,{0x82,0x30,0xA1,0x32,}}, {0x35E7,4,{0x82,0x30,0xA1,0x33,}}, {0x35E8,4,{0x82,0x30,0xA1,0x34,}}, {0x35E9,4,{0x82,0x30,0xA1,0x35,}}, {0x35EA,4,{0x82,0x30,0xA1,0x36,}}, {0x35EB,4,{0x82,0x30,0xA1,0x37,}}, {0x35EC,4,{0x82,0x30,0xA1,0x38,}}, {0x35ED,4,{0x82,0x30,0xA1,0x39,}}, {0x35EE,4,{0x82,0x30,0xA2,0x30,}}, {0x35EF,4,{0x82,0x30,0xA2,0x31,}}, {0x35F0,4,{0x82,0x30,0xA2,0x32,}}, {0x35F1,4,{0x82,0x30,0xA2,0x33,}}, {0x35F2,4,{0x82,0x30,0xA2,0x34,}}, {0x35F3,4,{0x82,0x30,0xA2,0x35,}}, {0x35F4,4,{0x82,0x30,0xA2,0x36,}}, {0x35F5,4,{0x82,0x30,0xA2,0x37,}}, {0x35F6,4,{0x82,0x30,0xA2,0x38,}}, {0x35F7,4,{0x82,0x30,0xA2,0x39,}}, {0x35F8,4,{0x82,0x30,0xA3,0x30,}}, {0x35F9,4,{0x82,0x30,0xA3,0x31,}}, {0x35FA,4,{0x82,0x30,0xA3,0x32,}}, {0x35FB,4,{0x82,0x30,0xA3,0x33,}}, {0x35FC,4,{0x82,0x30,0xA3,0x34,}}, {0x35FD,4,{0x82,0x30,0xA3,0x35,}}, {0x35FE,4,{0x82,0x30,0xA3,0x36,}}, {0x35FF,4,{0x82,0x30,0xA3,0x37,}}, {0x3600,4,{0x82,0x30,0xA3,0x38,}}, {0x3601,4,{0x82,0x30,0xA3,0x39,}}, {0x3602,4,{0x82,0x30,0xA4,0x30,}}, {0x3603,4,{0x82,0x30,0xA4,0x31,}}, {0x3604,4,{0x82,0x30,0xA4,0x32,}}, {0x3605,4,{0x82,0x30,0xA4,0x33,}}, {0x3606,4,{0x82,0x30,0xA4,0x34,}}, {0x3607,4,{0x82,0x30,0xA4,0x35,}}, {0x3608,4,{0x82,0x30,0xA4,0x36,}}, {0x3609,4,{0x82,0x30,0xA4,0x37,}}, {0x360A,4,{0x82,0x30,0xA4,0x38,}}, {0x360B,4,{0x82,0x30,0xA4,0x39,}}, {0x360C,4,{0x82,0x30,0xA5,0x30,}}, {0x360D,4,{0x82,0x30,0xA5,0x31,}}, {0x360E,2,{0xFE,0x5C,0x00,0x00,}}, {0x360F,4,{0x82,0x30,0xA5,0x32,}}, {0x3610,4,{0x82,0x30,0xA5,0x33,}}, {0x3611,4,{0x82,0x30,0xA5,0x34,}}, {0x3612,4,{0x82,0x30,0xA5,0x35,}}, {0x3613,4,{0x82,0x30,0xA5,0x36,}}, {0x3614,4,{0x82,0x30,0xA5,0x37,}}, {0x3615,4,{0x82,0x30,0xA5,0x38,}}, {0x3616,4,{0x82,0x30,0xA5,0x39,}}, {0x3617,4,{0x82,0x30,0xA6,0x30,}}, {0x3618,4,{0x82,0x30,0xA6,0x31,}}, {0x3619,4,{0x82,0x30,0xA6,0x32,}}, {0x361A,2,{0xFE,0x5B,0x00,0x00,}}, {0x3918,2,{0xFE,0x60,0x00,0x00,}}, {0x3919,4,{0x82,0x30,0xF2,0x38,}}, {0x391A,4,{0x82,0x30,0xF2,0x39,}}, {0x391B,4,{0x82,0x30,0xF3,0x30,}}, {0x391C,4,{0x82,0x30,0xF3,0x31,}}, {0x391D,4,{0x82,0x30,0xF3,0x32,}}, {0x391E,4,{0x82,0x30,0xF3,0x33,}}, {0x391F,4,{0x82,0x30,0xF3,0x34,}}, {0x3920,4,{0x82,0x30,0xF3,0x35,}}, {0x3921,4,{0x82,0x30,0xF3,0x36,}}, {0x3922,4,{0x82,0x30,0xF3,0x37,}}, {0x3923,4,{0x82,0x30,0xF3,0x38,}}, {0x3924,4,{0x82,0x30,0xF3,0x39,}}, {0x3925,4,{0x82,0x30,0xF4,0x30,}}, {0x3926,4,{0x82,0x30,0xF4,0x31,}}, {0x3927,4,{0x82,0x30,0xF4,0x32,}}, {0x3928,4,{0x82,0x30,0xF4,0x33,}}, {0x3929,4,{0x82,0x30,0xF4,0x34,}}, {0x392A,4,{0x82,0x30,0xF4,0x35,}}, {0x392B,4,{0x82,0x30,0xF4,0x36,}}, {0x392C,4,{0x82,0x30,0xF4,0x37,}}, {0x392D,4,{0x82,0x30,0xF4,0x38,}}, {0x392E,4,{0x82,0x30,0xF4,0x39,}}, {0x392F,4,{0x82,0x30,0xF5,0x30,}}, {0x3930,4,{0x82,0x30,0xF5,0x31,}}, {0x3931,4,{0x82,0x30,0xF5,0x32,}}, {0x3932,4,{0x82,0x30,0xF5,0x33,}}, {0x3933,4,{0x82,0x30,0xF5,0x34,}}, {0x3934,4,{0x82,0x30,0xF5,0x35,}}, {0x3935,4,{0x82,0x30,0xF5,0x36,}}, {0x3936,4,{0x82,0x30,0xF5,0x37,}}, {0x3937,4,{0x82,0x30,0xF5,0x38,}}, {0x3938,4,{0x82,0x30,0xF5,0x39,}}, {0x3939,4,{0x82,0x30,0xF6,0x30,}}, {0x393A,4,{0x82,0x30,0xF6,0x31,}}, {0x393B,4,{0x82,0x30,0xF6,0x32,}}, {0x393C,4,{0x82,0x30,0xF6,0x33,}}, {0x393D,4,{0x82,0x30,0xF6,0x34,}}, {0x393E,4,{0x82,0x30,0xF6,0x35,}}, {0x393F,4,{0x82,0x30,0xF6,0x36,}}, {0x3940,4,{0x82,0x30,0xF6,0x37,}}, {0x3941,4,{0x82,0x30,0xF6,0x38,}}, {0x3942,4,{0x82,0x30,0xF6,0x39,}}, {0x3943,4,{0x82,0x30,0xF7,0x30,}}, {0x3944,4,{0x82,0x30,0xF7,0x31,}}, {0x3945,4,{0x82,0x30,0xF7,0x32,}}, {0x3946,4,{0x82,0x30,0xF7,0x33,}}, {0x3947,4,{0x82,0x30,0xF7,0x34,}}, {0x3948,4,{0x82,0x30,0xF7,0x35,}}, {0x3949,4,{0x82,0x30,0xF7,0x36,}}, {0x394A,4,{0x82,0x30,0xF7,0x37,}}, {0x394B,4,{0x82,0x30,0xF7,0x38,}}, {0x394C,4,{0x82,0x30,0xF7,0x39,}}, {0x394D,4,{0x82,0x30,0xF8,0x30,}}, {0x394E,4,{0x82,0x30,0xF8,0x31,}}, {0x394F,4,{0x82,0x30,0xF8,0x32,}}, {0x3950,4,{0x82,0x30,0xF8,0x33,}}, {0x3951,4,{0x82,0x30,0xF8,0x34,}}, {0x3952,4,{0x82,0x30,0xF8,0x35,}}, {0x3953,4,{0x82,0x30,0xF8,0x36,}}, {0x3954,4,{0x82,0x30,0xF8,0x37,}}, {0x3955,4,{0x82,0x30,0xF8,0x38,}}, {0x3956,4,{0x82,0x30,0xF8,0x39,}}, {0x3957,4,{0x82,0x30,0xF9,0x30,}}, {0x3958,4,{0x82,0x30,0xF9,0x31,}}, {0x3959,4,{0x82,0x30,0xF9,0x32,}}, {0x395A,4,{0x82,0x30,0xF9,0x33,}}, {0x395B,4,{0x82,0x30,0xF9,0x34,}}, {0x395C,4,{0x82,0x30,0xF9,0x35,}}, {0x395D,4,{0x82,0x30,0xF9,0x36,}}, {0x395E,4,{0x82,0x30,0xF9,0x37,}}, {0x395F,4,{0x82,0x30,0xF9,0x38,}}, {0x3960,4,{0x82,0x30,0xF9,0x39,}}, {0x3961,4,{0x82,0x30,0xFA,0x30,}}, {0x3962,4,{0x82,0x30,0xFA,0x31,}}, {0x3963,4,{0x82,0x30,0xFA,0x32,}}, {0x3964,4,{0x82,0x30,0xFA,0x33,}}, {0x3965,4,{0x82,0x30,0xFA,0x34,}}, {0x3966,4,{0x82,0x30,0xFA,0x35,}}, {0x3967,4,{0x82,0x30,0xFA,0x36,}}, {0x3968,4,{0x82,0x30,0xFA,0x37,}}, {0x3969,4,{0x82,0x30,0xFA,0x38,}}, {0x396A,4,{0x82,0x30,0xFA,0x39,}}, {0x396B,4,{0x82,0x30,0xFB,0x30,}}, {0x396C,4,{0x82,0x30,0xFB,0x31,}}, {0x396D,4,{0x82,0x30,0xFB,0x32,}}, {0x396E,2,{0xFE,0x5F,0x00,0x00,}}, {0x396F,4,{0x82,0x30,0xFB,0x33,}}, {0x3970,4,{0x82,0x30,0xFB,0x34,}}, {0x3971,4,{0x82,0x30,0xFB,0x35,}}, {0x3972,4,{0x82,0x30,0xFB,0x36,}}, {0x3973,4,{0x82,0x30,0xFB,0x37,}}, {0x3974,4,{0x82,0x30,0xFB,0x38,}}, {0x3975,4,{0x82,0x30,0xFB,0x39,}}, {0x3976,4,{0x82,0x30,0xFC,0x30,}}, {0x3977,4,{0x82,0x30,0xFC,0x31,}}, {0x3978,4,{0x82,0x30,0xFC,0x32,}}, {0x3979,4,{0x82,0x30,0xFC,0x33,}}, {0x397A,4,{0x82,0x30,0xFC,0x34,}}, {0x397B,4,{0x82,0x30,0xFC,0x35,}}, {0x397C,4,{0x82,0x30,0xFC,0x36,}}, {0x397D,4,{0x82,0x30,0xFC,0x37,}}, {0x397E,4,{0x82,0x30,0xFC,0x38,}}, {0x397F,4,{0x82,0x30,0xFC,0x39,}}, {0x3980,4,{0x82,0x30,0xFD,0x30,}}, {0x3981,4,{0x82,0x30,0xFD,0x31,}}, {0x3982,4,{0x82,0x30,0xFD,0x32,}}, {0x3983,4,{0x82,0x30,0xFD,0x33,}}, {0x3984,4,{0x82,0x30,0xFD,0x34,}}, {0x3985,4,{0x82,0x30,0xFD,0x35,}}, {0x3986,4,{0x82,0x30,0xFD,0x36,}}, {0x3987,4,{0x82,0x30,0xFD,0x37,}}, {0x3988,4,{0x82,0x30,0xFD,0x38,}}, {0x3989,4,{0x82,0x30,0xFD,0x39,}}, {0x398A,4,{0x82,0x30,0xFE,0x30,}}, {0x398B,4,{0x82,0x30,0xFE,0x31,}}, {0x398C,4,{0x82,0x30,0xFE,0x32,}}, {0x398D,4,{0x82,0x30,0xFE,0x33,}}, {0x398E,4,{0x82,0x30,0xFE,0x34,}}, {0x398F,4,{0x82,0x30,0xFE,0x35,}}, {0x3990,4,{0x82,0x30,0xFE,0x36,}}, {0x3991,4,{0x82,0x30,0xFE,0x37,}}, {0x3992,4,{0x82,0x30,0xFE,0x38,}}, {0x3993,4,{0x82,0x30,0xFE,0x39,}}, {0x3994,4,{0x82,0x31,0x81,0x30,}}, {0x3995,4,{0x82,0x31,0x81,0x31,}}, {0x3996,4,{0x82,0x31,0x81,0x32,}}, {0x3997,4,{0x82,0x31,0x81,0x33,}}, {0x3998,4,{0x82,0x31,0x81,0x34,}}, {0x3999,4,{0x82,0x31,0x81,0x35,}}, {0x399A,4,{0x82,0x31,0x81,0x36,}}, {0x399B,4,{0x82,0x31,0x81,0x37,}}, {0x399C,4,{0x82,0x31,0x81,0x38,}}, {0x399D,4,{0x82,0x31,0x81,0x39,}}, {0x399E,4,{0x82,0x31,0x82,0x30,}}, {0x399F,4,{0x82,0x31,0x82,0x31,}}, {0x39A0,4,{0x82,0x31,0x82,0x32,}}, {0x39A1,4,{0x82,0x31,0x82,0x33,}}, {0x39A2,4,{0x82,0x31,0x82,0x34,}}, {0x39A3,4,{0x82,0x31,0x82,0x35,}}, {0x39A4,4,{0x82,0x31,0x82,0x36,}}, {0x39A5,4,{0x82,0x31,0x82,0x37,}}, {0x39A6,4,{0x82,0x31,0x82,0x38,}}, {0x39A7,4,{0x82,0x31,0x82,0x39,}}, {0x39A8,4,{0x82,0x31,0x83,0x30,}}, {0x39A9,4,{0x82,0x31,0x83,0x31,}}, {0x39AA,4,{0x82,0x31,0x83,0x32,}}, {0x39AB,4,{0x82,0x31,0x83,0x33,}}, {0x39AC,4,{0x82,0x31,0x83,0x34,}}, {0x39AD,4,{0x82,0x31,0x83,0x35,}}, {0x39AE,4,{0x82,0x31,0x83,0x36,}}, {0x39AF,4,{0x82,0x31,0x83,0x37,}}, {0x39B0,4,{0x82,0x31,0x83,0x38,}}, {0x39B1,4,{0x82,0x31,0x83,0x39,}}, {0x39B2,4,{0x82,0x31,0x84,0x30,}}, {0x39B3,4,{0x82,0x31,0x84,0x31,}}, {0x39B4,4,{0x82,0x31,0x84,0x32,}}, {0x39B5,4,{0x82,0x31,0x84,0x33,}}, {0x39B6,4,{0x82,0x31,0x84,0x34,}}, {0x39B7,4,{0x82,0x31,0x84,0x35,}}, {0x39B8,4,{0x82,0x31,0x84,0x36,}}, {0x39B9,4,{0x82,0x31,0x84,0x37,}}, {0x39BA,4,{0x82,0x31,0x84,0x38,}}, {0x39BB,4,{0x82,0x31,0x84,0x39,}}, {0x39BC,4,{0x82,0x31,0x85,0x30,}}, {0x39BD,4,{0x82,0x31,0x85,0x31,}}, {0x39BE,4,{0x82,0x31,0x85,0x32,}}, {0x39BF,4,{0x82,0x31,0x85,0x33,}}, {0x39C0,4,{0x82,0x31,0x85,0x34,}}, {0x39C1,4,{0x82,0x31,0x85,0x35,}}, {0x39C2,4,{0x82,0x31,0x85,0x36,}}, {0x39C3,4,{0x82,0x31,0x85,0x37,}}, {0x39C4,4,{0x82,0x31,0x85,0x38,}}, {0x39C5,4,{0x82,0x31,0x85,0x39,}}, {0x39C6,4,{0x82,0x31,0x86,0x30,}}, {0x39C7,4,{0x82,0x31,0x86,0x31,}}, {0x39C8,4,{0x82,0x31,0x86,0x32,}}, {0x39C9,4,{0x82,0x31,0x86,0x33,}}, {0x39CA,4,{0x82,0x31,0x86,0x34,}}, {0x39CB,4,{0x82,0x31,0x86,0x35,}}, {0x39CC,4,{0x82,0x31,0x86,0x36,}}, {0x39CD,4,{0x82,0x31,0x86,0x37,}}, {0x39CE,4,{0x82,0x31,0x86,0x38,}}, {0x39CF,2,{0xFE,0x62,0x00,0x00,}}, {0x39D0,2,{0xFE,0x65,0x00,0x00,}}, {0x39D1,4,{0x82,0x31,0x86,0x39,}}, {0x39D2,4,{0x82,0x31,0x87,0x30,}}, {0x39D3,4,{0x82,0x31,0x87,0x31,}}, {0x39D4,4,{0x82,0x31,0x87,0x32,}}, {0x39D5,4,{0x82,0x31,0x87,0x33,}}, {0x39D6,4,{0x82,0x31,0x87,0x34,}}, {0x39D7,4,{0x82,0x31,0x87,0x35,}}, {0x39D8,4,{0x82,0x31,0x87,0x36,}}, {0x39D9,4,{0x82,0x31,0x87,0x37,}}, {0x39DA,4,{0x82,0x31,0x87,0x38,}}, {0x39DB,4,{0x82,0x31,0x87,0x39,}}, {0x39DC,4,{0x82,0x31,0x88,0x30,}}, {0x39DD,4,{0x82,0x31,0x88,0x31,}}, {0x39DE,4,{0x82,0x31,0x88,0x32,}}, {0x39DF,2,{0xFE,0x63,0x00,0x00,}}, {0x39E0,4,{0x82,0x31,0x88,0x33,}}, {0x39E1,4,{0x82,0x31,0x88,0x34,}}, {0x39E2,4,{0x82,0x31,0x88,0x35,}}, {0x39E3,4,{0x82,0x31,0x88,0x36,}}, {0x39E4,4,{0x82,0x31,0x88,0x37,}}, {0x39E5,4,{0x82,0x31,0x88,0x38,}}, {0x39E6,4,{0x82,0x31,0x88,0x39,}}, {0x39E7,4,{0x82,0x31,0x89,0x30,}}, {0x39E8,4,{0x82,0x31,0x89,0x31,}}, {0x39E9,4,{0x82,0x31,0x89,0x32,}}, {0x39EA,4,{0x82,0x31,0x89,0x33,}}, {0x39EB,4,{0x82,0x31,0x89,0x34,}}, {0x39EC,4,{0x82,0x31,0x89,0x35,}}, {0x39ED,4,{0x82,0x31,0x89,0x36,}}, {0x39EE,4,{0x82,0x31,0x89,0x37,}}, {0x39EF,4,{0x82,0x31,0x89,0x38,}}, {0x39F0,4,{0x82,0x31,0x89,0x39,}}, {0x39F1,4,{0x82,0x31,0x8A,0x30,}}, {0x39F2,4,{0x82,0x31,0x8A,0x31,}}, {0x39F3,4,{0x82,0x31,0x8A,0x32,}}, {0x39F4,4,{0x82,0x31,0x8A,0x33,}}, {0x39F5,4,{0x82,0x31,0x8A,0x34,}}, {0x39F6,4,{0x82,0x31,0x8A,0x35,}}, {0x39F7,4,{0x82,0x31,0x8A,0x36,}}, {0x39F8,4,{0x82,0x31,0x8A,0x37,}}, {0x39F9,4,{0x82,0x31,0x8A,0x38,}}, {0x39FA,4,{0x82,0x31,0x8A,0x39,}}, {0x39FB,4,{0x82,0x31,0x8B,0x30,}}, {0x39FC,4,{0x82,0x31,0x8B,0x31,}}, {0x39FD,4,{0x82,0x31,0x8B,0x32,}}, {0x39FE,4,{0x82,0x31,0x8B,0x33,}}, {0x39FF,4,{0x82,0x31,0x8B,0x34,}}, {0x3A00,4,{0x82,0x31,0x8B,0x35,}}, {0x3A01,4,{0x82,0x31,0x8B,0x36,}}, {0x3A02,4,{0x82,0x31,0x8B,0x37,}}, {0x3A03,4,{0x82,0x31,0x8B,0x38,}}, {0x3A04,4,{0x82,0x31,0x8B,0x39,}}, {0x3A05,4,{0x82,0x31,0x8C,0x30,}}, {0x3A06,4,{0x82,0x31,0x8C,0x31,}}, {0x3A07,4,{0x82,0x31,0x8C,0x32,}}, {0x3A08,4,{0x82,0x31,0x8C,0x33,}}, {0x3A09,4,{0x82,0x31,0x8C,0x34,}}, {0x3A0A,4,{0x82,0x31,0x8C,0x35,}}, {0x3A0B,4,{0x82,0x31,0x8C,0x36,}}, {0x3A0C,4,{0x82,0x31,0x8C,0x37,}}, {0x3A0D,4,{0x82,0x31,0x8C,0x38,}}, {0x3A0E,4,{0x82,0x31,0x8C,0x39,}}, {0x3A0F,4,{0x82,0x31,0x8D,0x30,}}, {0x3A10,4,{0x82,0x31,0x8D,0x31,}}, {0x3A11,4,{0x82,0x31,0x8D,0x32,}}, {0x3A12,4,{0x82,0x31,0x8D,0x33,}}, {0x3A13,4,{0x82,0x31,0x8D,0x34,}}, {0x3A14,4,{0x82,0x31,0x8D,0x35,}}, {0x3A15,4,{0x82,0x31,0x8D,0x36,}}, {0x3A16,4,{0x82,0x31,0x8D,0x37,}}, {0x3A17,4,{0x82,0x31,0x8D,0x38,}}, {0x3A18,4,{0x82,0x31,0x8D,0x39,}}, {0x3A19,4,{0x82,0x31,0x8E,0x30,}}, {0x3A1A,4,{0x82,0x31,0x8E,0x31,}}, {0x3A1B,4,{0x82,0x31,0x8E,0x32,}}, {0x3A1C,4,{0x82,0x31,0x8E,0x33,}}, {0x3A1D,4,{0x82,0x31,0x8E,0x34,}}, {0x3A1E,4,{0x82,0x31,0x8E,0x35,}}, {0x3A1F,4,{0x82,0x31,0x8E,0x36,}}, {0x3A20,4,{0x82,0x31,0x8E,0x37,}}, {0x3A21,4,{0x82,0x31,0x8E,0x38,}}, {0x3A22,4,{0x82,0x31,0x8E,0x39,}}, {0x3A23,4,{0x82,0x31,0x8F,0x30,}}, {0x3A24,4,{0x82,0x31,0x8F,0x31,}}, {0x3A25,4,{0x82,0x31,0x8F,0x32,}}, {0x3A26,4,{0x82,0x31,0x8F,0x33,}}, {0x3A27,4,{0x82,0x31,0x8F,0x34,}}, {0x3A28,4,{0x82,0x31,0x8F,0x35,}}, {0x3A29,4,{0x82,0x31,0x8F,0x36,}}, {0x3A2A,4,{0x82,0x31,0x8F,0x37,}}, {0x3A2B,4,{0x82,0x31,0x8F,0x38,}}, {0x3A2C,4,{0x82,0x31,0x8F,0x39,}}, {0x3A2D,4,{0x82,0x31,0x90,0x30,}}, {0x3A2E,4,{0x82,0x31,0x90,0x31,}}, {0x3A2F,4,{0x82,0x31,0x90,0x32,}}, {0x3A30,4,{0x82,0x31,0x90,0x33,}}, {0x3A31,4,{0x82,0x31,0x90,0x34,}}, {0x3A32,4,{0x82,0x31,0x90,0x35,}}, {0x3A33,4,{0x82,0x31,0x90,0x36,}}, {0x3A34,4,{0x82,0x31,0x90,0x37,}}, {0x3A35,4,{0x82,0x31,0x90,0x38,}}, {0x3A36,4,{0x82,0x31,0x90,0x39,}}, {0x3A37,4,{0x82,0x31,0x91,0x30,}}, {0x3A38,4,{0x82,0x31,0x91,0x31,}}, {0x3A39,4,{0x82,0x31,0x91,0x32,}}, {0x3A3A,4,{0x82,0x31,0x91,0x33,}}, {0x3A3B,4,{0x82,0x31,0x91,0x34,}}, {0x3A3C,4,{0x82,0x31,0x91,0x35,}}, {0x3A3D,4,{0x82,0x31,0x91,0x36,}}, {0x3A3E,4,{0x82,0x31,0x91,0x37,}}, {0x3A3F,4,{0x82,0x31,0x91,0x38,}}, {0x3A40,4,{0x82,0x31,0x91,0x39,}}, {0x3A41,4,{0x82,0x31,0x92,0x30,}}, {0x3A42,4,{0x82,0x31,0x92,0x31,}}, {0x3A43,4,{0x82,0x31,0x92,0x32,}}, {0x3A44,4,{0x82,0x31,0x92,0x33,}}, {0x3A45,4,{0x82,0x31,0x92,0x34,}}, {0x3A46,4,{0x82,0x31,0x92,0x35,}}, {0x3A47,4,{0x82,0x31,0x92,0x36,}}, {0x3A48,4,{0x82,0x31,0x92,0x37,}}, {0x3A49,4,{0x82,0x31,0x92,0x38,}}, {0x3A4A,4,{0x82,0x31,0x92,0x39,}}, {0x3A4B,4,{0x82,0x31,0x93,0x30,}}, {0x3A4C,4,{0x82,0x31,0x93,0x31,}}, {0x3A4D,4,{0x82,0x31,0x93,0x32,}}, {0x3A4E,4,{0x82,0x31,0x93,0x33,}}, {0x3A4F,4,{0x82,0x31,0x93,0x34,}}, {0x3A50,4,{0x82,0x31,0x93,0x35,}}, {0x3A51,4,{0x82,0x31,0x93,0x36,}}, {0x3A52,4,{0x82,0x31,0x93,0x37,}}, {0x3A53,4,{0x82,0x31,0x93,0x38,}}, {0x3A54,4,{0x82,0x31,0x93,0x39,}}, {0x3A55,4,{0x82,0x31,0x94,0x30,}}, {0x3A56,4,{0x82,0x31,0x94,0x31,}}, {0x3A57,4,{0x82,0x31,0x94,0x32,}}, {0x3A58,4,{0x82,0x31,0x94,0x33,}}, {0x3A59,4,{0x82,0x31,0x94,0x34,}}, {0x3A5A,4,{0x82,0x31,0x94,0x35,}}, {0x3A5B,4,{0x82,0x31,0x94,0x36,}}, {0x3A5C,4,{0x82,0x31,0x94,0x37,}}, {0x3A5D,4,{0x82,0x31,0x94,0x38,}}, {0x3A5E,4,{0x82,0x31,0x94,0x39,}}, {0x3A5F,4,{0x82,0x31,0x95,0x30,}}, {0x3A60,4,{0x82,0x31,0x95,0x31,}}, {0x3A61,4,{0x82,0x31,0x95,0x32,}}, {0x3A62,4,{0x82,0x31,0x95,0x33,}}, {0x3A63,4,{0x82,0x31,0x95,0x34,}}, {0x3A64,4,{0x82,0x31,0x95,0x35,}}, {0x3A65,4,{0x82,0x31,0x95,0x36,}}, {0x3A66,4,{0x82,0x31,0x95,0x37,}}, {0x3A67,4,{0x82,0x31,0x95,0x38,}}, {0x3A68,4,{0x82,0x31,0x95,0x39,}}, {0x3A69,4,{0x82,0x31,0x96,0x30,}}, {0x3A6A,4,{0x82,0x31,0x96,0x31,}}, {0x3A6B,4,{0x82,0x31,0x96,0x32,}}, {0x3A6C,4,{0x82,0x31,0x96,0x33,}}, {0x3A6D,4,{0x82,0x31,0x96,0x34,}}, {0x3A6E,4,{0x82,0x31,0x96,0x35,}}, {0x3A6F,4,{0x82,0x31,0x96,0x36,}}, {0x3A70,4,{0x82,0x31,0x96,0x37,}}, {0x3A71,4,{0x82,0x31,0x96,0x38,}}, {0x3A72,4,{0x82,0x31,0x96,0x39,}}, {0x3A73,2,{0xFE,0x64,0x00,0x00,}}, {0x3A74,4,{0x82,0x31,0x97,0x30,}}, {0x3A75,4,{0x82,0x31,0x97,0x31,}}, {0x3A76,4,{0x82,0x31,0x97,0x32,}}, {0x3A77,4,{0x82,0x31,0x97,0x33,}}, {0x3A78,4,{0x82,0x31,0x97,0x34,}}, {0x3A79,4,{0x82,0x31,0x97,0x35,}}, {0x3A7A,4,{0x82,0x31,0x97,0x36,}}, {0x3A7B,4,{0x82,0x31,0x97,0x37,}}, {0x3A7C,4,{0x82,0x31,0x97,0x38,}}, {0x3A7D,4,{0x82,0x31,0x97,0x39,}}, {0x3A7E,4,{0x82,0x31,0x98,0x30,}}, {0x3A7F,4,{0x82,0x31,0x98,0x31,}}, {0x3A80,4,{0x82,0x31,0x98,0x32,}}, {0x3A81,4,{0x82,0x31,0x98,0x33,}}, {0x3A82,4,{0x82,0x31,0x98,0x34,}}, {0x3A83,4,{0x82,0x31,0x98,0x35,}}, {0x3A84,4,{0x82,0x31,0x98,0x36,}}, {0x3A85,4,{0x82,0x31,0x98,0x37,}}, {0x3A86,4,{0x82,0x31,0x98,0x38,}}, {0x3A87,4,{0x82,0x31,0x98,0x39,}}, {0x3A88,4,{0x82,0x31,0x99,0x30,}}, {0x3A89,4,{0x82,0x31,0x99,0x31,}}, {0x3A8A,4,{0x82,0x31,0x99,0x32,}}, {0x3A8B,4,{0x82,0x31,0x99,0x33,}}, {0x3A8C,4,{0x82,0x31,0x99,0x34,}}, {0x3A8D,4,{0x82,0x31,0x99,0x35,}}, {0x3A8E,4,{0x82,0x31,0x99,0x36,}}, {0x3A8F,4,{0x82,0x31,0x99,0x37,}}, {0x3A90,4,{0x82,0x31,0x99,0x38,}}, {0x3A91,4,{0x82,0x31,0x99,0x39,}}, {0x3A92,4,{0x82,0x31,0x9A,0x30,}}, {0x3A93,4,{0x82,0x31,0x9A,0x31,}}, {0x3A94,4,{0x82,0x31,0x9A,0x32,}}, {0x3A95,4,{0x82,0x31,0x9A,0x33,}}, {0x3A96,4,{0x82,0x31,0x9A,0x34,}}, {0x3A97,4,{0x82,0x31,0x9A,0x35,}}, {0x3A98,4,{0x82,0x31,0x9A,0x36,}}, {0x3A99,4,{0x82,0x31,0x9A,0x37,}}, {0x3A9A,4,{0x82,0x31,0x9A,0x38,}}, {0x3A9B,4,{0x82,0x31,0x9A,0x39,}}, {0x3A9C,4,{0x82,0x31,0x9B,0x30,}}, {0x3A9D,4,{0x82,0x31,0x9B,0x31,}}, {0x3A9E,4,{0x82,0x31,0x9B,0x32,}}, {0x3A9F,4,{0x82,0x31,0x9B,0x33,}}, {0x3AA0,4,{0x82,0x31,0x9B,0x34,}}, {0x3AA1,4,{0x82,0x31,0x9B,0x35,}}, {0x3AA2,4,{0x82,0x31,0x9B,0x36,}}, {0x3AA3,4,{0x82,0x31,0x9B,0x37,}}, {0x3AA4,4,{0x82,0x31,0x9B,0x38,}}, {0x3AA5,4,{0x82,0x31,0x9B,0x39,}}, {0x3AA6,4,{0x82,0x31,0x9C,0x30,}}, {0x3AA7,4,{0x82,0x31,0x9C,0x31,}}, {0x3AA8,4,{0x82,0x31,0x9C,0x32,}}, {0x3AA9,4,{0x82,0x31,0x9C,0x33,}}, {0x3AAA,4,{0x82,0x31,0x9C,0x34,}}, {0x3AAB,4,{0x82,0x31,0x9C,0x35,}}, {0x3AAC,4,{0x82,0x31,0x9C,0x36,}}, {0x3AAD,4,{0x82,0x31,0x9C,0x37,}}, {0x3AAE,4,{0x82,0x31,0x9C,0x38,}}, {0x3AAF,4,{0x82,0x31,0x9C,0x39,}}, {0x3AB0,4,{0x82,0x31,0x9D,0x30,}}, {0x3AB1,4,{0x82,0x31,0x9D,0x31,}}, {0x3AB2,4,{0x82,0x31,0x9D,0x32,}}, {0x3AB3,4,{0x82,0x31,0x9D,0x33,}}, {0x3AB4,4,{0x82,0x31,0x9D,0x34,}}, {0x3AB5,4,{0x82,0x31,0x9D,0x35,}}, {0x3AB6,4,{0x82,0x31,0x9D,0x36,}}, {0x3AB7,4,{0x82,0x31,0x9D,0x37,}}, {0x3AB8,4,{0x82,0x31,0x9D,0x38,}}, {0x3AB9,4,{0x82,0x31,0x9D,0x39,}}, {0x3ABA,4,{0x82,0x31,0x9E,0x30,}}, {0x3ABB,4,{0x82,0x31,0x9E,0x31,}}, {0x3ABC,4,{0x82,0x31,0x9E,0x32,}}, {0x3ABD,4,{0x82,0x31,0x9E,0x33,}}, {0x3ABE,4,{0x82,0x31,0x9E,0x34,}}, {0x3ABF,4,{0x82,0x31,0x9E,0x35,}}, {0x3AC0,4,{0x82,0x31,0x9E,0x36,}}, {0x3AC1,4,{0x82,0x31,0x9E,0x37,}}, {0x3AC2,4,{0x82,0x31,0x9E,0x38,}}, {0x3AC3,4,{0x82,0x31,0x9E,0x39,}}, {0x3AC4,4,{0x82,0x31,0x9F,0x30,}}, {0x3AC5,4,{0x82,0x31,0x9F,0x31,}}, {0x3AC6,4,{0x82,0x31,0x9F,0x32,}}, {0x3AC7,4,{0x82,0x31,0x9F,0x33,}}, {0x3AC8,4,{0x82,0x31,0x9F,0x34,}}, {0x3AC9,4,{0x82,0x31,0x9F,0x35,}}, {0x3ACA,4,{0x82,0x31,0x9F,0x36,}}, {0x3ACB,4,{0x82,0x31,0x9F,0x37,}}, {0x3ACC,4,{0x82,0x31,0x9F,0x38,}}, {0x3ACD,4,{0x82,0x31,0x9F,0x39,}}, {0x3ACE,4,{0x82,0x31,0xA0,0x30,}}, {0x3ACF,4,{0x82,0x31,0xA0,0x31,}}, {0x3AD0,4,{0x82,0x31,0xA0,0x32,}}, {0x3AD1,4,{0x82,0x31,0xA0,0x33,}}, {0x3AD2,4,{0x82,0x31,0xA0,0x34,}}, {0x3AD3,4,{0x82,0x31,0xA0,0x35,}}, {0x3AD4,4,{0x82,0x31,0xA0,0x36,}}, {0x3AD5,4,{0x82,0x31,0xA0,0x37,}}, {0x3AD6,4,{0x82,0x31,0xA0,0x38,}}, {0x3AD7,4,{0x82,0x31,0xA0,0x39,}}, {0x3AD8,4,{0x82,0x31,0xA1,0x30,}}, {0x3AD9,4,{0x82,0x31,0xA1,0x31,}}, {0x3ADA,4,{0x82,0x31,0xA1,0x32,}}, {0x3ADB,4,{0x82,0x31,0xA1,0x33,}}, {0x3ADC,4,{0x82,0x31,0xA1,0x34,}}, {0x3ADD,4,{0x82,0x31,0xA1,0x35,}}, {0x3ADE,4,{0x82,0x31,0xA1,0x36,}}, {0x3ADF,4,{0x82,0x31,0xA1,0x37,}}, {0x3AE0,4,{0x82,0x31,0xA1,0x38,}}, {0x3AE1,4,{0x82,0x31,0xA1,0x39,}}, {0x3AE2,4,{0x82,0x31,0xA2,0x30,}}, {0x3AE3,4,{0x82,0x31,0xA2,0x31,}}, {0x3AE4,4,{0x82,0x31,0xA2,0x32,}}, {0x3AE5,4,{0x82,0x31,0xA2,0x33,}}, {0x3AE6,4,{0x82,0x31,0xA2,0x34,}}, {0x3AE7,4,{0x82,0x31,0xA2,0x35,}}, {0x3AE8,4,{0x82,0x31,0xA2,0x36,}}, {0x3AE9,4,{0x82,0x31,0xA2,0x37,}}, {0x3AEA,4,{0x82,0x31,0xA2,0x38,}}, {0x3AEB,4,{0x82,0x31,0xA2,0x39,}}, {0x3AEC,4,{0x82,0x31,0xA3,0x30,}}, {0x3AED,4,{0x82,0x31,0xA3,0x31,}}, {0x3AEE,4,{0x82,0x31,0xA3,0x32,}}, {0x3AEF,4,{0x82,0x31,0xA3,0x33,}}, {0x3AF0,4,{0x82,0x31,0xA3,0x34,}}, {0x3AF1,4,{0x82,0x31,0xA3,0x35,}}, {0x3AF2,4,{0x82,0x31,0xA3,0x36,}}, {0x3AF3,4,{0x82,0x31,0xA3,0x37,}}, {0x3AF4,4,{0x82,0x31,0xA3,0x38,}}, {0x3AF5,4,{0x82,0x31,0xA3,0x39,}}, {0x3AF6,4,{0x82,0x31,0xA4,0x30,}}, {0x3AF7,4,{0x82,0x31,0xA4,0x31,}}, {0x3AF8,4,{0x82,0x31,0xA4,0x32,}}, {0x3AF9,4,{0x82,0x31,0xA4,0x33,}}, {0x3AFA,4,{0x82,0x31,0xA4,0x34,}}, {0x3AFB,4,{0x82,0x31,0xA4,0x35,}}, {0x3AFC,4,{0x82,0x31,0xA4,0x36,}}, {0x3AFD,4,{0x82,0x31,0xA4,0x37,}}, {0x3AFE,4,{0x82,0x31,0xA4,0x38,}}, {0x3AFF,4,{0x82,0x31,0xA4,0x39,}}, {0x3B00,4,{0x82,0x31,0xA5,0x30,}}, {0x3B01,4,{0x82,0x31,0xA5,0x31,}}, {0x3B02,4,{0x82,0x31,0xA5,0x32,}}, {0x3B03,4,{0x82,0x31,0xA5,0x33,}}, {0x3B04,4,{0x82,0x31,0xA5,0x34,}}, {0x3B05,4,{0x82,0x31,0xA5,0x35,}}, {0x3B06,4,{0x82,0x31,0xA5,0x36,}}, {0x3B07,4,{0x82,0x31,0xA5,0x37,}}, {0x3B08,4,{0x82,0x31,0xA5,0x38,}}, {0x3B09,4,{0x82,0x31,0xA5,0x39,}}, {0x3B0A,4,{0x82,0x31,0xA6,0x30,}}, {0x3B0B,4,{0x82,0x31,0xA6,0x31,}}, {0x3B0C,4,{0x82,0x31,0xA6,0x32,}}, {0x3B0D,4,{0x82,0x31,0xA6,0x33,}}, {0x3B0E,4,{0x82,0x31,0xA6,0x34,}}, {0x3B0F,4,{0x82,0x31,0xA6,0x35,}}, {0x3B10,4,{0x82,0x31,0xA6,0x36,}}, {0x3B11,4,{0x82,0x31,0xA6,0x37,}}, {0x3B12,4,{0x82,0x31,0xA6,0x38,}}, {0x3B13,4,{0x82,0x31,0xA6,0x39,}}, {0x3B14,4,{0x82,0x31,0xA7,0x30,}}, {0x3B15,4,{0x82,0x31,0xA7,0x31,}}, {0x3B16,4,{0x82,0x31,0xA7,0x32,}}, {0x3B17,4,{0x82,0x31,0xA7,0x33,}}, {0x3B18,4,{0x82,0x31,0xA7,0x34,}}, {0x3B19,4,{0x82,0x31,0xA7,0x35,}}, {0x3B1A,4,{0x82,0x31,0xA7,0x36,}}, {0x3B1B,4,{0x82,0x31,0xA7,0x37,}}, {0x3B1C,4,{0x82,0x31,0xA7,0x38,}}, {0x3B1D,4,{0x82,0x31,0xA7,0x39,}}, {0x3B1E,4,{0x82,0x31,0xA8,0x30,}}, {0x3B1F,4,{0x82,0x31,0xA8,0x31,}}, {0x3B20,4,{0x82,0x31,0xA8,0x32,}}, {0x3B21,4,{0x82,0x31,0xA8,0x33,}}, {0x3B22,4,{0x82,0x31,0xA8,0x34,}}, {0x3B23,4,{0x82,0x31,0xA8,0x35,}}, {0x3B24,4,{0x82,0x31,0xA8,0x36,}}, {0x3B25,4,{0x82,0x31,0xA8,0x37,}}, {0x3B26,4,{0x82,0x31,0xA8,0x38,}}, {0x3B27,4,{0x82,0x31,0xA8,0x39,}}, {0x3B28,4,{0x82,0x31,0xA9,0x30,}}, {0x3B29,4,{0x82,0x31,0xA9,0x31,}}, {0x3B2A,4,{0x82,0x31,0xA9,0x32,}}, {0x3B2B,4,{0x82,0x31,0xA9,0x33,}}, {0x3B2C,4,{0x82,0x31,0xA9,0x34,}}, {0x3B2D,4,{0x82,0x31,0xA9,0x35,}}, {0x3B2E,4,{0x82,0x31,0xA9,0x36,}}, {0x3B2F,4,{0x82,0x31,0xA9,0x37,}}, {0x3B30,4,{0x82,0x31,0xA9,0x38,}}, {0x3B31,4,{0x82,0x31,0xA9,0x39,}}, {0x3B32,4,{0x82,0x31,0xAA,0x30,}}, {0x3B33,4,{0x82,0x31,0xAA,0x31,}}, {0x3B34,4,{0x82,0x31,0xAA,0x32,}}, {0x3B35,4,{0x82,0x31,0xAA,0x33,}}, {0x3B36,4,{0x82,0x31,0xAA,0x34,}}, {0x3B37,4,{0x82,0x31,0xAA,0x35,}}, {0x3B38,4,{0x82,0x31,0xAA,0x36,}}, {0x3B39,4,{0x82,0x31,0xAA,0x37,}}, {0x3B3A,4,{0x82,0x31,0xAA,0x38,}}, {0x3B3B,4,{0x82,0x31,0xAA,0x39,}}, {0x3B3C,4,{0x82,0x31,0xAB,0x30,}}, {0x3B3D,4,{0x82,0x31,0xAB,0x31,}}, {0x3B3E,4,{0x82,0x31,0xAB,0x32,}}, {0x3B3F,4,{0x82,0x31,0xAB,0x33,}}, {0x3B40,4,{0x82,0x31,0xAB,0x34,}}, {0x3B41,4,{0x82,0x31,0xAB,0x35,}}, {0x3B42,4,{0x82,0x31,0xAB,0x36,}}, {0x3B43,4,{0x82,0x31,0xAB,0x37,}}, {0x3B44,4,{0x82,0x31,0xAB,0x38,}}, {0x3B45,4,{0x82,0x31,0xAB,0x39,}}, {0x3B46,4,{0x82,0x31,0xAC,0x30,}}, {0x3B47,4,{0x82,0x31,0xAC,0x31,}}, {0x3B48,4,{0x82,0x31,0xAC,0x32,}}, {0x3B49,4,{0x82,0x31,0xAC,0x33,}}, {0x3B4A,4,{0x82,0x31,0xAC,0x34,}}, {0x3B4B,4,{0x82,0x31,0xAC,0x35,}}, {0x3B4C,4,{0x82,0x31,0xAC,0x36,}}, {0x3B4D,4,{0x82,0x31,0xAC,0x37,}}, {0x3B4E,2,{0xFE,0x68,0x00,0x00,}}, {0x3B4F,4,{0x82,0x31,0xAC,0x38,}}, {0x3B50,4,{0x82,0x31,0xAC,0x39,}}, {0x3B51,4,{0x82,0x31,0xAD,0x30,}}, {0x3B52,4,{0x82,0x31,0xAD,0x31,}}, {0x3B53,4,{0x82,0x31,0xAD,0x32,}}, {0x3B54,4,{0x82,0x31,0xAD,0x33,}}, {0x3B55,4,{0x82,0x31,0xAD,0x34,}}, {0x3B56,4,{0x82,0x31,0xAD,0x35,}}, {0x3B57,4,{0x82,0x31,0xAD,0x36,}}, {0x3B58,4,{0x82,0x31,0xAD,0x37,}}, {0x3B59,4,{0x82,0x31,0xAD,0x38,}}, {0x3B5A,4,{0x82,0x31,0xAD,0x39,}}, {0x3B5B,4,{0x82,0x31,0xAE,0x30,}}, {0x3B5C,4,{0x82,0x31,0xAE,0x31,}}, {0x3B5D,4,{0x82,0x31,0xAE,0x32,}}, {0x3B5E,4,{0x82,0x31,0xAE,0x33,}}, {0x3B5F,4,{0x82,0x31,0xAE,0x34,}}, {0x3B60,4,{0x82,0x31,0xAE,0x35,}}, {0x3B61,4,{0x82,0x31,0xAE,0x36,}}, {0x3B62,4,{0x82,0x31,0xAE,0x37,}}, {0x3B63,4,{0x82,0x31,0xAE,0x38,}}, {0x3B64,4,{0x82,0x31,0xAE,0x39,}}, {0x3B65,4,{0x82,0x31,0xAF,0x30,}}, {0x3B66,4,{0x82,0x31,0xAF,0x31,}}, {0x3B67,4,{0x82,0x31,0xAF,0x32,}}, {0x3B68,4,{0x82,0x31,0xAF,0x33,}}, {0x3B69,4,{0x82,0x31,0xAF,0x34,}}, {0x3B6A,4,{0x82,0x31,0xAF,0x35,}}, {0x3B6B,4,{0x82,0x31,0xAF,0x36,}}, {0x3B6C,4,{0x82,0x31,0xAF,0x37,}}, {0x3B6D,4,{0x82,0x31,0xAF,0x38,}}, {0x3B6E,4,{0x82,0x31,0xAF,0x39,}}, {0x3B6F,4,{0x82,0x31,0xB0,0x30,}}, {0x3B70,4,{0x82,0x31,0xB0,0x31,}}, {0x3B71,4,{0x82,0x31,0xB0,0x32,}}, {0x3B72,4,{0x82,0x31,0xB0,0x33,}}, {0x3B73,4,{0x82,0x31,0xB0,0x34,}}, {0x3B74,4,{0x82,0x31,0xB0,0x35,}}, {0x3B75,4,{0x82,0x31,0xB0,0x36,}}, {0x3B76,4,{0x82,0x31,0xB0,0x37,}}, {0x3B77,4,{0x82,0x31,0xB0,0x38,}}, {0x3B78,4,{0x82,0x31,0xB0,0x39,}}, {0x3B79,4,{0x82,0x31,0xB1,0x30,}}, {0x3B7A,4,{0x82,0x31,0xB1,0x31,}}, {0x3B7B,4,{0x82,0x31,0xB1,0x32,}}, {0x3B7C,4,{0x82,0x31,0xB1,0x33,}}, {0x3B7D,4,{0x82,0x31,0xB1,0x34,}}, {0x3B7E,4,{0x82,0x31,0xB1,0x35,}}, {0x3B7F,4,{0x82,0x31,0xB1,0x36,}}, {0x3B80,4,{0x82,0x31,0xB1,0x37,}}, {0x3B81,4,{0x82,0x31,0xB1,0x38,}}, {0x3B82,4,{0x82,0x31,0xB1,0x39,}}, {0x3B83,4,{0x82,0x31,0xB2,0x30,}}, {0x3B84,4,{0x82,0x31,0xB2,0x31,}}, {0x3B85,4,{0x82,0x31,0xB2,0x32,}}, {0x3B86,4,{0x82,0x31,0xB2,0x33,}}, {0x3B87,4,{0x82,0x31,0xB2,0x34,}}, {0x3B88,4,{0x82,0x31,0xB2,0x35,}}, {0x3B89,4,{0x82,0x31,0xB2,0x36,}}, {0x3B8A,4,{0x82,0x31,0xB2,0x37,}}, {0x3B8B,4,{0x82,0x31,0xB2,0x38,}}, {0x3B8C,4,{0x82,0x31,0xB2,0x39,}}, {0x3B8D,4,{0x82,0x31,0xB3,0x30,}}, {0x3B8E,4,{0x82,0x31,0xB3,0x31,}}, {0x3B8F,4,{0x82,0x31,0xB3,0x32,}}, {0x3B90,4,{0x82,0x31,0xB3,0x33,}}, {0x3B91,4,{0x82,0x31,0xB3,0x34,}}, {0x3B92,4,{0x82,0x31,0xB3,0x35,}}, {0x3B93,4,{0x82,0x31,0xB3,0x36,}}, {0x3B94,4,{0x82,0x31,0xB3,0x37,}}, {0x3B95,4,{0x82,0x31,0xB3,0x38,}}, {0x3B96,4,{0x82,0x31,0xB3,0x39,}}, {0x3B97,4,{0x82,0x31,0xB4,0x30,}}, {0x3B98,4,{0x82,0x31,0xB4,0x31,}}, {0x3B99,4,{0x82,0x31,0xB4,0x32,}}, {0x3B9A,4,{0x82,0x31,0xB4,0x33,}}, {0x3B9B,4,{0x82,0x31,0xB4,0x34,}}, {0x3B9C,4,{0x82,0x31,0xB4,0x35,}}, {0x3B9D,4,{0x82,0x31,0xB4,0x36,}}, {0x3B9E,4,{0x82,0x31,0xB4,0x37,}}, {0x3B9F,4,{0x82,0x31,0xB4,0x38,}}, {0x3BA0,4,{0x82,0x31,0xB4,0x39,}}, {0x3BA1,4,{0x82,0x31,0xB5,0x30,}}, {0x3BA2,4,{0x82,0x31,0xB5,0x31,}}, {0x3BA3,4,{0x82,0x31,0xB5,0x32,}}, {0x3BA4,4,{0x82,0x31,0xB5,0x33,}}, {0x3BA5,4,{0x82,0x31,0xB5,0x34,}}, {0x3BA6,4,{0x82,0x31,0xB5,0x35,}}, {0x3BA7,4,{0x82,0x31,0xB5,0x36,}}, {0x3BA8,4,{0x82,0x31,0xB5,0x37,}}, {0x3BA9,4,{0x82,0x31,0xB5,0x38,}}, {0x3BAA,4,{0x82,0x31,0xB5,0x39,}}, {0x3BAB,4,{0x82,0x31,0xB6,0x30,}}, {0x3BAC,4,{0x82,0x31,0xB6,0x31,}}, {0x3BAD,4,{0x82,0x31,0xB6,0x32,}}, {0x3BAE,4,{0x82,0x31,0xB6,0x33,}}, {0x3BAF,4,{0x82,0x31,0xB6,0x34,}}, {0x3BB0,4,{0x82,0x31,0xB6,0x35,}}, {0x3BB1,4,{0x82,0x31,0xB6,0x36,}}, {0x3BB2,4,{0x82,0x31,0xB6,0x37,}}, {0x3BB3,4,{0x82,0x31,0xB6,0x38,}}, {0x3BB4,4,{0x82,0x31,0xB6,0x39,}}, {0x3BB5,4,{0x82,0x31,0xB7,0x30,}}, {0x3BB6,4,{0x82,0x31,0xB7,0x31,}}, {0x3BB7,4,{0x82,0x31,0xB7,0x32,}}, {0x3BB8,4,{0x82,0x31,0xB7,0x33,}}, {0x3BB9,4,{0x82,0x31,0xB7,0x34,}}, {0x3BBA,4,{0x82,0x31,0xB7,0x35,}}, {0x3BBB,4,{0x82,0x31,0xB7,0x36,}}, {0x3BBC,4,{0x82,0x31,0xB7,0x37,}}, {0x3BBD,4,{0x82,0x31,0xB7,0x38,}}, {0x3BBE,4,{0x82,0x31,0xB7,0x39,}}, {0x3BBF,4,{0x82,0x31,0xB8,0x30,}}, {0x3BC0,4,{0x82,0x31,0xB8,0x31,}}, {0x3BC1,4,{0x82,0x31,0xB8,0x32,}}, {0x3BC2,4,{0x82,0x31,0xB8,0x33,}}, {0x3BC3,4,{0x82,0x31,0xB8,0x34,}}, {0x3BC4,4,{0x82,0x31,0xB8,0x35,}}, {0x3BC5,4,{0x82,0x31,0xB8,0x36,}}, {0x3BC6,4,{0x82,0x31,0xB8,0x37,}}, {0x3BC7,4,{0x82,0x31,0xB8,0x38,}}, {0x3BC8,4,{0x82,0x31,0xB8,0x39,}}, {0x3BC9,4,{0x82,0x31,0xB9,0x30,}}, {0x3BCA,4,{0x82,0x31,0xB9,0x31,}}, {0x3BCB,4,{0x82,0x31,0xB9,0x32,}}, {0x3BCC,4,{0x82,0x31,0xB9,0x33,}}, {0x3BCD,4,{0x82,0x31,0xB9,0x34,}}, {0x3BCE,4,{0x82,0x31,0xB9,0x35,}}, {0x3BCF,4,{0x82,0x31,0xB9,0x36,}}, {0x3BD0,4,{0x82,0x31,0xB9,0x37,}}, {0x3BD1,4,{0x82,0x31,0xB9,0x38,}}, {0x3BD2,4,{0x82,0x31,0xB9,0x39,}}, {0x3BD3,4,{0x82,0x31,0xBA,0x30,}}, {0x3BD4,4,{0x82,0x31,0xBA,0x31,}}, {0x3BD5,4,{0x82,0x31,0xBA,0x32,}}, {0x3BD6,4,{0x82,0x31,0xBA,0x33,}}, {0x3BD7,4,{0x82,0x31,0xBA,0x34,}}, {0x3BD8,4,{0x82,0x31,0xBA,0x35,}}, {0x3BD9,4,{0x82,0x31,0xBA,0x36,}}, {0x3BDA,4,{0x82,0x31,0xBA,0x37,}}, {0x3BDB,4,{0x82,0x31,0xBA,0x38,}}, {0x3BDC,4,{0x82,0x31,0xBA,0x39,}}, {0x3BDD,4,{0x82,0x31,0xBB,0x30,}}, {0x3BDE,4,{0x82,0x31,0xBB,0x31,}}, {0x3BDF,4,{0x82,0x31,0xBB,0x32,}}, {0x3BE0,4,{0x82,0x31,0xBB,0x33,}}, {0x3BE1,4,{0x82,0x31,0xBB,0x34,}}, {0x3BE2,4,{0x82,0x31,0xBB,0x35,}}, {0x3BE3,4,{0x82,0x31,0xBB,0x36,}}, {0x3BE4,4,{0x82,0x31,0xBB,0x37,}}, {0x3BE5,4,{0x82,0x31,0xBB,0x38,}}, {0x3BE6,4,{0x82,0x31,0xBB,0x39,}}, {0x3BE7,4,{0x82,0x31,0xBC,0x30,}}, {0x3BE8,4,{0x82,0x31,0xBC,0x31,}}, {0x3BE9,4,{0x82,0x31,0xBC,0x32,}}, {0x3BEA,4,{0x82,0x31,0xBC,0x33,}}, {0x3BEB,4,{0x82,0x31,0xBC,0x34,}}, {0x3BEC,4,{0x82,0x31,0xBC,0x35,}}, {0x3BED,4,{0x82,0x31,0xBC,0x36,}}, {0x3BEE,4,{0x82,0x31,0xBC,0x37,}}, {0x3BEF,4,{0x82,0x31,0xBC,0x38,}}, {0x3BF0,4,{0x82,0x31,0xBC,0x39,}}, {0x3BF1,4,{0x82,0x31,0xBD,0x30,}}, {0x3BF2,4,{0x82,0x31,0xBD,0x31,}}, {0x3BF3,4,{0x82,0x31,0xBD,0x32,}}, {0x3BF4,4,{0x82,0x31,0xBD,0x33,}}, {0x3BF5,4,{0x82,0x31,0xBD,0x34,}}, {0x3BF6,4,{0x82,0x31,0xBD,0x35,}}, {0x3BF7,4,{0x82,0x31,0xBD,0x36,}}, {0x3BF8,4,{0x82,0x31,0xBD,0x37,}}, {0x3BF9,4,{0x82,0x31,0xBD,0x38,}}, {0x3BFA,4,{0x82,0x31,0xBD,0x39,}}, {0x3BFB,4,{0x82,0x31,0xBE,0x30,}}, {0x3BFC,4,{0x82,0x31,0xBE,0x31,}}, {0x3BFD,4,{0x82,0x31,0xBE,0x32,}}, {0x3BFE,4,{0x82,0x31,0xBE,0x33,}}, {0x3BFF,4,{0x82,0x31,0xBE,0x34,}}, {0x3C00,4,{0x82,0x31,0xBE,0x35,}}, {0x3C01,4,{0x82,0x31,0xBE,0x36,}}, {0x3C02,4,{0x82,0x31,0xBE,0x37,}}, {0x3C03,4,{0x82,0x31,0xBE,0x38,}}, {0x3C04,4,{0x82,0x31,0xBE,0x39,}}, {0x3C05,4,{0x82,0x31,0xBF,0x30,}}, {0x3C06,4,{0x82,0x31,0xBF,0x31,}}, {0x3C07,4,{0x82,0x31,0xBF,0x32,}}, {0x3C08,4,{0x82,0x31,0xBF,0x33,}}, {0x3C09,4,{0x82,0x31,0xBF,0x34,}}, {0x3C0A,4,{0x82,0x31,0xBF,0x35,}}, {0x3C0B,4,{0x82,0x31,0xBF,0x36,}}, {0x3C0C,4,{0x82,0x31,0xBF,0x37,}}, {0x3C0D,4,{0x82,0x31,0xBF,0x38,}}, {0x3C0E,4,{0x82,0x31,0xBF,0x39,}}, {0x3C0F,4,{0x82,0x31,0xC0,0x30,}}, {0x3C10,4,{0x82,0x31,0xC0,0x31,}}, {0x3C11,4,{0x82,0x31,0xC0,0x32,}}, {0x3C12,4,{0x82,0x31,0xC0,0x33,}}, {0x3C13,4,{0x82,0x31,0xC0,0x34,}}, {0x3C14,4,{0x82,0x31,0xC0,0x35,}}, {0x3C15,4,{0x82,0x31,0xC0,0x36,}}, {0x3C16,4,{0x82,0x31,0xC0,0x37,}}, {0x3C17,4,{0x82,0x31,0xC0,0x38,}}, {0x3C18,4,{0x82,0x31,0xC0,0x39,}}, {0x3C19,4,{0x82,0x31,0xC1,0x30,}}, {0x3C1A,4,{0x82,0x31,0xC1,0x31,}}, {0x3C1B,4,{0x82,0x31,0xC1,0x32,}}, {0x3C1C,4,{0x82,0x31,0xC1,0x33,}}, {0x3C1D,4,{0x82,0x31,0xC1,0x34,}}, {0x3C1E,4,{0x82,0x31,0xC1,0x35,}}, {0x3C1F,4,{0x82,0x31,0xC1,0x36,}}, {0x3C20,4,{0x82,0x31,0xC1,0x37,}}, {0x3C21,4,{0x82,0x31,0xC1,0x38,}}, {0x3C22,4,{0x82,0x31,0xC1,0x39,}}, {0x3C23,4,{0x82,0x31,0xC2,0x30,}}, {0x3C24,4,{0x82,0x31,0xC2,0x31,}}, {0x3C25,4,{0x82,0x31,0xC2,0x32,}}, {0x3C26,4,{0x82,0x31,0xC2,0x33,}}, {0x3C27,4,{0x82,0x31,0xC2,0x34,}}, {0x3C28,4,{0x82,0x31,0xC2,0x35,}}, {0x3C29,4,{0x82,0x31,0xC2,0x36,}}, {0x3C2A,4,{0x82,0x31,0xC2,0x37,}}, {0x3C2B,4,{0x82,0x31,0xC2,0x38,}}, {0x3C2C,4,{0x82,0x31,0xC2,0x39,}}, {0x3C2D,4,{0x82,0x31,0xC3,0x30,}}, {0x3C2E,4,{0x82,0x31,0xC3,0x31,}}, {0x3C2F,4,{0x82,0x31,0xC3,0x32,}}, {0x3C30,4,{0x82,0x31,0xC3,0x33,}}, {0x3C31,4,{0x82,0x31,0xC3,0x34,}}, {0x3C32,4,{0x82,0x31,0xC3,0x35,}}, {0x3C33,4,{0x82,0x31,0xC3,0x36,}}, {0x3C34,4,{0x82,0x31,0xC3,0x37,}}, {0x3C35,4,{0x82,0x31,0xC3,0x38,}}, {0x3C36,4,{0x82,0x31,0xC3,0x39,}}, {0x3C37,4,{0x82,0x31,0xC4,0x30,}}, {0x3C38,4,{0x82,0x31,0xC4,0x31,}}, {0x3C39,4,{0x82,0x31,0xC4,0x32,}}, {0x3C3A,4,{0x82,0x31,0xC4,0x33,}}, {0x3C3B,4,{0x82,0x31,0xC4,0x34,}}, {0x3C3C,4,{0x82,0x31,0xC4,0x35,}}, {0x3C3D,4,{0x82,0x31,0xC4,0x36,}}, {0x3C3E,4,{0x82,0x31,0xC4,0x37,}}, {0x3C3F,4,{0x82,0x31,0xC4,0x38,}}, {0x3C40,4,{0x82,0x31,0xC4,0x39,}}, {0x3C41,4,{0x82,0x31,0xC5,0x30,}}, {0x3C42,4,{0x82,0x31,0xC5,0x31,}}, {0x3C43,4,{0x82,0x31,0xC5,0x32,}}, {0x3C44,4,{0x82,0x31,0xC5,0x33,}}, {0x3C45,4,{0x82,0x31,0xC5,0x34,}}, {0x3C46,4,{0x82,0x31,0xC5,0x35,}}, {0x3C47,4,{0x82,0x31,0xC5,0x36,}}, {0x3C48,4,{0x82,0x31,0xC5,0x37,}}, {0x3C49,4,{0x82,0x31,0xC5,0x38,}}, {0x3C4A,4,{0x82,0x31,0xC5,0x39,}}, {0x3C4B,4,{0x82,0x31,0xC6,0x30,}}, {0x3C4C,4,{0x82,0x31,0xC6,0x31,}}, {0x3C4D,4,{0x82,0x31,0xC6,0x32,}}, {0x3C4E,4,{0x82,0x31,0xC6,0x33,}}, {0x3C4F,4,{0x82,0x31,0xC6,0x34,}}, {0x3C50,4,{0x82,0x31,0xC6,0x35,}}, {0x3C51,4,{0x82,0x31,0xC6,0x36,}}, {0x3C52,4,{0x82,0x31,0xC6,0x37,}}, {0x3C53,4,{0x82,0x31,0xC6,0x38,}}, {0x3C54,4,{0x82,0x31,0xC6,0x39,}}, {0x3C55,4,{0x82,0x31,0xC7,0x30,}}, {0x3C56,4,{0x82,0x31,0xC7,0x31,}}, {0x3C57,4,{0x82,0x31,0xC7,0x32,}}, {0x3C58,4,{0x82,0x31,0xC7,0x33,}}, {0x3C59,4,{0x82,0x31,0xC7,0x34,}}, {0x3C5A,4,{0x82,0x31,0xC7,0x35,}}, {0x3C5B,4,{0x82,0x31,0xC7,0x36,}}, {0x3C5C,4,{0x82,0x31,0xC7,0x37,}}, {0x3C5D,4,{0x82,0x31,0xC7,0x38,}}, {0x3C5E,4,{0x82,0x31,0xC7,0x39,}}, {0x3C5F,4,{0x82,0x31,0xC8,0x30,}}, {0x3C60,4,{0x82,0x31,0xC8,0x31,}}, {0x3C61,4,{0x82,0x31,0xC8,0x32,}}, {0x3C62,4,{0x82,0x31,0xC8,0x33,}}, {0x3C63,4,{0x82,0x31,0xC8,0x34,}}, {0x3C64,4,{0x82,0x31,0xC8,0x35,}}, {0x3C65,4,{0x82,0x31,0xC8,0x36,}}, {0x3C66,4,{0x82,0x31,0xC8,0x37,}}, {0x3C67,4,{0x82,0x31,0xC8,0x38,}}, {0x3C68,4,{0x82,0x31,0xC8,0x39,}}, {0x3C69,4,{0x82,0x31,0xC9,0x30,}}, {0x3C6A,4,{0x82,0x31,0xC9,0x31,}}, {0x3C6B,4,{0x82,0x31,0xC9,0x32,}}, {0x3C6C,4,{0x82,0x31,0xC9,0x33,}}, {0x3C6D,4,{0x82,0x31,0xC9,0x34,}}, {0x3C6E,2,{0xFE,0x69,0x00,0x00,}}, {0x3C6F,4,{0x82,0x31,0xC9,0x35,}}, {0x3C70,4,{0x82,0x31,0xC9,0x36,}}, {0x3C71,4,{0x82,0x31,0xC9,0x37,}}, {0x3C72,4,{0x82,0x31,0xC9,0x38,}}, {0x3C73,4,{0x82,0x31,0xC9,0x39,}}, {0x3C74,4,{0x82,0x31,0xCA,0x30,}}, {0x3C75,4,{0x82,0x31,0xCA,0x31,}}, {0x3C76,4,{0x82,0x31,0xCA,0x32,}}, {0x3C77,4,{0x82,0x31,0xCA,0x33,}}, {0x3C78,4,{0x82,0x31,0xCA,0x34,}}, {0x3C79,4,{0x82,0x31,0xCA,0x35,}}, {0x3C7A,4,{0x82,0x31,0xCA,0x36,}}, {0x3C7B,4,{0x82,0x31,0xCA,0x37,}}, {0x3C7C,4,{0x82,0x31,0xCA,0x38,}}, {0x3C7D,4,{0x82,0x31,0xCA,0x39,}}, {0x3C7E,4,{0x82,0x31,0xCB,0x30,}}, {0x3C7F,4,{0x82,0x31,0xCB,0x31,}}, {0x3C80,4,{0x82,0x31,0xCB,0x32,}}, {0x3C81,4,{0x82,0x31,0xCB,0x33,}}, {0x3C82,4,{0x82,0x31,0xCB,0x34,}}, {0x3C83,4,{0x82,0x31,0xCB,0x35,}}, {0x3C84,4,{0x82,0x31,0xCB,0x36,}}, {0x3C85,4,{0x82,0x31,0xCB,0x37,}}, {0x3C86,4,{0x82,0x31,0xCB,0x38,}}, {0x3C87,4,{0x82,0x31,0xCB,0x39,}}, {0x3C88,4,{0x82,0x31,0xCC,0x30,}}, {0x3C89,4,{0x82,0x31,0xCC,0x31,}}, {0x3C8A,4,{0x82,0x31,0xCC,0x32,}}, {0x3C8B,4,{0x82,0x31,0xCC,0x33,}}, {0x3C8C,4,{0x82,0x31,0xCC,0x34,}}, {0x3C8D,4,{0x82,0x31,0xCC,0x35,}}, {0x3C8E,4,{0x82,0x31,0xCC,0x36,}}, {0x3C8F,4,{0x82,0x31,0xCC,0x37,}}, {0x3C90,4,{0x82,0x31,0xCC,0x38,}}, {0x3C91,4,{0x82,0x31,0xCC,0x39,}}, {0x3C92,4,{0x82,0x31,0xCD,0x30,}}, {0x3C93,4,{0x82,0x31,0xCD,0x31,}}, {0x3C94,4,{0x82,0x31,0xCD,0x32,}}, {0x3C95,4,{0x82,0x31,0xCD,0x33,}}, {0x3C96,4,{0x82,0x31,0xCD,0x34,}}, {0x3C97,4,{0x82,0x31,0xCD,0x35,}}, {0x3C98,4,{0x82,0x31,0xCD,0x36,}}, {0x3C99,4,{0x82,0x31,0xCD,0x37,}}, {0x3C9A,4,{0x82,0x31,0xCD,0x38,}}, {0x3C9B,4,{0x82,0x31,0xCD,0x39,}}, {0x3C9C,4,{0x82,0x31,0xCE,0x30,}}, {0x3C9D,4,{0x82,0x31,0xCE,0x31,}}, {0x3C9E,4,{0x82,0x31,0xCE,0x32,}}, {0x3C9F,4,{0x82,0x31,0xCE,0x33,}}, {0x3CA0,4,{0x82,0x31,0xCE,0x34,}}, {0x3CA1,4,{0x82,0x31,0xCE,0x35,}}, {0x3CA2,4,{0x82,0x31,0xCE,0x36,}}, {0x3CA3,4,{0x82,0x31,0xCE,0x37,}}, {0x3CA4,4,{0x82,0x31,0xCE,0x38,}}, {0x3CA5,4,{0x82,0x31,0xCE,0x39,}}, {0x3CA6,4,{0x82,0x31,0xCF,0x30,}}, {0x3CA7,4,{0x82,0x31,0xCF,0x31,}}, {0x3CA8,4,{0x82,0x31,0xCF,0x32,}}, {0x3CA9,4,{0x82,0x31,0xCF,0x33,}}, {0x3CAA,4,{0x82,0x31,0xCF,0x34,}}, {0x3CAB,4,{0x82,0x31,0xCF,0x35,}}, {0x3CAC,4,{0x82,0x31,0xCF,0x36,}}, {0x3CAD,4,{0x82,0x31,0xCF,0x37,}}, {0x3CAE,4,{0x82,0x31,0xCF,0x38,}}, {0x3CAF,4,{0x82,0x31,0xCF,0x39,}}, {0x3CB0,4,{0x82,0x31,0xD0,0x30,}}, {0x3CB1,4,{0x82,0x31,0xD0,0x31,}}, {0x3CB2,4,{0x82,0x31,0xD0,0x32,}}, {0x3CB3,4,{0x82,0x31,0xD0,0x33,}}, {0x3CB4,4,{0x82,0x31,0xD0,0x34,}}, {0x3CB5,4,{0x82,0x31,0xD0,0x35,}}, {0x3CB6,4,{0x82,0x31,0xD0,0x36,}}, {0x3CB7,4,{0x82,0x31,0xD0,0x37,}}, {0x3CB8,4,{0x82,0x31,0xD0,0x38,}}, {0x3CB9,4,{0x82,0x31,0xD0,0x39,}}, {0x3CBA,4,{0x82,0x31,0xD1,0x30,}}, {0x3CBB,4,{0x82,0x31,0xD1,0x31,}}, {0x3CBC,4,{0x82,0x31,0xD1,0x32,}}, {0x3CBD,4,{0x82,0x31,0xD1,0x33,}}, {0x3CBE,4,{0x82,0x31,0xD1,0x34,}}, {0x3CBF,4,{0x82,0x31,0xD1,0x35,}}, {0x3CC0,4,{0x82,0x31,0xD1,0x36,}}, {0x3CC1,4,{0x82,0x31,0xD1,0x37,}}, {0x3CC2,4,{0x82,0x31,0xD1,0x38,}}, {0x3CC3,4,{0x82,0x31,0xD1,0x39,}}, {0x3CC4,4,{0x82,0x31,0xD2,0x30,}}, {0x3CC5,4,{0x82,0x31,0xD2,0x31,}}, {0x3CC6,4,{0x82,0x31,0xD2,0x32,}}, {0x3CC7,4,{0x82,0x31,0xD2,0x33,}}, {0x3CC8,4,{0x82,0x31,0xD2,0x34,}}, {0x3CC9,4,{0x82,0x31,0xD2,0x35,}}, {0x3CCA,4,{0x82,0x31,0xD2,0x36,}}, {0x3CCB,4,{0x82,0x31,0xD2,0x37,}}, {0x3CCC,4,{0x82,0x31,0xD2,0x38,}}, {0x3CCD,4,{0x82,0x31,0xD2,0x39,}}, {0x3CCE,4,{0x82,0x31,0xD3,0x30,}}, {0x3CCF,4,{0x82,0x31,0xD3,0x31,}}, {0x3CD0,4,{0x82,0x31,0xD3,0x32,}}, {0x3CD1,4,{0x82,0x31,0xD3,0x33,}}, {0x3CD2,4,{0x82,0x31,0xD3,0x34,}}, {0x3CD3,4,{0x82,0x31,0xD3,0x35,}}, {0x3CD4,4,{0x82,0x31,0xD3,0x36,}}, {0x3CD5,4,{0x82,0x31,0xD3,0x37,}}, {0x3CD6,4,{0x82,0x31,0xD3,0x38,}}, {0x3CD7,4,{0x82,0x31,0xD3,0x39,}}, {0x3CD8,4,{0x82,0x31,0xD4,0x30,}}, {0x3CD9,4,{0x82,0x31,0xD4,0x31,}}, {0x3CDA,4,{0x82,0x31,0xD4,0x32,}}, {0x3CDB,4,{0x82,0x31,0xD4,0x33,}}, {0x3CDC,4,{0x82,0x31,0xD4,0x34,}}, {0x3CDD,4,{0x82,0x31,0xD4,0x35,}}, {0x3CDE,4,{0x82,0x31,0xD4,0x36,}}, {0x3CDF,4,{0x82,0x31,0xD4,0x37,}}, {0x3CE0,2,{0xFE,0x6A,0x00,0x00,}}, {0x4056,2,{0xFE,0x6F,0x00,0x00,}}, {0x4057,4,{0x82,0x32,0xAF,0x33,}}, {0x4058,4,{0x82,0x32,0xAF,0x34,}}, {0x4059,4,{0x82,0x32,0xAF,0x35,}}, {0x405A,4,{0x82,0x32,0xAF,0x36,}}, {0x405B,4,{0x82,0x32,0xAF,0x37,}}, {0x405C,4,{0x82,0x32,0xAF,0x38,}}, {0x405D,4,{0x82,0x32,0xAF,0x39,}}, {0x405E,4,{0x82,0x32,0xB0,0x30,}}, {0x405F,4,{0x82,0x32,0xB0,0x31,}}, {0x4060,4,{0x82,0x32,0xB0,0x32,}}, {0x4061,4,{0x82,0x32,0xB0,0x33,}}, {0x4062,4,{0x82,0x32,0xB0,0x34,}}, {0x4063,4,{0x82,0x32,0xB0,0x35,}}, {0x4064,4,{0x82,0x32,0xB0,0x36,}}, {0x4065,4,{0x82,0x32,0xB0,0x37,}}, {0x4066,4,{0x82,0x32,0xB0,0x38,}}, {0x4067,4,{0x82,0x32,0xB0,0x39,}}, {0x4068,4,{0x82,0x32,0xB1,0x30,}}, {0x4069,4,{0x82,0x32,0xB1,0x31,}}, {0x406A,4,{0x82,0x32,0xB1,0x32,}}, {0x406B,4,{0x82,0x32,0xB1,0x33,}}, {0x406C,4,{0x82,0x32,0xB1,0x34,}}, {0x406D,4,{0x82,0x32,0xB1,0x35,}}, {0x406E,4,{0x82,0x32,0xB1,0x36,}}, {0x406F,4,{0x82,0x32,0xB1,0x37,}}, {0x4070,4,{0x82,0x32,0xB1,0x38,}}, {0x4071,4,{0x82,0x32,0xB1,0x39,}}, {0x4072,4,{0x82,0x32,0xB2,0x30,}}, {0x4073,4,{0x82,0x32,0xB2,0x31,}}, {0x4074,4,{0x82,0x32,0xB2,0x32,}}, {0x4075,4,{0x82,0x32,0xB2,0x33,}}, {0x4076,4,{0x82,0x32,0xB2,0x34,}}, {0x4077,4,{0x82,0x32,0xB2,0x35,}}, {0x4078,4,{0x82,0x32,0xB2,0x36,}}, {0x4079,4,{0x82,0x32,0xB2,0x37,}}, {0x407A,4,{0x82,0x32,0xB2,0x38,}}, {0x407B,4,{0x82,0x32,0xB2,0x39,}}, {0x407C,4,{0x82,0x32,0xB3,0x30,}}, {0x407D,4,{0x82,0x32,0xB3,0x31,}}, {0x407E,4,{0x82,0x32,0xB3,0x32,}}, {0x407F,4,{0x82,0x32,0xB3,0x33,}}, {0x4080,4,{0x82,0x32,0xB3,0x34,}}, {0x4081,4,{0x82,0x32,0xB3,0x35,}}, {0x4082,4,{0x82,0x32,0xB3,0x36,}}, {0x4083,4,{0x82,0x32,0xB3,0x37,}}, {0x4084,4,{0x82,0x32,0xB3,0x38,}}, {0x4085,4,{0x82,0x32,0xB3,0x39,}}, {0x4086,4,{0x82,0x32,0xB4,0x30,}}, {0x4087,4,{0x82,0x32,0xB4,0x31,}}, {0x4088,4,{0x82,0x32,0xB4,0x32,}}, {0x4089,4,{0x82,0x32,0xB4,0x33,}}, {0x408A,4,{0x82,0x32,0xB4,0x34,}}, {0x408B,4,{0x82,0x32,0xB4,0x35,}}, {0x408C,4,{0x82,0x32,0xB4,0x36,}}, {0x408D,4,{0x82,0x32,0xB4,0x37,}}, {0x408E,4,{0x82,0x32,0xB4,0x38,}}, {0x408F,4,{0x82,0x32,0xB4,0x39,}}, {0x4090,4,{0x82,0x32,0xB5,0x30,}}, {0x4091,4,{0x82,0x32,0xB5,0x31,}}, {0x4092,4,{0x82,0x32,0xB5,0x32,}}, {0x4093,4,{0x82,0x32,0xB5,0x33,}}, {0x4094,4,{0x82,0x32,0xB5,0x34,}}, {0x4095,4,{0x82,0x32,0xB5,0x35,}}, {0x4096,4,{0x82,0x32,0xB5,0x36,}}, {0x4097,4,{0x82,0x32,0xB5,0x37,}}, {0x4098,4,{0x82,0x32,0xB5,0x38,}}, {0x4099,4,{0x82,0x32,0xB5,0x39,}}, {0x409A,4,{0x82,0x32,0xB6,0x30,}}, {0x409B,4,{0x82,0x32,0xB6,0x31,}}, {0x409C,4,{0x82,0x32,0xB6,0x32,}}, {0x409D,4,{0x82,0x32,0xB6,0x33,}}, {0x409E,4,{0x82,0x32,0xB6,0x34,}}, {0x409F,4,{0x82,0x32,0xB6,0x35,}}, {0x40A0,4,{0x82,0x32,0xB6,0x36,}}, {0x40A1,4,{0x82,0x32,0xB6,0x37,}}, {0x40A2,4,{0x82,0x32,0xB6,0x38,}}, {0x40A3,4,{0x82,0x32,0xB6,0x39,}}, {0x40A4,4,{0x82,0x32,0xB7,0x30,}}, {0x40A5,4,{0x82,0x32,0xB7,0x31,}}, {0x40A6,4,{0x82,0x32,0xB7,0x32,}}, {0x40A7,4,{0x82,0x32,0xB7,0x33,}}, {0x40A8,4,{0x82,0x32,0xB7,0x34,}}, {0x40A9,4,{0x82,0x32,0xB7,0x35,}}, {0x40AA,4,{0x82,0x32,0xB7,0x36,}}, {0x40AB,4,{0x82,0x32,0xB7,0x37,}}, {0x40AC,4,{0x82,0x32,0xB7,0x38,}}, {0x40AD,4,{0x82,0x32,0xB7,0x39,}}, {0x40AE,4,{0x82,0x32,0xB8,0x30,}}, {0x40AF,4,{0x82,0x32,0xB8,0x31,}}, {0x40B0,4,{0x82,0x32,0xB8,0x32,}}, {0x40B1,4,{0x82,0x32,0xB8,0x33,}}, {0x40B2,4,{0x82,0x32,0xB8,0x34,}}, {0x40B3,4,{0x82,0x32,0xB8,0x35,}}, {0x40B4,4,{0x82,0x32,0xB8,0x36,}}, {0x40B5,4,{0x82,0x32,0xB8,0x37,}}, {0x40B6,4,{0x82,0x32,0xB8,0x38,}}, {0x40B7,4,{0x82,0x32,0xB8,0x39,}}, {0x40B8,4,{0x82,0x32,0xB9,0x30,}}, {0x40B9,4,{0x82,0x32,0xB9,0x31,}}, {0x40BA,4,{0x82,0x32,0xB9,0x32,}}, {0x40BB,4,{0x82,0x32,0xB9,0x33,}}, {0x40BC,4,{0x82,0x32,0xB9,0x34,}}, {0x40BD,4,{0x82,0x32,0xB9,0x35,}}, {0x40BE,4,{0x82,0x32,0xB9,0x36,}}, {0x40BF,4,{0x82,0x32,0xB9,0x37,}}, {0x40C0,4,{0x82,0x32,0xB9,0x38,}}, {0x40C1,4,{0x82,0x32,0xB9,0x39,}}, {0x40C2,4,{0x82,0x32,0xBA,0x30,}}, {0x40C3,4,{0x82,0x32,0xBA,0x31,}}, {0x40C4,4,{0x82,0x32,0xBA,0x32,}}, {0x40C5,4,{0x82,0x32,0xBA,0x33,}}, {0x40C6,4,{0x82,0x32,0xBA,0x34,}}, {0x40C7,4,{0x82,0x32,0xBA,0x35,}}, {0x40C8,4,{0x82,0x32,0xBA,0x36,}}, {0x40C9,4,{0x82,0x32,0xBA,0x37,}}, {0x40CA,4,{0x82,0x32,0xBA,0x38,}}, {0x40CB,4,{0x82,0x32,0xBA,0x39,}}, {0x40CC,4,{0x82,0x32,0xBB,0x30,}}, {0x40CD,4,{0x82,0x32,0xBB,0x31,}}, {0x40CE,4,{0x82,0x32,0xBB,0x32,}}, {0x40CF,4,{0x82,0x32,0xBB,0x33,}}, {0x40D0,4,{0x82,0x32,0xBB,0x34,}}, {0x40D1,4,{0x82,0x32,0xBB,0x35,}}, {0x40D2,4,{0x82,0x32,0xBB,0x36,}}, {0x40D3,4,{0x82,0x32,0xBB,0x37,}}, {0x40D4,4,{0x82,0x32,0xBB,0x38,}}, {0x40D5,4,{0x82,0x32,0xBB,0x39,}}, {0x40D6,4,{0x82,0x32,0xBC,0x30,}}, {0x40D7,4,{0x82,0x32,0xBC,0x31,}}, {0x40D8,4,{0x82,0x32,0xBC,0x32,}}, {0x40D9,4,{0x82,0x32,0xBC,0x33,}}, {0x40DA,4,{0x82,0x32,0xBC,0x34,}}, {0x40DB,4,{0x82,0x32,0xBC,0x35,}}, {0x40DC,4,{0x82,0x32,0xBC,0x36,}}, {0x40DD,4,{0x82,0x32,0xBC,0x37,}}, {0x40DE,4,{0x82,0x32,0xBC,0x38,}}, {0x40DF,4,{0x82,0x32,0xBC,0x39,}}, {0x40E0,4,{0x82,0x32,0xBD,0x30,}}, {0x40E1,4,{0x82,0x32,0xBD,0x31,}}, {0x40E2,4,{0x82,0x32,0xBD,0x32,}}, {0x40E3,4,{0x82,0x32,0xBD,0x33,}}, {0x40E4,4,{0x82,0x32,0xBD,0x34,}}, {0x40E5,4,{0x82,0x32,0xBD,0x35,}}, {0x40E6,4,{0x82,0x32,0xBD,0x36,}}, {0x40E7,4,{0x82,0x32,0xBD,0x37,}}, {0x40E8,4,{0x82,0x32,0xBD,0x38,}}, {0x40E9,4,{0x82,0x32,0xBD,0x39,}}, {0x40EA,4,{0x82,0x32,0xBE,0x30,}}, {0x40EB,4,{0x82,0x32,0xBE,0x31,}}, {0x40EC,4,{0x82,0x32,0xBE,0x32,}}, {0x40ED,4,{0x82,0x32,0xBE,0x33,}}, {0x40EE,4,{0x82,0x32,0xBE,0x34,}}, {0x40EF,4,{0x82,0x32,0xBE,0x35,}}, {0x40F0,4,{0x82,0x32,0xBE,0x36,}}, {0x40F1,4,{0x82,0x32,0xBE,0x37,}}, {0x40F2,4,{0x82,0x32,0xBE,0x38,}}, {0x40F3,4,{0x82,0x32,0xBE,0x39,}}, {0x40F4,4,{0x82,0x32,0xBF,0x30,}}, {0x40F5,4,{0x82,0x32,0xBF,0x31,}}, {0x40F6,4,{0x82,0x32,0xBF,0x32,}}, {0x40F7,4,{0x82,0x32,0xBF,0x33,}}, {0x40F8,4,{0x82,0x32,0xBF,0x34,}}, {0x40F9,4,{0x82,0x32,0xBF,0x35,}}, {0x40FA,4,{0x82,0x32,0xBF,0x36,}}, {0x40FB,4,{0x82,0x32,0xBF,0x37,}}, {0x40FC,4,{0x82,0x32,0xBF,0x38,}}, {0x40FD,4,{0x82,0x32,0xBF,0x39,}}, {0x40FE,4,{0x82,0x32,0xC0,0x30,}}, {0x40FF,4,{0x82,0x32,0xC0,0x31,}}, {0x4100,4,{0x82,0x32,0xC0,0x32,}}, {0x4101,4,{0x82,0x32,0xC0,0x33,}}, {0x4102,4,{0x82,0x32,0xC0,0x34,}}, {0x4103,4,{0x82,0x32,0xC0,0x35,}}, {0x4104,4,{0x82,0x32,0xC0,0x36,}}, {0x4105,4,{0x82,0x32,0xC0,0x37,}}, {0x4106,4,{0x82,0x32,0xC0,0x38,}}, {0x4107,4,{0x82,0x32,0xC0,0x39,}}, {0x4108,4,{0x82,0x32,0xC1,0x30,}}, {0x4109,4,{0x82,0x32,0xC1,0x31,}}, {0x410A,4,{0x82,0x32,0xC1,0x32,}}, {0x410B,4,{0x82,0x32,0xC1,0x33,}}, {0x410C,4,{0x82,0x32,0xC1,0x34,}}, {0x410D,4,{0x82,0x32,0xC1,0x35,}}, {0x410E,4,{0x82,0x32,0xC1,0x36,}}, {0x410F,4,{0x82,0x32,0xC1,0x37,}}, {0x4110,4,{0x82,0x32,0xC1,0x38,}}, {0x4111,4,{0x82,0x32,0xC1,0x39,}}, {0x4112,4,{0x82,0x32,0xC2,0x30,}}, {0x4113,4,{0x82,0x32,0xC2,0x31,}}, {0x4114,4,{0x82,0x32,0xC2,0x32,}}, {0x4115,4,{0x82,0x32,0xC2,0x33,}}, {0x4116,4,{0x82,0x32,0xC2,0x34,}}, {0x4117,4,{0x82,0x32,0xC2,0x35,}}, {0x4118,4,{0x82,0x32,0xC2,0x36,}}, {0x4119,4,{0x82,0x32,0xC2,0x37,}}, {0x411A,4,{0x82,0x32,0xC2,0x38,}}, {0x411B,4,{0x82,0x32,0xC2,0x39,}}, {0x411C,4,{0x82,0x32,0xC3,0x30,}}, {0x411D,4,{0x82,0x32,0xC3,0x31,}}, {0x411E,4,{0x82,0x32,0xC3,0x32,}}, {0x411F,4,{0x82,0x32,0xC3,0x33,}}, {0x4120,4,{0x82,0x32,0xC3,0x34,}}, {0x4121,4,{0x82,0x32,0xC3,0x35,}}, {0x4122,4,{0x82,0x32,0xC3,0x36,}}, {0x4123,4,{0x82,0x32,0xC3,0x37,}}, {0x4124,4,{0x82,0x32,0xC3,0x38,}}, {0x4125,4,{0x82,0x32,0xC3,0x39,}}, {0x4126,4,{0x82,0x32,0xC4,0x30,}}, {0x4127,4,{0x82,0x32,0xC4,0x31,}}, {0x4128,4,{0x82,0x32,0xC4,0x32,}}, {0x4129,4,{0x82,0x32,0xC4,0x33,}}, {0x412A,4,{0x82,0x32,0xC4,0x34,}}, {0x412B,4,{0x82,0x32,0xC4,0x35,}}, {0x412C,4,{0x82,0x32,0xC4,0x36,}}, {0x412D,4,{0x82,0x32,0xC4,0x37,}}, {0x412E,4,{0x82,0x32,0xC4,0x38,}}, {0x412F,4,{0x82,0x32,0xC4,0x39,}}, {0x4130,4,{0x82,0x32,0xC5,0x30,}}, {0x4131,4,{0x82,0x32,0xC5,0x31,}}, {0x4132,4,{0x82,0x32,0xC5,0x32,}}, {0x4133,4,{0x82,0x32,0xC5,0x33,}}, {0x4134,4,{0x82,0x32,0xC5,0x34,}}, {0x4135,4,{0x82,0x32,0xC5,0x35,}}, {0x4136,4,{0x82,0x32,0xC5,0x36,}}, {0x4137,4,{0x82,0x32,0xC5,0x37,}}, {0x4138,4,{0x82,0x32,0xC5,0x38,}}, {0x4139,4,{0x82,0x32,0xC5,0x39,}}, {0x413A,4,{0x82,0x32,0xC6,0x30,}}, {0x413B,4,{0x82,0x32,0xC6,0x31,}}, {0x413C,4,{0x82,0x32,0xC6,0x32,}}, {0x413D,4,{0x82,0x32,0xC6,0x33,}}, {0x413E,4,{0x82,0x32,0xC6,0x34,}}, {0x413F,4,{0x82,0x32,0xC6,0x35,}}, {0x4140,4,{0x82,0x32,0xC6,0x36,}}, {0x4141,4,{0x82,0x32,0xC6,0x37,}}, {0x4142,4,{0x82,0x32,0xC6,0x38,}}, {0x4143,4,{0x82,0x32,0xC6,0x39,}}, {0x4144,4,{0x82,0x32,0xC7,0x30,}}, {0x4145,4,{0x82,0x32,0xC7,0x31,}}, {0x4146,4,{0x82,0x32,0xC7,0x32,}}, {0x4147,4,{0x82,0x32,0xC7,0x33,}}, {0x4148,4,{0x82,0x32,0xC7,0x34,}}, {0x4149,4,{0x82,0x32,0xC7,0x35,}}, {0x414A,4,{0x82,0x32,0xC7,0x36,}}, {0x414B,4,{0x82,0x32,0xC7,0x37,}}, {0x414C,4,{0x82,0x32,0xC7,0x38,}}, {0x414D,4,{0x82,0x32,0xC7,0x39,}}, {0x414E,4,{0x82,0x32,0xC8,0x30,}}, {0x414F,4,{0x82,0x32,0xC8,0x31,}}, {0x4150,4,{0x82,0x32,0xC8,0x32,}}, {0x4151,4,{0x82,0x32,0xC8,0x33,}}, {0x4152,4,{0x82,0x32,0xC8,0x34,}}, {0x4153,4,{0x82,0x32,0xC8,0x35,}}, {0x4154,4,{0x82,0x32,0xC8,0x36,}}, {0x4155,4,{0x82,0x32,0xC8,0x37,}}, {0x4156,4,{0x82,0x32,0xC8,0x38,}}, {0x4157,4,{0x82,0x32,0xC8,0x39,}}, {0x4158,4,{0x82,0x32,0xC9,0x30,}}, {0x4159,4,{0x82,0x32,0xC9,0x31,}}, {0x415A,4,{0x82,0x32,0xC9,0x32,}}, {0x415B,4,{0x82,0x32,0xC9,0x33,}}, {0x415C,4,{0x82,0x32,0xC9,0x34,}}, {0x415D,4,{0x82,0x32,0xC9,0x35,}}, {0x415E,4,{0x82,0x32,0xC9,0x36,}}, {0x415F,2,{0xFE,0x70,0x00,0x00,}}, {0x4337,2,{0xFE,0x72,0x00,0x00,}}, {0x4338,4,{0x82,0x32,0xF8,0x38,}}, {0x4339,4,{0x82,0x32,0xF8,0x39,}}, {0x433A,4,{0x82,0x32,0xF9,0x30,}}, {0x433B,4,{0x82,0x32,0xF9,0x31,}}, {0x433C,4,{0x82,0x32,0xF9,0x32,}}, {0x433D,4,{0x82,0x32,0xF9,0x33,}}, {0x433E,4,{0x82,0x32,0xF9,0x34,}}, {0x433F,4,{0x82,0x32,0xF9,0x35,}}, {0x4340,4,{0x82,0x32,0xF9,0x36,}}, {0x4341,4,{0x82,0x32,0xF9,0x37,}}, {0x4342,4,{0x82,0x32,0xF9,0x38,}}, {0x4343,4,{0x82,0x32,0xF9,0x39,}}, {0x4344,4,{0x82,0x32,0xFA,0x30,}}, {0x4345,4,{0x82,0x32,0xFA,0x31,}}, {0x4346,4,{0x82,0x32,0xFA,0x32,}}, {0x4347,4,{0x82,0x32,0xFA,0x33,}}, {0x4348,4,{0x82,0x32,0xFA,0x34,}}, {0x4349,4,{0x82,0x32,0xFA,0x35,}}, {0x434A,4,{0x82,0x32,0xFA,0x36,}}, {0x434B,4,{0x82,0x32,0xFA,0x37,}}, {0x434C,4,{0x82,0x32,0xFA,0x38,}}, {0x434D,4,{0x82,0x32,0xFA,0x39,}}, {0x434E,4,{0x82,0x32,0xFB,0x30,}}, {0x434F,4,{0x82,0x32,0xFB,0x31,}}, {0x4350,4,{0x82,0x32,0xFB,0x32,}}, {0x4351,4,{0x82,0x32,0xFB,0x33,}}, {0x4352,4,{0x82,0x32,0xFB,0x34,}}, {0x4353,4,{0x82,0x32,0xFB,0x35,}}, {0x4354,4,{0x82,0x32,0xFB,0x36,}}, {0x4355,4,{0x82,0x32,0xFB,0x37,}}, {0x4356,4,{0x82,0x32,0xFB,0x38,}}, {0x4357,4,{0x82,0x32,0xFB,0x39,}}, {0x4358,4,{0x82,0x32,0xFC,0x30,}}, {0x4359,4,{0x82,0x32,0xFC,0x31,}}, {0x435A,4,{0x82,0x32,0xFC,0x32,}}, {0x435B,4,{0x82,0x32,0xFC,0x33,}}, {0x435C,4,{0x82,0x32,0xFC,0x34,}}, {0x435D,4,{0x82,0x32,0xFC,0x35,}}, {0x435E,4,{0x82,0x32,0xFC,0x36,}}, {0x435F,4,{0x82,0x32,0xFC,0x37,}}, {0x4360,4,{0x82,0x32,0xFC,0x38,}}, {0x4361,4,{0x82,0x32,0xFC,0x39,}}, {0x4362,4,{0x82,0x32,0xFD,0x30,}}, {0x4363,4,{0x82,0x32,0xFD,0x31,}}, {0x4364,4,{0x82,0x32,0xFD,0x32,}}, {0x4365,4,{0x82,0x32,0xFD,0x33,}}, {0x4366,4,{0x82,0x32,0xFD,0x34,}}, {0x4367,4,{0x82,0x32,0xFD,0x35,}}, {0x4368,4,{0x82,0x32,0xFD,0x36,}}, {0x4369,4,{0x82,0x32,0xFD,0x37,}}, {0x436A,4,{0x82,0x32,0xFD,0x38,}}, {0x436B,4,{0x82,0x32,0xFD,0x39,}}, {0x436C,4,{0x82,0x32,0xFE,0x30,}}, {0x436D,4,{0x82,0x32,0xFE,0x31,}}, {0x436E,4,{0x82,0x32,0xFE,0x32,}}, {0x436F,4,{0x82,0x32,0xFE,0x33,}}, {0x4370,4,{0x82,0x32,0xFE,0x34,}}, {0x4371,4,{0x82,0x32,0xFE,0x35,}}, {0x4372,4,{0x82,0x32,0xFE,0x36,}}, {0x4373,4,{0x82,0x32,0xFE,0x37,}}, {0x4374,4,{0x82,0x32,0xFE,0x38,}}, {0x4375,4,{0x82,0x32,0xFE,0x39,}}, {0x4376,4,{0x82,0x33,0x81,0x30,}}, {0x4377,4,{0x82,0x33,0x81,0x31,}}, {0x4378,4,{0x82,0x33,0x81,0x32,}}, {0x4379,4,{0x82,0x33,0x81,0x33,}}, {0x437A,4,{0x82,0x33,0x81,0x34,}}, {0x437B,4,{0x82,0x33,0x81,0x35,}}, {0x437C,4,{0x82,0x33,0x81,0x36,}}, {0x437D,4,{0x82,0x33,0x81,0x37,}}, {0x437E,4,{0x82,0x33,0x81,0x38,}}, {0x437F,4,{0x82,0x33,0x81,0x39,}}, {0x4380,4,{0x82,0x33,0x82,0x30,}}, {0x4381,4,{0x82,0x33,0x82,0x31,}}, {0x4382,4,{0x82,0x33,0x82,0x32,}}, {0x4383,4,{0x82,0x33,0x82,0x33,}}, {0x4384,4,{0x82,0x33,0x82,0x34,}}, {0x4385,4,{0x82,0x33,0x82,0x35,}}, {0x4386,4,{0x82,0x33,0x82,0x36,}}, {0x4387,4,{0x82,0x33,0x82,0x37,}}, {0x4388,4,{0x82,0x33,0x82,0x38,}}, {0x4389,4,{0x82,0x33,0x82,0x39,}}, {0x438A,4,{0x82,0x33,0x83,0x30,}}, {0x438B,4,{0x82,0x33,0x83,0x31,}}, {0x438C,4,{0x82,0x33,0x83,0x32,}}, {0x438D,4,{0x82,0x33,0x83,0x33,}}, {0x438E,4,{0x82,0x33,0x83,0x34,}}, {0x438F,4,{0x82,0x33,0x83,0x35,}}, {0x4390,4,{0x82,0x33,0x83,0x36,}}, {0x4391,4,{0x82,0x33,0x83,0x37,}}, {0x4392,4,{0x82,0x33,0x83,0x38,}}, {0x4393,4,{0x82,0x33,0x83,0x39,}}, {0x4394,4,{0x82,0x33,0x84,0x30,}}, {0x4395,4,{0x82,0x33,0x84,0x31,}}, {0x4396,4,{0x82,0x33,0x84,0x32,}}, {0x4397,4,{0x82,0x33,0x84,0x33,}}, {0x4398,4,{0x82,0x33,0x84,0x34,}}, {0x4399,4,{0x82,0x33,0x84,0x35,}}, {0x439A,4,{0x82,0x33,0x84,0x36,}}, {0x439B,4,{0x82,0x33,0x84,0x37,}}, {0x439C,4,{0x82,0x33,0x84,0x38,}}, {0x439D,4,{0x82,0x33,0x84,0x39,}}, {0x439E,4,{0x82,0x33,0x85,0x30,}}, {0x439F,4,{0x82,0x33,0x85,0x31,}}, {0x43A0,4,{0x82,0x33,0x85,0x32,}}, {0x43A1,4,{0x82,0x33,0x85,0x33,}}, {0x43A2,4,{0x82,0x33,0x85,0x34,}}, {0x43A3,4,{0x82,0x33,0x85,0x35,}}, {0x43A4,4,{0x82,0x33,0x85,0x36,}}, {0x43A5,4,{0x82,0x33,0x85,0x37,}}, {0x43A6,4,{0x82,0x33,0x85,0x38,}}, {0x43A7,4,{0x82,0x33,0x85,0x39,}}, {0x43A8,4,{0x82,0x33,0x86,0x30,}}, {0x43A9,4,{0x82,0x33,0x86,0x31,}}, {0x43AA,4,{0x82,0x33,0x86,0x32,}}, {0x43AB,4,{0x82,0x33,0x86,0x33,}}, {0x43AC,2,{0xFE,0x78,0x00,0x00,}}, {0x43AD,4,{0x82,0x33,0x86,0x34,}}, {0x43AE,4,{0x82,0x33,0x86,0x35,}}, {0x43AF,4,{0x82,0x33,0x86,0x36,}}, {0x43B0,4,{0x82,0x33,0x86,0x37,}}, {0x43B1,2,{0xFE,0x77,0x00,0x00,}}, {0x43B2,4,{0x82,0x33,0x86,0x38,}}, {0x43B3,4,{0x82,0x33,0x86,0x39,}}, {0x43B4,4,{0x82,0x33,0x87,0x30,}}, {0x43B5,4,{0x82,0x33,0x87,0x31,}}, {0x43B6,4,{0x82,0x33,0x87,0x32,}}, {0x43B7,4,{0x82,0x33,0x87,0x33,}}, {0x43B8,4,{0x82,0x33,0x87,0x34,}}, {0x43B9,4,{0x82,0x33,0x87,0x35,}}, {0x43BA,4,{0x82,0x33,0x87,0x36,}}, {0x43BB,4,{0x82,0x33,0x87,0x37,}}, {0x43BC,4,{0x82,0x33,0x87,0x38,}}, {0x43BD,4,{0x82,0x33,0x87,0x39,}}, {0x43BE,4,{0x82,0x33,0x88,0x30,}}, {0x43BF,4,{0x82,0x33,0x88,0x31,}}, {0x43C0,4,{0x82,0x33,0x88,0x32,}}, {0x43C1,4,{0x82,0x33,0x88,0x33,}}, {0x43C2,4,{0x82,0x33,0x88,0x34,}}, {0x43C3,4,{0x82,0x33,0x88,0x35,}}, {0x43C4,4,{0x82,0x33,0x88,0x36,}}, {0x43C5,4,{0x82,0x33,0x88,0x37,}}, {0x43C6,4,{0x82,0x33,0x88,0x38,}}, {0x43C7,4,{0x82,0x33,0x88,0x39,}}, {0x43C8,4,{0x82,0x33,0x89,0x30,}}, {0x43C9,4,{0x82,0x33,0x89,0x31,}}, {0x43CA,4,{0x82,0x33,0x89,0x32,}}, {0x43CB,4,{0x82,0x33,0x89,0x33,}}, {0x43CC,4,{0x82,0x33,0x89,0x34,}}, {0x43CD,4,{0x82,0x33,0x89,0x35,}}, {0x43CE,4,{0x82,0x33,0x89,0x36,}}, {0x43CF,4,{0x82,0x33,0x89,0x37,}}, {0x43D0,4,{0x82,0x33,0x89,0x38,}}, {0x43D1,4,{0x82,0x33,0x89,0x39,}}, {0x43D2,4,{0x82,0x33,0x8A,0x30,}}, {0x43D3,4,{0x82,0x33,0x8A,0x31,}}, {0x43D4,4,{0x82,0x33,0x8A,0x32,}}, {0x43D5,4,{0x82,0x33,0x8A,0x33,}}, {0x43D6,4,{0x82,0x33,0x8A,0x34,}}, {0x43D7,4,{0x82,0x33,0x8A,0x35,}}, {0x43D8,4,{0x82,0x33,0x8A,0x36,}}, {0x43D9,4,{0x82,0x33,0x8A,0x37,}}, {0x43DA,4,{0x82,0x33,0x8A,0x38,}}, {0x43DB,4,{0x82,0x33,0x8A,0x39,}}, {0x43DC,4,{0x82,0x33,0x8B,0x30,}}, {0x43DD,2,{0xFE,0x7A,0x00,0x00,}}, {0x43DE,4,{0x82,0x33,0x8B,0x31,}}, {0x43DF,4,{0x82,0x33,0x8B,0x32,}}, {0x43E0,4,{0x82,0x33,0x8B,0x33,}}, {0x43E1,4,{0x82,0x33,0x8B,0x34,}}, {0x43E2,4,{0x82,0x33,0x8B,0x35,}}, {0x43E3,4,{0x82,0x33,0x8B,0x36,}}, {0x43E4,4,{0x82,0x33,0x8B,0x37,}}, {0x43E5,4,{0x82,0x33,0x8B,0x38,}}, {0x43E6,4,{0x82,0x33,0x8B,0x39,}}, {0x43E7,4,{0x82,0x33,0x8C,0x30,}}, {0x43E8,4,{0x82,0x33,0x8C,0x31,}}, {0x43E9,4,{0x82,0x33,0x8C,0x32,}}, {0x43EA,4,{0x82,0x33,0x8C,0x33,}}, {0x43EB,4,{0x82,0x33,0x8C,0x34,}}, {0x43EC,4,{0x82,0x33,0x8C,0x35,}}, {0x43ED,4,{0x82,0x33,0x8C,0x36,}}, {0x43EE,4,{0x82,0x33,0x8C,0x37,}}, {0x43EF,4,{0x82,0x33,0x8C,0x38,}}, {0x43F0,4,{0x82,0x33,0x8C,0x39,}}, {0x43F1,4,{0x82,0x33,0x8D,0x30,}}, {0x43F2,4,{0x82,0x33,0x8D,0x31,}}, {0x43F3,4,{0x82,0x33,0x8D,0x32,}}, {0x43F4,4,{0x82,0x33,0x8D,0x33,}}, {0x43F5,4,{0x82,0x33,0x8D,0x34,}}, {0x43F6,4,{0x82,0x33,0x8D,0x35,}}, {0x43F7,4,{0x82,0x33,0x8D,0x36,}}, {0x43F8,4,{0x82,0x33,0x8D,0x37,}}, {0x43F9,4,{0x82,0x33,0x8D,0x38,}}, {0x43FA,4,{0x82,0x33,0x8D,0x39,}}, {0x43FB,4,{0x82,0x33,0x8E,0x30,}}, {0x43FC,4,{0x82,0x33,0x8E,0x31,}}, {0x43FD,4,{0x82,0x33,0x8E,0x32,}}, {0x43FE,4,{0x82,0x33,0x8E,0x33,}}, {0x43FF,4,{0x82,0x33,0x8E,0x34,}}, {0x4400,4,{0x82,0x33,0x8E,0x35,}}, {0x4401,4,{0x82,0x33,0x8E,0x36,}}, {0x4402,4,{0x82,0x33,0x8E,0x37,}}, {0x4403,4,{0x82,0x33,0x8E,0x38,}}, {0x4404,4,{0x82,0x33,0x8E,0x39,}}, {0x4405,4,{0x82,0x33,0x8F,0x30,}}, {0x4406,4,{0x82,0x33,0x8F,0x31,}}, {0x4407,4,{0x82,0x33,0x8F,0x32,}}, {0x4408,4,{0x82,0x33,0x8F,0x33,}}, {0x4409,4,{0x82,0x33,0x8F,0x34,}}, {0x440A,4,{0x82,0x33,0x8F,0x35,}}, {0x440B,4,{0x82,0x33,0x8F,0x36,}}, {0x440C,4,{0x82,0x33,0x8F,0x37,}}, {0x440D,4,{0x82,0x33,0x8F,0x38,}}, {0x440E,4,{0x82,0x33,0x8F,0x39,}}, {0x440F,4,{0x82,0x33,0x90,0x30,}}, {0x4410,4,{0x82,0x33,0x90,0x31,}}, {0x4411,4,{0x82,0x33,0x90,0x32,}}, {0x4412,4,{0x82,0x33,0x90,0x33,}}, {0x4413,4,{0x82,0x33,0x90,0x34,}}, {0x4414,4,{0x82,0x33,0x90,0x35,}}, {0x4415,4,{0x82,0x33,0x90,0x36,}}, {0x4416,4,{0x82,0x33,0x90,0x37,}}, {0x4417,4,{0x82,0x33,0x90,0x38,}}, {0x4418,4,{0x82,0x33,0x90,0x39,}}, {0x4419,4,{0x82,0x33,0x91,0x30,}}, {0x441A,4,{0x82,0x33,0x91,0x31,}}, {0x441B,4,{0x82,0x33,0x91,0x32,}}, {0x441C,4,{0x82,0x33,0x91,0x33,}}, {0x441D,4,{0x82,0x33,0x91,0x34,}}, {0x441E,4,{0x82,0x33,0x91,0x35,}}, {0x441F,4,{0x82,0x33,0x91,0x36,}}, {0x4420,4,{0x82,0x33,0x91,0x37,}}, {0x4421,4,{0x82,0x33,0x91,0x38,}}, {0x4422,4,{0x82,0x33,0x91,0x39,}}, {0x4423,4,{0x82,0x33,0x92,0x30,}}, {0x4424,4,{0x82,0x33,0x92,0x31,}}, {0x4425,4,{0x82,0x33,0x92,0x32,}}, {0x4426,4,{0x82,0x33,0x92,0x33,}}, {0x4427,4,{0x82,0x33,0x92,0x34,}}, {0x4428,4,{0x82,0x33,0x92,0x35,}}, {0x4429,4,{0x82,0x33,0x92,0x36,}}, {0x442A,4,{0x82,0x33,0x92,0x37,}}, {0x442B,4,{0x82,0x33,0x92,0x38,}}, {0x442C,4,{0x82,0x33,0x92,0x39,}}, {0x442D,4,{0x82,0x33,0x93,0x30,}}, {0x442E,4,{0x82,0x33,0x93,0x31,}}, {0x442F,4,{0x82,0x33,0x93,0x32,}}, {0x4430,4,{0x82,0x33,0x93,0x33,}}, {0x4431,4,{0x82,0x33,0x93,0x34,}}, {0x4432,4,{0x82,0x33,0x93,0x35,}}, {0x4433,4,{0x82,0x33,0x93,0x36,}}, {0x4434,4,{0x82,0x33,0x93,0x37,}}, {0x4435,4,{0x82,0x33,0x93,0x38,}}, {0x4436,4,{0x82,0x33,0x93,0x39,}}, {0x4437,4,{0x82,0x33,0x94,0x30,}}, {0x4438,4,{0x82,0x33,0x94,0x31,}}, {0x4439,4,{0x82,0x33,0x94,0x32,}}, {0x443A,4,{0x82,0x33,0x94,0x33,}}, {0x443B,4,{0x82,0x33,0x94,0x34,}}, {0x443C,4,{0x82,0x33,0x94,0x35,}}, {0x443D,4,{0x82,0x33,0x94,0x36,}}, {0x443E,4,{0x82,0x33,0x94,0x37,}}, {0x443F,4,{0x82,0x33,0x94,0x38,}}, {0x4440,4,{0x82,0x33,0x94,0x39,}}, {0x4441,4,{0x82,0x33,0x95,0x30,}}, {0x4442,4,{0x82,0x33,0x95,0x31,}}, {0x4443,4,{0x82,0x33,0x95,0x32,}}, {0x4444,4,{0x82,0x33,0x95,0x33,}}, {0x4445,4,{0x82,0x33,0x95,0x34,}}, {0x4446,4,{0x82,0x33,0x95,0x35,}}, {0x4447,4,{0x82,0x33,0x95,0x36,}}, {0x4448,4,{0x82,0x33,0x95,0x37,}}, {0x4449,4,{0x82,0x33,0x95,0x38,}}, {0x444A,4,{0x82,0x33,0x95,0x39,}}, {0x444B,4,{0x82,0x33,0x96,0x30,}}, {0x444C,4,{0x82,0x33,0x96,0x31,}}, {0x444D,4,{0x82,0x33,0x96,0x32,}}, {0x444E,4,{0x82,0x33,0x96,0x33,}}, {0x444F,4,{0x82,0x33,0x96,0x34,}}, {0x4450,4,{0x82,0x33,0x96,0x35,}}, {0x4451,4,{0x82,0x33,0x96,0x36,}}, {0x4452,4,{0x82,0x33,0x96,0x37,}}, {0x4453,4,{0x82,0x33,0x96,0x38,}}, {0x4454,4,{0x82,0x33,0x96,0x39,}}, {0x4455,4,{0x82,0x33,0x97,0x30,}}, {0x4456,4,{0x82,0x33,0x97,0x31,}}, {0x4457,4,{0x82,0x33,0x97,0x32,}}, {0x4458,4,{0x82,0x33,0x97,0x33,}}, {0x4459,4,{0x82,0x33,0x97,0x34,}}, {0x445A,4,{0x82,0x33,0x97,0x35,}}, {0x445B,4,{0x82,0x33,0x97,0x36,}}, {0x445C,4,{0x82,0x33,0x97,0x37,}}, {0x445D,4,{0x82,0x33,0x97,0x38,}}, {0x445E,4,{0x82,0x33,0x97,0x39,}}, {0x445F,4,{0x82,0x33,0x98,0x30,}}, {0x4460,4,{0x82,0x33,0x98,0x31,}}, {0x4461,4,{0x82,0x33,0x98,0x32,}}, {0x4462,4,{0x82,0x33,0x98,0x33,}}, {0x4463,4,{0x82,0x33,0x98,0x34,}}, {0x4464,4,{0x82,0x33,0x98,0x35,}}, {0x4465,4,{0x82,0x33,0x98,0x36,}}, {0x4466,4,{0x82,0x33,0x98,0x37,}}, {0x4467,4,{0x82,0x33,0x98,0x38,}}, {0x4468,4,{0x82,0x33,0x98,0x39,}}, {0x4469,4,{0x82,0x33,0x99,0x30,}}, {0x446A,4,{0x82,0x33,0x99,0x31,}}, {0x446B,4,{0x82,0x33,0x99,0x32,}}, {0x446C,4,{0x82,0x33,0x99,0x33,}}, {0x446D,4,{0x82,0x33,0x99,0x34,}}, {0x446E,4,{0x82,0x33,0x99,0x35,}}, {0x446F,4,{0x82,0x33,0x99,0x36,}}, {0x4470,4,{0x82,0x33,0x99,0x37,}}, {0x4471,4,{0x82,0x33,0x99,0x38,}}, {0x4472,4,{0x82,0x33,0x99,0x39,}}, {0x4473,4,{0x82,0x33,0x9A,0x30,}}, {0x4474,4,{0x82,0x33,0x9A,0x31,}}, {0x4475,4,{0x82,0x33,0x9A,0x32,}}, {0x4476,4,{0x82,0x33,0x9A,0x33,}}, {0x4477,4,{0x82,0x33,0x9A,0x34,}}, {0x4478,4,{0x82,0x33,0x9A,0x35,}}, {0x4479,4,{0x82,0x33,0x9A,0x36,}}, {0x447A,4,{0x82,0x33,0x9A,0x37,}}, {0x447B,4,{0x82,0x33,0x9A,0x38,}}, {0x447C,4,{0x82,0x33,0x9A,0x39,}}, {0x447D,4,{0x82,0x33,0x9B,0x30,}}, {0x447E,4,{0x82,0x33,0x9B,0x31,}}, {0x447F,4,{0x82,0x33,0x9B,0x32,}}, {0x4480,4,{0x82,0x33,0x9B,0x33,}}, {0x4481,4,{0x82,0x33,0x9B,0x34,}}, {0x4482,4,{0x82,0x33,0x9B,0x35,}}, {0x4483,4,{0x82,0x33,0x9B,0x36,}}, {0x4484,4,{0x82,0x33,0x9B,0x37,}}, {0x4485,4,{0x82,0x33,0x9B,0x38,}}, {0x4486,4,{0x82,0x33,0x9B,0x39,}}, {0x4487,4,{0x82,0x33,0x9C,0x30,}}, {0x4488,4,{0x82,0x33,0x9C,0x31,}}, {0x4489,4,{0x82,0x33,0x9C,0x32,}}, {0x448A,4,{0x82,0x33,0x9C,0x33,}}, {0x448B,4,{0x82,0x33,0x9C,0x34,}}, {0x448C,4,{0x82,0x33,0x9C,0x35,}}, {0x448D,4,{0x82,0x33,0x9C,0x36,}}, {0x448E,4,{0x82,0x33,0x9C,0x37,}}, {0x448F,4,{0x82,0x33,0x9C,0x38,}}, {0x4490,4,{0x82,0x33,0x9C,0x39,}}, {0x4491,4,{0x82,0x33,0x9D,0x30,}}, {0x4492,4,{0x82,0x33,0x9D,0x31,}}, {0x4493,4,{0x82,0x33,0x9D,0x32,}}, {0x4494,4,{0x82,0x33,0x9D,0x33,}}, {0x4495,4,{0x82,0x33,0x9D,0x34,}}, {0x4496,4,{0x82,0x33,0x9D,0x35,}}, {0x4497,4,{0x82,0x33,0x9D,0x36,}}, {0x4498,4,{0x82,0x33,0x9D,0x37,}}, {0x4499,4,{0x82,0x33,0x9D,0x38,}}, {0x449A,4,{0x82,0x33,0x9D,0x39,}}, {0x449B,4,{0x82,0x33,0x9E,0x30,}}, {0x449C,4,{0x82,0x33,0x9E,0x31,}}, {0x449D,4,{0x82,0x33,0x9E,0x32,}}, {0x449E,4,{0x82,0x33,0x9E,0x33,}}, {0x449F,4,{0x82,0x33,0x9E,0x34,}}, {0x44A0,4,{0x82,0x33,0x9E,0x35,}}, {0x44A1,4,{0x82,0x33,0x9E,0x36,}}, {0x44A2,4,{0x82,0x33,0x9E,0x37,}}, {0x44A3,4,{0x82,0x33,0x9E,0x38,}}, {0x44A4,4,{0x82,0x33,0x9E,0x39,}}, {0x44A5,4,{0x82,0x33,0x9F,0x30,}}, {0x44A6,4,{0x82,0x33,0x9F,0x31,}}, {0x44A7,4,{0x82,0x33,0x9F,0x32,}}, {0x44A8,4,{0x82,0x33,0x9F,0x33,}}, {0x44A9,4,{0x82,0x33,0x9F,0x34,}}, {0x44AA,4,{0x82,0x33,0x9F,0x35,}}, {0x44AB,4,{0x82,0x33,0x9F,0x36,}}, {0x44AC,4,{0x82,0x33,0x9F,0x37,}}, {0x44AD,4,{0x82,0x33,0x9F,0x38,}}, {0x44AE,4,{0x82,0x33,0x9F,0x39,}}, {0x44AF,4,{0x82,0x33,0xA0,0x30,}}, {0x44B0,4,{0x82,0x33,0xA0,0x31,}}, {0x44B1,4,{0x82,0x33,0xA0,0x32,}}, {0x44B2,4,{0x82,0x33,0xA0,0x33,}}, {0x44B3,4,{0x82,0x33,0xA0,0x34,}}, {0x44B4,4,{0x82,0x33,0xA0,0x35,}}, {0x44B5,4,{0x82,0x33,0xA0,0x36,}}, {0x44B6,4,{0x82,0x33,0xA0,0x37,}}, {0x44B7,4,{0x82,0x33,0xA0,0x38,}}, {0x44B8,4,{0x82,0x33,0xA0,0x39,}}, {0x44B9,4,{0x82,0x33,0xA1,0x30,}}, {0x44BA,4,{0x82,0x33,0xA1,0x31,}}, {0x44BB,4,{0x82,0x33,0xA1,0x32,}}, {0x44BC,4,{0x82,0x33,0xA1,0x33,}}, {0x44BD,4,{0x82,0x33,0xA1,0x34,}}, {0x44BE,4,{0x82,0x33,0xA1,0x35,}}, {0x44BF,4,{0x82,0x33,0xA1,0x36,}}, {0x44C0,4,{0x82,0x33,0xA1,0x37,}}, {0x44C1,4,{0x82,0x33,0xA1,0x38,}}, {0x44C2,4,{0x82,0x33,0xA1,0x39,}}, {0x44C3,4,{0x82,0x33,0xA2,0x30,}}, {0x44C4,4,{0x82,0x33,0xA2,0x31,}}, {0x44C5,4,{0x82,0x33,0xA2,0x32,}}, {0x44C6,4,{0x82,0x33,0xA2,0x33,}}, {0x44C7,4,{0x82,0x33,0xA2,0x34,}}, {0x44C8,4,{0x82,0x33,0xA2,0x35,}}, {0x44C9,4,{0x82,0x33,0xA2,0x36,}}, {0x44CA,4,{0x82,0x33,0xA2,0x37,}}, {0x44CB,4,{0x82,0x33,0xA2,0x38,}}, {0x44CC,4,{0x82,0x33,0xA2,0x39,}}, {0x44CD,4,{0x82,0x33,0xA3,0x30,}}, {0x44CE,4,{0x82,0x33,0xA3,0x31,}}, {0x44CF,4,{0x82,0x33,0xA3,0x32,}}, {0x44D0,4,{0x82,0x33,0xA3,0x33,}}, {0x44D1,4,{0x82,0x33,0xA3,0x34,}}, {0x44D2,4,{0x82,0x33,0xA3,0x35,}}, {0x44D3,4,{0x82,0x33,0xA3,0x36,}}, {0x44D4,4,{0x82,0x33,0xA3,0x37,}}, {0x44D5,4,{0x82,0x33,0xA3,0x38,}}, {0x44D6,2,{0xFE,0x7B,0x00,0x00,}}, {0x464C,2,{0xFE,0x7D,0x00,0x00,}}, {0x464D,4,{0x82,0x33,0xC9,0x32,}}, {0x464E,4,{0x82,0x33,0xC9,0x33,}}, {0x464F,4,{0x82,0x33,0xC9,0x34,}}, {0x4650,4,{0x82,0x33,0xC9,0x35,}}, {0x4651,4,{0x82,0x33,0xC9,0x36,}}, {0x4652,4,{0x82,0x33,0xC9,0x37,}}, {0x4653,4,{0x82,0x33,0xC9,0x38,}}, {0x4654,4,{0x82,0x33,0xC9,0x39,}}, {0x4655,4,{0x82,0x33,0xCA,0x30,}}, {0x4656,4,{0x82,0x33,0xCA,0x31,}}, {0x4657,4,{0x82,0x33,0xCA,0x32,}}, {0x4658,4,{0x82,0x33,0xCA,0x33,}}, {0x4659,4,{0x82,0x33,0xCA,0x34,}}, {0x465A,4,{0x82,0x33,0xCA,0x35,}}, {0x465B,4,{0x82,0x33,0xCA,0x36,}}, {0x465C,4,{0x82,0x33,0xCA,0x37,}}, {0x465D,4,{0x82,0x33,0xCA,0x38,}}, {0x465E,4,{0x82,0x33,0xCA,0x39,}}, {0x465F,4,{0x82,0x33,0xCB,0x30,}}, {0x4660,4,{0x82,0x33,0xCB,0x31,}}, {0x4661,2,{0xFE,0x7C,0x00,0x00,}}, {0x4662,4,{0x82,0x33,0xCB,0x32,}}, {0x4663,4,{0x82,0x33,0xCB,0x33,}}, {0x4664,4,{0x82,0x33,0xCB,0x34,}}, {0x4665,4,{0x82,0x33,0xCB,0x35,}}, {0x4666,4,{0x82,0x33,0xCB,0x36,}}, {0x4667,4,{0x82,0x33,0xCB,0x37,}}, {0x4668,4,{0x82,0x33,0xCB,0x38,}}, {0x4669,4,{0x82,0x33,0xCB,0x39,}}, {0x466A,4,{0x82,0x33,0xCC,0x30,}}, {0x466B,4,{0x82,0x33,0xCC,0x31,}}, {0x466C,4,{0x82,0x33,0xCC,0x32,}}, {0x466D,4,{0x82,0x33,0xCC,0x33,}}, {0x466E,4,{0x82,0x33,0xCC,0x34,}}, {0x466F,4,{0x82,0x33,0xCC,0x35,}}, {0x4670,4,{0x82,0x33,0xCC,0x36,}}, {0x4671,4,{0x82,0x33,0xCC,0x37,}}, {0x4672,4,{0x82,0x33,0xCC,0x38,}}, {0x4673,4,{0x82,0x33,0xCC,0x39,}}, {0x4674,4,{0x82,0x33,0xCD,0x30,}}, {0x4675,4,{0x82,0x33,0xCD,0x31,}}, {0x4676,4,{0x82,0x33,0xCD,0x32,}}, {0x4677,4,{0x82,0x33,0xCD,0x33,}}, {0x4678,4,{0x82,0x33,0xCD,0x34,}}, {0x4679,4,{0x82,0x33,0xCD,0x35,}}, {0x467A,4,{0x82,0x33,0xCD,0x36,}}, {0x467B,4,{0x82,0x33,0xCD,0x37,}}, {0x467C,4,{0x82,0x33,0xCD,0x38,}}, {0x467D,4,{0x82,0x33,0xCD,0x39,}}, {0x467E,4,{0x82,0x33,0xCE,0x30,}}, {0x467F,4,{0x82,0x33,0xCE,0x31,}}, {0x4680,4,{0x82,0x33,0xCE,0x32,}}, {0x4681,4,{0x82,0x33,0xCE,0x33,}}, {0x4682,4,{0x82,0x33,0xCE,0x34,}}, {0x4683,4,{0x82,0x33,0xCE,0x35,}}, {0x4684,4,{0x82,0x33,0xCE,0x36,}}, {0x4685,4,{0x82,0x33,0xCE,0x37,}}, {0x4686,4,{0x82,0x33,0xCE,0x38,}}, {0x4687,4,{0x82,0x33,0xCE,0x39,}}, {0x4688,4,{0x82,0x33,0xCF,0x30,}}, {0x4689,4,{0x82,0x33,0xCF,0x31,}}, {0x468A,4,{0x82,0x33,0xCF,0x32,}}, {0x468B,4,{0x82,0x33,0xCF,0x33,}}, {0x468C,4,{0x82,0x33,0xCF,0x34,}}, {0x468D,4,{0x82,0x33,0xCF,0x35,}}, {0x468E,4,{0x82,0x33,0xCF,0x36,}}, {0x468F,4,{0x82,0x33,0xCF,0x37,}}, {0x4690,4,{0x82,0x33,0xCF,0x38,}}, {0x4691,4,{0x82,0x33,0xCF,0x39,}}, {0x4692,4,{0x82,0x33,0xD0,0x30,}}, {0x4693,4,{0x82,0x33,0xD0,0x31,}}, {0x4694,4,{0x82,0x33,0xD0,0x32,}}, {0x4695,4,{0x82,0x33,0xD0,0x33,}}, {0x4696,4,{0x82,0x33,0xD0,0x34,}}, {0x4697,4,{0x82,0x33,0xD0,0x35,}}, {0x4698,4,{0x82,0x33,0xD0,0x36,}}, {0x4699,4,{0x82,0x33,0xD0,0x37,}}, {0x469A,4,{0x82,0x33,0xD0,0x38,}}, {0x469B,4,{0x82,0x33,0xD0,0x39,}}, {0x469C,4,{0x82,0x33,0xD1,0x30,}}, {0x469D,4,{0x82,0x33,0xD1,0x31,}}, {0x469E,4,{0x82,0x33,0xD1,0x32,}}, {0x469F,4,{0x82,0x33,0xD1,0x33,}}, {0x46A0,4,{0x82,0x33,0xD1,0x34,}}, {0x46A1,4,{0x82,0x33,0xD1,0x35,}}, {0x46A2,4,{0x82,0x33,0xD1,0x36,}}, {0x46A3,4,{0x82,0x33,0xD1,0x37,}}, {0x46A4,4,{0x82,0x33,0xD1,0x38,}}, {0x46A5,4,{0x82,0x33,0xD1,0x39,}}, {0x46A6,4,{0x82,0x33,0xD2,0x30,}}, {0x46A7,4,{0x82,0x33,0xD2,0x31,}}, {0x46A8,4,{0x82,0x33,0xD2,0x32,}}, {0x46A9,4,{0x82,0x33,0xD2,0x33,}}, {0x46AA,4,{0x82,0x33,0xD2,0x34,}}, {0x46AB,4,{0x82,0x33,0xD2,0x35,}}, {0x46AC,4,{0x82,0x33,0xD2,0x36,}}, {0x46AD,4,{0x82,0x33,0xD2,0x37,}}, {0x46AE,4,{0x82,0x33,0xD2,0x38,}}, {0x46AF,4,{0x82,0x33,0xD2,0x39,}}, {0x46B0,4,{0x82,0x33,0xD3,0x30,}}, {0x46B1,4,{0x82,0x33,0xD3,0x31,}}, {0x46B2,4,{0x82,0x33,0xD3,0x32,}}, {0x46B3,4,{0x82,0x33,0xD3,0x33,}}, {0x46B4,4,{0x82,0x33,0xD3,0x34,}}, {0x46B5,4,{0x82,0x33,0xD3,0x35,}}, {0x46B6,4,{0x82,0x33,0xD3,0x36,}}, {0x46B7,4,{0x82,0x33,0xD3,0x37,}}, {0x46B8,4,{0x82,0x33,0xD3,0x38,}}, {0x46B9,4,{0x82,0x33,0xD3,0x39,}}, {0x46BA,4,{0x82,0x33,0xD4,0x30,}}, {0x46BB,4,{0x82,0x33,0xD4,0x31,}}, {0x46BC,4,{0x82,0x33,0xD4,0x32,}}, {0x46BD,4,{0x82,0x33,0xD4,0x33,}}, {0x46BE,4,{0x82,0x33,0xD4,0x34,}}, {0x46BF,4,{0x82,0x33,0xD4,0x35,}}, {0x46C0,4,{0x82,0x33,0xD4,0x36,}}, {0x46C1,4,{0x82,0x33,0xD4,0x37,}}, {0x46C2,4,{0x82,0x33,0xD4,0x38,}}, {0x46C3,4,{0x82,0x33,0xD4,0x39,}}, {0x46C4,4,{0x82,0x33,0xD5,0x30,}}, {0x46C5,4,{0x82,0x33,0xD5,0x31,}}, {0x46C6,4,{0x82,0x33,0xD5,0x32,}}, {0x46C7,4,{0x82,0x33,0xD5,0x33,}}, {0x46C8,4,{0x82,0x33,0xD5,0x34,}}, {0x46C9,4,{0x82,0x33,0xD5,0x35,}}, {0x46CA,4,{0x82,0x33,0xD5,0x36,}}, {0x46CB,4,{0x82,0x33,0xD5,0x37,}}, {0x46CC,4,{0x82,0x33,0xD5,0x38,}}, {0x46CD,4,{0x82,0x33,0xD5,0x39,}}, {0x46CE,4,{0x82,0x33,0xD6,0x30,}}, {0x46CF,4,{0x82,0x33,0xD6,0x31,}}, {0x46D0,4,{0x82,0x33,0xD6,0x32,}}, {0x46D1,4,{0x82,0x33,0xD6,0x33,}}, {0x46D2,4,{0x82,0x33,0xD6,0x34,}}, {0x46D3,4,{0x82,0x33,0xD6,0x35,}}, {0x46D4,4,{0x82,0x33,0xD6,0x36,}}, {0x46D5,4,{0x82,0x33,0xD6,0x37,}}, {0x46D6,4,{0x82,0x33,0xD6,0x38,}}, {0x46D7,4,{0x82,0x33,0xD6,0x39,}}, {0x46D8,4,{0x82,0x33,0xD7,0x30,}}, {0x46D9,4,{0x82,0x33,0xD7,0x31,}}, {0x46DA,4,{0x82,0x33,0xD7,0x32,}}, {0x46DB,4,{0x82,0x33,0xD7,0x33,}}, {0x46DC,4,{0x82,0x33,0xD7,0x34,}}, {0x46DD,4,{0x82,0x33,0xD7,0x35,}}, {0x46DE,4,{0x82,0x33,0xD7,0x36,}}, {0x46DF,4,{0x82,0x33,0xD7,0x37,}}, {0x46E0,4,{0x82,0x33,0xD7,0x38,}}, {0x46E1,4,{0x82,0x33,0xD7,0x39,}}, {0x46E2,4,{0x82,0x33,0xD8,0x30,}}, {0x46E3,4,{0x82,0x33,0xD8,0x31,}}, {0x46E4,4,{0x82,0x33,0xD8,0x32,}}, {0x46E5,4,{0x82,0x33,0xD8,0x33,}}, {0x46E6,4,{0x82,0x33,0xD8,0x34,}}, {0x46E7,4,{0x82,0x33,0xD8,0x35,}}, {0x46E8,4,{0x82,0x33,0xD8,0x36,}}, {0x46E9,4,{0x82,0x33,0xD8,0x37,}}, {0x46EA,4,{0x82,0x33,0xD8,0x38,}}, {0x46EB,4,{0x82,0x33,0xD8,0x39,}}, {0x46EC,4,{0x82,0x33,0xD9,0x30,}}, {0x46ED,4,{0x82,0x33,0xD9,0x31,}}, {0x46EE,4,{0x82,0x33,0xD9,0x32,}}, {0x46EF,4,{0x82,0x33,0xD9,0x33,}}, {0x46F0,4,{0x82,0x33,0xD9,0x34,}}, {0x46F1,4,{0x82,0x33,0xD9,0x35,}}, {0x46F2,4,{0x82,0x33,0xD9,0x36,}}, {0x46F3,4,{0x82,0x33,0xD9,0x37,}}, {0x46F4,4,{0x82,0x33,0xD9,0x38,}}, {0x46F5,4,{0x82,0x33,0xD9,0x39,}}, {0x46F6,4,{0x82,0x33,0xDA,0x30,}}, {0x46F7,4,{0x82,0x33,0xDA,0x31,}}, {0x46F8,4,{0x82,0x33,0xDA,0x32,}}, {0x46F9,4,{0x82,0x33,0xDA,0x33,}}, {0x46FA,4,{0x82,0x33,0xDA,0x34,}}, {0x46FB,4,{0x82,0x33,0xDA,0x35,}}, {0x46FC,4,{0x82,0x33,0xDA,0x36,}}, {0x46FD,4,{0x82,0x33,0xDA,0x37,}}, {0x46FE,4,{0x82,0x33,0xDA,0x38,}}, {0x46FF,4,{0x82,0x33,0xDA,0x39,}}, {0x4700,4,{0x82,0x33,0xDB,0x30,}}, {0x4701,4,{0x82,0x33,0xDB,0x31,}}, {0x4702,4,{0x82,0x33,0xDB,0x32,}}, {0x4703,4,{0x82,0x33,0xDB,0x33,}}, {0x4704,4,{0x82,0x33,0xDB,0x34,}}, {0x4705,4,{0x82,0x33,0xDB,0x35,}}, {0x4706,4,{0x82,0x33,0xDB,0x36,}}, {0x4707,4,{0x82,0x33,0xDB,0x37,}}, {0x4708,4,{0x82,0x33,0xDB,0x38,}}, {0x4709,4,{0x82,0x33,0xDB,0x39,}}, {0x470A,4,{0x82,0x33,0xDC,0x30,}}, {0x470B,4,{0x82,0x33,0xDC,0x31,}}, {0x470C,4,{0x82,0x33,0xDC,0x32,}}, {0x470D,4,{0x82,0x33,0xDC,0x33,}}, {0x470E,4,{0x82,0x33,0xDC,0x34,}}, {0x470F,4,{0x82,0x33,0xDC,0x35,}}, {0x4710,4,{0x82,0x33,0xDC,0x36,}}, {0x4711,4,{0x82,0x33,0xDC,0x37,}}, {0x4712,4,{0x82,0x33,0xDC,0x38,}}, {0x4713,4,{0x82,0x33,0xDC,0x39,}}, {0x4714,4,{0x82,0x33,0xDD,0x30,}}, {0x4715,4,{0x82,0x33,0xDD,0x31,}}, {0x4716,4,{0x82,0x33,0xDD,0x32,}}, {0x4717,4,{0x82,0x33,0xDD,0x33,}}, {0x4718,4,{0x82,0x33,0xDD,0x34,}}, {0x4719,4,{0x82,0x33,0xDD,0x35,}}, {0x471A,4,{0x82,0x33,0xDD,0x36,}}, {0x471B,4,{0x82,0x33,0xDD,0x37,}}, {0x471C,4,{0x82,0x33,0xDD,0x38,}}, {0x471D,4,{0x82,0x33,0xDD,0x39,}}, {0x471E,4,{0x82,0x33,0xDE,0x30,}}, {0x471F,4,{0x82,0x33,0xDE,0x31,}}, {0x4720,4,{0x82,0x33,0xDE,0x32,}}, {0x4721,4,{0x82,0x33,0xDE,0x33,}}, {0x4722,4,{0x82,0x33,0xDE,0x34,}}, {0x4723,2,{0xFE,0x80,0x00,0x00,}}, {0x4724,4,{0x82,0x33,0xDE,0x35,}}, {0x4725,4,{0x82,0x33,0xDE,0x36,}}, {0x4726,4,{0x82,0x33,0xDE,0x37,}}, {0x4727,4,{0x82,0x33,0xDE,0x38,}}, {0x4728,4,{0x82,0x33,0xDE,0x39,}}, {0x4729,2,{0xFE,0x81,0x00,0x00,}}, {0x472A,4,{0x82,0x33,0xDF,0x30,}}, {0x472B,4,{0x82,0x33,0xDF,0x31,}}, {0x472C,4,{0x82,0x33,0xDF,0x32,}}, {0x472D,4,{0x82,0x33,0xDF,0x33,}}, {0x472E,4,{0x82,0x33,0xDF,0x34,}}, {0x472F,4,{0x82,0x33,0xDF,0x35,}}, {0x4730,4,{0x82,0x33,0xDF,0x36,}}, {0x4731,4,{0x82,0x33,0xDF,0x37,}}, {0x4732,4,{0x82,0x33,0xDF,0x38,}}, {0x4733,4,{0x82,0x33,0xDF,0x39,}}, {0x4734,4,{0x82,0x33,0xE0,0x30,}}, {0x4735,4,{0x82,0x33,0xE0,0x31,}}, {0x4736,4,{0x82,0x33,0xE0,0x32,}}, {0x4737,4,{0x82,0x33,0xE0,0x33,}}, {0x4738,4,{0x82,0x33,0xE0,0x34,}}, {0x4739,4,{0x82,0x33,0xE0,0x35,}}, {0x473A,4,{0x82,0x33,0xE0,0x36,}}, {0x473B,4,{0x82,0x33,0xE0,0x37,}}, {0x473C,4,{0x82,0x33,0xE0,0x38,}}, {0x473D,4,{0x82,0x33,0xE0,0x39,}}, {0x473E,4,{0x82,0x33,0xE1,0x30,}}, {0x473F,4,{0x82,0x33,0xE1,0x31,}}, {0x4740,4,{0x82,0x33,0xE1,0x32,}}, {0x4741,4,{0x82,0x33,0xE1,0x33,}}, {0x4742,4,{0x82,0x33,0xE1,0x34,}}, {0x4743,4,{0x82,0x33,0xE1,0x35,}}, {0x4744,4,{0x82,0x33,0xE1,0x36,}}, {0x4745,4,{0x82,0x33,0xE1,0x37,}}, {0x4746,4,{0x82,0x33,0xE1,0x38,}}, {0x4747,4,{0x82,0x33,0xE1,0x39,}}, {0x4748,4,{0x82,0x33,0xE2,0x30,}}, {0x4749,4,{0x82,0x33,0xE2,0x31,}}, {0x474A,4,{0x82,0x33,0xE2,0x32,}}, {0x474B,4,{0x82,0x33,0xE2,0x33,}}, {0x474C,4,{0x82,0x33,0xE2,0x34,}}, {0x474D,4,{0x82,0x33,0xE2,0x35,}}, {0x474E,4,{0x82,0x33,0xE2,0x36,}}, {0x474F,4,{0x82,0x33,0xE2,0x37,}}, {0x4750,4,{0x82,0x33,0xE2,0x38,}}, {0x4751,4,{0x82,0x33,0xE2,0x39,}}, {0x4752,4,{0x82,0x33,0xE3,0x30,}}, {0x4753,4,{0x82,0x33,0xE3,0x31,}}, {0x4754,4,{0x82,0x33,0xE3,0x32,}}, {0x4755,4,{0x82,0x33,0xE3,0x33,}}, {0x4756,4,{0x82,0x33,0xE3,0x34,}}, {0x4757,4,{0x82,0x33,0xE3,0x35,}}, {0x4758,4,{0x82,0x33,0xE3,0x36,}}, {0x4759,4,{0x82,0x33,0xE3,0x37,}}, {0x475A,4,{0x82,0x33,0xE3,0x38,}}, {0x475B,4,{0x82,0x33,0xE3,0x39,}}, {0x475C,4,{0x82,0x33,0xE4,0x30,}}, {0x475D,4,{0x82,0x33,0xE4,0x31,}}, {0x475E,4,{0x82,0x33,0xE4,0x32,}}, {0x475F,4,{0x82,0x33,0xE4,0x33,}}, {0x4760,4,{0x82,0x33,0xE4,0x34,}}, {0x4761,4,{0x82,0x33,0xE4,0x35,}}, {0x4762,4,{0x82,0x33,0xE4,0x36,}}, {0x4763,4,{0x82,0x33,0xE4,0x37,}}, {0x4764,4,{0x82,0x33,0xE4,0x38,}}, {0x4765,4,{0x82,0x33,0xE4,0x39,}}, {0x4766,4,{0x82,0x33,0xE5,0x30,}}, {0x4767,4,{0x82,0x33,0xE5,0x31,}}, {0x4768,4,{0x82,0x33,0xE5,0x32,}}, {0x4769,4,{0x82,0x33,0xE5,0x33,}}, {0x476A,4,{0x82,0x33,0xE5,0x34,}}, {0x476B,4,{0x82,0x33,0xE5,0x35,}}, {0x476C,4,{0x82,0x33,0xE5,0x36,}}, {0x476D,4,{0x82,0x33,0xE5,0x37,}}, {0x476E,4,{0x82,0x33,0xE5,0x38,}}, {0x476F,4,{0x82,0x33,0xE5,0x39,}}, {0x4770,4,{0x82,0x33,0xE6,0x30,}}, {0x4771,4,{0x82,0x33,0xE6,0x31,}}, {0x4772,4,{0x82,0x33,0xE6,0x32,}}, {0x4773,4,{0x82,0x33,0xE6,0x33,}}, {0x4774,4,{0x82,0x33,0xE6,0x34,}}, {0x4775,4,{0x82,0x33,0xE6,0x35,}}, {0x4776,4,{0x82,0x33,0xE6,0x36,}}, {0x4777,4,{0x82,0x33,0xE6,0x37,}}, {0x4778,4,{0x82,0x33,0xE6,0x38,}}, {0x4779,4,{0x82,0x33,0xE6,0x39,}}, {0x477A,4,{0x82,0x33,0xE7,0x30,}}, {0x477B,4,{0x82,0x33,0xE7,0x31,}}, {0x477C,2,{0xFE,0x82,0x00,0x00,}}, {0x477D,4,{0x82,0x33,0xE7,0x32,}}, {0x477E,4,{0x82,0x33,0xE7,0x33,}}, {0x477F,4,{0x82,0x33,0xE7,0x34,}}, {0x4780,4,{0x82,0x33,0xE7,0x35,}}, {0x4781,4,{0x82,0x33,0xE7,0x36,}}, {0x4782,4,{0x82,0x33,0xE7,0x37,}}, {0x4783,4,{0x82,0x33,0xE7,0x38,}}, {0x4784,4,{0x82,0x33,0xE7,0x39,}}, {0x4785,4,{0x82,0x33,0xE8,0x30,}}, {0x4786,4,{0x82,0x33,0xE8,0x31,}}, {0x4787,4,{0x82,0x33,0xE8,0x32,}}, {0x4788,4,{0x82,0x33,0xE8,0x33,}}, {0x4789,4,{0x82,0x33,0xE8,0x34,}}, {0x478A,4,{0x82,0x33,0xE8,0x35,}}, {0x478B,4,{0x82,0x33,0xE8,0x36,}}, {0x478C,4,{0x82,0x33,0xE8,0x37,}}, {0x478D,2,{0xFE,0x83,0x00,0x00,}}, {0x4947,2,{0xFE,0x85,0x00,0x00,}}, {0x4948,4,{0x82,0x34,0x96,0x39,}}, {0x4949,4,{0x82,0x34,0x97,0x30,}}, {0x494A,4,{0x82,0x34,0x97,0x31,}}, {0x494B,4,{0x82,0x34,0x97,0x32,}}, {0x494C,4,{0x82,0x34,0x97,0x33,}}, {0x494D,4,{0x82,0x34,0x97,0x34,}}, {0x494E,4,{0x82,0x34,0x97,0x35,}}, {0x494F,4,{0x82,0x34,0x97,0x36,}}, {0x4950,4,{0x82,0x34,0x97,0x37,}}, {0x4951,4,{0x82,0x34,0x97,0x38,}}, {0x4952,4,{0x82,0x34,0x97,0x39,}}, {0x4953,4,{0x82,0x34,0x98,0x30,}}, {0x4954,4,{0x82,0x34,0x98,0x31,}}, {0x4955,4,{0x82,0x34,0x98,0x32,}}, {0x4956,4,{0x82,0x34,0x98,0x33,}}, {0x4957,4,{0x82,0x34,0x98,0x34,}}, {0x4958,4,{0x82,0x34,0x98,0x35,}}, {0x4959,4,{0x82,0x34,0x98,0x36,}}, {0x495A,4,{0x82,0x34,0x98,0x37,}}, {0x495B,4,{0x82,0x34,0x98,0x38,}}, {0x495C,4,{0x82,0x34,0x98,0x39,}}, {0x495D,4,{0x82,0x34,0x99,0x30,}}, {0x495E,4,{0x82,0x34,0x99,0x31,}}, {0x495F,4,{0x82,0x34,0x99,0x32,}}, {0x4960,4,{0x82,0x34,0x99,0x33,}}, {0x4961,4,{0x82,0x34,0x99,0x34,}}, {0x4962,4,{0x82,0x34,0x99,0x35,}}, {0x4963,4,{0x82,0x34,0x99,0x36,}}, {0x4964,4,{0x82,0x34,0x99,0x37,}}, {0x4965,4,{0x82,0x34,0x99,0x38,}}, {0x4966,4,{0x82,0x34,0x99,0x39,}}, {0x4967,4,{0x82,0x34,0x9A,0x30,}}, {0x4968,4,{0x82,0x34,0x9A,0x31,}}, {0x4969,4,{0x82,0x34,0x9A,0x32,}}, {0x496A,4,{0x82,0x34,0x9A,0x33,}}, {0x496B,4,{0x82,0x34,0x9A,0x34,}}, {0x496C,4,{0x82,0x34,0x9A,0x35,}}, {0x496D,4,{0x82,0x34,0x9A,0x36,}}, {0x496E,4,{0x82,0x34,0x9A,0x37,}}, {0x496F,4,{0x82,0x34,0x9A,0x38,}}, {0x4970,4,{0x82,0x34,0x9A,0x39,}}, {0x4971,4,{0x82,0x34,0x9B,0x30,}}, {0x4972,4,{0x82,0x34,0x9B,0x31,}}, {0x4973,4,{0x82,0x34,0x9B,0x32,}}, {0x4974,4,{0x82,0x34,0x9B,0x33,}}, {0x4975,4,{0x82,0x34,0x9B,0x34,}}, {0x4976,4,{0x82,0x34,0x9B,0x35,}}, {0x4977,4,{0x82,0x34,0x9B,0x36,}}, {0x4978,4,{0x82,0x34,0x9B,0x37,}}, {0x4979,4,{0x82,0x34,0x9B,0x38,}}, {0x497A,2,{0xFE,0x86,0x00,0x00,}}, {0x497B,4,{0x82,0x34,0x9B,0x39,}}, {0x497C,4,{0x82,0x34,0x9C,0x30,}}, {0x497D,2,{0xFE,0x87,0x00,0x00,}}, {0x497E,4,{0x82,0x34,0x9C,0x31,}}, {0x497F,4,{0x82,0x34,0x9C,0x32,}}, {0x4980,4,{0x82,0x34,0x9C,0x33,}}, {0x4981,4,{0x82,0x34,0x9C,0x34,}}, {0x4982,2,{0xFE,0x88,0x00,0x00,}}, {0x4983,2,{0xFE,0x89,0x00,0x00,}}, {0x4984,4,{0x82,0x34,0x9C,0x35,}}, {0x4985,2,{0xFE,0x8A,0x00,0x00,}}, {0x4986,2,{0xFE,0x8B,0x00,0x00,}}, {0x4987,4,{0x82,0x34,0x9C,0x36,}}, {0x4988,4,{0x82,0x34,0x9C,0x37,}}, {0x4989,4,{0x82,0x34,0x9C,0x38,}}, {0x498A,4,{0x82,0x34,0x9C,0x39,}}, {0x498B,4,{0x82,0x34,0x9D,0x30,}}, {0x498C,4,{0x82,0x34,0x9D,0x31,}}, {0x498D,4,{0x82,0x34,0x9D,0x32,}}, {0x498E,4,{0x82,0x34,0x9D,0x33,}}, {0x498F,4,{0x82,0x34,0x9D,0x34,}}, {0x4990,4,{0x82,0x34,0x9D,0x35,}}, {0x4991,4,{0x82,0x34,0x9D,0x36,}}, {0x4992,4,{0x82,0x34,0x9D,0x37,}}, {0x4993,4,{0x82,0x34,0x9D,0x38,}}, {0x4994,4,{0x82,0x34,0x9D,0x39,}}, {0x4995,4,{0x82,0x34,0x9E,0x30,}}, {0x4996,4,{0x82,0x34,0x9E,0x31,}}, {0x4997,4,{0x82,0x34,0x9E,0x32,}}, {0x4998,4,{0x82,0x34,0x9E,0x33,}}, {0x4999,4,{0x82,0x34,0x9E,0x34,}}, {0x499A,4,{0x82,0x34,0x9E,0x35,}}, {0x499B,2,{0xFE,0x8D,0x00,0x00,}}, {0x499C,4,{0x82,0x34,0x9E,0x36,}}, {0x499D,4,{0x82,0x34,0x9E,0x37,}}, {0x499E,4,{0x82,0x34,0x9E,0x38,}}, {0x499F,2,{0xFE,0x8C,0x00,0x00,}}, {0x49A0,4,{0x82,0x34,0x9E,0x39,}}, {0x49A1,4,{0x82,0x34,0x9F,0x30,}}, {0x49A2,4,{0x82,0x34,0x9F,0x31,}}, {0x49A3,4,{0x82,0x34,0x9F,0x32,}}, {0x49A4,4,{0x82,0x34,0x9F,0x33,}}, {0x49A5,4,{0x82,0x34,0x9F,0x34,}}, {0x49A6,4,{0x82,0x34,0x9F,0x35,}}, {0x49A7,4,{0x82,0x34,0x9F,0x36,}}, {0x49A8,4,{0x82,0x34,0x9F,0x37,}}, {0x49A9,4,{0x82,0x34,0x9F,0x38,}}, {0x49AA,4,{0x82,0x34,0x9F,0x39,}}, {0x49AB,4,{0x82,0x34,0xA0,0x30,}}, {0x49AC,4,{0x82,0x34,0xA0,0x31,}}, {0x49AD,4,{0x82,0x34,0xA0,0x32,}}, {0x49AE,4,{0x82,0x34,0xA0,0x33,}}, {0x49AF,4,{0x82,0x34,0xA0,0x34,}}, {0x49B0,4,{0x82,0x34,0xA0,0x35,}}, {0x49B1,4,{0x82,0x34,0xA0,0x36,}}, {0x49B2,4,{0x82,0x34,0xA0,0x37,}}, {0x49B3,4,{0x82,0x34,0xA0,0x38,}}, {0x49B4,4,{0x82,0x34,0xA0,0x39,}}, {0x49B5,4,{0x82,0x34,0xA1,0x30,}}, {0x49B6,2,{0xFE,0x8F,0x00,0x00,}}, {0x49B7,2,{0xFE,0x8E,0x00,0x00,}}, {0x4C77,2,{0xFE,0x96,0x00,0x00,}}, {0x4C78,4,{0x82,0x34,0xE7,0x34,}}, {0x4C79,4,{0x82,0x34,0xE7,0x35,}}, {0x4C7A,4,{0x82,0x34,0xE7,0x36,}}, {0x4C7B,4,{0x82,0x34,0xE7,0x37,}}, {0x4C7C,4,{0x82,0x34,0xE7,0x38,}}, {0x4C7D,4,{0x82,0x34,0xE7,0x39,}}, {0x4C7E,4,{0x82,0x34,0xE8,0x30,}}, {0x4C7F,4,{0x82,0x34,0xE8,0x31,}}, {0x4C80,4,{0x82,0x34,0xE8,0x32,}}, {0x4C81,4,{0x82,0x34,0xE8,0x33,}}, {0x4C82,4,{0x82,0x34,0xE8,0x34,}}, {0x4C83,4,{0x82,0x34,0xE8,0x35,}}, {0x4C84,4,{0x82,0x34,0xE8,0x36,}}, {0x4C85,4,{0x82,0x34,0xE8,0x37,}}, {0x4C86,4,{0x82,0x34,0xE8,0x38,}}, {0x4C87,4,{0x82,0x34,0xE8,0x39,}}, {0x4C88,4,{0x82,0x34,0xE9,0x30,}}, {0x4C89,4,{0x82,0x34,0xE9,0x31,}}, {0x4C8A,4,{0x82,0x34,0xE9,0x32,}}, {0x4C8B,4,{0x82,0x34,0xE9,0x33,}}, {0x4C8C,4,{0x82,0x34,0xE9,0x34,}}, {0x4C8D,4,{0x82,0x34,0xE9,0x35,}}, {0x4C8E,4,{0x82,0x34,0xE9,0x36,}}, {0x4C8F,4,{0x82,0x34,0xE9,0x37,}}, {0x4C90,4,{0x82,0x34,0xE9,0x38,}}, {0x4C91,4,{0x82,0x34,0xE9,0x39,}}, {0x4C92,4,{0x82,0x34,0xEA,0x30,}}, {0x4C93,4,{0x82,0x34,0xEA,0x31,}}, {0x4C94,4,{0x82,0x34,0xEA,0x32,}}, {0x4C95,4,{0x82,0x34,0xEA,0x33,}}, {0x4C96,4,{0x82,0x34,0xEA,0x34,}}, {0x4C97,4,{0x82,0x34,0xEA,0x35,}}, {0x4C98,4,{0x82,0x34,0xEA,0x36,}}, {0x4C99,4,{0x82,0x34,0xEA,0x37,}}, {0x4C9A,4,{0x82,0x34,0xEA,0x38,}}, {0x4C9B,4,{0x82,0x34,0xEA,0x39,}}, {0x4C9C,4,{0x82,0x34,0xEB,0x30,}}, {0x4C9D,4,{0x82,0x34,0xEB,0x31,}}, {0x4C9E,4,{0x82,0x34,0xEB,0x32,}}, {0x4C9F,2,{0xFE,0x93,0x00,0x00,}}, {0x4CA0,2,{0xFE,0x94,0x00,0x00,}}, {0x4CA1,2,{0xFE,0x95,0x00,0x00,}}, {0x4CA2,2,{0xFE,0x97,0x00,0x00,}}, {0x4CA3,2,{0xFE,0x92,0x00,0x00,}}, {0x4CA4,4,{0x82,0x34,0xEB,0x33,}}, {0x4CA5,4,{0x82,0x34,0xEB,0x34,}}, {0x4CA6,4,{0x82,0x34,0xEB,0x35,}}, {0x4CA7,4,{0x82,0x34,0xEB,0x36,}}, {0x4CA8,4,{0x82,0x34,0xEB,0x37,}}, {0x4CA9,4,{0x82,0x34,0xEB,0x38,}}, {0x4CAA,4,{0x82,0x34,0xEB,0x39,}}, {0x4CAB,4,{0x82,0x34,0xEC,0x30,}}, {0x4CAC,4,{0x82,0x34,0xEC,0x31,}}, {0x4CAD,4,{0x82,0x34,0xEC,0x32,}}, {0x4CAE,4,{0x82,0x34,0xEC,0x33,}}, {0x4CAF,4,{0x82,0x34,0xEC,0x34,}}, {0x4CB0,4,{0x82,0x34,0xEC,0x35,}}, {0x4CB1,4,{0x82,0x34,0xEC,0x36,}}, {0x4CB2,4,{0x82,0x34,0xEC,0x37,}}, {0x4CB3,4,{0x82,0x34,0xEC,0x38,}}, {0x4CB4,4,{0x82,0x34,0xEC,0x39,}}, {0x4CB5,4,{0x82,0x34,0xED,0x30,}}, {0x4CB6,4,{0x82,0x34,0xED,0x31,}}, {0x4CB7,4,{0x82,0x34,0xED,0x32,}}, {0x4CB8,4,{0x82,0x34,0xED,0x33,}}, {0x4CB9,4,{0x82,0x34,0xED,0x34,}}, {0x4CBA,4,{0x82,0x34,0xED,0x35,}}, {0x4CBB,4,{0x82,0x34,0xED,0x36,}}, {0x4CBC,4,{0x82,0x34,0xED,0x37,}}, {0x4CBD,4,{0x82,0x34,0xED,0x38,}}, {0x4CBE,4,{0x82,0x34,0xED,0x39,}}, {0x4CBF,4,{0x82,0x34,0xEE,0x30,}}, {0x4CC0,4,{0x82,0x34,0xEE,0x31,}}, {0x4CC1,4,{0x82,0x34,0xEE,0x32,}}, {0x4CC2,4,{0x82,0x34,0xEE,0x33,}}, {0x4CC3,4,{0x82,0x34,0xEE,0x34,}}, {0x4CC4,4,{0x82,0x34,0xEE,0x35,}}, {0x4CC5,4,{0x82,0x34,0xEE,0x36,}}, {0x4CC6,4,{0x82,0x34,0xEE,0x37,}}, {0x4CC7,4,{0x82,0x34,0xEE,0x38,}}, {0x4CC8,4,{0x82,0x34,0xEE,0x39,}}, {0x4CC9,4,{0x82,0x34,0xEF,0x30,}}, {0x4CCA,4,{0x82,0x34,0xEF,0x31,}}, {0x4CCB,4,{0x82,0x34,0xEF,0x32,}}, {0x4CCC,4,{0x82,0x34,0xEF,0x33,}}, {0x4CCD,4,{0x82,0x34,0xEF,0x34,}}, {0x4CCE,4,{0x82,0x34,0xEF,0x35,}}, {0x4CCF,4,{0x82,0x34,0xEF,0x36,}}, {0x4CD0,4,{0x82,0x34,0xEF,0x37,}}, {0x4CD1,4,{0x82,0x34,0xEF,0x38,}}, {0x4CD2,4,{0x82,0x34,0xEF,0x39,}}, {0x4CD3,4,{0x82,0x34,0xF0,0x30,}}, {0x4CD4,4,{0x82,0x34,0xF0,0x31,}}, {0x4CD5,4,{0x82,0x34,0xF0,0x32,}}, {0x4CD6,4,{0x82,0x34,0xF0,0x33,}}, {0x4CD7,4,{0x82,0x34,0xF0,0x34,}}, {0x4CD8,4,{0x82,0x34,0xF0,0x35,}}, {0x4CD9,4,{0x82,0x34,0xF0,0x36,}}, {0x4CDA,4,{0x82,0x34,0xF0,0x37,}}, {0x4CDB,4,{0x82,0x34,0xF0,0x38,}}, {0x4CDC,4,{0x82,0x34,0xF0,0x39,}}, {0x4CDD,4,{0x82,0x34,0xF1,0x30,}}, {0x4CDE,4,{0x82,0x34,0xF1,0x31,}}, {0x4CDF,4,{0x82,0x34,0xF1,0x32,}}, {0x4CE0,4,{0x82,0x34,0xF1,0x33,}}, {0x4CE1,4,{0x82,0x34,0xF1,0x34,}}, {0x4CE2,4,{0x82,0x34,0xF1,0x35,}}, {0x4CE3,4,{0x82,0x34,0xF1,0x36,}}, {0x4CE4,4,{0x82,0x34,0xF1,0x37,}}, {0x4CE5,4,{0x82,0x34,0xF1,0x38,}}, {0x4CE6,4,{0x82,0x34,0xF1,0x39,}}, {0x4CE7,4,{0x82,0x34,0xF2,0x30,}}, {0x4CE8,4,{0x82,0x34,0xF2,0x31,}}, {0x4CE9,4,{0x82,0x34,0xF2,0x32,}}, {0x4CEA,4,{0x82,0x34,0xF2,0x33,}}, {0x4CEB,4,{0x82,0x34,0xF2,0x34,}}, {0x4CEC,4,{0x82,0x34,0xF2,0x35,}}, {0x4CED,4,{0x82,0x34,0xF2,0x36,}}, {0x4CEE,4,{0x82,0x34,0xF2,0x37,}}, {0x4CEF,4,{0x82,0x34,0xF2,0x38,}}, {0x4CF0,4,{0x82,0x34,0xF2,0x39,}}, {0x4CF1,4,{0x82,0x34,0xF3,0x30,}}, {0x4CF2,4,{0x82,0x34,0xF3,0x31,}}, {0x4CF3,4,{0x82,0x34,0xF3,0x32,}}, {0x4CF4,4,{0x82,0x34,0xF3,0x33,}}, {0x4CF5,4,{0x82,0x34,0xF3,0x34,}}, {0x4CF6,4,{0x82,0x34,0xF3,0x35,}}, {0x4CF7,4,{0x82,0x34,0xF3,0x36,}}, {0x4CF8,4,{0x82,0x34,0xF3,0x37,}}, {0x4CF9,4,{0x82,0x34,0xF3,0x38,}}, {0x4CFA,4,{0x82,0x34,0xF3,0x39,}}, {0x4CFB,4,{0x82,0x34,0xF4,0x30,}}, {0x4CFC,4,{0x82,0x34,0xF4,0x31,}}, {0x4CFD,4,{0x82,0x34,0xF4,0x32,}}, {0x4CFE,4,{0x82,0x34,0xF4,0x33,}}, {0x4CFF,4,{0x82,0x34,0xF4,0x34,}}, {0x4D00,4,{0x82,0x34,0xF4,0x35,}}, {0x4D01,4,{0x82,0x34,0xF4,0x36,}}, {0x4D02,4,{0x82,0x34,0xF4,0x37,}}, {0x4D03,4,{0x82,0x34,0xF4,0x38,}}, {0x4D04,4,{0x82,0x34,0xF4,0x39,}}, {0x4D05,4,{0x82,0x34,0xF5,0x30,}}, {0x4D06,4,{0x82,0x34,0xF5,0x31,}}, {0x4D07,4,{0x82,0x34,0xF5,0x32,}}, {0x4D08,4,{0x82,0x34,0xF5,0x33,}}, {0x4D09,4,{0x82,0x34,0xF5,0x34,}}, {0x4D0A,4,{0x82,0x34,0xF5,0x35,}}, {0x4D0B,4,{0x82,0x34,0xF5,0x36,}}, {0x4D0C,4,{0x82,0x34,0xF5,0x37,}}, {0x4D0D,4,{0x82,0x34,0xF5,0x38,}}, {0x4D0E,4,{0x82,0x34,0xF5,0x39,}}, {0x4D0F,4,{0x82,0x34,0xF6,0x30,}}, {0x4D10,4,{0x82,0x34,0xF6,0x31,}}, {0x4D11,4,{0x82,0x34,0xF6,0x32,}}, {0x4D12,4,{0x82,0x34,0xF6,0x33,}}, {0x4D13,2,{0xFE,0x98,0x00,0x00,}}, {0x4D14,2,{0xFE,0x99,0x00,0x00,}}, {0x4D15,2,{0xFE,0x9A,0x00,0x00,}}, {0x4D16,2,{0xFE,0x9B,0x00,0x00,}}, {0x4D17,2,{0xFE,0x9C,0x00,0x00,}}, {0x4D18,2,{0xFE,0x9D,0x00,0x00,}}, {0x4D19,2,{0xFE,0x9E,0x00,0x00,}}, {0x4D1A,4,{0x82,0x34,0xF6,0x34,}}, {0x4D1B,4,{0x82,0x34,0xF6,0x35,}}, {0x4D1C,4,{0x82,0x34,0xF6,0x36,}}, {0x4D1D,4,{0x82,0x34,0xF6,0x37,}}, {0x4D1E,4,{0x82,0x34,0xF6,0x38,}}, {0x4D1F,4,{0x82,0x34,0xF6,0x39,}}, {0x4D20,4,{0x82,0x34,0xF7,0x30,}}, {0x4D21,4,{0x82,0x34,0xF7,0x31,}}, {0x4D22,4,{0x82,0x34,0xF7,0x32,}}, {0x4D23,4,{0x82,0x34,0xF7,0x33,}}, {0x4D24,4,{0x82,0x34,0xF7,0x34,}}, {0x4D25,4,{0x82,0x34,0xF7,0x35,}}, {0x4D26,4,{0x82,0x34,0xF7,0x36,}}, {0x4D27,4,{0x82,0x34,0xF7,0x37,}}, {0x4D28,4,{0x82,0x34,0xF7,0x38,}}, {0x4D29,4,{0x82,0x34,0xF7,0x39,}}, {0x4D2A,4,{0x82,0x34,0xF8,0x30,}}, {0x4D2B,4,{0x82,0x34,0xF8,0x31,}}, {0x4D2C,4,{0x82,0x34,0xF8,0x32,}}, {0x4D2D,4,{0x82,0x34,0xF8,0x33,}}, {0x4D2E,4,{0x82,0x34,0xF8,0x34,}}, {0x4D2F,4,{0x82,0x34,0xF8,0x35,}}, {0x4D30,4,{0x82,0x34,0xF8,0x36,}}, {0x4D31,4,{0x82,0x34,0xF8,0x37,}}, {0x4D32,4,{0x82,0x34,0xF8,0x38,}}, {0x4D33,4,{0x82,0x34,0xF8,0x39,}}, {0x4D34,4,{0x82,0x34,0xF9,0x30,}}, {0x4D35,4,{0x82,0x34,0xF9,0x31,}}, {0x4D36,4,{0x82,0x34,0xF9,0x32,}}, {0x4D37,4,{0x82,0x34,0xF9,0x33,}}, {0x4D38,4,{0x82,0x34,0xF9,0x34,}}, {0x4D39,4,{0x82,0x34,0xF9,0x35,}}, {0x4D3A,4,{0x82,0x34,0xF9,0x36,}}, {0x4D3B,4,{0x82,0x34,0xF9,0x37,}}, {0x4D3C,4,{0x82,0x34,0xF9,0x38,}}, {0x4D3D,4,{0x82,0x34,0xF9,0x39,}}, {0x4D3E,4,{0x82,0x34,0xFA,0x30,}}, {0x4D3F,4,{0x82,0x34,0xFA,0x31,}}, {0x4D40,4,{0x82,0x34,0xFA,0x32,}}, {0x4D41,4,{0x82,0x34,0xFA,0x33,}}, {0x4D42,4,{0x82,0x34,0xFA,0x34,}}, {0x4D43,4,{0x82,0x34,0xFA,0x35,}}, {0x4D44,4,{0x82,0x34,0xFA,0x36,}}, {0x4D45,4,{0x82,0x34,0xFA,0x37,}}, {0x4D46,4,{0x82,0x34,0xFA,0x38,}}, {0x4D47,4,{0x82,0x34,0xFA,0x39,}}, {0x4D48,4,{0x82,0x34,0xFB,0x30,}}, {0x4D49,4,{0x82,0x34,0xFB,0x31,}}, {0x4D4A,4,{0x82,0x34,0xFB,0x32,}}, {0x4D4B,4,{0x82,0x34,0xFB,0x33,}}, {0x4D4C,4,{0x82,0x34,0xFB,0x34,}}, {0x4D4D,4,{0x82,0x34,0xFB,0x35,}}, {0x4D4E,4,{0x82,0x34,0xFB,0x36,}}, {0x4D4F,4,{0x82,0x34,0xFB,0x37,}}, {0x4D50,4,{0x82,0x34,0xFB,0x38,}}, {0x4D51,4,{0x82,0x34,0xFB,0x39,}}, {0x4D52,4,{0x82,0x34,0xFC,0x30,}}, {0x4D53,4,{0x82,0x34,0xFC,0x31,}}, {0x4D54,4,{0x82,0x34,0xFC,0x32,}}, {0x4D55,4,{0x82,0x34,0xFC,0x33,}}, {0x4D56,4,{0x82,0x34,0xFC,0x34,}}, {0x4D57,4,{0x82,0x34,0xFC,0x35,}}, {0x4D58,4,{0x82,0x34,0xFC,0x36,}}, {0x4D59,4,{0x82,0x34,0xFC,0x37,}}, {0x4D5A,4,{0x82,0x34,0xFC,0x38,}}, {0x4D5B,4,{0x82,0x34,0xFC,0x39,}}, {0x4D5C,4,{0x82,0x34,0xFD,0x30,}}, {0x4D5D,4,{0x82,0x34,0xFD,0x31,}}, {0x4D5E,4,{0x82,0x34,0xFD,0x32,}}, {0x4D5F,4,{0x82,0x34,0xFD,0x33,}}, {0x4D60,4,{0x82,0x34,0xFD,0x34,}}, {0x4D61,4,{0x82,0x34,0xFD,0x35,}}, {0x4D62,4,{0x82,0x34,0xFD,0x36,}}, {0x4D63,4,{0x82,0x34,0xFD,0x37,}}, {0x4D64,4,{0x82,0x34,0xFD,0x38,}}, {0x4D65,4,{0x82,0x34,0xFD,0x39,}}, {0x4D66,4,{0x82,0x34,0xFE,0x30,}}, {0x4D67,4,{0x82,0x34,0xFE,0x31,}}, {0x4D68,4,{0x82,0x34,0xFE,0x32,}}, {0x4D69,4,{0x82,0x34,0xFE,0x33,}}, {0x4D6A,4,{0x82,0x34,0xFE,0x34,}}, {0x4D6B,4,{0x82,0x34,0xFE,0x35,}}, {0x4D6C,4,{0x82,0x34,0xFE,0x36,}}, {0x4D6D,4,{0x82,0x34,0xFE,0x37,}}, {0x4D6E,4,{0x82,0x34,0xFE,0x38,}}, {0x4D6F,4,{0x82,0x34,0xFE,0x39,}}, {0x4D70,4,{0x82,0x35,0x81,0x30,}}, {0x4D71,4,{0x82,0x35,0x81,0x31,}}, {0x4D72,4,{0x82,0x35,0x81,0x32,}}, {0x4D73,4,{0x82,0x35,0x81,0x33,}}, {0x4D74,4,{0x82,0x35,0x81,0x34,}}, {0x4D75,4,{0x82,0x35,0x81,0x35,}}, {0x4D76,4,{0x82,0x35,0x81,0x36,}}, {0x4D77,4,{0x82,0x35,0x81,0x37,}}, {0x4D78,4,{0x82,0x35,0x81,0x38,}}, {0x4D79,4,{0x82,0x35,0x81,0x39,}}, {0x4D7A,4,{0x82,0x35,0x82,0x30,}}, {0x4D7B,4,{0x82,0x35,0x82,0x31,}}, {0x4D7C,4,{0x82,0x35,0x82,0x32,}}, {0x4D7D,4,{0x82,0x35,0x82,0x33,}}, {0x4D7E,4,{0x82,0x35,0x82,0x34,}}, {0x4D7F,4,{0x82,0x35,0x82,0x35,}}, {0x4D80,4,{0x82,0x35,0x82,0x36,}}, {0x4D81,4,{0x82,0x35,0x82,0x37,}}, {0x4D82,4,{0x82,0x35,0x82,0x38,}}, {0x4D83,4,{0x82,0x35,0x82,0x39,}}, {0x4D84,4,{0x82,0x35,0x83,0x30,}}, {0x4D85,4,{0x82,0x35,0x83,0x31,}}, {0x4D86,4,{0x82,0x35,0x83,0x32,}}, {0x4D87,4,{0x82,0x35,0x83,0x33,}}, {0x4D88,4,{0x82,0x35,0x83,0x34,}}, {0x4D89,4,{0x82,0x35,0x83,0x35,}}, {0x4D8A,4,{0x82,0x35,0x83,0x36,}}, {0x4D8B,4,{0x82,0x35,0x83,0x37,}}, {0x4D8C,4,{0x82,0x35,0x83,0x38,}}, {0x4D8D,4,{0x82,0x35,0x83,0x39,}}, {0x4D8E,4,{0x82,0x35,0x84,0x30,}}, {0x4D8F,4,{0x82,0x35,0x84,0x31,}}, {0x4D90,4,{0x82,0x35,0x84,0x32,}}, {0x4D91,4,{0x82,0x35,0x84,0x33,}}, {0x4D92,4,{0x82,0x35,0x84,0x34,}}, {0x4D93,4,{0x82,0x35,0x84,0x35,}}, {0x4D94,4,{0x82,0x35,0x84,0x36,}}, {0x4D95,4,{0x82,0x35,0x84,0x37,}}, {0x4D96,4,{0x82,0x35,0x84,0x38,}}, {0x4D97,4,{0x82,0x35,0x84,0x39,}}, {0x4D98,4,{0x82,0x35,0x85,0x30,}}, {0x4D99,4,{0x82,0x35,0x85,0x31,}}, {0x4D9A,4,{0x82,0x35,0x85,0x32,}}, {0x4D9B,4,{0x82,0x35,0x85,0x33,}}, {0x4D9C,4,{0x82,0x35,0x85,0x34,}}, {0x4D9D,4,{0x82,0x35,0x85,0x35,}}, {0x4D9E,4,{0x82,0x35,0x85,0x36,}}, {0x4D9F,4,{0x82,0x35,0x85,0x37,}}, {0x4DA0,4,{0x82,0x35,0x85,0x38,}}, {0x4DA1,4,{0x82,0x35,0x85,0x39,}}, {0x4DA2,4,{0x82,0x35,0x86,0x30,}}, {0x4DA3,4,{0x82,0x35,0x86,0x31,}}, {0x4DA4,4,{0x82,0x35,0x86,0x32,}}, {0x4DA5,4,{0x82,0x35,0x86,0x33,}}, {0x4DA6,4,{0x82,0x35,0x86,0x34,}}, {0x4DA7,4,{0x82,0x35,0x86,0x35,}}, {0x4DA8,4,{0x82,0x35,0x86,0x36,}}, {0x4DA9,4,{0x82,0x35,0x86,0x37,}}, {0x4DAA,4,{0x82,0x35,0x86,0x38,}}, {0x4DAB,4,{0x82,0x35,0x86,0x39,}}, {0x4DAC,4,{0x82,0x35,0x87,0x30,}}, {0x4DAD,4,{0x82,0x35,0x87,0x31,}}, {0x4DAE,2,{0xFE,0x9F,0x00,0x00,}}, {0x4DAF,4,{0x82,0x35,0x87,0x32,}}, {0x4DB0,4,{0x82,0x35,0x87,0x33,}}, {0x4DB1,4,{0x82,0x35,0x87,0x34,}}, {0x4DB2,4,{0x82,0x35,0x87,0x35,}}, {0x4DB3,4,{0x82,0x35,0x87,0x36,}}, {0x4DB4,4,{0x82,0x35,0x87,0x37,}}, {0x4DB5,4,{0x82,0x35,0x87,0x38,}}, {0x4DB6,4,{0x82,0x35,0x87,0x39,}}, {0x4DB7,4,{0x82,0x35,0x88,0x30,}}, {0x4DB8,4,{0x82,0x35,0x88,0x31,}}, {0x4DB9,4,{0x82,0x35,0x88,0x32,}}, {0x4DBA,4,{0x82,0x35,0x88,0x33,}}, {0x4DBB,4,{0x82,0x35,0x88,0x34,}}, {0x4DBC,4,{0x82,0x35,0x88,0x35,}}, {0x4DBD,4,{0x82,0x35,0x88,0x36,}}, {0x4DBE,4,{0x82,0x35,0x88,0x37,}}, {0x4DBF,4,{0x82,0x35,0x88,0x38,}}, {0x4DC0,4,{0x82,0x35,0x88,0x39,}}, {0x4DC1,4,{0x82,0x35,0x89,0x30,}}, {0x4DC2,4,{0x82,0x35,0x89,0x31,}}, {0x4DC3,4,{0x82,0x35,0x89,0x32,}}, {0x4DC4,4,{0x82,0x35,0x89,0x33,}}, {0x4DC5,4,{0x82,0x35,0x89,0x34,}}, {0x4DC6,4,{0x82,0x35,0x89,0x35,}}, {0x4DC7,4,{0x82,0x35,0x89,0x36,}}, {0x4DC8,4,{0x82,0x35,0x89,0x37,}}, {0x4DC9,4,{0x82,0x35,0x89,0x38,}}, {0x4DCA,4,{0x82,0x35,0x89,0x39,}}, {0x4DCB,4,{0x82,0x35,0x8A,0x30,}}, {0x4DCC,4,{0x82,0x35,0x8A,0x31,}}, {0x4DCD,4,{0x82,0x35,0x8A,0x32,}}, {0x4DCE,4,{0x82,0x35,0x8A,0x33,}}, {0x4DCF,4,{0x82,0x35,0x8A,0x34,}}, {0x4DD0,4,{0x82,0x35,0x8A,0x35,}}, {0x4DD1,4,{0x82,0x35,0x8A,0x36,}}, {0x4DD2,4,{0x82,0x35,0x8A,0x37,}}, {0x4DD3,4,{0x82,0x35,0x8A,0x38,}}, {0x4DD4,4,{0x82,0x35,0x8A,0x39,}}, {0x4DD5,4,{0x82,0x35,0x8B,0x30,}}, {0x4DD6,4,{0x82,0x35,0x8B,0x31,}}, {0x4DD7,4,{0x82,0x35,0x8B,0x32,}}, {0x4DD8,4,{0x82,0x35,0x8B,0x33,}}, {0x4DD9,4,{0x82,0x35,0x8B,0x34,}}, {0x4DDA,4,{0x82,0x35,0x8B,0x35,}}, {0x4DDB,4,{0x82,0x35,0x8B,0x36,}}, {0x4DDC,4,{0x82,0x35,0x8B,0x37,}}, {0x4DDD,4,{0x82,0x35,0x8B,0x38,}}, {0x4DDE,4,{0x82,0x35,0x8B,0x39,}}, {0x4DDF,4,{0x82,0x35,0x8C,0x30,}}, {0x4DE0,4,{0x82,0x35,0x8C,0x31,}}, {0x4DE1,4,{0x82,0x35,0x8C,0x32,}}, {0x4DE2,4,{0x82,0x35,0x8C,0x33,}}, {0x4DE3,4,{0x82,0x35,0x8C,0x34,}}, {0x4DE4,4,{0x82,0x35,0x8C,0x35,}}, {0x4DE5,4,{0x82,0x35,0x8C,0x36,}}, {0x4DE6,4,{0x82,0x35,0x8C,0x37,}}, {0x4DE7,4,{0x82,0x35,0x8C,0x38,}}, {0x4DE8,4,{0x82,0x35,0x8C,0x39,}}, {0x4DE9,4,{0x82,0x35,0x8D,0x30,}}, {0x4DEA,4,{0x82,0x35,0x8D,0x31,}}, {0x4DEB,4,{0x82,0x35,0x8D,0x32,}}, {0x4DEC,4,{0x82,0x35,0x8D,0x33,}}, {0x4DED,4,{0x82,0x35,0x8D,0x34,}}, {0x4DEE,4,{0x82,0x35,0x8D,0x35,}}, {0x4DEF,4,{0x82,0x35,0x8D,0x36,}}, {0x4DF0,4,{0x82,0x35,0x8D,0x37,}}, {0x4DF1,4,{0x82,0x35,0x8D,0x38,}}, {0x4DF2,4,{0x82,0x35,0x8D,0x39,}}, {0x4DF3,4,{0x82,0x35,0x8E,0x30,}}, {0x4DF4,4,{0x82,0x35,0x8E,0x31,}}, {0x4DF5,4,{0x82,0x35,0x8E,0x32,}}, {0x4DF6,4,{0x82,0x35,0x8E,0x33,}}, {0x4DF7,4,{0x82,0x35,0x8E,0x34,}}, {0x4DF8,4,{0x82,0x35,0x8E,0x35,}}, {0x4DF9,4,{0x82,0x35,0x8E,0x36,}}, {0x4DFA,4,{0x82,0x35,0x8E,0x37,}}, {0x4DFB,4,{0x82,0x35,0x8E,0x38,}}, {0x4DFC,4,{0x82,0x35,0x8E,0x39,}}, {0x4DFD,4,{0x82,0x35,0x8F,0x30,}}, {0x4DFE,4,{0x82,0x35,0x8F,0x31,}}, {0x4DFF,4,{0x82,0x35,0x8F,0x32,}}, {0x4E00,2,{0xD2,0xBB,0x00,0x00,}}, {0x4E01,2,{0xB6,0xA1,0x00,0x00,}}, {0x4E02,2,{0x81,0x40,0x00,0x00,}}, {0x4E03,2,{0xC6,0xDF,0x00,0x00,}}, {0x4E04,2,{0x81,0x41,0x00,0x00,}}, {0x4E05,2,{0x81,0x42,0x00,0x00,}}, {0x4E06,2,{0x81,0x43,0x00,0x00,}}, {0x4E07,2,{0xCD,0xF2,0x00,0x00,}}, {0x4E08,2,{0xD5,0xC9,0x00,0x00,}}, {0x4E09,2,{0xC8,0xFD,0x00,0x00,}}, {0x4E0A,2,{0xC9,0xCF,0x00,0x00,}}, {0x4E0B,2,{0xCF,0xC2,0x00,0x00,}}, {0x4E0C,2,{0xD8,0xA2,0x00,0x00,}}, {0x4E0D,2,{0xB2,0xBB,0x00,0x00,}}, {0x4E0E,2,{0xD3,0xEB,0x00,0x00,}}, {0x4E0F,2,{0x81,0x44,0x00,0x00,}}, {0x4E10,2,{0xD8,0xA4,0x00,0x00,}}, {0x4E11,2,{0xB3,0xF3,0x00,0x00,}}, {0x4E12,2,{0x81,0x45,0x00,0x00,}}, {0x4E13,2,{0xD7,0xA8,0x00,0x00,}}, {0x4E14,2,{0xC7,0xD2,0x00,0x00,}}, {0x4E15,2,{0xD8,0xA7,0x00,0x00,}}, {0x4E16,2,{0xCA,0xC0,0x00,0x00,}}, {0x4E17,2,{0x81,0x46,0x00,0x00,}}, {0x4E18,2,{0xC7,0xF0,0x00,0x00,}}, {0x4E19,2,{0xB1,0xFB,0x00,0x00,}}, {0x4E1A,2,{0xD2,0xB5,0x00,0x00,}}, {0x4E1B,2,{0xB4,0xD4,0x00,0x00,}}, {0x4E1C,2,{0xB6,0xAB,0x00,0x00,}}, {0x4E1D,2,{0xCB,0xBF,0x00,0x00,}}, {0x4E1E,2,{0xD8,0xA9,0x00,0x00,}}, {0x4E1F,2,{0x81,0x47,0x00,0x00,}}, {0x4E20,2,{0x81,0x48,0x00,0x00,}}, {0x4E21,2,{0x81,0x49,0x00,0x00,}}, {0x4E22,2,{0xB6,0xAA,0x00,0x00,}}, {0x4E23,2,{0x81,0x4A,0x00,0x00,}}, {0x4E24,2,{0xC1,0xBD,0x00,0x00,}}, {0x4E25,2,{0xD1,0xCF,0x00,0x00,}}, {0x4E26,2,{0x81,0x4B,0x00,0x00,}}, {0x4E27,2,{0xC9,0xA5,0x00,0x00,}}, {0x4E28,2,{0xD8,0xAD,0x00,0x00,}}, {0x4E29,2,{0x81,0x4C,0x00,0x00,}}, {0x4E2A,2,{0xB8,0xF6,0x00,0x00,}}, {0x4E2B,2,{0xD1,0xBE,0x00,0x00,}}, {0x4E2C,2,{0xE3,0xDC,0x00,0x00,}}, {0x4E2D,2,{0xD6,0xD0,0x00,0x00,}}, {0x4E2E,2,{0x81,0x4D,0x00,0x00,}}, {0x4E2F,2,{0x81,0x4E,0x00,0x00,}}, {0x4E30,2,{0xB7,0xE1,0x00,0x00,}}, {0x4E31,2,{0x81,0x4F,0x00,0x00,}}, {0x4E32,2,{0xB4,0xAE,0x00,0x00,}}, {0x4E33,2,{0x81,0x50,0x00,0x00,}}, {0x4E34,2,{0xC1,0xD9,0x00,0x00,}}, {0x4E35,2,{0x81,0x51,0x00,0x00,}}, {0x4E36,2,{0xD8,0xBC,0x00,0x00,}}, {0x4E37,2,{0x81,0x52,0x00,0x00,}}, {0x4E38,2,{0xCD,0xE8,0x00,0x00,}}, {0x4E39,2,{0xB5,0xA4,0x00,0x00,}}, {0x4E3A,2,{0xCE,0xAA,0x00,0x00,}}, {0x4E3B,2,{0xD6,0xF7,0x00,0x00,}}, {0x4E3C,2,{0x81,0x53,0x00,0x00,}}, {0x4E3D,2,{0xC0,0xF6,0x00,0x00,}}, {0x4E3E,2,{0xBE,0xD9,0x00,0x00,}}, {0x4E3F,2,{0xD8,0xAF,0x00,0x00,}}, {0x4E40,2,{0x81,0x54,0x00,0x00,}}, {0x4E41,2,{0x81,0x55,0x00,0x00,}}, {0x4E42,2,{0x81,0x56,0x00,0x00,}}, {0x4E43,2,{0xC4,0xCB,0x00,0x00,}}, {0x4E44,2,{0x81,0x57,0x00,0x00,}}, {0x4E45,2,{0xBE,0xC3,0x00,0x00,}}, {0x4E46,2,{0x81,0x58,0x00,0x00,}}, {0x4E47,2,{0xD8,0xB1,0x00,0x00,}}, {0x4E48,2,{0xC3,0xB4,0x00,0x00,}}, {0x4E49,2,{0xD2,0xE5,0x00,0x00,}}, {0x4E4A,2,{0x81,0x59,0x00,0x00,}}, {0x4E4B,2,{0xD6,0xAE,0x00,0x00,}}, {0x4E4C,2,{0xCE,0xDA,0x00,0x00,}}, {0x4E4D,2,{0xD5,0xA7,0x00,0x00,}}, {0x4E4E,2,{0xBA,0xF5,0x00,0x00,}}, {0x4E4F,2,{0xB7,0xA6,0x00,0x00,}}, {0x4E50,2,{0xC0,0xD6,0x00,0x00,}}, {0x4E51,2,{0x81,0x5A,0x00,0x00,}}, {0x4E52,2,{0xC6,0xB9,0x00,0x00,}}, {0x4E53,2,{0xC5,0xD2,0x00,0x00,}}, {0x4E54,2,{0xC7,0xC7,0x00,0x00,}}, {0x4E55,2,{0x81,0x5B,0x00,0x00,}}, {0x4E56,2,{0xB9,0xD4,0x00,0x00,}}, {0x4E57,2,{0x81,0x5C,0x00,0x00,}}, {0x4E58,2,{0xB3,0xCB,0x00,0x00,}}, {0x4E59,2,{0xD2,0xD2,0x00,0x00,}}, {0x4E5A,2,{0x81,0x5D,0x00,0x00,}}, {0x4E5B,2,{0x81,0x5E,0x00,0x00,}}, {0x4E5C,2,{0xD8,0xBF,0x00,0x00,}}, {0x4E5D,2,{0xBE,0xC5,0x00,0x00,}}, {0x4E5E,2,{0xC6,0xF2,0x00,0x00,}}, {0x4E5F,2,{0xD2,0xB2,0x00,0x00,}}, {0x4E60,2,{0xCF,0xB0,0x00,0x00,}}, {0x4E61,2,{0xCF,0xE7,0x00,0x00,}}, {0x4E62,2,{0x81,0x5F,0x00,0x00,}}, {0x4E63,2,{0x81,0x60,0x00,0x00,}}, {0x4E64,2,{0x81,0x61,0x00,0x00,}}, {0x4E65,2,{0x81,0x62,0x00,0x00,}}, {0x4E66,2,{0xCA,0xE9,0x00,0x00,}}, {0x4E67,2,{0x81,0x63,0x00,0x00,}}, {0x4E68,2,{0x81,0x64,0x00,0x00,}}, {0x4E69,2,{0xD8,0xC0,0x00,0x00,}}, {0x4E6A,2,{0x81,0x65,0x00,0x00,}}, {0x4E6B,2,{0x81,0x66,0x00,0x00,}}, {0x4E6C,2,{0x81,0x67,0x00,0x00,}}, {0x4E6D,2,{0x81,0x68,0x00,0x00,}}, {0x4E6E,2,{0x81,0x69,0x00,0x00,}}, {0x4E6F,2,{0x81,0x6A,0x00,0x00,}}, {0x4E70,2,{0xC2,0xF2,0x00,0x00,}}, {0x4E71,2,{0xC2,0xD2,0x00,0x00,}}, {0x4E72,2,{0x81,0x6B,0x00,0x00,}}, {0x4E73,2,{0xC8,0xE9,0x00,0x00,}}, {0x4E74,2,{0x81,0x6C,0x00,0x00,}}, {0x4E75,2,{0x81,0x6D,0x00,0x00,}}, {0x4E76,2,{0x81,0x6E,0x00,0x00,}}, {0x4E77,2,{0x81,0x6F,0x00,0x00,}}, {0x4E78,2,{0x81,0x70,0x00,0x00,}}, {0x4E79,2,{0x81,0x71,0x00,0x00,}}, {0x4E7A,2,{0x81,0x72,0x00,0x00,}}, {0x4E7B,2,{0x81,0x73,0x00,0x00,}}, {0x4E7C,2,{0x81,0x74,0x00,0x00,}}, {0x4E7D,2,{0x81,0x75,0x00,0x00,}}, {0x4E7E,2,{0xC7,0xAC,0x00,0x00,}}, {0x4E7F,2,{0x81,0x76,0x00,0x00,}}, {0x4E80,2,{0x81,0x77,0x00,0x00,}}, {0x4E81,2,{0x81,0x78,0x00,0x00,}}, {0x4E82,2,{0x81,0x79,0x00,0x00,}}, {0x4E83,2,{0x81,0x7A,0x00,0x00,}}, {0x4E84,2,{0x81,0x7B,0x00,0x00,}}, {0x4E85,2,{0x81,0x7C,0x00,0x00,}}, {0x4E86,2,{0xC1,0xCB,0x00,0x00,}}, {0x4E87,2,{0x81,0x7D,0x00,0x00,}}, {0x4E88,2,{0xD3,0xE8,0x00,0x00,}}, {0x4E89,2,{0xD5,0xF9,0x00,0x00,}}, {0x4E8A,2,{0x81,0x7E,0x00,0x00,}}, {0x4E8B,2,{0xCA,0xC2,0x00,0x00,}}, {0x4E8C,2,{0xB6,0xFE,0x00,0x00,}}, {0x4E8D,2,{0xD8,0xA1,0x00,0x00,}}, {0x4E8E,2,{0xD3,0xDA,0x00,0x00,}}, {0x4E8F,2,{0xBF,0xF7,0x00,0x00,}}, {0x4E90,2,{0x81,0x80,0x00,0x00,}}, {0x4E91,2,{0xD4,0xC6,0x00,0x00,}}, {0x4E92,2,{0xBB,0xA5,0x00,0x00,}}, {0x4E93,2,{0xD8,0xC1,0x00,0x00,}}, {0x4E94,2,{0xCE,0xE5,0x00,0x00,}}, {0x4E95,2,{0xBE,0xAE,0x00,0x00,}}, {0x4E96,2,{0x81,0x81,0x00,0x00,}}, {0x4E97,2,{0x81,0x82,0x00,0x00,}}, {0x4E98,2,{0xD8,0xA8,0x00,0x00,}}, {0x4E99,2,{0x81,0x83,0x00,0x00,}}, {0x4E9A,2,{0xD1,0xC7,0x00,0x00,}}, {0x4E9B,2,{0xD0,0xA9,0x00,0x00,}}, {0x4E9C,2,{0x81,0x84,0x00,0x00,}}, {0x4E9D,2,{0x81,0x85,0x00,0x00,}}, {0x4E9E,2,{0x81,0x86,0x00,0x00,}}, {0x4E9F,2,{0xD8,0xBD,0x00,0x00,}}, {0x4EA0,2,{0xD9,0xEF,0x00,0x00,}}, {0x4EA1,2,{0xCD,0xF6,0x00,0x00,}}, {0x4EA2,2,{0xBF,0xBA,0x00,0x00,}}, {0x4EA3,2,{0x81,0x87,0x00,0x00,}}, {0x4EA4,2,{0xBD,0xBB,0x00,0x00,}}, {0x4EA5,2,{0xBA,0xA5,0x00,0x00,}}, {0x4EA6,2,{0xD2,0xE0,0x00,0x00,}}, {0x4EA7,2,{0xB2,0xFA,0x00,0x00,}}, {0x4EA8,2,{0xBA,0xE0,0x00,0x00,}}, {0x4EA9,2,{0xC4,0xB6,0x00,0x00,}}, {0x4EAA,2,{0x81,0x88,0x00,0x00,}}, {0x4EAB,2,{0xCF,0xED,0x00,0x00,}}, {0x4EAC,2,{0xBE,0xA9,0x00,0x00,}}, {0x4EAD,2,{0xCD,0xA4,0x00,0x00,}}, {0x4EAE,2,{0xC1,0xC1,0x00,0x00,}}, {0x4EAF,2,{0x81,0x89,0x00,0x00,}}, {0x4EB0,2,{0x81,0x8A,0x00,0x00,}}, {0x4EB1,2,{0x81,0x8B,0x00,0x00,}}, {0x4EB2,2,{0xC7,0xD7,0x00,0x00,}}, {0x4EB3,2,{0xD9,0xF1,0x00,0x00,}}, {0x4EB4,2,{0x81,0x8C,0x00,0x00,}}, {0x4EB5,2,{0xD9,0xF4,0x00,0x00,}}, {0x4EB6,2,{0x81,0x8D,0x00,0x00,}}, {0x4EB7,2,{0x81,0x8E,0x00,0x00,}}, {0x4EB8,2,{0x81,0x8F,0x00,0x00,}}, {0x4EB9,2,{0x81,0x90,0x00,0x00,}}, {0x4EBA,2,{0xC8,0xCB,0x00,0x00,}}, {0x4EBB,2,{0xD8,0xE9,0x00,0x00,}}, {0x4EBC,2,{0x81,0x91,0x00,0x00,}}, {0x4EBD,2,{0x81,0x92,0x00,0x00,}}, {0x4EBE,2,{0x81,0x93,0x00,0x00,}}, {0x4EBF,2,{0xD2,0xDA,0x00,0x00,}}, {0x4EC0,2,{0xCA,0xB2,0x00,0x00,}}, {0x4EC1,2,{0xC8,0xCA,0x00,0x00,}}, {0x4EC2,2,{0xD8,0xEC,0x00,0x00,}}, {0x4EC3,2,{0xD8,0xEA,0x00,0x00,}}, {0x4EC4,2,{0xD8,0xC6,0x00,0x00,}}, {0x4EC5,2,{0xBD,0xF6,0x00,0x00,}}, {0x4EC6,2,{0xC6,0xCD,0x00,0x00,}}, {0x4EC7,2,{0xB3,0xF0,0x00,0x00,}}, {0x4EC8,2,{0x81,0x94,0x00,0x00,}}, {0x4EC9,2,{0xD8,0xEB,0x00,0x00,}}, {0x4ECA,2,{0xBD,0xF1,0x00,0x00,}}, {0x4ECB,2,{0xBD,0xE9,0x00,0x00,}}, {0x4ECC,2,{0x81,0x95,0x00,0x00,}}, {0x4ECD,2,{0xC8,0xD4,0x00,0x00,}}, {0x4ECE,2,{0xB4,0xD3,0x00,0x00,}}, {0x4ECF,2,{0x81,0x96,0x00,0x00,}}, {0x4ED0,2,{0x81,0x97,0x00,0x00,}}, {0x4ED1,2,{0xC2,0xD8,0x00,0x00,}}, {0x4ED2,2,{0x81,0x98,0x00,0x00,}}, {0x4ED3,2,{0xB2,0xD6,0x00,0x00,}}, {0x4ED4,2,{0xD7,0xD0,0x00,0x00,}}, {0x4ED5,2,{0xCA,0xCB,0x00,0x00,}}, {0x4ED6,2,{0xCB,0xFB,0x00,0x00,}}, {0x4ED7,2,{0xD5,0xCC,0x00,0x00,}}, {0x4ED8,2,{0xB8,0xB6,0x00,0x00,}}, {0x4ED9,2,{0xCF,0xC9,0x00,0x00,}}, {0x4EDA,2,{0x81,0x99,0x00,0x00,}}, {0x4EDB,2,{0x81,0x9A,0x00,0x00,}}, {0x4EDC,2,{0x81,0x9B,0x00,0x00,}}, {0x4EDD,2,{0xD9,0xDA,0x00,0x00,}}, {0x4EDE,2,{0xD8,0xF0,0x00,0x00,}}, {0x4EDF,2,{0xC7,0xAA,0x00,0x00,}}, {0x4EE0,2,{0x81,0x9C,0x00,0x00,}}, {0x4EE1,2,{0xD8,0xEE,0x00,0x00,}}, {0x4EE2,2,{0x81,0x9D,0x00,0x00,}}, {0x4EE3,2,{0xB4,0xFA,0x00,0x00,}}, {0x4EE4,2,{0xC1,0xEE,0x00,0x00,}}, {0x4EE5,2,{0xD2,0xD4,0x00,0x00,}}, {0x4EE6,2,{0x81,0x9E,0x00,0x00,}}, {0x4EE7,2,{0x81,0x9F,0x00,0x00,}}, {0x4EE8,2,{0xD8,0xED,0x00,0x00,}}, {0x4EE9,2,{0x81,0xA0,0x00,0x00,}}, {0x4EEA,2,{0xD2,0xC7,0x00,0x00,}}, {0x4EEB,2,{0xD8,0xEF,0x00,0x00,}}, {0x4EEC,2,{0xC3,0xC7,0x00,0x00,}}, {0x4EED,2,{0x81,0xA1,0x00,0x00,}}, {0x4EEE,2,{0x81,0xA2,0x00,0x00,}}, {0x4EEF,2,{0x81,0xA3,0x00,0x00,}}, {0x4EF0,2,{0xD1,0xF6,0x00,0x00,}}, {0x4EF1,2,{0x81,0xA4,0x00,0x00,}}, {0x4EF2,2,{0xD6,0xD9,0x00,0x00,}}, {0x4EF3,2,{0xD8,0xF2,0x00,0x00,}}, {0x4EF4,2,{0x81,0xA5,0x00,0x00,}}, {0x4EF5,2,{0xD8,0xF5,0x00,0x00,}}, {0x4EF6,2,{0xBC,0xFE,0x00,0x00,}}, {0x4EF7,2,{0xBC,0xDB,0x00,0x00,}}, {0x4EF8,2,{0x81,0xA6,0x00,0x00,}}, {0x4EF9,2,{0x81,0xA7,0x00,0x00,}}, {0x4EFA,2,{0x81,0xA8,0x00,0x00,}}, {0x4EFB,2,{0xC8,0xCE,0x00,0x00,}}, {0x4EFC,2,{0x81,0xA9,0x00,0x00,}}, {0x4EFD,2,{0xB7,0xDD,0x00,0x00,}}, {0x4EFE,2,{0x81,0xAA,0x00,0x00,}}, {0x4EFF,2,{0xB7,0xC2,0x00,0x00,}}, {0x4F00,2,{0x81,0xAB,0x00,0x00,}}, {0x4F01,2,{0xC6,0xF3,0x00,0x00,}}, {0x4F02,2,{0x81,0xAC,0x00,0x00,}}, {0x4F03,2,{0x81,0xAD,0x00,0x00,}}, {0x4F04,2,{0x81,0xAE,0x00,0x00,}}, {0x4F05,2,{0x81,0xAF,0x00,0x00,}}, {0x4F06,2,{0x81,0xB0,0x00,0x00,}}, {0x4F07,2,{0x81,0xB1,0x00,0x00,}}, {0x4F08,2,{0x81,0xB2,0x00,0x00,}}, {0x4F09,2,{0xD8,0xF8,0x00,0x00,}}, {0x4F0A,2,{0xD2,0xC1,0x00,0x00,}}, {0x4F0B,2,{0x81,0xB3,0x00,0x00,}}, {0x4F0C,2,{0x81,0xB4,0x00,0x00,}}, {0x4F0D,2,{0xCE,0xE9,0x00,0x00,}}, {0x4F0E,2,{0xBC,0xBF,0x00,0x00,}}, {0x4F0F,2,{0xB7,0xFC,0x00,0x00,}}, {0x4F10,2,{0xB7,0xA5,0x00,0x00,}}, {0x4F11,2,{0xD0,0xDD,0x00,0x00,}}, {0x4F12,2,{0x81,0xB5,0x00,0x00,}}, {0x4F13,2,{0x81,0xB6,0x00,0x00,}}, {0x4F14,2,{0x81,0xB7,0x00,0x00,}}, {0x4F15,2,{0x81,0xB8,0x00,0x00,}}, {0x4F16,2,{0x81,0xB9,0x00,0x00,}}, {0x4F17,2,{0xD6,0xDA,0x00,0x00,}}, {0x4F18,2,{0xD3,0xC5,0x00,0x00,}}, {0x4F19,2,{0xBB,0xEF,0x00,0x00,}}, {0x4F1A,2,{0xBB,0xE1,0x00,0x00,}}, {0x4F1B,2,{0xD8,0xF1,0x00,0x00,}}, {0x4F1C,2,{0x81,0xBA,0x00,0x00,}}, {0x4F1D,2,{0x81,0xBB,0x00,0x00,}}, {0x4F1E,2,{0xC9,0xA1,0x00,0x00,}}, {0x4F1F,2,{0xCE,0xB0,0x00,0x00,}}, {0x4F20,2,{0xB4,0xAB,0x00,0x00,}}, {0x4F21,2,{0x81,0xBC,0x00,0x00,}}, {0x4F22,2,{0xD8,0xF3,0x00,0x00,}}, {0x4F23,2,{0x81,0xBD,0x00,0x00,}}, {0x4F24,2,{0xC9,0xCB,0x00,0x00,}}, {0x4F25,2,{0xD8,0xF6,0x00,0x00,}}, {0x4F26,2,{0xC2,0xD7,0x00,0x00,}}, {0x4F27,2,{0xD8,0xF7,0x00,0x00,}}, {0x4F28,2,{0x81,0xBE,0x00,0x00,}}, {0x4F29,2,{0x81,0xBF,0x00,0x00,}}, {0x4F2A,2,{0xCE,0xB1,0x00,0x00,}}, {0x4F2B,2,{0xD8,0xF9,0x00,0x00,}}, {0x4F2C,2,{0x81,0xC0,0x00,0x00,}}, {0x4F2D,2,{0x81,0xC1,0x00,0x00,}}, {0x4F2E,2,{0x81,0xC2,0x00,0x00,}}, {0x4F2F,2,{0xB2,0xAE,0x00,0x00,}}, {0x4F30,2,{0xB9,0xC0,0x00,0x00,}}, {0x4F31,2,{0x81,0xC3,0x00,0x00,}}, {0x4F32,2,{0xD9,0xA3,0x00,0x00,}}, {0x4F33,2,{0x81,0xC4,0x00,0x00,}}, {0x4F34,2,{0xB0,0xE9,0x00,0x00,}}, {0x4F35,2,{0x81,0xC5,0x00,0x00,}}, {0x4F36,2,{0xC1,0xE6,0x00,0x00,}}, {0x4F37,2,{0x81,0xC6,0x00,0x00,}}, {0x4F38,2,{0xC9,0xEC,0x00,0x00,}}, {0x4F39,2,{0x81,0xC7,0x00,0x00,}}, {0x4F3A,2,{0xCB,0xC5,0x00,0x00,}}, {0x4F3B,2,{0x81,0xC8,0x00,0x00,}}, {0x4F3C,2,{0xCB,0xC6,0x00,0x00,}}, {0x4F3D,2,{0xD9,0xA4,0x00,0x00,}}, {0x4F3E,2,{0x81,0xC9,0x00,0x00,}}, {0x4F3F,2,{0x81,0xCA,0x00,0x00,}}, {0x4F40,2,{0x81,0xCB,0x00,0x00,}}, {0x4F41,2,{0x81,0xCC,0x00,0x00,}}, {0x4F42,2,{0x81,0xCD,0x00,0x00,}}, {0x4F43,2,{0xB5,0xE8,0x00,0x00,}}, {0x4F44,2,{0x81,0xCE,0x00,0x00,}}, {0x4F45,2,{0x81,0xCF,0x00,0x00,}}, {0x4F46,2,{0xB5,0xAB,0x00,0x00,}}, {0x4F47,2,{0x81,0xD0,0x00,0x00,}}, {0x4F48,2,{0x81,0xD1,0x00,0x00,}}, {0x4F49,2,{0x81,0xD2,0x00,0x00,}}, {0x4F4A,2,{0x81,0xD3,0x00,0x00,}}, {0x4F4B,2,{0x81,0xD4,0x00,0x00,}}, {0x4F4C,2,{0x81,0xD5,0x00,0x00,}}, {0x4F4D,2,{0xCE,0xBB,0x00,0x00,}}, {0x4F4E,2,{0xB5,0xCD,0x00,0x00,}}, {0x4F4F,2,{0xD7,0xA1,0x00,0x00,}}, {0x4F50,2,{0xD7,0xF4,0x00,0x00,}}, {0x4F51,2,{0xD3,0xD3,0x00,0x00,}}, {0x4F52,2,{0x81,0xD6,0x00,0x00,}}, {0x4F53,2,{0xCC,0xE5,0x00,0x00,}}, {0x4F54,2,{0x81,0xD7,0x00,0x00,}}, {0x4F55,2,{0xBA,0xCE,0x00,0x00,}}, {0x4F56,2,{0x81,0xD8,0x00,0x00,}}, {0x4F57,2,{0xD9,0xA2,0x00,0x00,}}, {0x4F58,2,{0xD9,0xDC,0x00,0x00,}}, {0x4F59,2,{0xD3,0xE0,0x00,0x00,}}, {0x4F5A,2,{0xD8,0xFD,0x00,0x00,}}, {0x4F5B,2,{0xB7,0xF0,0x00,0x00,}}, {0x4F5C,2,{0xD7,0xF7,0x00,0x00,}}, {0x4F5D,2,{0xD8,0xFE,0x00,0x00,}}, {0x4F5E,2,{0xD8,0xFA,0x00,0x00,}}, {0x4F5F,2,{0xD9,0xA1,0x00,0x00,}}, {0x4F60,2,{0xC4,0xE3,0x00,0x00,}}, {0x4F61,2,{0x81,0xD9,0x00,0x00,}}, {0x4F62,2,{0x81,0xDA,0x00,0x00,}}, {0x4F63,2,{0xD3,0xB6,0x00,0x00,}}, {0x4F64,2,{0xD8,0xF4,0x00,0x00,}}, {0x4F65,2,{0xD9,0xDD,0x00,0x00,}}, {0x4F66,2,{0x81,0xDB,0x00,0x00,}}, {0x4F67,2,{0xD8,0xFB,0x00,0x00,}}, {0x4F68,2,{0x81,0xDC,0x00,0x00,}}, {0x4F69,2,{0xC5,0xE5,0x00,0x00,}}, {0x4F6A,2,{0x81,0xDD,0x00,0x00,}}, {0x4F6B,2,{0x81,0xDE,0x00,0x00,}}, {0x4F6C,2,{0xC0,0xD0,0x00,0x00,}}, {0x4F6D,2,{0x81,0xDF,0x00,0x00,}}, {0x4F6E,2,{0x81,0xE0,0x00,0x00,}}, {0x4F6F,2,{0xD1,0xF0,0x00,0x00,}}, {0x4F70,2,{0xB0,0xDB,0x00,0x00,}}, {0x4F71,2,{0x81,0xE1,0x00,0x00,}}, {0x4F72,2,{0x81,0xE2,0x00,0x00,}}, {0x4F73,2,{0xBC,0xD1,0x00,0x00,}}, {0x4F74,2,{0xD9,0xA6,0x00,0x00,}}, {0x4F75,2,{0x81,0xE3,0x00,0x00,}}, {0x4F76,2,{0xD9,0xA5,0x00,0x00,}}, {0x4F77,2,{0x81,0xE4,0x00,0x00,}}, {0x4F78,2,{0x81,0xE5,0x00,0x00,}}, {0x4F79,2,{0x81,0xE6,0x00,0x00,}}, {0x4F7A,2,{0x81,0xE7,0x00,0x00,}}, {0x4F7B,2,{0xD9,0xAC,0x00,0x00,}}, {0x4F7C,2,{0xD9,0xAE,0x00,0x00,}}, {0x4F7D,2,{0x81,0xE8,0x00,0x00,}}, {0x4F7E,2,{0xD9,0xAB,0x00,0x00,}}, {0x4F7F,2,{0xCA,0xB9,0x00,0x00,}}, {0x4F80,2,{0x81,0xE9,0x00,0x00,}}, {0x4F81,2,{0x81,0xEA,0x00,0x00,}}, {0x4F82,2,{0x81,0xEB,0x00,0x00,}}, {0x4F83,2,{0xD9,0xA9,0x00,0x00,}}, {0x4F84,2,{0xD6,0xB6,0x00,0x00,}}, {0x4F85,2,{0x81,0xEC,0x00,0x00,}}, {0x4F86,2,{0x81,0xED,0x00,0x00,}}, {0x4F87,2,{0x81,0xEE,0x00,0x00,}}, {0x4F88,2,{0xB3,0xDE,0x00,0x00,}}, {0x4F89,2,{0xD9,0xA8,0x00,0x00,}}, {0x4F8A,2,{0x81,0xEF,0x00,0x00,}}, {0x4F8B,2,{0xC0,0xFD,0x00,0x00,}}, {0x4F8C,2,{0x81,0xF0,0x00,0x00,}}, {0x4F8D,2,{0xCA,0xCC,0x00,0x00,}}, {0x4F8E,2,{0x81,0xF1,0x00,0x00,}}, {0x4F8F,2,{0xD9,0xAA,0x00,0x00,}}, {0x4F90,2,{0x81,0xF2,0x00,0x00,}}, {0x4F91,2,{0xD9,0xA7,0x00,0x00,}}, {0x4F92,2,{0x81,0xF3,0x00,0x00,}}, {0x4F93,2,{0x81,0xF4,0x00,0x00,}}, {0x4F94,2,{0xD9,0xB0,0x00,0x00,}}, {0x4F95,2,{0x81,0xF5,0x00,0x00,}}, {0x4F96,2,{0x81,0xF6,0x00,0x00,}}, {0x4F97,2,{0xB6,0xB1,0x00,0x00,}}, {0x4F98,2,{0x81,0xF7,0x00,0x00,}}, {0x4F99,2,{0x81,0xF8,0x00,0x00,}}, {0x4F9A,2,{0x81,0xF9,0x00,0x00,}}, {0x4F9B,2,{0xB9,0xA9,0x00,0x00,}}, {0x4F9C,2,{0x81,0xFA,0x00,0x00,}}, {0x4F9D,2,{0xD2,0xC0,0x00,0x00,}}, {0x4F9E,2,{0x81,0xFB,0x00,0x00,}}, {0x4F9F,2,{0x81,0xFC,0x00,0x00,}}, {0x4FA0,2,{0xCF,0xC0,0x00,0x00,}}, {0x4FA1,2,{0x81,0xFD,0x00,0x00,}}, {0x4FA2,2,{0x81,0xFE,0x00,0x00,}}, {0x4FA3,2,{0xC2,0xC2,0x00,0x00,}}, {0x4FA4,2,{0x82,0x40,0x00,0x00,}}, {0x4FA5,2,{0xBD,0xC4,0x00,0x00,}}, {0x4FA6,2,{0xD5,0xEC,0x00,0x00,}}, {0x4FA7,2,{0xB2,0xE0,0x00,0x00,}}, {0x4FA8,2,{0xC7,0xC8,0x00,0x00,}}, {0x4FA9,2,{0xBF,0xEB,0x00,0x00,}}, {0x4FAA,2,{0xD9,0xAD,0x00,0x00,}}, {0x4FAB,2,{0x82,0x41,0x00,0x00,}}, {0x4FAC,2,{0xD9,0xAF,0x00,0x00,}}, {0x4FAD,2,{0x82,0x42,0x00,0x00,}}, {0x4FAE,2,{0xCE,0xEA,0x00,0x00,}}, {0x4FAF,2,{0xBA,0xEE,0x00,0x00,}}, {0x4FB0,2,{0x82,0x43,0x00,0x00,}}, {0x4FB1,2,{0x82,0x44,0x00,0x00,}}, {0x4FB2,2,{0x82,0x45,0x00,0x00,}}, {0x4FB3,2,{0x82,0x46,0x00,0x00,}}, {0x4FB4,2,{0x82,0x47,0x00,0x00,}}, {0x4FB5,2,{0xC7,0xD6,0x00,0x00,}}, {0x4FB6,2,{0x82,0x48,0x00,0x00,}}, {0x4FB7,2,{0x82,0x49,0x00,0x00,}}, {0x4FB8,2,{0x82,0x4A,0x00,0x00,}}, {0x4FB9,2,{0x82,0x4B,0x00,0x00,}}, {0x4FBA,2,{0x82,0x4C,0x00,0x00,}}, {0x4FBB,2,{0x82,0x4D,0x00,0x00,}}, {0x4FBC,2,{0x82,0x4E,0x00,0x00,}}, {0x4FBD,2,{0x82,0x4F,0x00,0x00,}}, {0x4FBE,2,{0x82,0x50,0x00,0x00,}}, {0x4FBF,2,{0xB1,0xE3,0x00,0x00,}}, {0x4FC0,2,{0x82,0x51,0x00,0x00,}}, {0x4FC1,2,{0x82,0x52,0x00,0x00,}}, {0x4FC2,2,{0x82,0x53,0x00,0x00,}}, {0x4FC3,2,{0xB4,0xD9,0x00,0x00,}}, {0x4FC4,2,{0xB6,0xED,0x00,0x00,}}, {0x4FC5,2,{0xD9,0xB4,0x00,0x00,}}, {0x4FC6,2,{0x82,0x54,0x00,0x00,}}, {0x4FC7,2,{0x82,0x55,0x00,0x00,}}, {0x4FC8,2,{0x82,0x56,0x00,0x00,}}, {0x4FC9,2,{0x82,0x57,0x00,0x00,}}, {0x4FCA,2,{0xBF,0xA1,0x00,0x00,}}, {0x4FCB,2,{0x82,0x58,0x00,0x00,}}, {0x4FCC,2,{0x82,0x59,0x00,0x00,}}, {0x4FCD,2,{0x82,0x5A,0x00,0x00,}}, {0x4FCE,2,{0xD9,0xDE,0x00,0x00,}}, {0x4FCF,2,{0xC7,0xCE,0x00,0x00,}}, {0x4FD0,2,{0xC0,0xFE,0x00,0x00,}}, {0x4FD1,2,{0xD9,0xB8,0x00,0x00,}}, {0x4FD2,2,{0x82,0x5B,0x00,0x00,}}, {0x4FD3,2,{0x82,0x5C,0x00,0x00,}}, {0x4FD4,2,{0x82,0x5D,0x00,0x00,}}, {0x4FD5,2,{0x82,0x5E,0x00,0x00,}}, {0x4FD6,2,{0x82,0x5F,0x00,0x00,}}, {0x4FD7,2,{0xCB,0xD7,0x00,0x00,}}, {0x4FD8,2,{0xB7,0xFD,0x00,0x00,}}, {0x4FD9,2,{0x82,0x60,0x00,0x00,}}, {0x4FDA,2,{0xD9,0xB5,0x00,0x00,}}, {0x4FDB,2,{0x82,0x61,0x00,0x00,}}, {0x4FDC,2,{0xD9,0xB7,0x00,0x00,}}, {0x4FDD,2,{0xB1,0xA3,0x00,0x00,}}, {0x4FDE,2,{0xD3,0xE1,0x00,0x00,}}, {0x4FDF,2,{0xD9,0xB9,0x00,0x00,}}, {0x4FE0,2,{0x82,0x62,0x00,0x00,}}, {0x4FE1,2,{0xD0,0xC5,0x00,0x00,}}, {0x4FE2,2,{0x82,0x63,0x00,0x00,}}, {0x4FE3,2,{0xD9,0xB6,0x00,0x00,}}, {0x4FE4,2,{0x82,0x64,0x00,0x00,}}, {0x4FE5,2,{0x82,0x65,0x00,0x00,}}, {0x4FE6,2,{0xD9,0xB1,0x00,0x00,}}, {0x4FE7,2,{0x82,0x66,0x00,0x00,}}, {0x4FE8,2,{0xD9,0xB2,0x00,0x00,}}, {0x4FE9,2,{0xC1,0xA9,0x00,0x00,}}, {0x4FEA,2,{0xD9,0xB3,0x00,0x00,}}, {0x4FEB,2,{0x82,0x67,0x00,0x00,}}, {0x4FEC,2,{0x82,0x68,0x00,0x00,}}, {0x4FED,2,{0xBC,0xF3,0x00,0x00,}}, {0x4FEE,2,{0xD0,0xDE,0x00,0x00,}}, {0x4FEF,2,{0xB8,0xA9,0x00,0x00,}}, {0x4FF0,2,{0x82,0x69,0x00,0x00,}}, {0x4FF1,2,{0xBE,0xE3,0x00,0x00,}}, {0x4FF2,2,{0x82,0x6A,0x00,0x00,}}, {0x4FF3,2,{0xD9,0xBD,0x00,0x00,}}, {0x4FF4,2,{0x82,0x6B,0x00,0x00,}}, {0x4FF5,2,{0x82,0x6C,0x00,0x00,}}, {0x4FF6,2,{0x82,0x6D,0x00,0x00,}}, {0x4FF7,2,{0x82,0x6E,0x00,0x00,}}, {0x4FF8,2,{0xD9,0xBA,0x00,0x00,}}, {0x4FF9,2,{0x82,0x6F,0x00,0x00,}}, {0x4FFA,2,{0xB0,0xB3,0x00,0x00,}}, {0x4FFB,2,{0x82,0x70,0x00,0x00,}}, {0x4FFC,2,{0x82,0x71,0x00,0x00,}}, {0x4FFD,2,{0x82,0x72,0x00,0x00,}}, {0x4FFE,2,{0xD9,0xC2,0x00,0x00,}}, {0x4FFF,2,{0x82,0x73,0x00,0x00,}}, {0x5000,2,{0x82,0x74,0x00,0x00,}}, {0x5001,2,{0x82,0x75,0x00,0x00,}}, {0x5002,2,{0x82,0x76,0x00,0x00,}}, {0x5003,2,{0x82,0x77,0x00,0x00,}}, {0x5004,2,{0x82,0x78,0x00,0x00,}}, {0x5005,2,{0x82,0x79,0x00,0x00,}}, {0x5006,2,{0x82,0x7A,0x00,0x00,}}, {0x5007,2,{0x82,0x7B,0x00,0x00,}}, {0x5008,2,{0x82,0x7C,0x00,0x00,}}, {0x5009,2,{0x82,0x7D,0x00,0x00,}}, {0x500A,2,{0x82,0x7E,0x00,0x00,}}, {0x500B,2,{0x82,0x80,0x00,0x00,}}, {0x500C,2,{0xD9,0xC4,0x00,0x00,}}, {0x500D,2,{0xB1,0xB6,0x00,0x00,}}, {0x500E,2,{0x82,0x81,0x00,0x00,}}, {0x500F,2,{0xD9,0xBF,0x00,0x00,}}, {0x5010,2,{0x82,0x82,0x00,0x00,}}, {0x5011,2,{0x82,0x83,0x00,0x00,}}, {0x5012,2,{0xB5,0xB9,0x00,0x00,}}, {0x5013,2,{0x82,0x84,0x00,0x00,}}, {0x5014,2,{0xBE,0xF3,0x00,0x00,}}, {0x5015,2,{0x82,0x85,0x00,0x00,}}, {0x5016,2,{0x82,0x86,0x00,0x00,}}, {0x5017,2,{0x82,0x87,0x00,0x00,}}, {0x5018,2,{0xCC,0xC8,0x00,0x00,}}, {0x5019,2,{0xBA,0xF2,0x00,0x00,}}, {0x501A,2,{0xD2,0xD0,0x00,0x00,}}, {0x501B,2,{0x82,0x88,0x00,0x00,}}, {0x501C,2,{0xD9,0xC3,0x00,0x00,}}, {0x501D,2,{0x82,0x89,0x00,0x00,}}, {0x501E,2,{0x82,0x8A,0x00,0x00,}}, {0x501F,2,{0xBD,0xE8,0x00,0x00,}}, {0x5020,2,{0x82,0x8B,0x00,0x00,}}, {0x5021,2,{0xB3,0xAB,0x00,0x00,}}, {0x5022,2,{0x82,0x8C,0x00,0x00,}}, {0x5023,2,{0x82,0x8D,0x00,0x00,}}, {0x5024,2,{0x82,0x8E,0x00,0x00,}}, {0x5025,2,{0xD9,0xC5,0x00,0x00,}}, {0x5026,2,{0xBE,0xEB,0x00,0x00,}}, {0x5027,2,{0x82,0x8F,0x00,0x00,}}, {0x5028,2,{0xD9,0xC6,0x00,0x00,}}, {0x5029,2,{0xD9,0xBB,0x00,0x00,}}, {0x502A,2,{0xC4,0xDF,0x00,0x00,}}, {0x502B,2,{0x82,0x90,0x00,0x00,}}, {0x502C,2,{0xD9,0xBE,0x00,0x00,}}, {0x502D,2,{0xD9,0xC1,0x00,0x00,}}, {0x502E,2,{0xD9,0xC0,0x00,0x00,}}, {0x502F,2,{0x82,0x91,0x00,0x00,}}, {0x5030,2,{0x82,0x92,0x00,0x00,}}, {0x5031,2,{0x82,0x93,0x00,0x00,}}, {0x5032,2,{0x82,0x94,0x00,0x00,}}, {0x5033,2,{0x82,0x95,0x00,0x00,}}, {0x5034,2,{0x82,0x96,0x00,0x00,}}, {0x5035,2,{0x82,0x97,0x00,0x00,}}, {0x5036,2,{0x82,0x98,0x00,0x00,}}, {0x5037,2,{0x82,0x99,0x00,0x00,}}, {0x5038,2,{0x82,0x9A,0x00,0x00,}}, {0x5039,2,{0x82,0x9B,0x00,0x00,}}, {0x503A,2,{0xD5,0xAE,0x00,0x00,}}, {0x503B,2,{0x82,0x9C,0x00,0x00,}}, {0x503C,2,{0xD6,0xB5,0x00,0x00,}}, {0x503D,2,{0x82,0x9D,0x00,0x00,}}, {0x503E,2,{0xC7,0xE3,0x00,0x00,}}, {0x503F,2,{0x82,0x9E,0x00,0x00,}}, {0x5040,2,{0x82,0x9F,0x00,0x00,}}, {0x5041,2,{0x82,0xA0,0x00,0x00,}}, {0x5042,2,{0x82,0xA1,0x00,0x00,}}, {0x5043,2,{0xD9,0xC8,0x00,0x00,}}, {0x5044,2,{0x82,0xA2,0x00,0x00,}}, {0x5045,2,{0x82,0xA3,0x00,0x00,}}, {0x5046,2,{0x82,0xA4,0x00,0x00,}}, {0x5047,2,{0xBC,0xD9,0x00,0x00,}}, {0x5048,2,{0xD9,0xCA,0x00,0x00,}}, {0x5049,2,{0x82,0xA5,0x00,0x00,}}, {0x504A,2,{0x82,0xA6,0x00,0x00,}}, {0x504B,2,{0x82,0xA7,0x00,0x00,}}, {0x504C,2,{0xD9,0xBC,0x00,0x00,}}, {0x504D,2,{0x82,0xA8,0x00,0x00,}}, {0x504E,2,{0xD9,0xCB,0x00,0x00,}}, {0x504F,2,{0xC6,0xAB,0x00,0x00,}}, {0x5050,2,{0x82,0xA9,0x00,0x00,}}, {0x5051,2,{0x82,0xAA,0x00,0x00,}}, {0x5052,2,{0x82,0xAB,0x00,0x00,}}, {0x5053,2,{0x82,0xAC,0x00,0x00,}}, {0x5054,2,{0x82,0xAD,0x00,0x00,}}, {0x5055,2,{0xD9,0xC9,0x00,0x00,}}, {0x5056,2,{0x82,0xAE,0x00,0x00,}}, {0x5057,2,{0x82,0xAF,0x00,0x00,}}, {0x5058,2,{0x82,0xB0,0x00,0x00,}}, {0x5059,2,{0x82,0xB1,0x00,0x00,}}, {0x505A,2,{0xD7,0xF6,0x00,0x00,}}, {0x505B,2,{0x82,0xB2,0x00,0x00,}}, {0x505C,2,{0xCD,0xA3,0x00,0x00,}}, {0x505D,2,{0x82,0xB3,0x00,0x00,}}, {0x505E,2,{0x82,0xB4,0x00,0x00,}}, {0x505F,2,{0x82,0xB5,0x00,0x00,}}, {0x5060,2,{0x82,0xB6,0x00,0x00,}}, {0x5061,2,{0x82,0xB7,0x00,0x00,}}, {0x5062,2,{0x82,0xB8,0x00,0x00,}}, {0x5063,2,{0x82,0xB9,0x00,0x00,}}, {0x5064,2,{0x82,0xBA,0x00,0x00,}}, {0x5065,2,{0xBD,0xA1,0x00,0x00,}}, {0x5066,2,{0x82,0xBB,0x00,0x00,}}, {0x5067,2,{0x82,0xBC,0x00,0x00,}}, {0x5068,2,{0x82,0xBD,0x00,0x00,}}, {0x5069,2,{0x82,0xBE,0x00,0x00,}}, {0x506A,2,{0x82,0xBF,0x00,0x00,}}, {0x506B,2,{0x82,0xC0,0x00,0x00,}}, {0x506C,2,{0xD9,0xCC,0x00,0x00,}}, {0x506D,2,{0x82,0xC1,0x00,0x00,}}, {0x506E,2,{0x82,0xC2,0x00,0x00,}}, {0x506F,2,{0x82,0xC3,0x00,0x00,}}, {0x5070,2,{0x82,0xC4,0x00,0x00,}}, {0x5071,2,{0x82,0xC5,0x00,0x00,}}, {0x5072,2,{0x82,0xC6,0x00,0x00,}}, {0x5073,2,{0x82,0xC7,0x00,0x00,}}, {0x5074,2,{0x82,0xC8,0x00,0x00,}}, {0x5075,2,{0x82,0xC9,0x00,0x00,}}, {0x5076,2,{0xC5,0xBC,0x00,0x00,}}, {0x5077,2,{0xCD,0xB5,0x00,0x00,}}, {0x5078,2,{0x82,0xCA,0x00,0x00,}}, {0x5079,2,{0x82,0xCB,0x00,0x00,}}, {0x507A,2,{0x82,0xCC,0x00,0x00,}}, {0x507B,2,{0xD9,0xCD,0x00,0x00,}}, {0x507C,2,{0x82,0xCD,0x00,0x00,}}, {0x507D,2,{0x82,0xCE,0x00,0x00,}}, {0x507E,2,{0xD9,0xC7,0x00,0x00,}}, {0x507F,2,{0xB3,0xA5,0x00,0x00,}}, {0x5080,2,{0xBF,0xFE,0x00,0x00,}}, {0x5081,2,{0x82,0xCF,0x00,0x00,}}, {0x5082,2,{0x82,0xD0,0x00,0x00,}}, {0x5083,2,{0x82,0xD1,0x00,0x00,}}, {0x5084,2,{0x82,0xD2,0x00,0x00,}}, {0x5085,2,{0xB8,0xB5,0x00,0x00,}}, {0x5086,2,{0x82,0xD3,0x00,0x00,}}, {0x5087,2,{0x82,0xD4,0x00,0x00,}}, {0x5088,2,{0xC0,0xFC,0x00,0x00,}}, {0x5089,2,{0x82,0xD5,0x00,0x00,}}, {0x508A,2,{0x82,0xD6,0x00,0x00,}}, {0x508B,2,{0x82,0xD7,0x00,0x00,}}, {0x508C,2,{0x82,0xD8,0x00,0x00,}}, {0x508D,2,{0xB0,0xF8,0x00,0x00,}}, {0x508E,2,{0x82,0xD9,0x00,0x00,}}, {0x508F,2,{0x82,0xDA,0x00,0x00,}}, {0x5090,2,{0x82,0xDB,0x00,0x00,}}, {0x5091,2,{0x82,0xDC,0x00,0x00,}}, {0x5092,2,{0x82,0xDD,0x00,0x00,}}, {0x5093,2,{0x82,0xDE,0x00,0x00,}}, {0x5094,2,{0x82,0xDF,0x00,0x00,}}, {0x5095,2,{0x82,0xE0,0x00,0x00,}}, {0x5096,2,{0x82,0xE1,0x00,0x00,}}, {0x5097,2,{0x82,0xE2,0x00,0x00,}}, {0x5098,2,{0x82,0xE3,0x00,0x00,}}, {0x5099,2,{0x82,0xE4,0x00,0x00,}}, {0x509A,2,{0x82,0xE5,0x00,0x00,}}, {0x509B,2,{0x82,0xE6,0x00,0x00,}}, {0x509C,2,{0x82,0xE7,0x00,0x00,}}, {0x509D,2,{0x82,0xE8,0x00,0x00,}}, {0x509E,2,{0x82,0xE9,0x00,0x00,}}, {0x509F,2,{0x82,0xEA,0x00,0x00,}}, {0x50A0,2,{0x82,0xEB,0x00,0x00,}}, {0x50A1,2,{0x82,0xEC,0x00,0x00,}}, {0x50A2,2,{0x82,0xED,0x00,0x00,}}, {0x50A3,2,{0xB4,0xF6,0x00,0x00,}}, {0x50A4,2,{0x82,0xEE,0x00,0x00,}}, {0x50A5,2,{0xD9,0xCE,0x00,0x00,}}, {0x50A6,2,{0x82,0xEF,0x00,0x00,}}, {0x50A7,2,{0xD9,0xCF,0x00,0x00,}}, {0x50A8,2,{0xB4,0xA2,0x00,0x00,}}, {0x50A9,2,{0xD9,0xD0,0x00,0x00,}}, {0x50AA,2,{0x82,0xF0,0x00,0x00,}}, {0x50AB,2,{0x82,0xF1,0x00,0x00,}}, {0x50AC,2,{0xB4,0xDF,0x00,0x00,}}, {0x50AD,2,{0x82,0xF2,0x00,0x00,}}, {0x50AE,2,{0x82,0xF3,0x00,0x00,}}, {0x50AF,2,{0x82,0xF4,0x00,0x00,}}, {0x50B0,2,{0x82,0xF5,0x00,0x00,}}, {0x50B1,2,{0x82,0xF6,0x00,0x00,}}, {0x50B2,2,{0xB0,0xC1,0x00,0x00,}}, {0x50B3,2,{0x82,0xF7,0x00,0x00,}}, {0x50B4,2,{0x82,0xF8,0x00,0x00,}}, {0x50B5,2,{0x82,0xF9,0x00,0x00,}}, {0x50B6,2,{0x82,0xFA,0x00,0x00,}}, {0x50B7,2,{0x82,0xFB,0x00,0x00,}}, {0x50B8,2,{0x82,0xFC,0x00,0x00,}}, {0x50B9,2,{0x82,0xFD,0x00,0x00,}}, {0x50BA,2,{0xD9,0xD1,0x00,0x00,}}, {0x50BB,2,{0xC9,0xB5,0x00,0x00,}}, {0x50BC,2,{0x82,0xFE,0x00,0x00,}}, {0x50BD,2,{0x83,0x40,0x00,0x00,}}, {0x50BE,2,{0x83,0x41,0x00,0x00,}}, {0x50BF,2,{0x83,0x42,0x00,0x00,}}, {0x50C0,2,{0x83,0x43,0x00,0x00,}}, {0x50C1,2,{0x83,0x44,0x00,0x00,}}, {0x50C2,2,{0x83,0x45,0x00,0x00,}}, {0x50C3,2,{0x83,0x46,0x00,0x00,}}, {0x50C4,2,{0x83,0x47,0x00,0x00,}}, {0x50C5,2,{0x83,0x48,0x00,0x00,}}, {0x50C6,2,{0x83,0x49,0x00,0x00,}}, {0x50C7,2,{0x83,0x4A,0x00,0x00,}}, {0x50C8,2,{0x83,0x4B,0x00,0x00,}}, {0x50C9,2,{0x83,0x4C,0x00,0x00,}}, {0x50CA,2,{0x83,0x4D,0x00,0x00,}}, {0x50CB,2,{0x83,0x4E,0x00,0x00,}}, {0x50CC,2,{0x83,0x4F,0x00,0x00,}}, {0x50CD,2,{0x83,0x50,0x00,0x00,}}, {0x50CE,2,{0x83,0x51,0x00,0x00,}}, {0x50CF,2,{0xCF,0xF1,0x00,0x00,}}, {0x50D0,2,{0x83,0x52,0x00,0x00,}}, {0x50D1,2,{0x83,0x53,0x00,0x00,}}, {0x50D2,2,{0x83,0x54,0x00,0x00,}}, {0x50D3,2,{0x83,0x55,0x00,0x00,}}, {0x50D4,2,{0x83,0x56,0x00,0x00,}}, {0x50D5,2,{0x83,0x57,0x00,0x00,}}, {0x50D6,2,{0xD9,0xD2,0x00,0x00,}}, {0x50D7,2,{0x83,0x58,0x00,0x00,}}, {0x50D8,2,{0x83,0x59,0x00,0x00,}}, {0x50D9,2,{0x83,0x5A,0x00,0x00,}}, {0x50DA,2,{0xC1,0xC5,0x00,0x00,}}, {0x50DB,2,{0x83,0x5B,0x00,0x00,}}, {0x50DC,2,{0x83,0x5C,0x00,0x00,}}, {0x50DD,2,{0x83,0x5D,0x00,0x00,}}, {0x50DE,2,{0x83,0x5E,0x00,0x00,}}, {0x50DF,2,{0x83,0x5F,0x00,0x00,}}, {0x50E0,2,{0x83,0x60,0x00,0x00,}}, {0x50E1,2,{0x83,0x61,0x00,0x00,}}, {0x50E2,2,{0x83,0x62,0x00,0x00,}}, {0x50E3,2,{0x83,0x63,0x00,0x00,}}, {0x50E4,2,{0x83,0x64,0x00,0x00,}}, {0x50E5,2,{0x83,0x65,0x00,0x00,}}, {0x50E6,2,{0xD9,0xD6,0x00,0x00,}}, {0x50E7,2,{0xC9,0xAE,0x00,0x00,}}, {0x50E8,2,{0x83,0x66,0x00,0x00,}}, {0x50E9,2,{0x83,0x67,0x00,0x00,}}, {0x50EA,2,{0x83,0x68,0x00,0x00,}}, {0x50EB,2,{0x83,0x69,0x00,0x00,}}, {0x50EC,2,{0xD9,0xD5,0x00,0x00,}}, {0x50ED,2,{0xD9,0xD4,0x00,0x00,}}, {0x50EE,2,{0xD9,0xD7,0x00,0x00,}}, {0x50EF,2,{0x83,0x6A,0x00,0x00,}}, {0x50F0,2,{0x83,0x6B,0x00,0x00,}}, {0x50F1,2,{0x83,0x6C,0x00,0x00,}}, {0x50F2,2,{0x83,0x6D,0x00,0x00,}}, {0x50F3,2,{0xCB,0xDB,0x00,0x00,}}, {0x50F4,2,{0x83,0x6E,0x00,0x00,}}, {0x50F5,2,{0xBD,0xA9,0x00,0x00,}}, {0x50F6,2,{0x83,0x6F,0x00,0x00,}}, {0x50F7,2,{0x83,0x70,0x00,0x00,}}, {0x50F8,2,{0x83,0x71,0x00,0x00,}}, {0x50F9,2,{0x83,0x72,0x00,0x00,}}, {0x50FA,2,{0x83,0x73,0x00,0x00,}}, {0x50FB,2,{0xC6,0xA7,0x00,0x00,}}, {0x50FC,2,{0x83,0x74,0x00,0x00,}}, {0x50FD,2,{0x83,0x75,0x00,0x00,}}, {0x50FE,2,{0x83,0x76,0x00,0x00,}}, {0x50FF,2,{0x83,0x77,0x00,0x00,}}, {0x5100,2,{0x83,0x78,0x00,0x00,}}, {0x5101,2,{0x83,0x79,0x00,0x00,}}, {0x5102,2,{0x83,0x7A,0x00,0x00,}}, {0x5103,2,{0x83,0x7B,0x00,0x00,}}, {0x5104,2,{0x83,0x7C,0x00,0x00,}}, {0x5105,2,{0x83,0x7D,0x00,0x00,}}, {0x5106,2,{0xD9,0xD3,0x00,0x00,}}, {0x5107,2,{0xD9,0xD8,0x00,0x00,}}, {0x5108,2,{0x83,0x7E,0x00,0x00,}}, {0x5109,2,{0x83,0x80,0x00,0x00,}}, {0x510A,2,{0x83,0x81,0x00,0x00,}}, {0x510B,2,{0xD9,0xD9,0x00,0x00,}}, {0x510C,2,{0x83,0x82,0x00,0x00,}}, {0x510D,2,{0x83,0x83,0x00,0x00,}}, {0x510E,2,{0x83,0x84,0x00,0x00,}}, {0x510F,2,{0x83,0x85,0x00,0x00,}}, {0x5110,2,{0x83,0x86,0x00,0x00,}}, {0x5111,2,{0x83,0x87,0x00,0x00,}}, {0x5112,2,{0xC8,0xE5,0x00,0x00,}}, {0x5113,2,{0x83,0x88,0x00,0x00,}}, {0x5114,2,{0x83,0x89,0x00,0x00,}}, {0x5115,2,{0x83,0x8A,0x00,0x00,}}, {0x5116,2,{0x83,0x8B,0x00,0x00,}}, {0x5117,2,{0x83,0x8C,0x00,0x00,}}, {0x5118,2,{0x83,0x8D,0x00,0x00,}}, {0x5119,2,{0x83,0x8E,0x00,0x00,}}, {0x511A,2,{0x83,0x8F,0x00,0x00,}}, {0x511B,2,{0x83,0x90,0x00,0x00,}}, {0x511C,2,{0x83,0x91,0x00,0x00,}}, {0x511D,2,{0x83,0x92,0x00,0x00,}}, {0x511E,2,{0x83,0x93,0x00,0x00,}}, {0x511F,2,{0x83,0x94,0x00,0x00,}}, {0x5120,2,{0x83,0x95,0x00,0x00,}}, {0x5121,2,{0xC0,0xDC,0x00,0x00,}}, {0x5122,2,{0x83,0x96,0x00,0x00,}}, {0x5123,2,{0x83,0x97,0x00,0x00,}}, {0x5124,2,{0x83,0x98,0x00,0x00,}}, {0x5125,2,{0x83,0x99,0x00,0x00,}}, {0x5126,2,{0x83,0x9A,0x00,0x00,}}, {0x5127,2,{0x83,0x9B,0x00,0x00,}}, {0x5128,2,{0x83,0x9C,0x00,0x00,}}, {0x5129,2,{0x83,0x9D,0x00,0x00,}}, {0x512A,2,{0x83,0x9E,0x00,0x00,}}, {0x512B,2,{0x83,0x9F,0x00,0x00,}}, {0x512C,2,{0x83,0xA0,0x00,0x00,}}, {0x512D,2,{0x83,0xA1,0x00,0x00,}}, {0x512E,2,{0x83,0xA2,0x00,0x00,}}, {0x512F,2,{0x83,0xA3,0x00,0x00,}}, {0x5130,2,{0x83,0xA4,0x00,0x00,}}, {0x5131,2,{0x83,0xA5,0x00,0x00,}}, {0x5132,2,{0x83,0xA6,0x00,0x00,}}, {0x5133,2,{0x83,0xA7,0x00,0x00,}}, {0x5134,2,{0x83,0xA8,0x00,0x00,}}, {0x5135,2,{0x83,0xA9,0x00,0x00,}}, {0x5136,2,{0x83,0xAA,0x00,0x00,}}, {0x5137,2,{0x83,0xAB,0x00,0x00,}}, {0x5138,2,{0x83,0xAC,0x00,0x00,}}, {0x5139,2,{0x83,0xAD,0x00,0x00,}}, {0x513A,2,{0x83,0xAE,0x00,0x00,}}, {0x513B,2,{0x83,0xAF,0x00,0x00,}}, {0x513C,2,{0x83,0xB0,0x00,0x00,}}, {0x513D,2,{0x83,0xB1,0x00,0x00,}}, {0x513E,2,{0x83,0xB2,0x00,0x00,}}, {0x513F,2,{0xB6,0xF9,0x00,0x00,}}, {0x5140,2,{0xD8,0xA3,0x00,0x00,}}, {0x5141,2,{0xD4,0xCA,0x00,0x00,}}, {0x5142,2,{0x83,0xB3,0x00,0x00,}}, {0x5143,2,{0xD4,0xAA,0x00,0x00,}}, {0x5144,2,{0xD0,0xD6,0x00,0x00,}}, {0x5145,2,{0xB3,0xE4,0x00,0x00,}}, {0x5146,2,{0xD5,0xD7,0x00,0x00,}}, {0x5147,2,{0x83,0xB4,0x00,0x00,}}, {0x5148,2,{0xCF,0xC8,0x00,0x00,}}, {0x5149,2,{0xB9,0xE2,0x00,0x00,}}, {0x514A,2,{0x83,0xB5,0x00,0x00,}}, {0x514B,2,{0xBF,0xCB,0x00,0x00,}}, {0x514C,2,{0x83,0xB6,0x00,0x00,}}, {0x514D,2,{0xC3,0xE2,0x00,0x00,}}, {0x514E,2,{0x83,0xB7,0x00,0x00,}}, {0x514F,2,{0x83,0xB8,0x00,0x00,}}, {0x5150,2,{0x83,0xB9,0x00,0x00,}}, {0x5151,2,{0xB6,0xD2,0x00,0x00,}}, {0x5152,2,{0x83,0xBA,0x00,0x00,}}, {0x5153,2,{0x83,0xBB,0x00,0x00,}}, {0x5154,2,{0xCD,0xC3,0x00,0x00,}}, {0x5155,2,{0xD9,0xEE,0x00,0x00,}}, {0x5156,2,{0xD9,0xF0,0x00,0x00,}}, {0x5157,2,{0x83,0xBC,0x00,0x00,}}, {0x5158,2,{0x83,0xBD,0x00,0x00,}}, {0x5159,2,{0x83,0xBE,0x00,0x00,}}, {0x515A,2,{0xB5,0xB3,0x00,0x00,}}, {0x515B,2,{0x83,0xBF,0x00,0x00,}}, {0x515C,2,{0xB6,0xB5,0x00,0x00,}}, {0x515D,2,{0x83,0xC0,0x00,0x00,}}, {0x515E,2,{0x83,0xC1,0x00,0x00,}}, {0x515F,2,{0x83,0xC2,0x00,0x00,}}, {0x5160,2,{0x83,0xC3,0x00,0x00,}}, {0x5161,2,{0x83,0xC4,0x00,0x00,}}, {0x5162,2,{0xBE,0xA4,0x00,0x00,}}, {0x5163,2,{0x83,0xC5,0x00,0x00,}}, {0x5164,2,{0x83,0xC6,0x00,0x00,}}, {0x5165,2,{0xC8,0xEB,0x00,0x00,}}, {0x5166,2,{0x83,0xC7,0x00,0x00,}}, {0x5167,2,{0x83,0xC8,0x00,0x00,}}, {0x5168,2,{0xC8,0xAB,0x00,0x00,}}, {0x5169,2,{0x83,0xC9,0x00,0x00,}}, {0x516A,2,{0x83,0xCA,0x00,0x00,}}, {0x516B,2,{0xB0,0xCB,0x00,0x00,}}, {0x516C,2,{0xB9,0xAB,0x00,0x00,}}, {0x516D,2,{0xC1,0xF9,0x00,0x00,}}, {0x516E,2,{0xD9,0xE2,0x00,0x00,}}, {0x516F,2,{0x83,0xCB,0x00,0x00,}}, {0x5170,2,{0xC0,0xBC,0x00,0x00,}}, {0x5171,2,{0xB9,0xB2,0x00,0x00,}}, {0x5172,2,{0x83,0xCC,0x00,0x00,}}, {0x5173,2,{0xB9,0xD8,0x00,0x00,}}, {0x5174,2,{0xD0,0xCB,0x00,0x00,}}, {0x5175,2,{0xB1,0xF8,0x00,0x00,}}, {0x5176,2,{0xC6,0xE4,0x00,0x00,}}, {0x5177,2,{0xBE,0xDF,0x00,0x00,}}, {0x5178,2,{0xB5,0xE4,0x00,0x00,}}, {0x5179,2,{0xD7,0xC8,0x00,0x00,}}, {0x517A,2,{0x83,0xCD,0x00,0x00,}}, {0x517B,2,{0xD1,0xF8,0x00,0x00,}}, {0x517C,2,{0xBC,0xE6,0x00,0x00,}}, {0x517D,2,{0xCA,0xDE,0x00,0x00,}}, {0x517E,2,{0x83,0xCE,0x00,0x00,}}, {0x517F,2,{0x83,0xCF,0x00,0x00,}}, {0x5180,2,{0xBC,0xBD,0x00,0x00,}}, {0x5181,2,{0xD9,0xE6,0x00,0x00,}}, {0x5182,2,{0xD8,0xE7,0x00,0x00,}}, {0x5183,2,{0x83,0xD0,0x00,0x00,}}, {0x5184,2,{0x83,0xD1,0x00,0x00,}}, {0x5185,2,{0xC4,0xDA,0x00,0x00,}}, {0x5186,2,{0x83,0xD2,0x00,0x00,}}, {0x5187,2,{0x83,0xD3,0x00,0x00,}}, {0x5188,2,{0xB8,0xD4,0x00,0x00,}}, {0x5189,2,{0xC8,0xBD,0x00,0x00,}}, {0x518A,2,{0x83,0xD4,0x00,0x00,}}, {0x518B,2,{0x83,0xD5,0x00,0x00,}}, {0x518C,2,{0xB2,0xE1,0x00,0x00,}}, {0x518D,2,{0xD4,0xD9,0x00,0x00,}}, {0x518E,2,{0x83,0xD6,0x00,0x00,}}, {0x518F,2,{0x83,0xD7,0x00,0x00,}}, {0x5190,2,{0x83,0xD8,0x00,0x00,}}, {0x5191,2,{0x83,0xD9,0x00,0x00,}}, {0x5192,2,{0xC3,0xB0,0x00,0x00,}}, {0x5193,2,{0x83,0xDA,0x00,0x00,}}, {0x5194,2,{0x83,0xDB,0x00,0x00,}}, {0x5195,2,{0xC3,0xE1,0x00,0x00,}}, {0x5196,2,{0xDA,0xA2,0x00,0x00,}}, {0x5197,2,{0xC8,0xDF,0x00,0x00,}}, {0x5198,2,{0x83,0xDC,0x00,0x00,}}, {0x5199,2,{0xD0,0xB4,0x00,0x00,}}, {0x519A,2,{0x83,0xDD,0x00,0x00,}}, {0x519B,2,{0xBE,0xFC,0x00,0x00,}}, {0x519C,2,{0xC5,0xA9,0x00,0x00,}}, {0x519D,2,{0x83,0xDE,0x00,0x00,}}, {0x519E,2,{0x83,0xDF,0x00,0x00,}}, {0x519F,2,{0x83,0xE0,0x00,0x00,}}, {0x51A0,2,{0xB9,0xDA,0x00,0x00,}}, {0x51A1,2,{0x83,0xE1,0x00,0x00,}}, {0x51A2,2,{0xDA,0xA3,0x00,0x00,}}, {0x51A3,2,{0x83,0xE2,0x00,0x00,}}, {0x51A4,2,{0xD4,0xA9,0x00,0x00,}}, {0x51A5,2,{0xDA,0xA4,0x00,0x00,}}, {0x51A6,2,{0x83,0xE3,0x00,0x00,}}, {0x51A7,2,{0x83,0xE4,0x00,0x00,}}, {0x51A8,2,{0x83,0xE5,0x00,0x00,}}, {0x51A9,2,{0x83,0xE6,0x00,0x00,}}, {0x51AA,2,{0x83,0xE7,0x00,0x00,}}, {0x51AB,2,{0xD9,0xFB,0x00,0x00,}}, {0x51AC,2,{0xB6,0xAC,0x00,0x00,}}, {0x51AD,2,{0x83,0xE8,0x00,0x00,}}, {0x51AE,2,{0x83,0xE9,0x00,0x00,}}, {0x51AF,2,{0xB7,0xEB,0x00,0x00,}}, {0x51B0,2,{0xB1,0xF9,0x00,0x00,}}, {0x51B1,2,{0xD9,0xFC,0x00,0x00,}}, {0x51B2,2,{0xB3,0xE5,0x00,0x00,}}, {0x51B3,2,{0xBE,0xF6,0x00,0x00,}}, {0x51B4,2,{0x83,0xEA,0x00,0x00,}}, {0x51B5,2,{0xBF,0xF6,0x00,0x00,}}, {0x51B6,2,{0xD2,0xB1,0x00,0x00,}}, {0x51B7,2,{0xC0,0xE4,0x00,0x00,}}, {0x51B8,2,{0x83,0xEB,0x00,0x00,}}, {0x51B9,2,{0x83,0xEC,0x00,0x00,}}, {0x51BA,2,{0x83,0xED,0x00,0x00,}}, {0x51BB,2,{0xB6,0xB3,0x00,0x00,}}, {0x51BC,2,{0xD9,0xFE,0x00,0x00,}}, {0x51BD,2,{0xD9,0xFD,0x00,0x00,}}, {0x51BE,2,{0x83,0xEE,0x00,0x00,}}, {0x51BF,2,{0x83,0xEF,0x00,0x00,}}, {0x51C0,2,{0xBE,0xBB,0x00,0x00,}}, {0x51C1,2,{0x83,0xF0,0x00,0x00,}}, {0x51C2,2,{0x83,0xF1,0x00,0x00,}}, {0x51C3,2,{0x83,0xF2,0x00,0x00,}}, {0x51C4,2,{0xC6,0xE0,0x00,0x00,}}, {0x51C5,2,{0x83,0xF3,0x00,0x00,}}, {0x51C6,2,{0xD7,0xBC,0x00,0x00,}}, {0x51C7,2,{0xDA,0xA1,0x00,0x00,}}, {0x51C8,2,{0x83,0xF4,0x00,0x00,}}, {0x51C9,2,{0xC1,0xB9,0x00,0x00,}}, {0x51CA,2,{0x83,0xF5,0x00,0x00,}}, {0x51CB,2,{0xB5,0xF2,0x00,0x00,}}, {0x51CC,2,{0xC1,0xE8,0x00,0x00,}}, {0x51CD,2,{0x83,0xF6,0x00,0x00,}}, {0x51CE,2,{0x83,0xF7,0x00,0x00,}}, {0x51CF,2,{0xBC,0xF5,0x00,0x00,}}, {0x51D0,2,{0x83,0xF8,0x00,0x00,}}, {0x51D1,2,{0xB4,0xD5,0x00,0x00,}}, {0x51D2,2,{0x83,0xF9,0x00,0x00,}}, {0x51D3,2,{0x83,0xFA,0x00,0x00,}}, {0x51D4,2,{0x83,0xFB,0x00,0x00,}}, {0x51D5,2,{0x83,0xFC,0x00,0x00,}}, {0x51D6,2,{0x83,0xFD,0x00,0x00,}}, {0x51D7,2,{0x83,0xFE,0x00,0x00,}}, {0x51D8,2,{0x84,0x40,0x00,0x00,}}, {0x51D9,2,{0x84,0x41,0x00,0x00,}}, {0x51DA,2,{0x84,0x42,0x00,0x00,}}, {0x51DB,2,{0xC1,0xDD,0x00,0x00,}}, {0x51DC,2,{0x84,0x43,0x00,0x00,}}, {0x51DD,2,{0xC4,0xFD,0x00,0x00,}}, {0x51DE,2,{0x84,0x44,0x00,0x00,}}, {0x51DF,2,{0x84,0x45,0x00,0x00,}}, {0x51E0,2,{0xBC,0xB8,0x00,0x00,}}, {0x51E1,2,{0xB7,0xB2,0x00,0x00,}}, {0x51E2,2,{0x84,0x46,0x00,0x00,}}, {0x51E3,2,{0x84,0x47,0x00,0x00,}}, {0x51E4,2,{0xB7,0xEF,0x00,0x00,}}, {0x51E5,2,{0x84,0x48,0x00,0x00,}}, {0x51E6,2,{0x84,0x49,0x00,0x00,}}, {0x51E7,2,{0x84,0x4A,0x00,0x00,}}, {0x51E8,2,{0x84,0x4B,0x00,0x00,}}, {0x51E9,2,{0x84,0x4C,0x00,0x00,}}, {0x51EA,2,{0x84,0x4D,0x00,0x00,}}, {0x51EB,2,{0xD9,0xEC,0x00,0x00,}}, {0x51EC,2,{0x84,0x4E,0x00,0x00,}}, {0x51ED,2,{0xC6,0xBE,0x00,0x00,}}, {0x51EE,2,{0x84,0x4F,0x00,0x00,}}, {0x51EF,2,{0xBF,0xAD,0x00,0x00,}}, {0x51F0,2,{0xBB,0xCB,0x00,0x00,}}, {0x51F1,2,{0x84,0x50,0x00,0x00,}}, {0x51F2,2,{0x84,0x51,0x00,0x00,}}, {0x51F3,2,{0xB5,0xCA,0x00,0x00,}}, {0x51F4,2,{0x84,0x52,0x00,0x00,}}, {0x51F5,2,{0xDB,0xC9,0x00,0x00,}}, {0x51F6,2,{0xD0,0xD7,0x00,0x00,}}, {0x51F7,2,{0x84,0x53,0x00,0x00,}}, {0x51F8,2,{0xCD,0xB9,0x00,0x00,}}, {0x51F9,2,{0xB0,0xBC,0x00,0x00,}}, {0x51FA,2,{0xB3,0xF6,0x00,0x00,}}, {0x51FB,2,{0xBB,0xF7,0x00,0x00,}}, {0x51FC,2,{0xDB,0xCA,0x00,0x00,}}, {0x51FD,2,{0xBA,0xAF,0x00,0x00,}}, {0x51FE,2,{0x84,0x54,0x00,0x00,}}, {0x51FF,2,{0xD4,0xE4,0x00,0x00,}}, {0x5200,2,{0xB5,0xB6,0x00,0x00,}}, {0x5201,2,{0xB5,0xF3,0x00,0x00,}}, {0x5202,2,{0xD8,0xD6,0x00,0x00,}}, {0x5203,2,{0xC8,0xD0,0x00,0x00,}}, {0x5204,2,{0x84,0x55,0x00,0x00,}}, {0x5205,2,{0x84,0x56,0x00,0x00,}}, {0x5206,2,{0xB7,0xD6,0x00,0x00,}}, {0x5207,2,{0xC7,0xD0,0x00,0x00,}}, {0x5208,2,{0xD8,0xD7,0x00,0x00,}}, {0x5209,2,{0x84,0x57,0x00,0x00,}}, {0x520A,2,{0xBF,0xAF,0x00,0x00,}}, {0x520B,2,{0x84,0x58,0x00,0x00,}}, {0x520C,2,{0x84,0x59,0x00,0x00,}}, {0x520D,2,{0xDB,0xBB,0x00,0x00,}}, {0x520E,2,{0xD8,0xD8,0x00,0x00,}}, {0x520F,2,{0x84,0x5A,0x00,0x00,}}, {0x5210,2,{0x84,0x5B,0x00,0x00,}}, {0x5211,2,{0xD0,0xCC,0x00,0x00,}}, {0x5212,2,{0xBB,0xAE,0x00,0x00,}}, {0x5213,2,{0x84,0x5C,0x00,0x00,}}, {0x5214,2,{0x84,0x5D,0x00,0x00,}}, {0x5215,2,{0x84,0x5E,0x00,0x00,}}, {0x5216,2,{0xEB,0xBE,0x00,0x00,}}, {0x5217,2,{0xC1,0xD0,0x00,0x00,}}, {0x5218,2,{0xC1,0xF5,0x00,0x00,}}, {0x5219,2,{0xD4,0xF2,0x00,0x00,}}, {0x521A,2,{0xB8,0xD5,0x00,0x00,}}, {0x521B,2,{0xB4,0xB4,0x00,0x00,}}, {0x521C,2,{0x84,0x5F,0x00,0x00,}}, {0x521D,2,{0xB3,0xF5,0x00,0x00,}}, {0x521E,2,{0x84,0x60,0x00,0x00,}}, {0x521F,2,{0x84,0x61,0x00,0x00,}}, {0x5220,2,{0xC9,0xBE,0x00,0x00,}}, {0x5221,2,{0x84,0x62,0x00,0x00,}}, {0x5222,2,{0x84,0x63,0x00,0x00,}}, {0x5223,2,{0x84,0x64,0x00,0x00,}}, {0x5224,2,{0xC5,0xD0,0x00,0x00,}}, {0x5225,2,{0x84,0x65,0x00,0x00,}}, {0x5226,2,{0x84,0x66,0x00,0x00,}}, {0x5227,2,{0x84,0x67,0x00,0x00,}}, {0x5228,2,{0xC5,0xD9,0x00,0x00,}}, {0x5229,2,{0xC0,0xFB,0x00,0x00,}}, {0x522A,2,{0x84,0x68,0x00,0x00,}}, {0x522B,2,{0xB1,0xF0,0x00,0x00,}}, {0x522C,2,{0x84,0x69,0x00,0x00,}}, {0x522D,2,{0xD8,0xD9,0x00,0x00,}}, {0x522E,2,{0xB9,0xCE,0x00,0x00,}}, {0x522F,2,{0x84,0x6A,0x00,0x00,}}, {0x5230,2,{0xB5,0xBD,0x00,0x00,}}, {0x5231,2,{0x84,0x6B,0x00,0x00,}}, {0x5232,2,{0x84,0x6C,0x00,0x00,}}, {0x5233,2,{0xD8,0xDA,0x00,0x00,}}, {0x5234,2,{0x84,0x6D,0x00,0x00,}}, {0x5235,2,{0x84,0x6E,0x00,0x00,}}, {0x5236,2,{0xD6,0xC6,0x00,0x00,}}, {0x5237,2,{0xCB,0xA2,0x00,0x00,}}, {0x5238,2,{0xC8,0xAF,0x00,0x00,}}, {0x5239,2,{0xC9,0xB2,0x00,0x00,}}, {0x523A,2,{0xB4,0xCC,0x00,0x00,}}, {0x523B,2,{0xBF,0xCC,0x00,0x00,}}, {0x523C,2,{0x84,0x6F,0x00,0x00,}}, {0x523D,2,{0xB9,0xF4,0x00,0x00,}}, {0x523E,2,{0x84,0x70,0x00,0x00,}}, {0x523F,2,{0xD8,0xDB,0x00,0x00,}}, {0x5240,2,{0xD8,0xDC,0x00,0x00,}}, {0x5241,2,{0xB6,0xE7,0x00,0x00,}}, {0x5242,2,{0xBC,0xC1,0x00,0x00,}}, {0x5243,2,{0xCC,0xEA,0x00,0x00,}}, {0x5244,2,{0x84,0x71,0x00,0x00,}}, {0x5245,2,{0x84,0x72,0x00,0x00,}}, {0x5246,2,{0x84,0x73,0x00,0x00,}}, {0x5247,2,{0x84,0x74,0x00,0x00,}}, {0x5248,2,{0x84,0x75,0x00,0x00,}}, {0x5249,2,{0x84,0x76,0x00,0x00,}}, {0x524A,2,{0xCF,0xF7,0x00,0x00,}}, {0x524B,2,{0x84,0x77,0x00,0x00,}}, {0x524C,2,{0xD8,0xDD,0x00,0x00,}}, {0x524D,2,{0xC7,0xB0,0x00,0x00,}}, {0x524E,2,{0x84,0x78,0x00,0x00,}}, {0x524F,2,{0x84,0x79,0x00,0x00,}}, {0x5250,2,{0xB9,0xD0,0x00,0x00,}}, {0x5251,2,{0xBD,0xA3,0x00,0x00,}}, {0x5252,2,{0x84,0x7A,0x00,0x00,}}, {0x5253,2,{0x84,0x7B,0x00,0x00,}}, {0x5254,2,{0xCC,0xDE,0x00,0x00,}}, {0x5255,2,{0x84,0x7C,0x00,0x00,}}, {0x5256,2,{0xC6,0xCA,0x00,0x00,}}, {0x5257,2,{0x84,0x7D,0x00,0x00,}}, {0x5258,2,{0x84,0x7E,0x00,0x00,}}, {0x5259,2,{0x84,0x80,0x00,0x00,}}, {0x525A,2,{0x84,0x81,0x00,0x00,}}, {0x525B,2,{0x84,0x82,0x00,0x00,}}, {0x525C,2,{0xD8,0xE0,0x00,0x00,}}, {0x525D,2,{0x84,0x83,0x00,0x00,}}, {0x525E,2,{0xD8,0xDE,0x00,0x00,}}, {0x525F,2,{0x84,0x84,0x00,0x00,}}, {0x5260,2,{0x84,0x85,0x00,0x00,}}, {0x5261,2,{0xD8,0xDF,0x00,0x00,}}, {0x5262,2,{0x84,0x86,0x00,0x00,}}, {0x5263,2,{0x84,0x87,0x00,0x00,}}, {0x5264,2,{0x84,0x88,0x00,0x00,}}, {0x5265,2,{0xB0,0xFE,0x00,0x00,}}, {0x5266,2,{0x84,0x89,0x00,0x00,}}, {0x5267,2,{0xBE,0xE7,0x00,0x00,}}, {0x5268,2,{0x84,0x8A,0x00,0x00,}}, {0x5269,2,{0xCA,0xA3,0x00,0x00,}}, {0x526A,2,{0xBC,0xF4,0x00,0x00,}}, {0x526B,2,{0x84,0x8B,0x00,0x00,}}, {0x526C,2,{0x84,0x8C,0x00,0x00,}}, {0x526D,2,{0x84,0x8D,0x00,0x00,}}, {0x526E,2,{0x84,0x8E,0x00,0x00,}}, {0x526F,2,{0xB8,0xB1,0x00,0x00,}}, {0x5270,2,{0x84,0x8F,0x00,0x00,}}, {0x5271,2,{0x84,0x90,0x00,0x00,}}, {0x5272,2,{0xB8,0xEE,0x00,0x00,}}, {0x5273,2,{0x84,0x91,0x00,0x00,}}, {0x5274,2,{0x84,0x92,0x00,0x00,}}, {0x5275,2,{0x84,0x93,0x00,0x00,}}, {0x5276,2,{0x84,0x94,0x00,0x00,}}, {0x5277,2,{0x84,0x95,0x00,0x00,}}, {0x5278,2,{0x84,0x96,0x00,0x00,}}, {0x5279,2,{0x84,0x97,0x00,0x00,}}, {0x527A,2,{0x84,0x98,0x00,0x00,}}, {0x527B,2,{0x84,0x99,0x00,0x00,}}, {0x527C,2,{0x84,0x9A,0x00,0x00,}}, {0x527D,2,{0xD8,0xE2,0x00,0x00,}}, {0x527E,2,{0x84,0x9B,0x00,0x00,}}, {0x527F,2,{0xBD,0xCB,0x00,0x00,}}, {0x5280,2,{0x84,0x9C,0x00,0x00,}}, {0x5281,2,{0xD8,0xE4,0x00,0x00,}}, {0x5282,2,{0xD8,0xE3,0x00,0x00,}}, {0x5283,2,{0x84,0x9D,0x00,0x00,}}, {0x5284,2,{0x84,0x9E,0x00,0x00,}}, {0x5285,2,{0x84,0x9F,0x00,0x00,}}, {0x5286,2,{0x84,0xA0,0x00,0x00,}}, {0x5287,2,{0x84,0xA1,0x00,0x00,}}, {0x5288,2,{0xC5,0xFC,0x00,0x00,}}, {0x5289,2,{0x84,0xA2,0x00,0x00,}}, {0x528A,2,{0x84,0xA3,0x00,0x00,}}, {0x528B,2,{0x84,0xA4,0x00,0x00,}}, {0x528C,2,{0x84,0xA5,0x00,0x00,}}, {0x528D,2,{0x84,0xA6,0x00,0x00,}}, {0x528E,2,{0x84,0xA7,0x00,0x00,}}, {0x528F,2,{0x84,0xA8,0x00,0x00,}}, {0x5290,2,{0xD8,0xE5,0x00,0x00,}}, {0x5291,2,{0x84,0xA9,0x00,0x00,}}, {0x5292,2,{0x84,0xAA,0x00,0x00,}}, {0x5293,2,{0xD8,0xE6,0x00,0x00,}}, {0x5294,2,{0x84,0xAB,0x00,0x00,}}, {0x5295,2,{0x84,0xAC,0x00,0x00,}}, {0x5296,2,{0x84,0xAD,0x00,0x00,}}, {0x5297,2,{0x84,0xAE,0x00,0x00,}}, {0x5298,2,{0x84,0xAF,0x00,0x00,}}, {0x5299,2,{0x84,0xB0,0x00,0x00,}}, {0x529A,2,{0x84,0xB1,0x00,0x00,}}, {0x529B,2,{0xC1,0xA6,0x00,0x00,}}, {0x529C,2,{0x84,0xB2,0x00,0x00,}}, {0x529D,2,{0xC8,0xB0,0x00,0x00,}}, {0x529E,2,{0xB0,0xEC,0x00,0x00,}}, {0x529F,2,{0xB9,0xA6,0x00,0x00,}}, {0x52A0,2,{0xBC,0xD3,0x00,0x00,}}, {0x52A1,2,{0xCE,0xF1,0x00,0x00,}}, {0x52A2,2,{0xDB,0xBD,0x00,0x00,}}, {0x52A3,2,{0xC1,0xD3,0x00,0x00,}}, {0x52A4,2,{0x84,0xB3,0x00,0x00,}}, {0x52A5,2,{0x84,0xB4,0x00,0x00,}}, {0x52A6,2,{0x84,0xB5,0x00,0x00,}}, {0x52A7,2,{0x84,0xB6,0x00,0x00,}}, {0x52A8,2,{0xB6,0xAF,0x00,0x00,}}, {0x52A9,2,{0xD6,0xFA,0x00,0x00,}}, {0x52AA,2,{0xC5,0xAC,0x00,0x00,}}, {0x52AB,2,{0xBD,0xD9,0x00,0x00,}}, {0x52AC,2,{0xDB,0xBE,0x00,0x00,}}, {0x52AD,2,{0xDB,0xBF,0x00,0x00,}}, {0x52AE,2,{0x84,0xB7,0x00,0x00,}}, {0x52AF,2,{0x84,0xB8,0x00,0x00,}}, {0x52B0,2,{0x84,0xB9,0x00,0x00,}}, {0x52B1,2,{0xC0,0xF8,0x00,0x00,}}, {0x52B2,2,{0xBE,0xA2,0x00,0x00,}}, {0x52B3,2,{0xC0,0xCD,0x00,0x00,}}, {0x52B4,2,{0x84,0xBA,0x00,0x00,}}, {0x52B5,2,{0x84,0xBB,0x00,0x00,}}, {0x52B6,2,{0x84,0xBC,0x00,0x00,}}, {0x52B7,2,{0x84,0xBD,0x00,0x00,}}, {0x52B8,2,{0x84,0xBE,0x00,0x00,}}, {0x52B9,2,{0x84,0xBF,0x00,0x00,}}, {0x52BA,2,{0x84,0xC0,0x00,0x00,}}, {0x52BB,2,{0x84,0xC1,0x00,0x00,}}, {0x52BC,2,{0x84,0xC2,0x00,0x00,}}, {0x52BD,2,{0x84,0xC3,0x00,0x00,}}, {0x52BE,2,{0xDB,0xC0,0x00,0x00,}}, {0x52BF,2,{0xCA,0xC6,0x00,0x00,}}, {0x52C0,2,{0x84,0xC4,0x00,0x00,}}, {0x52C1,2,{0x84,0xC5,0x00,0x00,}}, {0x52C2,2,{0x84,0xC6,0x00,0x00,}}, {0x52C3,2,{0xB2,0xAA,0x00,0x00,}}, {0x52C4,2,{0x84,0xC7,0x00,0x00,}}, {0x52C5,2,{0x84,0xC8,0x00,0x00,}}, {0x52C6,2,{0x84,0xC9,0x00,0x00,}}, {0x52C7,2,{0xD3,0xC2,0x00,0x00,}}, {0x52C8,2,{0x84,0xCA,0x00,0x00,}}, {0x52C9,2,{0xC3,0xE3,0x00,0x00,}}, {0x52CA,2,{0x84,0xCB,0x00,0x00,}}, {0x52CB,2,{0xD1,0xAB,0x00,0x00,}}, {0x52CC,2,{0x84,0xCC,0x00,0x00,}}, {0x52CD,2,{0x84,0xCD,0x00,0x00,}}, {0x52CE,2,{0x84,0xCE,0x00,0x00,}}, {0x52CF,2,{0x84,0xCF,0x00,0x00,}}, {0x52D0,2,{0xDB,0xC2,0x00,0x00,}}, {0x52D1,2,{0x84,0xD0,0x00,0x00,}}, {0x52D2,2,{0xC0,0xD5,0x00,0x00,}}, {0x52D3,2,{0x84,0xD1,0x00,0x00,}}, {0x52D4,2,{0x84,0xD2,0x00,0x00,}}, {0x52D5,2,{0x84,0xD3,0x00,0x00,}}, {0x52D6,2,{0xDB,0xC3,0x00,0x00,}}, {0x52D7,2,{0x84,0xD4,0x00,0x00,}}, {0x52D8,2,{0xBF,0xB1,0x00,0x00,}}, {0x52D9,2,{0x84,0xD5,0x00,0x00,}}, {0x52DA,2,{0x84,0xD6,0x00,0x00,}}, {0x52DB,2,{0x84,0xD7,0x00,0x00,}}, {0x52DC,2,{0x84,0xD8,0x00,0x00,}}, {0x52DD,2,{0x84,0xD9,0x00,0x00,}}, {0x52DE,2,{0x84,0xDA,0x00,0x00,}}, {0x52DF,2,{0xC4,0xBC,0x00,0x00,}}, {0x52E0,2,{0x84,0xDB,0x00,0x00,}}, {0x52E1,2,{0x84,0xDC,0x00,0x00,}}, {0x52E2,2,{0x84,0xDD,0x00,0x00,}}, {0x52E3,2,{0x84,0xDE,0x00,0x00,}}, {0x52E4,2,{0xC7,0xDA,0x00,0x00,}}, {0x52E5,2,{0x84,0xDF,0x00,0x00,}}, {0x52E6,2,{0x84,0xE0,0x00,0x00,}}, {0x52E7,2,{0x84,0xE1,0x00,0x00,}}, {0x52E8,2,{0x84,0xE2,0x00,0x00,}}, {0x52E9,2,{0x84,0xE3,0x00,0x00,}}, {0x52EA,2,{0x84,0xE4,0x00,0x00,}}, {0x52EB,2,{0x84,0xE5,0x00,0x00,}}, {0x52EC,2,{0x84,0xE6,0x00,0x00,}}, {0x52ED,2,{0x84,0xE7,0x00,0x00,}}, {0x52EE,2,{0x84,0xE8,0x00,0x00,}}, {0x52EF,2,{0x84,0xE9,0x00,0x00,}}, {0x52F0,2,{0xDB,0xC4,0x00,0x00,}}, {0x52F1,2,{0x84,0xEA,0x00,0x00,}}, {0x52F2,2,{0x84,0xEB,0x00,0x00,}}, {0x52F3,2,{0x84,0xEC,0x00,0x00,}}, {0x52F4,2,{0x84,0xED,0x00,0x00,}}, {0x52F5,2,{0x84,0xEE,0x00,0x00,}}, {0x52F6,2,{0x84,0xEF,0x00,0x00,}}, {0x52F7,2,{0x84,0xF0,0x00,0x00,}}, {0x52F8,2,{0x84,0xF1,0x00,0x00,}}, {0x52F9,2,{0xD9,0xE8,0x00,0x00,}}, {0x52FA,2,{0xC9,0xD7,0x00,0x00,}}, {0x52FB,2,{0x84,0xF2,0x00,0x00,}}, {0x52FC,2,{0x84,0xF3,0x00,0x00,}}, {0x52FD,2,{0x84,0xF4,0x00,0x00,}}, {0x52FE,2,{0xB9,0xB4,0x00,0x00,}}, {0x52FF,2,{0xCE,0xF0,0x00,0x00,}}, {0x5300,2,{0xD4,0xC8,0x00,0x00,}}, {0x5301,2,{0x84,0xF5,0x00,0x00,}}, {0x5302,2,{0x84,0xF6,0x00,0x00,}}, {0x5303,2,{0x84,0xF7,0x00,0x00,}}, {0x5304,2,{0x84,0xF8,0x00,0x00,}}, {0x5305,2,{0xB0,0xFC,0x00,0x00,}}, {0x5306,2,{0xB4,0xD2,0x00,0x00,}}, {0x5307,2,{0x84,0xF9,0x00,0x00,}}, {0x5308,2,{0xD0,0xD9,0x00,0x00,}}, {0x5309,2,{0x84,0xFA,0x00,0x00,}}, {0x530A,2,{0x84,0xFB,0x00,0x00,}}, {0x530B,2,{0x84,0xFC,0x00,0x00,}}, {0x530C,2,{0x84,0xFD,0x00,0x00,}}, {0x530D,2,{0xD9,0xE9,0x00,0x00,}}, {0x530E,2,{0x84,0xFE,0x00,0x00,}}, {0x530F,2,{0xDE,0xCB,0x00,0x00,}}, {0x5310,2,{0xD9,0xEB,0x00,0x00,}}, {0x5311,2,{0x85,0x40,0x00,0x00,}}, {0x5312,2,{0x85,0x41,0x00,0x00,}}, {0x5313,2,{0x85,0x42,0x00,0x00,}}, {0x5314,2,{0x85,0x43,0x00,0x00,}}, {0x5315,2,{0xD8,0xB0,0x00,0x00,}}, {0x5316,2,{0xBB,0xAF,0x00,0x00,}}, {0x5317,2,{0xB1,0xB1,0x00,0x00,}}, {0x5318,2,{0x85,0x44,0x00,0x00,}}, {0x5319,2,{0xB3,0xD7,0x00,0x00,}}, {0x531A,2,{0xD8,0xCE,0x00,0x00,}}, {0x531B,2,{0x85,0x45,0x00,0x00,}}, {0x531C,2,{0x85,0x46,0x00,0x00,}}, {0x531D,2,{0xD4,0xD1,0x00,0x00,}}, {0x531E,2,{0x85,0x47,0x00,0x00,}}, {0x531F,2,{0x85,0x48,0x00,0x00,}}, {0x5320,2,{0xBD,0xB3,0x00,0x00,}}, {0x5321,2,{0xBF,0xEF,0x00,0x00,}}, {0x5322,2,{0x85,0x49,0x00,0x00,}}, {0x5323,2,{0xCF,0xBB,0x00,0x00,}}, {0x5324,2,{0x85,0x4A,0x00,0x00,}}, {0x5325,2,{0x85,0x4B,0x00,0x00,}}, {0x5326,2,{0xD8,0xD0,0x00,0x00,}}, {0x5327,2,{0x85,0x4C,0x00,0x00,}}, {0x5328,2,{0x85,0x4D,0x00,0x00,}}, {0x5329,2,{0x85,0x4E,0x00,0x00,}}, {0x532A,2,{0xB7,0xCB,0x00,0x00,}}, {0x532B,2,{0x85,0x4F,0x00,0x00,}}, {0x532C,2,{0x85,0x50,0x00,0x00,}}, {0x532D,2,{0x85,0x51,0x00,0x00,}}, {0x532E,2,{0xD8,0xD1,0x00,0x00,}}, {0x532F,2,{0x85,0x52,0x00,0x00,}}, {0x5330,2,{0x85,0x53,0x00,0x00,}}, {0x5331,2,{0x85,0x54,0x00,0x00,}}, {0x5332,2,{0x85,0x55,0x00,0x00,}}, {0x5333,2,{0x85,0x56,0x00,0x00,}}, {0x5334,2,{0x85,0x57,0x00,0x00,}}, {0x5335,2,{0x85,0x58,0x00,0x00,}}, {0x5336,2,{0x85,0x59,0x00,0x00,}}, {0x5337,2,{0x85,0x5A,0x00,0x00,}}, {0x5338,2,{0x85,0x5B,0x00,0x00,}}, {0x5339,2,{0xC6,0xA5,0x00,0x00,}}, {0x533A,2,{0xC7,0xF8,0x00,0x00,}}, {0x533B,2,{0xD2,0xBD,0x00,0x00,}}, {0x533C,2,{0x85,0x5C,0x00,0x00,}}, {0x533D,2,{0x85,0x5D,0x00,0x00,}}, {0x533E,2,{0xD8,0xD2,0x00,0x00,}}, {0x533F,2,{0xC4,0xE4,0x00,0x00,}}, {0x5340,2,{0x85,0x5E,0x00,0x00,}}, {0x5341,2,{0xCA,0xAE,0x00,0x00,}}, {0x5342,2,{0x85,0x5F,0x00,0x00,}}, {0x5343,2,{0xC7,0xA7,0x00,0x00,}}, {0x5344,2,{0x85,0x60,0x00,0x00,}}, {0x5345,2,{0xD8,0xA6,0x00,0x00,}}, {0x5346,2,{0x85,0x61,0x00,0x00,}}, {0x5347,2,{0xC9,0xFD,0x00,0x00,}}, {0x5348,2,{0xCE,0xE7,0x00,0x00,}}, {0x5349,2,{0xBB,0xDC,0x00,0x00,}}, {0x534A,2,{0xB0,0xEB,0x00,0x00,}}, {0x534B,2,{0x85,0x62,0x00,0x00,}}, {0x534C,2,{0x85,0x63,0x00,0x00,}}, {0x534D,2,{0x85,0x64,0x00,0x00,}}, {0x534E,2,{0xBB,0xAA,0x00,0x00,}}, {0x534F,2,{0xD0,0xAD,0x00,0x00,}}, {0x5350,2,{0x85,0x65,0x00,0x00,}}, {0x5351,2,{0xB1,0xB0,0x00,0x00,}}, {0x5352,2,{0xD7,0xE4,0x00,0x00,}}, {0x5353,2,{0xD7,0xBF,0x00,0x00,}}, {0x5354,2,{0x85,0x66,0x00,0x00,}}, {0x5355,2,{0xB5,0xA5,0x00,0x00,}}, {0x5356,2,{0xC2,0xF4,0x00,0x00,}}, {0x5357,2,{0xC4,0xCF,0x00,0x00,}}, {0x5358,2,{0x85,0x67,0x00,0x00,}}, {0x5359,2,{0x85,0x68,0x00,0x00,}}, {0x535A,2,{0xB2,0xA9,0x00,0x00,}}, {0x535B,2,{0x85,0x69,0x00,0x00,}}, {0x535C,2,{0xB2,0xB7,0x00,0x00,}}, {0x535D,2,{0x85,0x6A,0x00,0x00,}}, {0x535E,2,{0xB1,0xE5,0x00,0x00,}}, {0x535F,2,{0xDF,0xB2,0x00,0x00,}}, {0x5360,2,{0xD5,0xBC,0x00,0x00,}}, {0x5361,2,{0xBF,0xA8,0x00,0x00,}}, {0x5362,2,{0xC2,0xAC,0x00,0x00,}}, {0x5363,2,{0xD8,0xD5,0x00,0x00,}}, {0x5364,2,{0xC2,0xB1,0x00,0x00,}}, {0x5365,2,{0x85,0x6B,0x00,0x00,}}, {0x5366,2,{0xD8,0xD4,0x00,0x00,}}, {0x5367,2,{0xCE,0xD4,0x00,0x00,}}, {0x5368,2,{0x85,0x6C,0x00,0x00,}}, {0x5369,2,{0xDA,0xE0,0x00,0x00,}}, {0x536A,2,{0x85,0x6D,0x00,0x00,}}, {0x536B,2,{0xCE,0xC0,0x00,0x00,}}, {0x536C,2,{0x85,0x6E,0x00,0x00,}}, {0x536D,2,{0x85,0x6F,0x00,0x00,}}, {0x536E,2,{0xD8,0xB4,0x00,0x00,}}, {0x536F,2,{0xC3,0xAE,0x00,0x00,}}, {0x5370,2,{0xD3,0xA1,0x00,0x00,}}, {0x5371,2,{0xCE,0xA3,0x00,0x00,}}, {0x5372,2,{0x85,0x70,0x00,0x00,}}, {0x5373,2,{0xBC,0xB4,0x00,0x00,}}, {0x5374,2,{0xC8,0xB4,0x00,0x00,}}, {0x5375,2,{0xC2,0xD1,0x00,0x00,}}, {0x5376,2,{0x85,0x71,0x00,0x00,}}, {0x5377,2,{0xBE,0xED,0x00,0x00,}}, {0x5378,2,{0xD0,0xB6,0x00,0x00,}}, {0x5379,2,{0x85,0x72,0x00,0x00,}}, {0x537A,2,{0xDA,0xE1,0x00,0x00,}}, {0x537B,2,{0x85,0x73,0x00,0x00,}}, {0x537C,2,{0x85,0x74,0x00,0x00,}}, {0x537D,2,{0x85,0x75,0x00,0x00,}}, {0x537E,2,{0x85,0x76,0x00,0x00,}}, {0x537F,2,{0xC7,0xE4,0x00,0x00,}}, {0x5380,2,{0x85,0x77,0x00,0x00,}}, {0x5381,2,{0x85,0x78,0x00,0x00,}}, {0x5382,2,{0xB3,0xA7,0x00,0x00,}}, {0x5383,2,{0x85,0x79,0x00,0x00,}}, {0x5384,2,{0xB6,0xF2,0x00,0x00,}}, {0x5385,2,{0xCC,0xFC,0x00,0x00,}}, {0x5386,2,{0xC0,0xFA,0x00,0x00,}}, {0x5387,2,{0x85,0x7A,0x00,0x00,}}, {0x5388,2,{0x85,0x7B,0x00,0x00,}}, {0x5389,2,{0xC0,0xF7,0x00,0x00,}}, {0x538A,2,{0x85,0x7C,0x00,0x00,}}, {0x538B,2,{0xD1,0xB9,0x00,0x00,}}, {0x538C,2,{0xD1,0xE1,0x00,0x00,}}, {0x538D,2,{0xD8,0xC7,0x00,0x00,}}, {0x538E,2,{0x85,0x7D,0x00,0x00,}}, {0x538F,2,{0x85,0x7E,0x00,0x00,}}, {0x5390,2,{0x85,0x80,0x00,0x00,}}, {0x5391,2,{0x85,0x81,0x00,0x00,}}, {0x5392,2,{0x85,0x82,0x00,0x00,}}, {0x5393,2,{0x85,0x83,0x00,0x00,}}, {0x5394,2,{0x85,0x84,0x00,0x00,}}, {0x5395,2,{0xB2,0xDE,0x00,0x00,}}, {0x5396,2,{0x85,0x85,0x00,0x00,}}, {0x5397,2,{0x85,0x86,0x00,0x00,}}, {0x5398,2,{0xC0,0xE5,0x00,0x00,}}, {0x5399,2,{0x85,0x87,0x00,0x00,}}, {0x539A,2,{0xBA,0xF1,0x00,0x00,}}, {0x539B,2,{0x85,0x88,0x00,0x00,}}, {0x539C,2,{0x85,0x89,0x00,0x00,}}, {0x539D,2,{0xD8,0xC8,0x00,0x00,}}, {0x539E,2,{0x85,0x8A,0x00,0x00,}}, {0x539F,2,{0xD4,0xAD,0x00,0x00,}}, {0x53A0,2,{0x85,0x8B,0x00,0x00,}}, {0x53A1,2,{0x85,0x8C,0x00,0x00,}}, {0x53A2,2,{0xCF,0xE1,0x00,0x00,}}, {0x53A3,2,{0xD8,0xC9,0x00,0x00,}}, {0x53A4,2,{0x85,0x8D,0x00,0x00,}}, {0x53A5,2,{0xD8,0xCA,0x00,0x00,}}, {0x53A6,2,{0xCF,0xC3,0x00,0x00,}}, {0x53A7,2,{0x85,0x8E,0x00,0x00,}}, {0x53A8,2,{0xB3,0xF8,0x00,0x00,}}, {0x53A9,2,{0xBE,0xC7,0x00,0x00,}}, {0x53AA,2,{0x85,0x8F,0x00,0x00,}}, {0x53AB,2,{0x85,0x90,0x00,0x00,}}, {0x53AC,2,{0x85,0x91,0x00,0x00,}}, {0x53AD,2,{0x85,0x92,0x00,0x00,}}, {0x53AE,2,{0xD8,0xCB,0x00,0x00,}}, {0x53AF,2,{0x85,0x93,0x00,0x00,}}, {0x53B0,2,{0x85,0x94,0x00,0x00,}}, {0x53B1,2,{0x85,0x95,0x00,0x00,}}, {0x53B2,2,{0x85,0x96,0x00,0x00,}}, {0x53B3,2,{0x85,0x97,0x00,0x00,}}, {0x53B4,2,{0x85,0x98,0x00,0x00,}}, {0x53B5,2,{0x85,0x99,0x00,0x00,}}, {0x53B6,2,{0xDB,0xCC,0x00,0x00,}}, {0x53B7,2,{0x85,0x9A,0x00,0x00,}}, {0x53B8,2,{0x85,0x9B,0x00,0x00,}}, {0x53B9,2,{0x85,0x9C,0x00,0x00,}}, {0x53BA,2,{0x85,0x9D,0x00,0x00,}}, {0x53BB,2,{0xC8,0xA5,0x00,0x00,}}, {0x53BC,2,{0x85,0x9E,0x00,0x00,}}, {0x53BD,2,{0x85,0x9F,0x00,0x00,}}, {0x53BE,2,{0x85,0xA0,0x00,0x00,}}, {0x53BF,2,{0xCF,0xD8,0x00,0x00,}}, {0x53C0,2,{0x85,0xA1,0x00,0x00,}}, {0x53C1,2,{0xC8,0xFE,0x00,0x00,}}, {0x53C2,2,{0xB2,0xCE,0x00,0x00,}}, {0x53C3,2,{0x85,0xA2,0x00,0x00,}}, {0x53C4,2,{0x85,0xA3,0x00,0x00,}}, {0x53C5,2,{0x85,0xA4,0x00,0x00,}}, {0x53C6,2,{0x85,0xA5,0x00,0x00,}}, {0x53C7,2,{0x85,0xA6,0x00,0x00,}}, {0x53C8,2,{0xD3,0xD6,0x00,0x00,}}, {0x53C9,2,{0xB2,0xE6,0x00,0x00,}}, {0x53CA,2,{0xBC,0xB0,0x00,0x00,}}, {0x53CB,2,{0xD3,0xD1,0x00,0x00,}}, {0x53CC,2,{0xCB,0xAB,0x00,0x00,}}, {0x53CD,2,{0xB7,0xB4,0x00,0x00,}}, {0x53CE,2,{0x85,0xA7,0x00,0x00,}}, {0x53CF,2,{0x85,0xA8,0x00,0x00,}}, {0x53D0,2,{0x85,0xA9,0x00,0x00,}}, {0x53D1,2,{0xB7,0xA2,0x00,0x00,}}, {0x53D2,2,{0x85,0xAA,0x00,0x00,}}, {0x53D3,2,{0x85,0xAB,0x00,0x00,}}, {0x53D4,2,{0xCA,0xE5,0x00,0x00,}}, {0x53D5,2,{0x85,0xAC,0x00,0x00,}}, {0x53D6,2,{0xC8,0xA1,0x00,0x00,}}, {0x53D7,2,{0xCA,0xDC,0x00,0x00,}}, {0x53D8,2,{0xB1,0xE4,0x00,0x00,}}, {0x53D9,2,{0xD0,0xF0,0x00,0x00,}}, {0x53DA,2,{0x85,0xAD,0x00,0x00,}}, {0x53DB,2,{0xC5,0xD1,0x00,0x00,}}, {0x53DC,2,{0x85,0xAE,0x00,0x00,}}, {0x53DD,2,{0x85,0xAF,0x00,0x00,}}, {0x53DE,2,{0x85,0xB0,0x00,0x00,}}, {0x53DF,2,{0xDB,0xC5,0x00,0x00,}}, {0x53E0,2,{0xB5,0xFE,0x00,0x00,}}, {0x53E1,2,{0x85,0xB1,0x00,0x00,}}, {0x53E2,2,{0x85,0xB2,0x00,0x00,}}, {0x53E3,2,{0xBF,0xDA,0x00,0x00,}}, {0x53E4,2,{0xB9,0xC5,0x00,0x00,}}, {0x53E5,2,{0xBE,0xE4,0x00,0x00,}}, {0x53E6,2,{0xC1,0xED,0x00,0x00,}}, {0x53E7,2,{0x85,0xB3,0x00,0x00,}}, {0x53E8,2,{0xDF,0xB6,0x00,0x00,}}, {0x53E9,2,{0xDF,0xB5,0x00,0x00,}}, {0x53EA,2,{0xD6,0xBB,0x00,0x00,}}, {0x53EB,2,{0xBD,0xD0,0x00,0x00,}}, {0x53EC,2,{0xD5,0xD9,0x00,0x00,}}, {0x53ED,2,{0xB0,0xC8,0x00,0x00,}}, {0x53EE,2,{0xB6,0xA3,0x00,0x00,}}, {0x53EF,2,{0xBF,0xC9,0x00,0x00,}}, {0x53F0,2,{0xCC,0xA8,0x00,0x00,}}, {0x53F1,2,{0xDF,0xB3,0x00,0x00,}}, {0x53F2,2,{0xCA,0xB7,0x00,0x00,}}, {0x53F3,2,{0xD3,0xD2,0x00,0x00,}}, {0x53F4,2,{0x85,0xB4,0x00,0x00,}}, {0x53F5,2,{0xD8,0xCF,0x00,0x00,}}, {0x53F6,2,{0xD2,0xB6,0x00,0x00,}}, {0x53F7,2,{0xBA,0xC5,0x00,0x00,}}, {0x53F8,2,{0xCB,0xBE,0x00,0x00,}}, {0x53F9,2,{0xCC,0xBE,0x00,0x00,}}, {0x53FA,2,{0x85,0xB5,0x00,0x00,}}, {0x53FB,2,{0xDF,0xB7,0x00,0x00,}}, {0x53FC,2,{0xB5,0xF0,0x00,0x00,}}, {0x53FD,2,{0xDF,0xB4,0x00,0x00,}}, {0x53FE,2,{0x85,0xB6,0x00,0x00,}}, {0x53FF,2,{0x85,0xB7,0x00,0x00,}}, {0x5400,2,{0x85,0xB8,0x00,0x00,}}, {0x5401,2,{0xD3,0xF5,0x00,0x00,}}, {0x5402,2,{0x85,0xB9,0x00,0x00,}}, {0x5403,2,{0xB3,0xD4,0x00,0x00,}}, {0x5404,2,{0xB8,0xF7,0x00,0x00,}}, {0x5405,2,{0x85,0xBA,0x00,0x00,}}, {0x5406,2,{0xDF,0xBA,0x00,0x00,}}, {0x5407,2,{0x85,0xBB,0x00,0x00,}}, {0x5408,2,{0xBA,0xCF,0x00,0x00,}}, {0x5409,2,{0xBC,0xAA,0x00,0x00,}}, {0x540A,2,{0xB5,0xF5,0x00,0x00,}}, {0x540B,2,{0x85,0xBC,0x00,0x00,}}, {0x540C,2,{0xCD,0xAC,0x00,0x00,}}, {0x540D,2,{0xC3,0xFB,0x00,0x00,}}, {0x540E,2,{0xBA,0xF3,0x00,0x00,}}, {0x540F,2,{0xC0,0xF4,0x00,0x00,}}, {0x5410,2,{0xCD,0xC2,0x00,0x00,}}, {0x5411,2,{0xCF,0xF2,0x00,0x00,}}, {0x5412,2,{0xDF,0xB8,0x00,0x00,}}, {0x5413,2,{0xCF,0xC5,0x00,0x00,}}, {0x5414,2,{0x85,0xBD,0x00,0x00,}}, {0x5415,2,{0xC2,0xC0,0x00,0x00,}}, {0x5416,2,{0xDF,0xB9,0x00,0x00,}}, {0x5417,2,{0xC2,0xF0,0x00,0x00,}}, {0x5418,2,{0x85,0xBE,0x00,0x00,}}, {0x5419,2,{0x85,0xBF,0x00,0x00,}}, {0x541A,2,{0x85,0xC0,0x00,0x00,}}, {0x541B,2,{0xBE,0xFD,0x00,0x00,}}, {0x541C,2,{0x85,0xC1,0x00,0x00,}}, {0x541D,2,{0xC1,0xDF,0x00,0x00,}}, {0x541E,2,{0xCD,0xCC,0x00,0x00,}}, {0x541F,2,{0xD2,0xF7,0x00,0x00,}}, {0x5420,2,{0xB7,0xCD,0x00,0x00,}}, {0x5421,2,{0xDF,0xC1,0x00,0x00,}}, {0x5422,2,{0x85,0xC2,0x00,0x00,}}, {0x5423,2,{0xDF,0xC4,0x00,0x00,}}, {0x5424,2,{0x85,0xC3,0x00,0x00,}}, {0x5425,2,{0x85,0xC4,0x00,0x00,}}, {0x5426,2,{0xB7,0xF1,0x00,0x00,}}, {0x5427,2,{0xB0,0xC9,0x00,0x00,}}, {0x5428,2,{0xB6,0xD6,0x00,0x00,}}, {0x5429,2,{0xB7,0xD4,0x00,0x00,}}, {0x542A,2,{0x85,0xC5,0x00,0x00,}}, {0x542B,2,{0xBA,0xAC,0x00,0x00,}}, {0x542C,2,{0xCC,0xFD,0x00,0x00,}}, {0x542D,2,{0xBF,0xD4,0x00,0x00,}}, {0x542E,2,{0xCB,0xB1,0x00,0x00,}}, {0x542F,2,{0xC6,0xF4,0x00,0x00,}}, {0x5430,2,{0x85,0xC6,0x00,0x00,}}, {0x5431,2,{0xD6,0xA8,0x00,0x00,}}, {0x5432,2,{0xDF,0xC5,0x00,0x00,}}, {0x5433,2,{0x85,0xC7,0x00,0x00,}}, {0x5434,2,{0xCE,0xE2,0x00,0x00,}}, {0x5435,2,{0xB3,0xB3,0x00,0x00,}}, {0x5436,2,{0x85,0xC8,0x00,0x00,}}, {0x5437,2,{0x85,0xC9,0x00,0x00,}}, {0x5438,2,{0xCE,0xFC,0x00,0x00,}}, {0x5439,2,{0xB4,0xB5,0x00,0x00,}}, {0x543A,2,{0x85,0xCA,0x00,0x00,}}, {0x543B,2,{0xCE,0xC7,0x00,0x00,}}, {0x543C,2,{0xBA,0xF0,0x00,0x00,}}, {0x543D,2,{0x85,0xCB,0x00,0x00,}}, {0x543E,2,{0xCE,0xE1,0x00,0x00,}}, {0x543F,2,{0x85,0xCC,0x00,0x00,}}, {0x5440,2,{0xD1,0xBD,0x00,0x00,}}, {0x5441,2,{0x85,0xCD,0x00,0x00,}}, {0x5442,2,{0x85,0xCE,0x00,0x00,}}, {0x5443,2,{0xDF,0xC0,0x00,0x00,}}, {0x5444,2,{0x85,0xCF,0x00,0x00,}}, {0x5445,2,{0x85,0xD0,0x00,0x00,}}, {0x5446,2,{0xB4,0xF4,0x00,0x00,}}, {0x5447,2,{0x85,0xD1,0x00,0x00,}}, {0x5448,2,{0xB3,0xCA,0x00,0x00,}}, {0x5449,2,{0x85,0xD2,0x00,0x00,}}, {0x544A,2,{0xB8,0xE6,0x00,0x00,}}, {0x544B,2,{0xDF,0xBB,0x00,0x00,}}, {0x544C,2,{0x85,0xD3,0x00,0x00,}}, {0x544D,2,{0x85,0xD4,0x00,0x00,}}, {0x544E,2,{0x85,0xD5,0x00,0x00,}}, {0x544F,2,{0x85,0xD6,0x00,0x00,}}, {0x5450,2,{0xC4,0xC5,0x00,0x00,}}, {0x5451,2,{0x85,0xD7,0x00,0x00,}}, {0x5452,2,{0xDF,0xBC,0x00,0x00,}}, {0x5453,2,{0xDF,0xBD,0x00,0x00,}}, {0x5454,2,{0xDF,0xBE,0x00,0x00,}}, {0x5455,2,{0xC5,0xBB,0x00,0x00,}}, {0x5456,2,{0xDF,0xBF,0x00,0x00,}}, {0x5457,2,{0xDF,0xC2,0x00,0x00,}}, {0x5458,2,{0xD4,0xB1,0x00,0x00,}}, {0x5459,2,{0xDF,0xC3,0x00,0x00,}}, {0x545A,2,{0x85,0xD8,0x00,0x00,}}, {0x545B,2,{0xC7,0xBA,0x00,0x00,}}, {0x545C,2,{0xCE,0xD8,0x00,0x00,}}, {0x545D,2,{0x85,0xD9,0x00,0x00,}}, {0x545E,2,{0x85,0xDA,0x00,0x00,}}, {0x545F,2,{0x85,0xDB,0x00,0x00,}}, {0x5460,2,{0x85,0xDC,0x00,0x00,}}, {0x5461,2,{0x85,0xDD,0x00,0x00,}}, {0x5462,2,{0xC4,0xD8,0x00,0x00,}}, {0x5463,2,{0x85,0xDE,0x00,0x00,}}, {0x5464,2,{0xDF,0xCA,0x00,0x00,}}, {0x5465,2,{0x85,0xDF,0x00,0x00,}}, {0x5466,2,{0xDF,0xCF,0x00,0x00,}}, {0x5467,2,{0x85,0xE0,0x00,0x00,}}, {0x5468,2,{0xD6,0xDC,0x00,0x00,}}, {0x5469,2,{0x85,0xE1,0x00,0x00,}}, {0x546A,2,{0x85,0xE2,0x00,0x00,}}, {0x546B,2,{0x85,0xE3,0x00,0x00,}}, {0x546C,2,{0x85,0xE4,0x00,0x00,}}, {0x546D,2,{0x85,0xE5,0x00,0x00,}}, {0x546E,2,{0x85,0xE6,0x00,0x00,}}, {0x546F,2,{0x85,0xE7,0x00,0x00,}}, {0x5470,2,{0x85,0xE8,0x00,0x00,}}, {0x5471,2,{0xDF,0xC9,0x00,0x00,}}, {0x5472,2,{0xDF,0xDA,0x00,0x00,}}, {0x5473,2,{0xCE,0xB6,0x00,0x00,}}, {0x5474,2,{0x85,0xE9,0x00,0x00,}}, {0x5475,2,{0xBA,0xC7,0x00,0x00,}}, {0x5476,2,{0xDF,0xCE,0x00,0x00,}}, {0x5477,2,{0xDF,0xC8,0x00,0x00,}}, {0x5478,2,{0xC5,0xDE,0x00,0x00,}}, {0x5479,2,{0x85,0xEA,0x00,0x00,}}, {0x547A,2,{0x85,0xEB,0x00,0x00,}}, {0x547B,2,{0xC9,0xEB,0x00,0x00,}}, {0x547C,2,{0xBA,0xF4,0x00,0x00,}}, {0x547D,2,{0xC3,0xFC,0x00,0x00,}}, {0x547E,2,{0x85,0xEC,0x00,0x00,}}, {0x547F,2,{0x85,0xED,0x00,0x00,}}, {0x5480,2,{0xBE,0xD7,0x00,0x00,}}, {0x5481,2,{0x85,0xEE,0x00,0x00,}}, {0x5482,2,{0xDF,0xC6,0x00,0x00,}}, {0x5483,2,{0x85,0xEF,0x00,0x00,}}, {0x5484,2,{0xDF,0xCD,0x00,0x00,}}, {0x5485,2,{0x85,0xF0,0x00,0x00,}}, {0x5486,2,{0xC5,0xD8,0x00,0x00,}}, {0x5487,2,{0x85,0xF1,0x00,0x00,}}, {0x5488,2,{0x85,0xF2,0x00,0x00,}}, {0x5489,2,{0x85,0xF3,0x00,0x00,}}, {0x548A,2,{0x85,0xF4,0x00,0x00,}}, {0x548B,2,{0xD5,0xA6,0x00,0x00,}}, {0x548C,2,{0xBA,0xCD,0x00,0x00,}}, {0x548D,2,{0x85,0xF5,0x00,0x00,}}, {0x548E,2,{0xBE,0xCC,0x00,0x00,}}, {0x548F,2,{0xD3,0xBD,0x00,0x00,}}, {0x5490,2,{0xB8,0xC0,0x00,0x00,}}, {0x5491,2,{0x85,0xF6,0x00,0x00,}}, {0x5492,2,{0xD6,0xE4,0x00,0x00,}}, {0x5493,2,{0x85,0xF7,0x00,0x00,}}, {0x5494,2,{0xDF,0xC7,0x00,0x00,}}, {0x5495,2,{0xB9,0xBE,0x00,0x00,}}, {0x5496,2,{0xBF,0xA7,0x00,0x00,}}, {0x5497,2,{0x85,0xF8,0x00,0x00,}}, {0x5498,2,{0x85,0xF9,0x00,0x00,}}, {0x5499,2,{0xC1,0xFC,0x00,0x00,}}, {0x549A,2,{0xDF,0xCB,0x00,0x00,}}, {0x549B,2,{0xDF,0xCC,0x00,0x00,}}, {0x549C,2,{0x85,0xFA,0x00,0x00,}}, {0x549D,2,{0xDF,0xD0,0x00,0x00,}}, {0x549E,2,{0x85,0xFB,0x00,0x00,}}, {0x549F,2,{0x85,0xFC,0x00,0x00,}}, {0x54A0,2,{0x85,0xFD,0x00,0x00,}}, {0x54A1,2,{0x85,0xFE,0x00,0x00,}}, {0x54A2,2,{0x86,0x40,0x00,0x00,}}, {0x54A3,2,{0xDF,0xDB,0x00,0x00,}}, {0x54A4,2,{0xDF,0xE5,0x00,0x00,}}, {0x54A5,2,{0x86,0x41,0x00,0x00,}}, {0x54A6,2,{0xDF,0xD7,0x00,0x00,}}, {0x54A7,2,{0xDF,0xD6,0x00,0x00,}}, {0x54A8,2,{0xD7,0xC9,0x00,0x00,}}, {0x54A9,2,{0xDF,0xE3,0x00,0x00,}}, {0x54AA,2,{0xDF,0xE4,0x00,0x00,}}, {0x54AB,2,{0xE5,0xEB,0x00,0x00,}}, {0x54AC,2,{0xD2,0xA7,0x00,0x00,}}, {0x54AD,2,{0xDF,0xD2,0x00,0x00,}}, {0x54AE,2,{0x86,0x42,0x00,0x00,}}, {0x54AF,2,{0xBF,0xA9,0x00,0x00,}}, {0x54B0,2,{0x86,0x43,0x00,0x00,}}, {0x54B1,2,{0xD4,0xDB,0x00,0x00,}}, {0x54B2,2,{0x86,0x44,0x00,0x00,}}, {0x54B3,2,{0xBF,0xC8,0x00,0x00,}}, {0x54B4,2,{0xDF,0xD4,0x00,0x00,}}, {0x54B5,2,{0x86,0x45,0x00,0x00,}}, {0x54B6,2,{0x86,0x46,0x00,0x00,}}, {0x54B7,2,{0x86,0x47,0x00,0x00,}}, {0x54B8,2,{0xCF,0xCC,0x00,0x00,}}, {0x54B9,2,{0x86,0x48,0x00,0x00,}}, {0x54BA,2,{0x86,0x49,0x00,0x00,}}, {0x54BB,2,{0xDF,0xDD,0x00,0x00,}}, {0x54BC,2,{0x86,0x4A,0x00,0x00,}}, {0x54BD,2,{0xD1,0xCA,0x00,0x00,}}, {0x54BE,2,{0x86,0x4B,0x00,0x00,}}, {0x54BF,2,{0xDF,0xDE,0x00,0x00,}}, {0x54C0,2,{0xB0,0xA7,0x00,0x00,}}, {0x54C1,2,{0xC6,0xB7,0x00,0x00,}}, {0x54C2,2,{0xDF,0xD3,0x00,0x00,}}, {0x54C3,2,{0x86,0x4C,0x00,0x00,}}, {0x54C4,2,{0xBA,0xE5,0x00,0x00,}}, {0x54C5,2,{0x86,0x4D,0x00,0x00,}}, {0x54C6,2,{0xB6,0xDF,0x00,0x00,}}, {0x54C7,2,{0xCD,0xDB,0x00,0x00,}}, {0x54C8,2,{0xB9,0xFE,0x00,0x00,}}, {0x54C9,2,{0xD4,0xD5,0x00,0x00,}}, {0x54CA,2,{0x86,0x4E,0x00,0x00,}}, {0x54CB,2,{0x86,0x4F,0x00,0x00,}}, {0x54CC,2,{0xDF,0xDF,0x00,0x00,}}, {0x54CD,2,{0xCF,0xEC,0x00,0x00,}}, {0x54CE,2,{0xB0,0xA5,0x00,0x00,}}, {0x54CF,2,{0xDF,0xE7,0x00,0x00,}}, {0x54D0,2,{0xDF,0xD1,0x00,0x00,}}, {0x54D1,2,{0xD1,0xC6,0x00,0x00,}}, {0x54D2,2,{0xDF,0xD5,0x00,0x00,}}, {0x54D3,2,{0xDF,0xD8,0x00,0x00,}}, {0x54D4,2,{0xDF,0xD9,0x00,0x00,}}, {0x54D5,2,{0xDF,0xDC,0x00,0x00,}}, {0x54D6,2,{0x86,0x50,0x00,0x00,}}, {0x54D7,2,{0xBB,0xA9,0x00,0x00,}}, {0x54D8,2,{0x86,0x51,0x00,0x00,}}, {0x54D9,2,{0xDF,0xE0,0x00,0x00,}}, {0x54DA,2,{0xDF,0xE1,0x00,0x00,}}, {0x54DB,2,{0x86,0x52,0x00,0x00,}}, {0x54DC,2,{0xDF,0xE2,0x00,0x00,}}, {0x54DD,2,{0xDF,0xE6,0x00,0x00,}}, {0x54DE,2,{0xDF,0xE8,0x00,0x00,}}, {0x54DF,2,{0xD3,0xB4,0x00,0x00,}}, {0x54E0,2,{0x86,0x53,0x00,0x00,}}, {0x54E1,2,{0x86,0x54,0x00,0x00,}}, {0x54E2,2,{0x86,0x55,0x00,0x00,}}, {0x54E3,2,{0x86,0x56,0x00,0x00,}}, {0x54E4,2,{0x86,0x57,0x00,0x00,}}, {0x54E5,2,{0xB8,0xE7,0x00,0x00,}}, {0x54E6,2,{0xC5,0xB6,0x00,0x00,}}, {0x54E7,2,{0xDF,0xEA,0x00,0x00,}}, {0x54E8,2,{0xC9,0xDA,0x00,0x00,}}, {0x54E9,2,{0xC1,0xA8,0x00,0x00,}}, {0x54EA,2,{0xC4,0xC4,0x00,0x00,}}, {0x54EB,2,{0x86,0x58,0x00,0x00,}}, {0x54EC,2,{0x86,0x59,0x00,0x00,}}, {0x54ED,2,{0xBF,0xDE,0x00,0x00,}}, {0x54EE,2,{0xCF,0xF8,0x00,0x00,}}, {0x54EF,2,{0x86,0x5A,0x00,0x00,}}, {0x54F0,2,{0x86,0x5B,0x00,0x00,}}, {0x54F1,2,{0x86,0x5C,0x00,0x00,}}, {0x54F2,2,{0xD5,0xDC,0x00,0x00,}}, {0x54F3,2,{0xDF,0xEE,0x00,0x00,}}, {0x54F4,2,{0x86,0x5D,0x00,0x00,}}, {0x54F5,2,{0x86,0x5E,0x00,0x00,}}, {0x54F6,2,{0x86,0x5F,0x00,0x00,}}, {0x54F7,2,{0x86,0x60,0x00,0x00,}}, {0x54F8,2,{0x86,0x61,0x00,0x00,}}, {0x54F9,2,{0x86,0x62,0x00,0x00,}}, {0x54FA,2,{0xB2,0xB8,0x00,0x00,}}, {0x54FB,2,{0x86,0x63,0x00,0x00,}}, {0x54FC,2,{0xBA,0xDF,0x00,0x00,}}, {0x54FD,2,{0xDF,0xEC,0x00,0x00,}}, {0x54FE,2,{0x86,0x64,0x00,0x00,}}, {0x54FF,2,{0xDB,0xC1,0x00,0x00,}}, {0x5500,2,{0x86,0x65,0x00,0x00,}}, {0x5501,2,{0xD1,0xE4,0x00,0x00,}}, {0x5502,2,{0x86,0x66,0x00,0x00,}}, {0x5503,2,{0x86,0x67,0x00,0x00,}}, {0x5504,2,{0x86,0x68,0x00,0x00,}}, {0x5505,2,{0x86,0x69,0x00,0x00,}}, {0x5506,2,{0xCB,0xF4,0x00,0x00,}}, {0x5507,2,{0xB4,0xBD,0x00,0x00,}}, {0x5508,2,{0x86,0x6A,0x00,0x00,}}, {0x5509,2,{0xB0,0xA6,0x00,0x00,}}, {0x550A,2,{0x86,0x6B,0x00,0x00,}}, {0x550B,2,{0x86,0x6C,0x00,0x00,}}, {0x550C,2,{0x86,0x6D,0x00,0x00,}}, {0x550D,2,{0x86,0x6E,0x00,0x00,}}, {0x550E,2,{0x86,0x6F,0x00,0x00,}}, {0x550F,2,{0xDF,0xF1,0x00,0x00,}}, {0x5510,2,{0xCC,0xC6,0x00,0x00,}}, {0x5511,2,{0xDF,0xF2,0x00,0x00,}}, {0x5512,2,{0x86,0x70,0x00,0x00,}}, {0x5513,2,{0x86,0x71,0x00,0x00,}}, {0x5514,2,{0xDF,0xED,0x00,0x00,}}, {0x5515,2,{0x86,0x72,0x00,0x00,}}, {0x5516,2,{0x86,0x73,0x00,0x00,}}, {0x5517,2,{0x86,0x74,0x00,0x00,}}, {0x5518,2,{0x86,0x75,0x00,0x00,}}, {0x5519,2,{0x86,0x76,0x00,0x00,}}, {0x551A,2,{0x86,0x77,0x00,0x00,}}, {0x551B,2,{0xDF,0xE9,0x00,0x00,}}, {0x551C,2,{0x86,0x78,0x00,0x00,}}, {0x551D,2,{0x86,0x79,0x00,0x00,}}, {0x551E,2,{0x86,0x7A,0x00,0x00,}}, {0x551F,2,{0x86,0x7B,0x00,0x00,}}, {0x5520,2,{0xDF,0xEB,0x00,0x00,}}, {0x5521,2,{0x86,0x7C,0x00,0x00,}}, {0x5522,2,{0xDF,0xEF,0x00,0x00,}}, {0x5523,2,{0xDF,0xF0,0x00,0x00,}}, {0x5524,2,{0xBB,0xBD,0x00,0x00,}}, {0x5525,2,{0x86,0x7D,0x00,0x00,}}, {0x5526,2,{0x86,0x7E,0x00,0x00,}}, {0x5527,2,{0xDF,0xF3,0x00,0x00,}}, {0x5528,2,{0x86,0x80,0x00,0x00,}}, {0x5529,2,{0x86,0x81,0x00,0x00,}}, {0x552A,2,{0xDF,0xF4,0x00,0x00,}}, {0x552B,2,{0x86,0x82,0x00,0x00,}}, {0x552C,2,{0xBB,0xA3,0x00,0x00,}}, {0x552D,2,{0x86,0x83,0x00,0x00,}}, {0x552E,2,{0xCA,0xDB,0x00,0x00,}}, {0x552F,2,{0xCE,0xA8,0x00,0x00,}}, {0x5530,2,{0xE0,0xA7,0x00,0x00,}}, {0x5531,2,{0xB3,0xAA,0x00,0x00,}}, {0x5532,2,{0x86,0x84,0x00,0x00,}}, {0x5533,2,{0xE0,0xA6,0x00,0x00,}}, {0x5534,2,{0x86,0x85,0x00,0x00,}}, {0x5535,2,{0x86,0x86,0x00,0x00,}}, {0x5536,2,{0x86,0x87,0x00,0x00,}}, {0x5537,2,{0xE0,0xA1,0x00,0x00,}}, {0x5538,2,{0x86,0x88,0x00,0x00,}}, {0x5539,2,{0x86,0x89,0x00,0x00,}}, {0x553A,2,{0x86,0x8A,0x00,0x00,}}, {0x553B,2,{0x86,0x8B,0x00,0x00,}}, {0x553C,2,{0xDF,0xFE,0x00,0x00,}}, {0x553D,2,{0x86,0x8C,0x00,0x00,}}, {0x553E,2,{0xCD,0xD9,0x00,0x00,}}, {0x553F,2,{0xDF,0xFC,0x00,0x00,}}, {0x5540,2,{0x86,0x8D,0x00,0x00,}}, {0x5541,2,{0xDF,0xFA,0x00,0x00,}}, {0x5542,2,{0x86,0x8E,0x00,0x00,}}, {0x5543,2,{0xBF,0xD0,0x00,0x00,}}, {0x5544,2,{0xD7,0xC4,0x00,0x00,}}, {0x5545,2,{0x86,0x8F,0x00,0x00,}}, {0x5546,2,{0xC9,0xCC,0x00,0x00,}}, {0x5547,2,{0x86,0x90,0x00,0x00,}}, {0x5548,2,{0x86,0x91,0x00,0x00,}}, {0x5549,2,{0xDF,0xF8,0x00,0x00,}}, {0x554A,2,{0xB0,0xA1,0x00,0x00,}}, {0x554B,2,{0x86,0x92,0x00,0x00,}}, {0x554C,2,{0x86,0x93,0x00,0x00,}}, {0x554D,2,{0x86,0x94,0x00,0x00,}}, {0x554E,2,{0x86,0x95,0x00,0x00,}}, {0x554F,2,{0x86,0x96,0x00,0x00,}}, {0x5550,2,{0xDF,0xFD,0x00,0x00,}}, {0x5551,2,{0x86,0x97,0x00,0x00,}}, {0x5552,2,{0x86,0x98,0x00,0x00,}}, {0x5553,2,{0x86,0x99,0x00,0x00,}}, {0x5554,2,{0x86,0x9A,0x00,0x00,}}, {0x5555,2,{0xDF,0xFB,0x00,0x00,}}, {0x5556,2,{0xE0,0xA2,0x00,0x00,}}, {0x5557,2,{0x86,0x9B,0x00,0x00,}}, {0x5558,2,{0x86,0x9C,0x00,0x00,}}, {0x5559,2,{0x86,0x9D,0x00,0x00,}}, {0x555A,2,{0x86,0x9E,0x00,0x00,}}, {0x555B,2,{0x86,0x9F,0x00,0x00,}}, {0x555C,2,{0xE0,0xA8,0x00,0x00,}}, {0x555D,2,{0x86,0xA0,0x00,0x00,}}, {0x555E,2,{0x86,0xA1,0x00,0x00,}}, {0x555F,2,{0x86,0xA2,0x00,0x00,}}, {0x5560,2,{0x86,0xA3,0x00,0x00,}}, {0x5561,2,{0xB7,0xC8,0x00,0x00,}}, {0x5562,2,{0x86,0xA4,0x00,0x00,}}, {0x5563,2,{0x86,0xA5,0x00,0x00,}}, {0x5564,2,{0xC6,0xA1,0x00,0x00,}}, {0x5565,2,{0xC9,0xB6,0x00,0x00,}}, {0x5566,2,{0xC0,0xB2,0x00,0x00,}}, {0x5567,2,{0xDF,0xF5,0x00,0x00,}}, {0x5568,2,{0x86,0xA6,0x00,0x00,}}, {0x5569,2,{0x86,0xA7,0x00,0x00,}}, {0x556A,2,{0xC5,0xBE,0x00,0x00,}}, {0x556B,2,{0x86,0xA8,0x00,0x00,}}, {0x556C,2,{0xD8,0xC4,0x00,0x00,}}, {0x556D,2,{0xDF,0xF9,0x00,0x00,}}, {0x556E,2,{0xC4,0xF6,0x00,0x00,}}, {0x556F,2,{0x86,0xA9,0x00,0x00,}}, {0x5570,2,{0x86,0xAA,0x00,0x00,}}, {0x5571,2,{0x86,0xAB,0x00,0x00,}}, {0x5572,2,{0x86,0xAC,0x00,0x00,}}, {0x5573,2,{0x86,0xAD,0x00,0x00,}}, {0x5574,2,{0x86,0xAE,0x00,0x00,}}, {0x5575,2,{0xE0,0xA3,0x00,0x00,}}, {0x5576,2,{0xE0,0xA4,0x00,0x00,}}, {0x5577,2,{0xE0,0xA5,0x00,0x00,}}, {0x5578,2,{0xD0,0xA5,0x00,0x00,}}, {0x5579,2,{0x86,0xAF,0x00,0x00,}}, {0x557A,2,{0x86,0xB0,0x00,0x00,}}, {0x557B,2,{0xE0,0xB4,0x00,0x00,}}, {0x557C,2,{0xCC,0xE4,0x00,0x00,}}, {0x557D,2,{0x86,0xB1,0x00,0x00,}}, {0x557E,2,{0xE0,0xB1,0x00,0x00,}}, {0x557F,2,{0x86,0xB2,0x00,0x00,}}, {0x5580,2,{0xBF,0xA6,0x00,0x00,}}, {0x5581,2,{0xE0,0xAF,0x00,0x00,}}, {0x5582,2,{0xCE,0xB9,0x00,0x00,}}, {0x5583,2,{0xE0,0xAB,0x00,0x00,}}, {0x5584,2,{0xC9,0xC6,0x00,0x00,}}, {0x5585,2,{0x86,0xB3,0x00,0x00,}}, {0x5586,2,{0x86,0xB4,0x00,0x00,}}, {0x5587,2,{0xC0,0xAE,0x00,0x00,}}, {0x5588,2,{0xE0,0xAE,0x00,0x00,}}, {0x5589,2,{0xBA,0xED,0x00,0x00,}}, {0x558A,2,{0xBA,0xB0,0x00,0x00,}}, {0x558B,2,{0xE0,0xA9,0x00,0x00,}}, {0x558C,2,{0x86,0xB5,0x00,0x00,}}, {0x558D,2,{0x86,0xB6,0x00,0x00,}}, {0x558E,2,{0x86,0xB7,0x00,0x00,}}, {0x558F,2,{0xDF,0xF6,0x00,0x00,}}, {0x5590,2,{0x86,0xB8,0x00,0x00,}}, {0x5591,2,{0xE0,0xB3,0x00,0x00,}}, {0x5592,2,{0x86,0xB9,0x00,0x00,}}, {0x5593,2,{0x86,0xBA,0x00,0x00,}}, {0x5594,2,{0xE0,0xB8,0x00,0x00,}}, {0x5595,2,{0x86,0xBB,0x00,0x00,}}, {0x5596,2,{0x86,0xBC,0x00,0x00,}}, {0x5597,2,{0x86,0xBD,0x00,0x00,}}, {0x5598,2,{0xB4,0xAD,0x00,0x00,}}, {0x5599,2,{0xE0,0xB9,0x00,0x00,}}, {0x559A,2,{0x86,0xBE,0x00,0x00,}}, {0x559B,2,{0x86,0xBF,0x00,0x00,}}, {0x559C,2,{0xCF,0xB2,0x00,0x00,}}, {0x559D,2,{0xBA,0xC8,0x00,0x00,}}, {0x559E,2,{0x86,0xC0,0x00,0x00,}}, {0x559F,2,{0xE0,0xB0,0x00,0x00,}}, {0x55A0,2,{0x86,0xC1,0x00,0x00,}}, {0x55A1,2,{0x86,0xC2,0x00,0x00,}}, {0x55A2,2,{0x86,0xC3,0x00,0x00,}}, {0x55A3,2,{0x86,0xC4,0x00,0x00,}}, {0x55A4,2,{0x86,0xC5,0x00,0x00,}}, {0x55A5,2,{0x86,0xC6,0x00,0x00,}}, {0x55A6,2,{0x86,0xC7,0x00,0x00,}}, {0x55A7,2,{0xD0,0xFA,0x00,0x00,}}, {0x55A8,2,{0x86,0xC8,0x00,0x00,}}, {0x55A9,2,{0x86,0xC9,0x00,0x00,}}, {0x55AA,2,{0x86,0xCA,0x00,0x00,}}, {0x55AB,2,{0x86,0xCB,0x00,0x00,}}, {0x55AC,2,{0x86,0xCC,0x00,0x00,}}, {0x55AD,2,{0x86,0xCD,0x00,0x00,}}, {0x55AE,2,{0x86,0xCE,0x00,0x00,}}, {0x55AF,2,{0x86,0xCF,0x00,0x00,}}, {0x55B0,2,{0x86,0xD0,0x00,0x00,}}, {0x55B1,2,{0xE0,0xAC,0x00,0x00,}}, {0x55B2,2,{0x86,0xD1,0x00,0x00,}}, {0x55B3,2,{0xD4,0xFB,0x00,0x00,}}, {0x55B4,2,{0x86,0xD2,0x00,0x00,}}, {0x55B5,2,{0xDF,0xF7,0x00,0x00,}}, {0x55B6,2,{0x86,0xD3,0x00,0x00,}}, {0x55B7,2,{0xC5,0xE7,0x00,0x00,}}, {0x55B8,2,{0x86,0xD4,0x00,0x00,}}, {0x55B9,2,{0xE0,0xAD,0x00,0x00,}}, {0x55BA,2,{0x86,0xD5,0x00,0x00,}}, {0x55BB,2,{0xD3,0xF7,0x00,0x00,}}, {0x55BC,2,{0x86,0xD6,0x00,0x00,}}, {0x55BD,2,{0xE0,0xB6,0x00,0x00,}}, {0x55BE,2,{0xE0,0xB7,0x00,0x00,}}, {0x55BF,2,{0x86,0xD7,0x00,0x00,}}, {0x55C0,2,{0x86,0xD8,0x00,0x00,}}, {0x55C1,2,{0x86,0xD9,0x00,0x00,}}, {0x55C2,2,{0x86,0xDA,0x00,0x00,}}, {0x55C3,2,{0x86,0xDB,0x00,0x00,}}, {0x55C4,2,{0xE0,0xC4,0x00,0x00,}}, {0x55C5,2,{0xD0,0xE1,0x00,0x00,}}, {0x55C6,2,{0x86,0xDC,0x00,0x00,}}, {0x55C7,2,{0x86,0xDD,0x00,0x00,}}, {0x55C8,2,{0x86,0xDE,0x00,0x00,}}, {0x55C9,2,{0xE0,0xBC,0x00,0x00,}}, {0x55CA,2,{0x86,0xDF,0x00,0x00,}}, {0x55CB,2,{0x86,0xE0,0x00,0x00,}}, {0x55CC,2,{0xE0,0xC9,0x00,0x00,}}, {0x55CD,2,{0xE0,0xCA,0x00,0x00,}}, {0x55CE,2,{0x86,0xE1,0x00,0x00,}}, {0x55CF,2,{0x86,0xE2,0x00,0x00,}}, {0x55D0,2,{0x86,0xE3,0x00,0x00,}}, {0x55D1,2,{0xE0,0xBE,0x00,0x00,}}, {0x55D2,2,{0xE0,0xAA,0x00,0x00,}}, {0x55D3,2,{0xC9,0xA4,0x00,0x00,}}, {0x55D4,2,{0xE0,0xC1,0x00,0x00,}}, {0x55D5,2,{0x86,0xE4,0x00,0x00,}}, {0x55D6,2,{0xE0,0xB2,0x00,0x00,}}, {0x55D7,2,{0x86,0xE5,0x00,0x00,}}, {0x55D8,2,{0x86,0xE6,0x00,0x00,}}, {0x55D9,2,{0x86,0xE7,0x00,0x00,}}, {0x55DA,2,{0x86,0xE8,0x00,0x00,}}, {0x55DB,2,{0x86,0xE9,0x00,0x00,}}, {0x55DC,2,{0xCA,0xC8,0x00,0x00,}}, {0x55DD,2,{0xE0,0xC3,0x00,0x00,}}, {0x55DE,2,{0x86,0xEA,0x00,0x00,}}, {0x55DF,2,{0xE0,0xB5,0x00,0x00,}}, {0x55E0,2,{0x86,0xEB,0x00,0x00,}}, {0x55E1,2,{0xCE,0xCB,0x00,0x00,}}, {0x55E2,2,{0x86,0xEC,0x00,0x00,}}, {0x55E3,2,{0xCB,0xC3,0x00,0x00,}}, {0x55E4,2,{0xE0,0xCD,0x00,0x00,}}, {0x55E5,2,{0xE0,0xC6,0x00,0x00,}}, {0x55E6,2,{0xE0,0xC2,0x00,0x00,}}, {0x55E7,2,{0x86,0xED,0x00,0x00,}}, {0x55E8,2,{0xE0,0xCB,0x00,0x00,}}, {0x55E9,2,{0x86,0xEE,0x00,0x00,}}, {0x55EA,2,{0xE0,0xBA,0x00,0x00,}}, {0x55EB,2,{0xE0,0xBF,0x00,0x00,}}, {0x55EC,2,{0xE0,0xC0,0x00,0x00,}}, {0x55ED,2,{0x86,0xEF,0x00,0x00,}}, {0x55EE,2,{0x86,0xF0,0x00,0x00,}}, {0x55EF,2,{0xE0,0xC5,0x00,0x00,}}, {0x55F0,2,{0x86,0xF1,0x00,0x00,}}, {0x55F1,2,{0x86,0xF2,0x00,0x00,}}, {0x55F2,2,{0xE0,0xC7,0x00,0x00,}}, {0x55F3,2,{0xE0,0xC8,0x00,0x00,}}, {0x55F4,2,{0x86,0xF3,0x00,0x00,}}, {0x55F5,2,{0xE0,0xCC,0x00,0x00,}}, {0x55F6,2,{0x86,0xF4,0x00,0x00,}}, {0x55F7,2,{0xE0,0xBB,0x00,0x00,}}, {0x55F8,2,{0x86,0xF5,0x00,0x00,}}, {0x55F9,2,{0x86,0xF6,0x00,0x00,}}, {0x55FA,2,{0x86,0xF7,0x00,0x00,}}, {0x55FB,2,{0x86,0xF8,0x00,0x00,}}, {0x55FC,2,{0x86,0xF9,0x00,0x00,}}, {0x55FD,2,{0xCB,0xD4,0x00,0x00,}}, {0x55FE,2,{0xE0,0xD5,0x00,0x00,}}, {0x55FF,2,{0x86,0xFA,0x00,0x00,}}, {0x5600,2,{0xE0,0xD6,0x00,0x00,}}, {0x5601,2,{0xE0,0xD2,0x00,0x00,}}, {0x5602,2,{0x86,0xFB,0x00,0x00,}}, {0x5603,2,{0x86,0xFC,0x00,0x00,}}, {0x5604,2,{0x86,0xFD,0x00,0x00,}}, {0x5605,2,{0x86,0xFE,0x00,0x00,}}, {0x5606,2,{0x87,0x40,0x00,0x00,}}, {0x5607,2,{0x87,0x41,0x00,0x00,}}, {0x5608,2,{0xE0,0xD0,0x00,0x00,}}, {0x5609,2,{0xBC,0xCE,0x00,0x00,}}, {0x560A,2,{0x87,0x42,0x00,0x00,}}, {0x560B,2,{0x87,0x43,0x00,0x00,}}, {0x560C,2,{0xE0,0xD1,0x00,0x00,}}, {0x560D,2,{0x87,0x44,0x00,0x00,}}, {0x560E,2,{0xB8,0xC2,0x00,0x00,}}, {0x560F,2,{0xD8,0xC5,0x00,0x00,}}, {0x5610,2,{0x87,0x45,0x00,0x00,}}, {0x5611,2,{0x87,0x46,0x00,0x00,}}, {0x5612,2,{0x87,0x47,0x00,0x00,}}, {0x5613,2,{0x87,0x48,0x00,0x00,}}, {0x5614,2,{0x87,0x49,0x00,0x00,}}, {0x5615,2,{0x87,0x4A,0x00,0x00,}}, {0x5616,2,{0x87,0x4B,0x00,0x00,}}, {0x5617,2,{0x87,0x4C,0x00,0x00,}}, {0x5618,2,{0xD0,0xEA,0x00,0x00,}}, {0x5619,2,{0x87,0x4D,0x00,0x00,}}, {0x561A,2,{0x87,0x4E,0x00,0x00,}}, {0x561B,2,{0xC2,0xEF,0x00,0x00,}}, {0x561C,2,{0x87,0x4F,0x00,0x00,}}, {0x561D,2,{0x87,0x50,0x00,0x00,}}, {0x561E,2,{0xE0,0xCF,0x00,0x00,}}, {0x561F,2,{0xE0,0xBD,0x00,0x00,}}, {0x5620,2,{0x87,0x51,0x00,0x00,}}, {0x5621,2,{0x87,0x52,0x00,0x00,}}, {0x5622,2,{0x87,0x53,0x00,0x00,}}, {0x5623,2,{0xE0,0xD4,0x00,0x00,}}, {0x5624,2,{0xE0,0xD3,0x00,0x00,}}, {0x5625,2,{0x87,0x54,0x00,0x00,}}, {0x5626,2,{0x87,0x55,0x00,0x00,}}, {0x5627,2,{0xE0,0xD7,0x00,0x00,}}, {0x5628,2,{0x87,0x56,0x00,0x00,}}, {0x5629,2,{0x87,0x57,0x00,0x00,}}, {0x562A,2,{0x87,0x58,0x00,0x00,}}, {0x562B,2,{0x87,0x59,0x00,0x00,}}, {0x562C,2,{0xE0,0xDC,0x00,0x00,}}, {0x562D,2,{0xE0,0xD8,0x00,0x00,}}, {0x562E,2,{0x87,0x5A,0x00,0x00,}}, {0x562F,2,{0x87,0x5B,0x00,0x00,}}, {0x5630,2,{0x87,0x5C,0x00,0x00,}}, {0x5631,2,{0xD6,0xF6,0x00,0x00,}}, {0x5632,2,{0xB3,0xB0,0x00,0x00,}}, {0x5633,2,{0x87,0x5D,0x00,0x00,}}, {0x5634,2,{0xD7,0xEC,0x00,0x00,}}, {0x5635,2,{0x87,0x5E,0x00,0x00,}}, {0x5636,2,{0xCB,0xBB,0x00,0x00,}}, {0x5637,2,{0x87,0x5F,0x00,0x00,}}, {0x5638,2,{0x87,0x60,0x00,0x00,}}, {0x5639,2,{0xE0,0xDA,0x00,0x00,}}, {0x563A,2,{0x87,0x61,0x00,0x00,}}, {0x563B,2,{0xCE,0xFB,0x00,0x00,}}, {0x563C,2,{0x87,0x62,0x00,0x00,}}, {0x563D,2,{0x87,0x63,0x00,0x00,}}, {0x563E,2,{0x87,0x64,0x00,0x00,}}, {0x563F,2,{0xBA,0xD9,0x00,0x00,}}, {0x5640,2,{0x87,0x65,0x00,0x00,}}, {0x5641,2,{0x87,0x66,0x00,0x00,}}, {0x5642,2,{0x87,0x67,0x00,0x00,}}, {0x5643,2,{0x87,0x68,0x00,0x00,}}, {0x5644,2,{0x87,0x69,0x00,0x00,}}, {0x5645,2,{0x87,0x6A,0x00,0x00,}}, {0x5646,2,{0x87,0x6B,0x00,0x00,}}, {0x5647,2,{0x87,0x6C,0x00,0x00,}}, {0x5648,2,{0x87,0x6D,0x00,0x00,}}, {0x5649,2,{0x87,0x6E,0x00,0x00,}}, {0x564A,2,{0x87,0x6F,0x00,0x00,}}, {0x564B,2,{0x87,0x70,0x00,0x00,}}, {0x564C,2,{0xE0,0xE1,0x00,0x00,}}, {0x564D,2,{0xE0,0xDD,0x00,0x00,}}, {0x564E,2,{0xD2,0xAD,0x00,0x00,}}, {0x564F,2,{0x87,0x71,0x00,0x00,}}, {0x5650,2,{0x87,0x72,0x00,0x00,}}, {0x5651,2,{0x87,0x73,0x00,0x00,}}, {0x5652,2,{0x87,0x74,0x00,0x00,}}, {0x5653,2,{0x87,0x75,0x00,0x00,}}, {0x5654,2,{0xE0,0xE2,0x00,0x00,}}, {0x5655,2,{0x87,0x76,0x00,0x00,}}, {0x5656,2,{0x87,0x77,0x00,0x00,}}, {0x5657,2,{0xE0,0xDB,0x00,0x00,}}, {0x5658,2,{0xE0,0xD9,0x00,0x00,}}, {0x5659,2,{0xE0,0xDF,0x00,0x00,}}, {0x565A,2,{0x87,0x78,0x00,0x00,}}, {0x565B,2,{0x87,0x79,0x00,0x00,}}, {0x565C,2,{0xE0,0xE0,0x00,0x00,}}, {0x565D,2,{0x87,0x7A,0x00,0x00,}}, {0x565E,2,{0x87,0x7B,0x00,0x00,}}, {0x565F,2,{0x87,0x7C,0x00,0x00,}}, {0x5660,2,{0x87,0x7D,0x00,0x00,}}, {0x5661,2,{0x87,0x7E,0x00,0x00,}}, {0x5662,2,{0xE0,0xDE,0x00,0x00,}}, {0x5663,2,{0x87,0x80,0x00,0x00,}}, {0x5664,2,{0xE0,0xE4,0x00,0x00,}}, {0x5665,2,{0x87,0x81,0x00,0x00,}}, {0x5666,2,{0x87,0x82,0x00,0x00,}}, {0x5667,2,{0x87,0x83,0x00,0x00,}}, {0x5668,2,{0xC6,0xF7,0x00,0x00,}}, {0x5669,2,{0xD8,0xAC,0x00,0x00,}}, {0x566A,2,{0xD4,0xEB,0x00,0x00,}}, {0x566B,2,{0xE0,0xE6,0x00,0x00,}}, {0x566C,2,{0xCA,0xC9,0x00,0x00,}}, {0x566D,2,{0x87,0x84,0x00,0x00,}}, {0x566E,2,{0x87,0x85,0x00,0x00,}}, {0x566F,2,{0x87,0x86,0x00,0x00,}}, {0x5670,2,{0x87,0x87,0x00,0x00,}}, {0x5671,2,{0xE0,0xE5,0x00,0x00,}}, {0x5672,2,{0x87,0x88,0x00,0x00,}}, {0x5673,2,{0x87,0x89,0x00,0x00,}}, {0x5674,2,{0x87,0x8A,0x00,0x00,}}, {0x5675,2,{0x87,0x8B,0x00,0x00,}}, {0x5676,2,{0xB8,0xC1,0x00,0x00,}}, {0x5677,2,{0x87,0x8C,0x00,0x00,}}, {0x5678,2,{0x87,0x8D,0x00,0x00,}}, {0x5679,2,{0x87,0x8E,0x00,0x00,}}, {0x567A,2,{0x87,0x8F,0x00,0x00,}}, {0x567B,2,{0xE0,0xE7,0x00,0x00,}}, {0x567C,2,{0xE0,0xE8,0x00,0x00,}}, {0x567D,2,{0x87,0x90,0x00,0x00,}}, {0x567E,2,{0x87,0x91,0x00,0x00,}}, {0x567F,2,{0x87,0x92,0x00,0x00,}}, {0x5680,2,{0x87,0x93,0x00,0x00,}}, {0x5681,2,{0x87,0x94,0x00,0x00,}}, {0x5682,2,{0x87,0x95,0x00,0x00,}}, {0x5683,2,{0x87,0x96,0x00,0x00,}}, {0x5684,2,{0x87,0x97,0x00,0x00,}}, {0x5685,2,{0xE0,0xE9,0x00,0x00,}}, {0x5686,2,{0xE0,0xE3,0x00,0x00,}}, {0x5687,2,{0x87,0x98,0x00,0x00,}}, {0x5688,2,{0x87,0x99,0x00,0x00,}}, {0x5689,2,{0x87,0x9A,0x00,0x00,}}, {0x568A,2,{0x87,0x9B,0x00,0x00,}}, {0x568B,2,{0x87,0x9C,0x00,0x00,}}, {0x568C,2,{0x87,0x9D,0x00,0x00,}}, {0x568D,2,{0x87,0x9E,0x00,0x00,}}, {0x568E,2,{0xBA,0xBF,0x00,0x00,}}, {0x568F,2,{0xCC,0xE7,0x00,0x00,}}, {0x5690,2,{0x87,0x9F,0x00,0x00,}}, {0x5691,2,{0x87,0xA0,0x00,0x00,}}, {0x5692,2,{0x87,0xA1,0x00,0x00,}}, {0x5693,2,{0xE0,0xEA,0x00,0x00,}}, {0x5694,2,{0x87,0xA2,0x00,0x00,}}, {0x5695,2,{0x87,0xA3,0x00,0x00,}}, {0x5696,2,{0x87,0xA4,0x00,0x00,}}, {0x5697,2,{0x87,0xA5,0x00,0x00,}}, {0x5698,2,{0x87,0xA6,0x00,0x00,}}, {0x5699,2,{0x87,0xA7,0x00,0x00,}}, {0x569A,2,{0x87,0xA8,0x00,0x00,}}, {0x569B,2,{0x87,0xA9,0x00,0x00,}}, {0x569C,2,{0x87,0xAA,0x00,0x00,}}, {0x569D,2,{0x87,0xAB,0x00,0x00,}}, {0x569E,2,{0x87,0xAC,0x00,0x00,}}, {0x569F,2,{0x87,0xAD,0x00,0x00,}}, {0x56A0,2,{0x87,0xAE,0x00,0x00,}}, {0x56A1,2,{0x87,0xAF,0x00,0x00,}}, {0x56A2,2,{0x87,0xB0,0x00,0x00,}}, {0x56A3,2,{0xCF,0xF9,0x00,0x00,}}, {0x56A4,2,{0x87,0xB1,0x00,0x00,}}, {0x56A5,2,{0x87,0xB2,0x00,0x00,}}, {0x56A6,2,{0x87,0xB3,0x00,0x00,}}, {0x56A7,2,{0x87,0xB4,0x00,0x00,}}, {0x56A8,2,{0x87,0xB5,0x00,0x00,}}, {0x56A9,2,{0x87,0xB6,0x00,0x00,}}, {0x56AA,2,{0x87,0xB7,0x00,0x00,}}, {0x56AB,2,{0x87,0xB8,0x00,0x00,}}, {0x56AC,2,{0x87,0xB9,0x00,0x00,}}, {0x56AD,2,{0x87,0xBA,0x00,0x00,}}, {0x56AE,2,{0x87,0xBB,0x00,0x00,}}, {0x56AF,2,{0xE0,0xEB,0x00,0x00,}}, {0x56B0,2,{0x87,0xBC,0x00,0x00,}}, {0x56B1,2,{0x87,0xBD,0x00,0x00,}}, {0x56B2,2,{0x87,0xBE,0x00,0x00,}}, {0x56B3,2,{0x87,0xBF,0x00,0x00,}}, {0x56B4,2,{0x87,0xC0,0x00,0x00,}}, {0x56B5,2,{0x87,0xC1,0x00,0x00,}}, {0x56B6,2,{0x87,0xC2,0x00,0x00,}}, {0x56B7,2,{0xC8,0xC2,0x00,0x00,}}, {0x56B8,2,{0x87,0xC3,0x00,0x00,}}, {0x56B9,2,{0x87,0xC4,0x00,0x00,}}, {0x56BA,2,{0x87,0xC5,0x00,0x00,}}, {0x56BB,2,{0x87,0xC6,0x00,0x00,}}, {0x56BC,2,{0xBD,0xC0,0x00,0x00,}}, {0x56BD,2,{0x87,0xC7,0x00,0x00,}}, {0x56BE,2,{0x87,0xC8,0x00,0x00,}}, {0x56BF,2,{0x87,0xC9,0x00,0x00,}}, {0x56C0,2,{0x87,0xCA,0x00,0x00,}}, {0x56C1,2,{0x87,0xCB,0x00,0x00,}}, {0x56C2,2,{0x87,0xCC,0x00,0x00,}}, {0x56C3,2,{0x87,0xCD,0x00,0x00,}}, {0x56C4,2,{0x87,0xCE,0x00,0x00,}}, {0x56C5,2,{0x87,0xCF,0x00,0x00,}}, {0x56C6,2,{0x87,0xD0,0x00,0x00,}}, {0x56C7,2,{0x87,0xD1,0x00,0x00,}}, {0x56C8,2,{0x87,0xD2,0x00,0x00,}}, {0x56C9,2,{0x87,0xD3,0x00,0x00,}}, {0x56CA,2,{0xC4,0xD2,0x00,0x00,}}, {0x56CB,2,{0x87,0xD4,0x00,0x00,}}, {0x56CC,2,{0x87,0xD5,0x00,0x00,}}, {0x56CD,2,{0x87,0xD6,0x00,0x00,}}, {0x56CE,2,{0x87,0xD7,0x00,0x00,}}, {0x56CF,2,{0x87,0xD8,0x00,0x00,}}, {0x56D0,2,{0x87,0xD9,0x00,0x00,}}, {0x56D1,2,{0x87,0xDA,0x00,0x00,}}, {0x56D2,2,{0x87,0xDB,0x00,0x00,}}, {0x56D3,2,{0x87,0xDC,0x00,0x00,}}, {0x56D4,2,{0xE0,0xEC,0x00,0x00,}}, {0x56D5,2,{0x87,0xDD,0x00,0x00,}}, {0x56D6,2,{0x87,0xDE,0x00,0x00,}}, {0x56D7,2,{0xE0,0xED,0x00,0x00,}}, {0x56D8,2,{0x87,0xDF,0x00,0x00,}}, {0x56D9,2,{0x87,0xE0,0x00,0x00,}}, {0x56DA,2,{0xC7,0xF4,0x00,0x00,}}, {0x56DB,2,{0xCB,0xC4,0x00,0x00,}}, {0x56DC,2,{0x87,0xE1,0x00,0x00,}}, {0x56DD,2,{0xE0,0xEE,0x00,0x00,}}, {0x56DE,2,{0xBB,0xD8,0x00,0x00,}}, {0x56DF,2,{0xD8,0xB6,0x00,0x00,}}, {0x56E0,2,{0xD2,0xF2,0x00,0x00,}}, {0x56E1,2,{0xE0,0xEF,0x00,0x00,}}, {0x56E2,2,{0xCD,0xC5,0x00,0x00,}}, {0x56E3,2,{0x87,0xE2,0x00,0x00,}}, {0x56E4,2,{0xB6,0xDA,0x00,0x00,}}, {0x56E5,2,{0x87,0xE3,0x00,0x00,}}, {0x56E6,2,{0x87,0xE4,0x00,0x00,}}, {0x56E7,2,{0x87,0xE5,0x00,0x00,}}, {0x56E8,2,{0x87,0xE6,0x00,0x00,}}, {0x56E9,2,{0x87,0xE7,0x00,0x00,}}, {0x56EA,2,{0x87,0xE8,0x00,0x00,}}, {0x56EB,2,{0xE0,0xF1,0x00,0x00,}}, {0x56EC,2,{0x87,0xE9,0x00,0x00,}}, {0x56ED,2,{0xD4,0xB0,0x00,0x00,}}, {0x56EE,2,{0x87,0xEA,0x00,0x00,}}, {0x56EF,2,{0x87,0xEB,0x00,0x00,}}, {0x56F0,2,{0xC0,0xA7,0x00,0x00,}}, {0x56F1,2,{0xB4,0xD1,0x00,0x00,}}, {0x56F2,2,{0x87,0xEC,0x00,0x00,}}, {0x56F3,2,{0x87,0xED,0x00,0x00,}}, {0x56F4,2,{0xCE,0xA7,0x00,0x00,}}, {0x56F5,2,{0xE0,0xF0,0x00,0x00,}}, {0x56F6,2,{0x87,0xEE,0x00,0x00,}}, {0x56F7,2,{0x87,0xEF,0x00,0x00,}}, {0x56F8,2,{0x87,0xF0,0x00,0x00,}}, {0x56F9,2,{0xE0,0xF2,0x00,0x00,}}, {0x56FA,2,{0xB9,0xCC,0x00,0x00,}}, {0x56FB,2,{0x87,0xF1,0x00,0x00,}}, {0x56FC,2,{0x87,0xF2,0x00,0x00,}}, {0x56FD,2,{0xB9,0xFA,0x00,0x00,}}, {0x56FE,2,{0xCD,0xBC,0x00,0x00,}}, {0x56FF,2,{0xE0,0xF3,0x00,0x00,}}, {0x5700,2,{0x87,0xF3,0x00,0x00,}}, {0x5701,2,{0x87,0xF4,0x00,0x00,}}, {0x5702,2,{0x87,0xF5,0x00,0x00,}}, {0x5703,2,{0xC6,0xD4,0x00,0x00,}}, {0x5704,2,{0xE0,0xF4,0x00,0x00,}}, {0x5705,2,{0x87,0xF6,0x00,0x00,}}, {0x5706,2,{0xD4,0xB2,0x00,0x00,}}, {0x5707,2,{0x87,0xF7,0x00,0x00,}}, {0x5708,2,{0xC8,0xA6,0x00,0x00,}}, {0x5709,2,{0xE0,0xF6,0x00,0x00,}}, {0x570A,2,{0xE0,0xF5,0x00,0x00,}}, {0x570B,2,{0x87,0xF8,0x00,0x00,}}, {0x570C,2,{0x87,0xF9,0x00,0x00,}}, {0x570D,2,{0x87,0xFA,0x00,0x00,}}, {0x570E,2,{0x87,0xFB,0x00,0x00,}}, {0x570F,2,{0x87,0xFC,0x00,0x00,}}, {0x5710,2,{0x87,0xFD,0x00,0x00,}}, {0x5711,2,{0x87,0xFE,0x00,0x00,}}, {0x5712,2,{0x88,0x40,0x00,0x00,}}, {0x5713,2,{0x88,0x41,0x00,0x00,}}, {0x5714,2,{0x88,0x42,0x00,0x00,}}, {0x5715,2,{0x88,0x43,0x00,0x00,}}, {0x5716,2,{0x88,0x44,0x00,0x00,}}, {0x5717,2,{0x88,0x45,0x00,0x00,}}, {0x5718,2,{0x88,0x46,0x00,0x00,}}, {0x5719,2,{0x88,0x47,0x00,0x00,}}, {0x571A,2,{0x88,0x48,0x00,0x00,}}, {0x571B,2,{0x88,0x49,0x00,0x00,}}, {0x571C,2,{0xE0,0xF7,0x00,0x00,}}, {0x571D,2,{0x88,0x4A,0x00,0x00,}}, {0x571E,2,{0x88,0x4B,0x00,0x00,}}, {0x571F,2,{0xCD,0xC1,0x00,0x00,}}, {0x5720,2,{0x88,0x4C,0x00,0x00,}}, {0x5721,2,{0x88,0x4D,0x00,0x00,}}, {0x5722,2,{0x88,0x4E,0x00,0x00,}}, {0x5723,2,{0xCA,0xA5,0x00,0x00,}}, {0x5724,2,{0x88,0x4F,0x00,0x00,}}, {0x5725,2,{0x88,0x50,0x00,0x00,}}, {0x5726,2,{0x88,0x51,0x00,0x00,}}, {0x5727,2,{0x88,0x52,0x00,0x00,}}, {0x5728,2,{0xD4,0xDA,0x00,0x00,}}, {0x5729,2,{0xDB,0xD7,0x00,0x00,}}, {0x572A,2,{0xDB,0xD9,0x00,0x00,}}, {0x572B,2,{0x88,0x53,0x00,0x00,}}, {0x572C,2,{0xDB,0xD8,0x00,0x00,}}, {0x572D,2,{0xB9,0xE7,0x00,0x00,}}, {0x572E,2,{0xDB,0xDC,0x00,0x00,}}, {0x572F,2,{0xDB,0xDD,0x00,0x00,}}, {0x5730,2,{0xB5,0xD8,0x00,0x00,}}, {0x5731,2,{0x88,0x54,0x00,0x00,}}, {0x5732,2,{0x88,0x55,0x00,0x00,}}, {0x5733,2,{0xDB,0xDA,0x00,0x00,}}, {0x5734,2,{0x88,0x56,0x00,0x00,}}, {0x5735,2,{0x88,0x57,0x00,0x00,}}, {0x5736,2,{0x88,0x58,0x00,0x00,}}, {0x5737,2,{0x88,0x59,0x00,0x00,}}, {0x5738,2,{0x88,0x5A,0x00,0x00,}}, {0x5739,2,{0xDB,0xDB,0x00,0x00,}}, {0x573A,2,{0xB3,0xA1,0x00,0x00,}}, {0x573B,2,{0xDB,0xDF,0x00,0x00,}}, {0x573C,2,{0x88,0x5B,0x00,0x00,}}, {0x573D,2,{0x88,0x5C,0x00,0x00,}}, {0x573E,2,{0xBB,0xF8,0x00,0x00,}}, {0x573F,2,{0x88,0x5D,0x00,0x00,}}, {0x5740,2,{0xD6,0xB7,0x00,0x00,}}, {0x5741,2,{0x88,0x5E,0x00,0x00,}}, {0x5742,2,{0xDB,0xE0,0x00,0x00,}}, {0x5743,2,{0x88,0x5F,0x00,0x00,}}, {0x5744,2,{0x88,0x60,0x00,0x00,}}, {0x5745,2,{0x88,0x61,0x00,0x00,}}, {0x5746,2,{0x88,0x62,0x00,0x00,}}, {0x5747,2,{0xBE,0xF9,0x00,0x00,}}, {0x5748,2,{0x88,0x63,0x00,0x00,}}, {0x5749,2,{0x88,0x64,0x00,0x00,}}, {0x574A,2,{0xB7,0xBB,0x00,0x00,}}, {0x574B,2,{0x88,0x65,0x00,0x00,}}, {0x574C,2,{0xDB,0xD0,0x00,0x00,}}, {0x574D,2,{0xCC,0xAE,0x00,0x00,}}, {0x574E,2,{0xBF,0xB2,0x00,0x00,}}, {0x574F,2,{0xBB,0xB5,0x00,0x00,}}, {0x5750,2,{0xD7,0xF8,0x00,0x00,}}, {0x5751,2,{0xBF,0xD3,0x00,0x00,}}, {0x5752,2,{0x88,0x66,0x00,0x00,}}, {0x5753,2,{0x88,0x67,0x00,0x00,}}, {0x5754,2,{0x88,0x68,0x00,0x00,}}, {0x5755,2,{0x88,0x69,0x00,0x00,}}, {0x5756,2,{0x88,0x6A,0x00,0x00,}}, {0x5757,2,{0xBF,0xE9,0x00,0x00,}}, {0x5758,2,{0x88,0x6B,0x00,0x00,}}, {0x5759,2,{0x88,0x6C,0x00,0x00,}}, {0x575A,2,{0xBC,0xE1,0x00,0x00,}}, {0x575B,2,{0xCC,0xB3,0x00,0x00,}}, {0x575C,2,{0xDB,0xDE,0x00,0x00,}}, {0x575D,2,{0xB0,0xD3,0x00,0x00,}}, {0x575E,2,{0xCE,0xEB,0x00,0x00,}}, {0x575F,2,{0xB7,0xD8,0x00,0x00,}}, {0x5760,2,{0xD7,0xB9,0x00,0x00,}}, {0x5761,2,{0xC6,0xC2,0x00,0x00,}}, {0x5762,2,{0x88,0x6D,0x00,0x00,}}, {0x5763,2,{0x88,0x6E,0x00,0x00,}}, {0x5764,2,{0xC0,0xA4,0x00,0x00,}}, {0x5765,2,{0x88,0x6F,0x00,0x00,}}, {0x5766,2,{0xCC,0xB9,0x00,0x00,}}, {0x5767,2,{0x88,0x70,0x00,0x00,}}, {0x5768,2,{0xDB,0xE7,0x00,0x00,}}, {0x5769,2,{0xDB,0xE1,0x00,0x00,}}, {0x576A,2,{0xC6,0xBA,0x00,0x00,}}, {0x576B,2,{0xDB,0xE3,0x00,0x00,}}, {0x576C,2,{0x88,0x71,0x00,0x00,}}, {0x576D,2,{0xDB,0xE8,0x00,0x00,}}, {0x576E,2,{0x88,0x72,0x00,0x00,}}, {0x576F,2,{0xC5,0xF7,0x00,0x00,}}, {0x5770,2,{0x88,0x73,0x00,0x00,}}, {0x5771,2,{0x88,0x74,0x00,0x00,}}, {0x5772,2,{0x88,0x75,0x00,0x00,}}, {0x5773,2,{0xDB,0xEA,0x00,0x00,}}, {0x5774,2,{0x88,0x76,0x00,0x00,}}, {0x5775,2,{0x88,0x77,0x00,0x00,}}, {0x5776,2,{0xDB,0xE9,0x00,0x00,}}, {0x5777,2,{0xBF,0xC0,0x00,0x00,}}, {0x5778,2,{0x88,0x78,0x00,0x00,}}, {0x5779,2,{0x88,0x79,0x00,0x00,}}, {0x577A,2,{0x88,0x7A,0x00,0x00,}}, {0x577B,2,{0xDB,0xE6,0x00,0x00,}}, {0x577C,2,{0xDB,0xE5,0x00,0x00,}}, {0x577D,2,{0x88,0x7B,0x00,0x00,}}, {0x577E,2,{0x88,0x7C,0x00,0x00,}}, {0x577F,2,{0x88,0x7D,0x00,0x00,}}, {0x5780,2,{0x88,0x7E,0x00,0x00,}}, {0x5781,2,{0x88,0x80,0x00,0x00,}}, {0x5782,2,{0xB4,0xB9,0x00,0x00,}}, {0x5783,2,{0xC0,0xAC,0x00,0x00,}}, {0x5784,2,{0xC2,0xA2,0x00,0x00,}}, {0x5785,2,{0xDB,0xE2,0x00,0x00,}}, {0x5786,2,{0xDB,0xE4,0x00,0x00,}}, {0x5787,2,{0x88,0x81,0x00,0x00,}}, {0x5788,2,{0x88,0x82,0x00,0x00,}}, {0x5789,2,{0x88,0x83,0x00,0x00,}}, {0x578A,2,{0x88,0x84,0x00,0x00,}}, {0x578B,2,{0xD0,0xCD,0x00,0x00,}}, {0x578C,2,{0xDB,0xED,0x00,0x00,}}, {0x578D,2,{0x88,0x85,0x00,0x00,}}, {0x578E,2,{0x88,0x86,0x00,0x00,}}, {0x578F,2,{0x88,0x87,0x00,0x00,}}, {0x5790,2,{0x88,0x88,0x00,0x00,}}, {0x5791,2,{0x88,0x89,0x00,0x00,}}, {0x5792,2,{0xC0,0xDD,0x00,0x00,}}, {0x5793,2,{0xDB,0xF2,0x00,0x00,}}, {0x5794,2,{0x88,0x8A,0x00,0x00,}}, {0x5795,2,{0x88,0x8B,0x00,0x00,}}, {0x5796,2,{0x88,0x8C,0x00,0x00,}}, {0x5797,2,{0x88,0x8D,0x00,0x00,}}, {0x5798,2,{0x88,0x8E,0x00,0x00,}}, {0x5799,2,{0x88,0x8F,0x00,0x00,}}, {0x579A,2,{0x88,0x90,0x00,0x00,}}, {0x579B,2,{0xB6,0xE2,0x00,0x00,}}, {0x579C,2,{0x88,0x91,0x00,0x00,}}, {0x579D,2,{0x88,0x92,0x00,0x00,}}, {0x579E,2,{0x88,0x93,0x00,0x00,}}, {0x579F,2,{0x88,0x94,0x00,0x00,}}, {0x57A0,2,{0xDB,0xF3,0x00,0x00,}}, {0x57A1,2,{0xDB,0xD2,0x00,0x00,}}, {0x57A2,2,{0xB9,0xB8,0x00,0x00,}}, {0x57A3,2,{0xD4,0xAB,0x00,0x00,}}, {0x57A4,2,{0xDB,0xEC,0x00,0x00,}}, {0x57A5,2,{0x88,0x95,0x00,0x00,}}, {0x57A6,2,{0xBF,0xD1,0x00,0x00,}}, {0x57A7,2,{0xDB,0xF0,0x00,0x00,}}, {0x57A8,2,{0x88,0x96,0x00,0x00,}}, {0x57A9,2,{0xDB,0xD1,0x00,0x00,}}, {0x57AA,2,{0x88,0x97,0x00,0x00,}}, {0x57AB,2,{0xB5,0xE6,0x00,0x00,}}, {0x57AC,2,{0x88,0x98,0x00,0x00,}}, {0x57AD,2,{0xDB,0xEB,0x00,0x00,}}, {0x57AE,2,{0xBF,0xE5,0x00,0x00,}}, {0x57AF,2,{0x88,0x99,0x00,0x00,}}, {0x57B0,2,{0x88,0x9A,0x00,0x00,}}, {0x57B1,2,{0x88,0x9B,0x00,0x00,}}, {0x57B2,2,{0xDB,0xEE,0x00,0x00,}}, {0x57B3,2,{0x88,0x9C,0x00,0x00,}}, {0x57B4,2,{0xDB,0xF1,0x00,0x00,}}, {0x57B5,2,{0x88,0x9D,0x00,0x00,}}, {0x57B6,2,{0x88,0x9E,0x00,0x00,}}, {0x57B7,2,{0x88,0x9F,0x00,0x00,}}, {0x57B8,2,{0xDB,0xF9,0x00,0x00,}}, {0x57B9,2,{0x88,0xA0,0x00,0x00,}}, {0x57BA,2,{0x88,0xA1,0x00,0x00,}}, {0x57BB,2,{0x88,0xA2,0x00,0x00,}}, {0x57BC,2,{0x88,0xA3,0x00,0x00,}}, {0x57BD,2,{0x88,0xA4,0x00,0x00,}}, {0x57BE,2,{0x88,0xA5,0x00,0x00,}}, {0x57BF,2,{0x88,0xA6,0x00,0x00,}}, {0x57C0,2,{0x88,0xA7,0x00,0x00,}}, {0x57C1,2,{0x88,0xA8,0x00,0x00,}}, {0x57C2,2,{0xB9,0xA1,0x00,0x00,}}, {0x57C3,2,{0xB0,0xA3,0x00,0x00,}}, {0x57C4,2,{0x88,0xA9,0x00,0x00,}}, {0x57C5,2,{0x88,0xAA,0x00,0x00,}}, {0x57C6,2,{0x88,0xAB,0x00,0x00,}}, {0x57C7,2,{0x88,0xAC,0x00,0x00,}}, {0x57C8,2,{0x88,0xAD,0x00,0x00,}}, {0x57C9,2,{0x88,0xAE,0x00,0x00,}}, {0x57CA,2,{0x88,0xAF,0x00,0x00,}}, {0x57CB,2,{0xC2,0xF1,0x00,0x00,}}, {0x57CC,2,{0x88,0xB0,0x00,0x00,}}, {0x57CD,2,{0x88,0xB1,0x00,0x00,}}, {0x57CE,2,{0xB3,0xC7,0x00,0x00,}}, {0x57CF,2,{0xDB,0xEF,0x00,0x00,}}, {0x57D0,2,{0x88,0xB2,0x00,0x00,}}, {0x57D1,2,{0x88,0xB3,0x00,0x00,}}, {0x57D2,2,{0xDB,0xF8,0x00,0x00,}}, {0x57D3,2,{0x88,0xB4,0x00,0x00,}}, {0x57D4,2,{0xC6,0xD2,0x00,0x00,}}, {0x57D5,2,{0xDB,0xF4,0x00,0x00,}}, {0x57D6,2,{0x88,0xB5,0x00,0x00,}}, {0x57D7,2,{0x88,0xB6,0x00,0x00,}}, {0x57D8,2,{0xDB,0xF5,0x00,0x00,}}, {0x57D9,2,{0xDB,0xF7,0x00,0x00,}}, {0x57DA,2,{0xDB,0xF6,0x00,0x00,}}, {0x57DB,2,{0x88,0xB7,0x00,0x00,}}, {0x57DC,2,{0x88,0xB8,0x00,0x00,}}, {0x57DD,2,{0xDB,0xFE,0x00,0x00,}}, {0x57DE,2,{0x88,0xB9,0x00,0x00,}}, {0x57DF,2,{0xD3,0xF2,0x00,0x00,}}, {0x57E0,2,{0xB2,0xBA,0x00,0x00,}}, {0x57E1,2,{0x88,0xBA,0x00,0x00,}}, {0x57E2,2,{0x88,0xBB,0x00,0x00,}}, {0x57E3,2,{0x88,0xBC,0x00,0x00,}}, {0x57E4,2,{0xDB,0xFD,0x00,0x00,}}, {0x57E5,2,{0x88,0xBD,0x00,0x00,}}, {0x57E6,2,{0x88,0xBE,0x00,0x00,}}, {0x57E7,2,{0x88,0xBF,0x00,0x00,}}, {0x57E8,2,{0x88,0xC0,0x00,0x00,}}, {0x57E9,2,{0x88,0xC1,0x00,0x00,}}, {0x57EA,2,{0x88,0xC2,0x00,0x00,}}, {0x57EB,2,{0x88,0xC3,0x00,0x00,}}, {0x57EC,2,{0x88,0xC4,0x00,0x00,}}, {0x57ED,2,{0xDC,0xA4,0x00,0x00,}}, {0x57EE,2,{0x88,0xC5,0x00,0x00,}}, {0x57EF,2,{0xDB,0xFB,0x00,0x00,}}, {0x57F0,2,{0x88,0xC6,0x00,0x00,}}, {0x57F1,2,{0x88,0xC7,0x00,0x00,}}, {0x57F2,2,{0x88,0xC8,0x00,0x00,}}, {0x57F3,2,{0x88,0xC9,0x00,0x00,}}, {0x57F4,2,{0xDB,0xFA,0x00,0x00,}}, {0x57F5,2,{0x88,0xCA,0x00,0x00,}}, {0x57F6,2,{0x88,0xCB,0x00,0x00,}}, {0x57F7,2,{0x88,0xCC,0x00,0x00,}}, {0x57F8,2,{0xDB,0xFC,0x00,0x00,}}, {0x57F9,2,{0xC5,0xE0,0x00,0x00,}}, {0x57FA,2,{0xBB,0xF9,0x00,0x00,}}, {0x57FB,2,{0x88,0xCD,0x00,0x00,}}, {0x57FC,2,{0x88,0xCE,0x00,0x00,}}, {0x57FD,2,{0xDC,0xA3,0x00,0x00,}}, {0x57FE,2,{0x88,0xCF,0x00,0x00,}}, {0x57FF,2,{0x88,0xD0,0x00,0x00,}}, {0x5800,2,{0xDC,0xA5,0x00,0x00,}}, {0x5801,2,{0x88,0xD1,0x00,0x00,}}, {0x5802,2,{0xCC,0xC3,0x00,0x00,}}, {0x5803,2,{0x88,0xD2,0x00,0x00,}}, {0x5804,2,{0x88,0xD3,0x00,0x00,}}, {0x5805,2,{0x88,0xD4,0x00,0x00,}}, {0x5806,2,{0xB6,0xD1,0x00,0x00,}}, {0x5807,2,{0xDD,0xC0,0x00,0x00,}}, {0x5808,2,{0x88,0xD5,0x00,0x00,}}, {0x5809,2,{0x88,0xD6,0x00,0x00,}}, {0x580A,2,{0x88,0xD7,0x00,0x00,}}, {0x580B,2,{0xDC,0xA1,0x00,0x00,}}, {0x580C,2,{0x88,0xD8,0x00,0x00,}}, {0x580D,2,{0xDC,0xA2,0x00,0x00,}}, {0x580E,2,{0x88,0xD9,0x00,0x00,}}, {0x580F,2,{0x88,0xDA,0x00,0x00,}}, {0x5810,2,{0x88,0xDB,0x00,0x00,}}, {0x5811,2,{0xC7,0xB5,0x00,0x00,}}, {0x5812,2,{0x88,0xDC,0x00,0x00,}}, {0x5813,2,{0x88,0xDD,0x00,0x00,}}, {0x5814,2,{0x88,0xDE,0x00,0x00,}}, {0x5815,2,{0xB6,0xE9,0x00,0x00,}}, {0x5816,2,{0x88,0xDF,0x00,0x00,}}, {0x5817,2,{0x88,0xE0,0x00,0x00,}}, {0x5818,2,{0x88,0xE1,0x00,0x00,}}, {0x5819,2,{0xDC,0xA7,0x00,0x00,}}, {0x581A,2,{0x88,0xE2,0x00,0x00,}}, {0x581B,2,{0x88,0xE3,0x00,0x00,}}, {0x581C,2,{0x88,0xE4,0x00,0x00,}}, {0x581D,2,{0x88,0xE5,0x00,0x00,}}, {0x581E,2,{0xDC,0xA6,0x00,0x00,}}, {0x581F,2,{0x88,0xE6,0x00,0x00,}}, {0x5820,2,{0xDC,0xA9,0x00,0x00,}}, {0x5821,2,{0xB1,0xA4,0x00,0x00,}}, {0x5822,2,{0x88,0xE7,0x00,0x00,}}, {0x5823,2,{0x88,0xE8,0x00,0x00,}}, {0x5824,2,{0xB5,0xCC,0x00,0x00,}}, {0x5825,2,{0x88,0xE9,0x00,0x00,}}, {0x5826,2,{0x88,0xEA,0x00,0x00,}}, {0x5827,2,{0x88,0xEB,0x00,0x00,}}, {0x5828,2,{0x88,0xEC,0x00,0x00,}}, {0x5829,2,{0x88,0xED,0x00,0x00,}}, {0x582A,2,{0xBF,0xB0,0x00,0x00,}}, {0x582B,2,{0x88,0xEE,0x00,0x00,}}, {0x582C,2,{0x88,0xEF,0x00,0x00,}}, {0x582D,2,{0x88,0xF0,0x00,0x00,}}, {0x582E,2,{0x88,0xF1,0x00,0x00,}}, {0x582F,2,{0x88,0xF2,0x00,0x00,}}, {0x5830,2,{0xD1,0xDF,0x00,0x00,}}, {0x5831,2,{0x88,0xF3,0x00,0x00,}}, {0x5832,2,{0x88,0xF4,0x00,0x00,}}, {0x5833,2,{0x88,0xF5,0x00,0x00,}}, {0x5834,2,{0x88,0xF6,0x00,0x00,}}, {0x5835,2,{0xB6,0xC2,0x00,0x00,}}, {0x5836,2,{0x88,0xF7,0x00,0x00,}}, {0x5837,2,{0x88,0xF8,0x00,0x00,}}, {0x5838,2,{0x88,0xF9,0x00,0x00,}}, {0x5839,2,{0x88,0xFA,0x00,0x00,}}, {0x583A,2,{0x88,0xFB,0x00,0x00,}}, {0x583B,2,{0x88,0xFC,0x00,0x00,}}, {0x583C,2,{0x88,0xFD,0x00,0x00,}}, {0x583D,2,{0x88,0xFE,0x00,0x00,}}, {0x583E,2,{0x89,0x40,0x00,0x00,}}, {0x583F,2,{0x89,0x41,0x00,0x00,}}, {0x5840,2,{0x89,0x42,0x00,0x00,}}, {0x5841,2,{0x89,0x43,0x00,0x00,}}, {0x5842,2,{0x89,0x44,0x00,0x00,}}, {0x5843,2,{0x89,0x45,0x00,0x00,}}, {0x5844,2,{0xDC,0xA8,0x00,0x00,}}, {0x5845,2,{0x89,0x46,0x00,0x00,}}, {0x5846,2,{0x89,0x47,0x00,0x00,}}, {0x5847,2,{0x89,0x48,0x00,0x00,}}, {0x5848,2,{0x89,0x49,0x00,0x00,}}, {0x5849,2,{0x89,0x4A,0x00,0x00,}}, {0x584A,2,{0x89,0x4B,0x00,0x00,}}, {0x584B,2,{0x89,0x4C,0x00,0x00,}}, {0x584C,2,{0xCB,0xFA,0x00,0x00,}}, {0x584D,2,{0xEB,0xF3,0x00,0x00,}}, {0x584E,2,{0x89,0x4D,0x00,0x00,}}, {0x584F,2,{0x89,0x4E,0x00,0x00,}}, {0x5850,2,{0x89,0x4F,0x00,0x00,}}, {0x5851,2,{0xCB,0xDC,0x00,0x00,}}, {0x5852,2,{0x89,0x50,0x00,0x00,}}, {0x5853,2,{0x89,0x51,0x00,0x00,}}, {0x5854,2,{0xCB,0xFE,0x00,0x00,}}, {0x5855,2,{0x89,0x52,0x00,0x00,}}, {0x5856,2,{0x89,0x53,0x00,0x00,}}, {0x5857,2,{0x89,0x54,0x00,0x00,}}, {0x5858,2,{0xCC,0xC1,0x00,0x00,}}, {0x5859,2,{0x89,0x55,0x00,0x00,}}, {0x585A,2,{0x89,0x56,0x00,0x00,}}, {0x585B,2,{0x89,0x57,0x00,0x00,}}, {0x585C,2,{0x89,0x58,0x00,0x00,}}, {0x585D,2,{0x89,0x59,0x00,0x00,}}, {0x585E,2,{0xC8,0xFB,0x00,0x00,}}, {0x585F,2,{0x89,0x5A,0x00,0x00,}}, {0x5860,2,{0x89,0x5B,0x00,0x00,}}, {0x5861,2,{0x89,0x5C,0x00,0x00,}}, {0x5862,2,{0x89,0x5D,0x00,0x00,}}, {0x5863,2,{0x89,0x5E,0x00,0x00,}}, {0x5864,2,{0x89,0x5F,0x00,0x00,}}, {0x5865,2,{0xDC,0xAA,0x00,0x00,}}, {0x5866,2,{0x89,0x60,0x00,0x00,}}, {0x5867,2,{0x89,0x61,0x00,0x00,}}, {0x5868,2,{0x89,0x62,0x00,0x00,}}, {0x5869,2,{0x89,0x63,0x00,0x00,}}, {0x586A,2,{0x89,0x64,0x00,0x00,}}, {0x586B,2,{0xCC,0xEE,0x00,0x00,}}, {0x586C,2,{0xDC,0xAB,0x00,0x00,}}, {0x586D,2,{0x89,0x65,0x00,0x00,}}, {0x586E,2,{0x89,0x66,0x00,0x00,}}, {0x586F,2,{0x89,0x67,0x00,0x00,}}, {0x5870,2,{0x89,0x68,0x00,0x00,}}, {0x5871,2,{0x89,0x69,0x00,0x00,}}, {0x5872,2,{0x89,0x6A,0x00,0x00,}}, {0x5873,2,{0x89,0x6B,0x00,0x00,}}, {0x5874,2,{0x89,0x6C,0x00,0x00,}}, {0x5875,2,{0x89,0x6D,0x00,0x00,}}, {0x5876,2,{0x89,0x6E,0x00,0x00,}}, {0x5877,2,{0x89,0x6F,0x00,0x00,}}, {0x5878,2,{0x89,0x70,0x00,0x00,}}, {0x5879,2,{0x89,0x71,0x00,0x00,}}, {0x587A,2,{0x89,0x72,0x00,0x00,}}, {0x587B,2,{0x89,0x73,0x00,0x00,}}, {0x587C,2,{0x89,0x74,0x00,0x00,}}, {0x587D,2,{0x89,0x75,0x00,0x00,}}, {0x587E,2,{0xDB,0xD3,0x00,0x00,}}, {0x587F,2,{0x89,0x76,0x00,0x00,}}, {0x5880,2,{0xDC,0xAF,0x00,0x00,}}, {0x5881,2,{0xDC,0xAC,0x00,0x00,}}, {0x5882,2,{0x89,0x77,0x00,0x00,}}, {0x5883,2,{0xBE,0xB3,0x00,0x00,}}, {0x5884,2,{0x89,0x78,0x00,0x00,}}, {0x5885,2,{0xCA,0xFB,0x00,0x00,}}, {0x5886,2,{0x89,0x79,0x00,0x00,}}, {0x5887,2,{0x89,0x7A,0x00,0x00,}}, {0x5888,2,{0x89,0x7B,0x00,0x00,}}, {0x5889,2,{0xDC,0xAD,0x00,0x00,}}, {0x588A,2,{0x89,0x7C,0x00,0x00,}}, {0x588B,2,{0x89,0x7D,0x00,0x00,}}, {0x588C,2,{0x89,0x7E,0x00,0x00,}}, {0x588D,2,{0x89,0x80,0x00,0x00,}}, {0x588E,2,{0x89,0x81,0x00,0x00,}}, {0x588F,2,{0x89,0x82,0x00,0x00,}}, {0x5890,2,{0x89,0x83,0x00,0x00,}}, {0x5891,2,{0x89,0x84,0x00,0x00,}}, {0x5892,2,{0xC9,0xCA,0x00,0x00,}}, {0x5893,2,{0xC4,0xB9,0x00,0x00,}}, {0x5894,2,{0x89,0x85,0x00,0x00,}}, {0x5895,2,{0x89,0x86,0x00,0x00,}}, {0x5896,2,{0x89,0x87,0x00,0x00,}}, {0x5897,2,{0x89,0x88,0x00,0x00,}}, {0x5898,2,{0x89,0x89,0x00,0x00,}}, {0x5899,2,{0xC7,0xBD,0x00,0x00,}}, {0x589A,2,{0xDC,0xAE,0x00,0x00,}}, {0x589B,2,{0x89,0x8A,0x00,0x00,}}, {0x589C,2,{0x89,0x8B,0x00,0x00,}}, {0x589D,2,{0x89,0x8C,0x00,0x00,}}, {0x589E,2,{0xD4,0xF6,0x00,0x00,}}, {0x589F,2,{0xD0,0xE6,0x00,0x00,}}, {0x58A0,2,{0x89,0x8D,0x00,0x00,}}, {0x58A1,2,{0x89,0x8E,0x00,0x00,}}, {0x58A2,2,{0x89,0x8F,0x00,0x00,}}, {0x58A3,2,{0x89,0x90,0x00,0x00,}}, {0x58A4,2,{0x89,0x91,0x00,0x00,}}, {0x58A5,2,{0x89,0x92,0x00,0x00,}}, {0x58A6,2,{0x89,0x93,0x00,0x00,}}, {0x58A7,2,{0x89,0x94,0x00,0x00,}}, {0x58A8,2,{0xC4,0xAB,0x00,0x00,}}, {0x58A9,2,{0xB6,0xD5,0x00,0x00,}}, {0x58AA,2,{0x89,0x95,0x00,0x00,}}, {0x58AB,2,{0x89,0x96,0x00,0x00,}}, {0x58AC,2,{0x89,0x97,0x00,0x00,}}, {0x58AD,2,{0x89,0x98,0x00,0x00,}}, {0x58AE,2,{0x89,0x99,0x00,0x00,}}, {0x58AF,2,{0x89,0x9A,0x00,0x00,}}, {0x58B0,2,{0x89,0x9B,0x00,0x00,}}, {0x58B1,2,{0x89,0x9C,0x00,0x00,}}, {0x58B2,2,{0x89,0x9D,0x00,0x00,}}, {0x58B3,2,{0x89,0x9E,0x00,0x00,}}, {0x58B4,2,{0x89,0x9F,0x00,0x00,}}, {0x58B5,2,{0x89,0xA0,0x00,0x00,}}, {0x58B6,2,{0x89,0xA1,0x00,0x00,}}, {0x58B7,2,{0x89,0xA2,0x00,0x00,}}, {0x58B8,2,{0x89,0xA3,0x00,0x00,}}, {0x58B9,2,{0x89,0xA4,0x00,0x00,}}, {0x58BA,2,{0x89,0xA5,0x00,0x00,}}, {0x58BB,2,{0x89,0xA6,0x00,0x00,}}, {0x58BC,2,{0xDB,0xD4,0x00,0x00,}}, {0x58BD,2,{0x89,0xA7,0x00,0x00,}}, {0x58BE,2,{0x89,0xA8,0x00,0x00,}}, {0x58BF,2,{0x89,0xA9,0x00,0x00,}}, {0x58C0,2,{0x89,0xAA,0x00,0x00,}}, {0x58C1,2,{0xB1,0xDA,0x00,0x00,}}, {0x58C2,2,{0x89,0xAB,0x00,0x00,}}, {0x58C3,2,{0x89,0xAC,0x00,0x00,}}, {0x58C4,2,{0x89,0xAD,0x00,0x00,}}, {0x58C5,2,{0xDB,0xD5,0x00,0x00,}}, {0x58C6,2,{0x89,0xAE,0x00,0x00,}}, {0x58C7,2,{0x89,0xAF,0x00,0x00,}}, {0x58C8,2,{0x89,0xB0,0x00,0x00,}}, {0x58C9,2,{0x89,0xB1,0x00,0x00,}}, {0x58CA,2,{0x89,0xB2,0x00,0x00,}}, {0x58CB,2,{0x89,0xB3,0x00,0x00,}}, {0x58CC,2,{0x89,0xB4,0x00,0x00,}}, {0x58CD,2,{0x89,0xB5,0x00,0x00,}}, {0x58CE,2,{0x89,0xB6,0x00,0x00,}}, {0x58CF,2,{0x89,0xB7,0x00,0x00,}}, {0x58D0,2,{0x89,0xB8,0x00,0x00,}}, {0x58D1,2,{0xDB,0xD6,0x00,0x00,}}, {0x58D2,2,{0x89,0xB9,0x00,0x00,}}, {0x58D3,2,{0x89,0xBA,0x00,0x00,}}, {0x58D4,2,{0x89,0xBB,0x00,0x00,}}, {0x58D5,2,{0xBA,0xBE,0x00,0x00,}}, {0x58D6,2,{0x89,0xBC,0x00,0x00,}}, {0x58D7,2,{0x89,0xBD,0x00,0x00,}}, {0x58D8,2,{0x89,0xBE,0x00,0x00,}}, {0x58D9,2,{0x89,0xBF,0x00,0x00,}}, {0x58DA,2,{0x89,0xC0,0x00,0x00,}}, {0x58DB,2,{0x89,0xC1,0x00,0x00,}}, {0x58DC,2,{0x89,0xC2,0x00,0x00,}}, {0x58DD,2,{0x89,0xC3,0x00,0x00,}}, {0x58DE,2,{0x89,0xC4,0x00,0x00,}}, {0x58DF,2,{0x89,0xC5,0x00,0x00,}}, {0x58E0,2,{0x89,0xC6,0x00,0x00,}}, {0x58E1,2,{0x89,0xC7,0x00,0x00,}}, {0x58E2,2,{0x89,0xC8,0x00,0x00,}}, {0x58E3,2,{0x89,0xC9,0x00,0x00,}}, {0x58E4,2,{0xC8,0xC0,0x00,0x00,}}, {0x58E5,2,{0x89,0xCA,0x00,0x00,}}, {0x58E6,2,{0x89,0xCB,0x00,0x00,}}, {0x58E7,2,{0x89,0xCC,0x00,0x00,}}, {0x58E8,2,{0x89,0xCD,0x00,0x00,}}, {0x58E9,2,{0x89,0xCE,0x00,0x00,}}, {0x58EA,2,{0x89,0xCF,0x00,0x00,}}, {0x58EB,2,{0xCA,0xBF,0x00,0x00,}}, {0x58EC,2,{0xC8,0xC9,0x00,0x00,}}, {0x58ED,2,{0x89,0xD0,0x00,0x00,}}, {0x58EE,2,{0xD7,0xB3,0x00,0x00,}}, {0x58EF,2,{0x89,0xD1,0x00,0x00,}}, {0x58F0,2,{0xC9,0xF9,0x00,0x00,}}, {0x58F1,2,{0x89,0xD2,0x00,0x00,}}, {0x58F2,2,{0x89,0xD3,0x00,0x00,}}, {0x58F3,2,{0xBF,0xC7,0x00,0x00,}}, {0x58F4,2,{0x89,0xD4,0x00,0x00,}}, {0x58F5,2,{0x89,0xD5,0x00,0x00,}}, {0x58F6,2,{0xBA,0xF8,0x00,0x00,}}, {0x58F7,2,{0x89,0xD6,0x00,0x00,}}, {0x58F8,2,{0x89,0xD7,0x00,0x00,}}, {0x58F9,2,{0xD2,0xBC,0x00,0x00,}}, {0x58FA,2,{0x89,0xD8,0x00,0x00,}}, {0x58FB,2,{0x89,0xD9,0x00,0x00,}}, {0x58FC,2,{0x89,0xDA,0x00,0x00,}}, {0x58FD,2,{0x89,0xDB,0x00,0x00,}}, {0x58FE,2,{0x89,0xDC,0x00,0x00,}}, {0x58FF,2,{0x89,0xDD,0x00,0x00,}}, {0x5900,2,{0x89,0xDE,0x00,0x00,}}, {0x5901,2,{0x89,0xDF,0x00,0x00,}}, {0x5902,2,{0xE2,0xBA,0x00,0x00,}}, {0x5903,2,{0x89,0xE0,0x00,0x00,}}, {0x5904,2,{0xB4,0xA6,0x00,0x00,}}, {0x5905,2,{0x89,0xE1,0x00,0x00,}}, {0x5906,2,{0x89,0xE2,0x00,0x00,}}, {0x5907,2,{0xB1,0xB8,0x00,0x00,}}, {0x5908,2,{0x89,0xE3,0x00,0x00,}}, {0x5909,2,{0x89,0xE4,0x00,0x00,}}, {0x590A,2,{0x89,0xE5,0x00,0x00,}}, {0x590B,2,{0x89,0xE6,0x00,0x00,}}, {0x590C,2,{0x89,0xE7,0x00,0x00,}}, {0x590D,2,{0xB8,0xB4,0x00,0x00,}}, {0x590E,2,{0x89,0xE8,0x00,0x00,}}, {0x590F,2,{0xCF,0xC4,0x00,0x00,}}, {0x5910,2,{0x89,0xE9,0x00,0x00,}}, {0x5911,2,{0x89,0xEA,0x00,0x00,}}, {0x5912,2,{0x89,0xEB,0x00,0x00,}}, {0x5913,2,{0x89,0xEC,0x00,0x00,}}, {0x5914,2,{0xD9,0xE7,0x00,0x00,}}, {0x5915,2,{0xCF,0xA6,0x00,0x00,}}, {0x5916,2,{0xCD,0xE2,0x00,0x00,}}, {0x5917,2,{0x89,0xED,0x00,0x00,}}, {0x5918,2,{0x89,0xEE,0x00,0x00,}}, {0x5919,2,{0xD9,0xED,0x00,0x00,}}, {0x591A,2,{0xB6,0xE0,0x00,0x00,}}, {0x591B,2,{0x89,0xEF,0x00,0x00,}}, {0x591C,2,{0xD2,0xB9,0x00,0x00,}}, {0x591D,2,{0x89,0xF0,0x00,0x00,}}, {0x591E,2,{0x89,0xF1,0x00,0x00,}}, {0x591F,2,{0xB9,0xBB,0x00,0x00,}}, {0x5920,2,{0x89,0xF2,0x00,0x00,}}, {0x5921,2,{0x89,0xF3,0x00,0x00,}}, {0x5922,2,{0x89,0xF4,0x00,0x00,}}, {0x5923,2,{0x89,0xF5,0x00,0x00,}}, {0x5924,2,{0xE2,0xB9,0x00,0x00,}}, {0x5925,2,{0xE2,0xB7,0x00,0x00,}}, {0x5926,2,{0x89,0xF6,0x00,0x00,}}, {0x5927,2,{0xB4,0xF3,0x00,0x00,}}, {0x5928,2,{0x89,0xF7,0x00,0x00,}}, {0x5929,2,{0xCC,0xEC,0x00,0x00,}}, {0x592A,2,{0xCC,0xAB,0x00,0x00,}}, {0x592B,2,{0xB7,0xF2,0x00,0x00,}}, {0x592C,2,{0x89,0xF8,0x00,0x00,}}, {0x592D,2,{0xD8,0xB2,0x00,0x00,}}, {0x592E,2,{0xD1,0xEB,0x00,0x00,}}, {0x592F,2,{0xBA,0xBB,0x00,0x00,}}, {0x5930,2,{0x89,0xF9,0x00,0x00,}}, {0x5931,2,{0xCA,0xA7,0x00,0x00,}}, {0x5932,2,{0x89,0xFA,0x00,0x00,}}, {0x5933,2,{0x89,0xFB,0x00,0x00,}}, {0x5934,2,{0xCD,0xB7,0x00,0x00,}}, {0x5935,2,{0x89,0xFC,0x00,0x00,}}, {0x5936,2,{0x89,0xFD,0x00,0x00,}}, {0x5937,2,{0xD2,0xC4,0x00,0x00,}}, {0x5938,2,{0xBF,0xE4,0x00,0x00,}}, {0x5939,2,{0xBC,0xD0,0x00,0x00,}}, {0x593A,2,{0xB6,0xE1,0x00,0x00,}}, {0x593B,2,{0x89,0xFE,0x00,0x00,}}, {0x593C,2,{0xDE,0xC5,0x00,0x00,}}, {0x593D,2,{0x8A,0x40,0x00,0x00,}}, {0x593E,2,{0x8A,0x41,0x00,0x00,}}, {0x593F,2,{0x8A,0x42,0x00,0x00,}}, {0x5940,2,{0x8A,0x43,0x00,0x00,}}, {0x5941,2,{0xDE,0xC6,0x00,0x00,}}, {0x5942,2,{0xDB,0xBC,0x00,0x00,}}, {0x5943,2,{0x8A,0x44,0x00,0x00,}}, {0x5944,2,{0xD1,0xD9,0x00,0x00,}}, {0x5945,2,{0x8A,0x45,0x00,0x00,}}, {0x5946,2,{0x8A,0x46,0x00,0x00,}}, {0x5947,2,{0xC6,0xE6,0x00,0x00,}}, {0x5948,2,{0xC4,0xCE,0x00,0x00,}}, {0x5949,2,{0xB7,0xEE,0x00,0x00,}}, {0x594A,2,{0x8A,0x47,0x00,0x00,}}, {0x594B,2,{0xB7,0xDC,0x00,0x00,}}, {0x594C,2,{0x8A,0x48,0x00,0x00,}}, {0x594D,2,{0x8A,0x49,0x00,0x00,}}, {0x594E,2,{0xBF,0xFC,0x00,0x00,}}, {0x594F,2,{0xD7,0xE0,0x00,0x00,}}, {0x5950,2,{0x8A,0x4A,0x00,0x00,}}, {0x5951,2,{0xC6,0xF5,0x00,0x00,}}, {0x5952,2,{0x8A,0x4B,0x00,0x00,}}, {0x5953,2,{0x8A,0x4C,0x00,0x00,}}, {0x5954,2,{0xB1,0xBC,0x00,0x00,}}, {0x5955,2,{0xDE,0xC8,0x00,0x00,}}, {0x5956,2,{0xBD,0xB1,0x00,0x00,}}, {0x5957,2,{0xCC,0xD7,0x00,0x00,}}, {0x5958,2,{0xDE,0xCA,0x00,0x00,}}, {0x5959,2,{0x8A,0x4D,0x00,0x00,}}, {0x595A,2,{0xDE,0xC9,0x00,0x00,}}, {0x595B,2,{0x8A,0x4E,0x00,0x00,}}, {0x595C,2,{0x8A,0x4F,0x00,0x00,}}, {0x595D,2,{0x8A,0x50,0x00,0x00,}}, {0x595E,2,{0x8A,0x51,0x00,0x00,}}, {0x595F,2,{0x8A,0x52,0x00,0x00,}}, {0x5960,2,{0xB5,0xEC,0x00,0x00,}}, {0x5961,2,{0x8A,0x53,0x00,0x00,}}, {0x5962,2,{0xC9,0xDD,0x00,0x00,}}, {0x5963,2,{0x8A,0x54,0x00,0x00,}}, {0x5964,2,{0x8A,0x55,0x00,0x00,}}, {0x5965,2,{0xB0,0xC2,0x00,0x00,}}, {0x5966,2,{0x8A,0x56,0x00,0x00,}}, {0x5967,2,{0x8A,0x57,0x00,0x00,}}, {0x5968,2,{0x8A,0x58,0x00,0x00,}}, {0x5969,2,{0x8A,0x59,0x00,0x00,}}, {0x596A,2,{0x8A,0x5A,0x00,0x00,}}, {0x596B,2,{0x8A,0x5B,0x00,0x00,}}, {0x596C,2,{0x8A,0x5C,0x00,0x00,}}, {0x596D,2,{0x8A,0x5D,0x00,0x00,}}, {0x596E,2,{0x8A,0x5E,0x00,0x00,}}, {0x596F,2,{0x8A,0x5F,0x00,0x00,}}, {0x5970,2,{0x8A,0x60,0x00,0x00,}}, {0x5971,2,{0x8A,0x61,0x00,0x00,}}, {0x5972,2,{0x8A,0x62,0x00,0x00,}}, {0x5973,2,{0xC5,0xAE,0x00,0x00,}}, {0x5974,2,{0xC5,0xAB,0x00,0x00,}}, {0x5975,2,{0x8A,0x63,0x00,0x00,}}, {0x5976,2,{0xC4,0xCC,0x00,0x00,}}, {0x5977,2,{0x8A,0x64,0x00,0x00,}}, {0x5978,2,{0xBC,0xE9,0x00,0x00,}}, {0x5979,2,{0xCB,0xFD,0x00,0x00,}}, {0x597A,2,{0x8A,0x65,0x00,0x00,}}, {0x597B,2,{0x8A,0x66,0x00,0x00,}}, {0x597C,2,{0x8A,0x67,0x00,0x00,}}, {0x597D,2,{0xBA,0xC3,0x00,0x00,}}, {0x597E,2,{0x8A,0x68,0x00,0x00,}}, {0x597F,2,{0x8A,0x69,0x00,0x00,}}, {0x5980,2,{0x8A,0x6A,0x00,0x00,}}, {0x5981,2,{0xE5,0xF9,0x00,0x00,}}, {0x5982,2,{0xC8,0xE7,0x00,0x00,}}, {0x5983,2,{0xE5,0xFA,0x00,0x00,}}, {0x5984,2,{0xCD,0xFD,0x00,0x00,}}, {0x5985,2,{0x8A,0x6B,0x00,0x00,}}, {0x5986,2,{0xD7,0xB1,0x00,0x00,}}, {0x5987,2,{0xB8,0xBE,0x00,0x00,}}, {0x5988,2,{0xC2,0xE8,0x00,0x00,}}, {0x5989,2,{0x8A,0x6C,0x00,0x00,}}, {0x598A,2,{0xC8,0xD1,0x00,0x00,}}, {0x598B,2,{0x8A,0x6D,0x00,0x00,}}, {0x598C,2,{0x8A,0x6E,0x00,0x00,}}, {0x598D,2,{0xE5,0xFB,0x00,0x00,}}, {0x598E,2,{0x8A,0x6F,0x00,0x00,}}, {0x598F,2,{0x8A,0x70,0x00,0x00,}}, {0x5990,2,{0x8A,0x71,0x00,0x00,}}, {0x5991,2,{0x8A,0x72,0x00,0x00,}}, {0x5992,2,{0xB6,0xCA,0x00,0x00,}}, {0x5993,2,{0xBC,0xCB,0x00,0x00,}}, {0x5994,2,{0x8A,0x73,0x00,0x00,}}, {0x5995,2,{0x8A,0x74,0x00,0x00,}}, {0x5996,2,{0xD1,0xFD,0x00,0x00,}}, {0x5997,2,{0xE6,0xA1,0x00,0x00,}}, {0x5998,2,{0x8A,0x75,0x00,0x00,}}, {0x5999,2,{0xC3,0xEE,0x00,0x00,}}, {0x599A,2,{0x8A,0x76,0x00,0x00,}}, {0x599B,2,{0x8A,0x77,0x00,0x00,}}, {0x599C,2,{0x8A,0x78,0x00,0x00,}}, {0x599D,2,{0x8A,0x79,0x00,0x00,}}, {0x599E,2,{0xE6,0xA4,0x00,0x00,}}, {0x599F,2,{0x8A,0x7A,0x00,0x00,}}, {0x59A0,2,{0x8A,0x7B,0x00,0x00,}}, {0x59A1,2,{0x8A,0x7C,0x00,0x00,}}, {0x59A2,2,{0x8A,0x7D,0x00,0x00,}}, {0x59A3,2,{0xE5,0xFE,0x00,0x00,}}, {0x59A4,2,{0xE6,0xA5,0x00,0x00,}}, {0x59A5,2,{0xCD,0xD7,0x00,0x00,}}, {0x59A6,2,{0x8A,0x7E,0x00,0x00,}}, {0x59A7,2,{0x8A,0x80,0x00,0x00,}}, {0x59A8,2,{0xB7,0xC1,0x00,0x00,}}, {0x59A9,2,{0xE5,0xFC,0x00,0x00,}}, {0x59AA,2,{0xE5,0xFD,0x00,0x00,}}, {0x59AB,2,{0xE6,0xA3,0x00,0x00,}}, {0x59AC,2,{0x8A,0x81,0x00,0x00,}}, {0x59AD,2,{0x8A,0x82,0x00,0x00,}}, {0x59AE,2,{0xC4,0xDD,0x00,0x00,}}, {0x59AF,2,{0xE6,0xA8,0x00,0x00,}}, {0x59B0,2,{0x8A,0x83,0x00,0x00,}}, {0x59B1,2,{0x8A,0x84,0x00,0x00,}}, {0x59B2,2,{0xE6,0xA7,0x00,0x00,}}, {0x59B3,2,{0x8A,0x85,0x00,0x00,}}, {0x59B4,2,{0x8A,0x86,0x00,0x00,}}, {0x59B5,2,{0x8A,0x87,0x00,0x00,}}, {0x59B6,2,{0x8A,0x88,0x00,0x00,}}, {0x59B7,2,{0x8A,0x89,0x00,0x00,}}, {0x59B8,2,{0x8A,0x8A,0x00,0x00,}}, {0x59B9,2,{0xC3,0xC3,0x00,0x00,}}, {0x59BA,2,{0x8A,0x8B,0x00,0x00,}}, {0x59BB,2,{0xC6,0xDE,0x00,0x00,}}, {0x59BC,2,{0x8A,0x8C,0x00,0x00,}}, {0x59BD,2,{0x8A,0x8D,0x00,0x00,}}, {0x59BE,2,{0xE6,0xAA,0x00,0x00,}}, {0x59BF,2,{0x8A,0x8E,0x00,0x00,}}, {0x59C0,2,{0x8A,0x8F,0x00,0x00,}}, {0x59C1,2,{0x8A,0x90,0x00,0x00,}}, {0x59C2,2,{0x8A,0x91,0x00,0x00,}}, {0x59C3,2,{0x8A,0x92,0x00,0x00,}}, {0x59C4,2,{0x8A,0x93,0x00,0x00,}}, {0x59C5,2,{0x8A,0x94,0x00,0x00,}}, {0x59C6,2,{0xC4,0xB7,0x00,0x00,}}, {0x59C7,2,{0x8A,0x95,0x00,0x00,}}, {0x59C8,2,{0x8A,0x96,0x00,0x00,}}, {0x59C9,2,{0x8A,0x97,0x00,0x00,}}, {0x59CA,2,{0xE6,0xA2,0x00,0x00,}}, {0x59CB,2,{0xCA,0xBC,0x00,0x00,}}, {0x59CC,2,{0x8A,0x98,0x00,0x00,}}, {0x59CD,2,{0x8A,0x99,0x00,0x00,}}, {0x59CE,2,{0x8A,0x9A,0x00,0x00,}}, {0x59CF,2,{0x8A,0x9B,0x00,0x00,}}, {0x59D0,2,{0xBD,0xE3,0x00,0x00,}}, {0x59D1,2,{0xB9,0xC3,0x00,0x00,}}, {0x59D2,2,{0xE6,0xA6,0x00,0x00,}}, {0x59D3,2,{0xD0,0xD5,0x00,0x00,}}, {0x59D4,2,{0xCE,0xAF,0x00,0x00,}}, {0x59D5,2,{0x8A,0x9C,0x00,0x00,}}, {0x59D6,2,{0x8A,0x9D,0x00,0x00,}}, {0x59D7,2,{0xE6,0xA9,0x00,0x00,}}, {0x59D8,2,{0xE6,0xB0,0x00,0x00,}}, {0x59D9,2,{0x8A,0x9E,0x00,0x00,}}, {0x59DA,2,{0xD2,0xA6,0x00,0x00,}}, {0x59DB,2,{0x8A,0x9F,0x00,0x00,}}, {0x59DC,2,{0xBD,0xAA,0x00,0x00,}}, {0x59DD,2,{0xE6,0xAD,0x00,0x00,}}, {0x59DE,2,{0x8A,0xA0,0x00,0x00,}}, {0x59DF,2,{0x8A,0xA1,0x00,0x00,}}, {0x59E0,2,{0x8A,0xA2,0x00,0x00,}}, {0x59E1,2,{0x8A,0xA3,0x00,0x00,}}, {0x59E2,2,{0x8A,0xA4,0x00,0x00,}}, {0x59E3,2,{0xE6,0xAF,0x00,0x00,}}, {0x59E4,2,{0x8A,0xA5,0x00,0x00,}}, {0x59E5,2,{0xC0,0xD1,0x00,0x00,}}, {0x59E6,2,{0x8A,0xA6,0x00,0x00,}}, {0x59E7,2,{0x8A,0xA7,0x00,0x00,}}, {0x59E8,2,{0xD2,0xCC,0x00,0x00,}}, {0x59E9,2,{0x8A,0xA8,0x00,0x00,}}, {0x59EA,2,{0x8A,0xA9,0x00,0x00,}}, {0x59EB,2,{0x8A,0xAA,0x00,0x00,}}, {0x59EC,2,{0xBC,0xA7,0x00,0x00,}}, {0x59ED,2,{0x8A,0xAB,0x00,0x00,}}, {0x59EE,2,{0x8A,0xAC,0x00,0x00,}}, {0x59EF,2,{0x8A,0xAD,0x00,0x00,}}, {0x59F0,2,{0x8A,0xAE,0x00,0x00,}}, {0x59F1,2,{0x8A,0xAF,0x00,0x00,}}, {0x59F2,2,{0x8A,0xB0,0x00,0x00,}}, {0x59F3,2,{0x8A,0xB1,0x00,0x00,}}, {0x59F4,2,{0x8A,0xB2,0x00,0x00,}}, {0x59F5,2,{0x8A,0xB3,0x00,0x00,}}, {0x59F6,2,{0x8A,0xB4,0x00,0x00,}}, {0x59F7,2,{0x8A,0xB5,0x00,0x00,}}, {0x59F8,2,{0x8A,0xB6,0x00,0x00,}}, {0x59F9,2,{0xE6,0xB1,0x00,0x00,}}, {0x59FA,2,{0x8A,0xB7,0x00,0x00,}}, {0x59FB,2,{0xD2,0xF6,0x00,0x00,}}, {0x59FC,2,{0x8A,0xB8,0x00,0x00,}}, {0x59FD,2,{0x8A,0xB9,0x00,0x00,}}, {0x59FE,2,{0x8A,0xBA,0x00,0x00,}}, {0x59FF,2,{0xD7,0xCB,0x00,0x00,}}, {0x5A00,2,{0x8A,0xBB,0x00,0x00,}}, {0x5A01,2,{0xCD,0xFE,0x00,0x00,}}, {0x5A02,2,{0x8A,0xBC,0x00,0x00,}}, {0x5A03,2,{0xCD,0xDE,0x00,0x00,}}, {0x5A04,2,{0xC2,0xA6,0x00,0x00,}}, {0x5A05,2,{0xE6,0xAB,0x00,0x00,}}, {0x5A06,2,{0xE6,0xAC,0x00,0x00,}}, {0x5A07,2,{0xBD,0xBF,0x00,0x00,}}, {0x5A08,2,{0xE6,0xAE,0x00,0x00,}}, {0x5A09,2,{0xE6,0xB3,0x00,0x00,}}, {0x5A0A,2,{0x8A,0xBD,0x00,0x00,}}, {0x5A0B,2,{0x8A,0xBE,0x00,0x00,}}, {0x5A0C,2,{0xE6,0xB2,0x00,0x00,}}, {0x5A0D,2,{0x8A,0xBF,0x00,0x00,}}, {0x5A0E,2,{0x8A,0xC0,0x00,0x00,}}, {0x5A0F,2,{0x8A,0xC1,0x00,0x00,}}, {0x5A10,2,{0x8A,0xC2,0x00,0x00,}}, {0x5A11,2,{0xE6,0xB6,0x00,0x00,}}, {0x5A12,2,{0x8A,0xC3,0x00,0x00,}}, {0x5A13,2,{0xE6,0xB8,0x00,0x00,}}, {0x5A14,2,{0x8A,0xC4,0x00,0x00,}}, {0x5A15,2,{0x8A,0xC5,0x00,0x00,}}, {0x5A16,2,{0x8A,0xC6,0x00,0x00,}}, {0x5A17,2,{0x8A,0xC7,0x00,0x00,}}, {0x5A18,2,{0xC4,0xEF,0x00,0x00,}}, {0x5A19,2,{0x8A,0xC8,0x00,0x00,}}, {0x5A1A,2,{0x8A,0xC9,0x00,0x00,}}, {0x5A1B,2,{0x8A,0xCA,0x00,0x00,}}, {0x5A1C,2,{0xC4,0xC8,0x00,0x00,}}, {0x5A1D,2,{0x8A,0xCB,0x00,0x00,}}, {0x5A1E,2,{0x8A,0xCC,0x00,0x00,}}, {0x5A1F,2,{0xBE,0xEA,0x00,0x00,}}, {0x5A20,2,{0xC9,0xEF,0x00,0x00,}}, {0x5A21,2,{0x8A,0xCD,0x00,0x00,}}, {0x5A22,2,{0x8A,0xCE,0x00,0x00,}}, {0x5A23,2,{0xE6,0xB7,0x00,0x00,}}, {0x5A24,2,{0x8A,0xCF,0x00,0x00,}}, {0x5A25,2,{0xB6,0xF0,0x00,0x00,}}, {0x5A26,2,{0x8A,0xD0,0x00,0x00,}}, {0x5A27,2,{0x8A,0xD1,0x00,0x00,}}, {0x5A28,2,{0x8A,0xD2,0x00,0x00,}}, {0x5A29,2,{0xC3,0xE4,0x00,0x00,}}, {0x5A2A,2,{0x8A,0xD3,0x00,0x00,}}, {0x5A2B,2,{0x8A,0xD4,0x00,0x00,}}, {0x5A2C,2,{0x8A,0xD5,0x00,0x00,}}, {0x5A2D,2,{0x8A,0xD6,0x00,0x00,}}, {0x5A2E,2,{0x8A,0xD7,0x00,0x00,}}, {0x5A2F,2,{0x8A,0xD8,0x00,0x00,}}, {0x5A30,2,{0x8A,0xD9,0x00,0x00,}}, {0x5A31,2,{0xD3,0xE9,0x00,0x00,}}, {0x5A32,2,{0xE6,0xB4,0x00,0x00,}}, {0x5A33,2,{0x8A,0xDA,0x00,0x00,}}, {0x5A34,2,{0xE6,0xB5,0x00,0x00,}}, {0x5A35,2,{0x8A,0xDB,0x00,0x00,}}, {0x5A36,2,{0xC8,0xA2,0x00,0x00,}}, {0x5A37,2,{0x8A,0xDC,0x00,0x00,}}, {0x5A38,2,{0x8A,0xDD,0x00,0x00,}}, {0x5A39,2,{0x8A,0xDE,0x00,0x00,}}, {0x5A3A,2,{0x8A,0xDF,0x00,0x00,}}, {0x5A3B,2,{0x8A,0xE0,0x00,0x00,}}, {0x5A3C,2,{0xE6,0xBD,0x00,0x00,}}, {0x5A3D,2,{0x8A,0xE1,0x00,0x00,}}, {0x5A3E,2,{0x8A,0xE2,0x00,0x00,}}, {0x5A3F,2,{0x8A,0xE3,0x00,0x00,}}, {0x5A40,2,{0xE6,0xB9,0x00,0x00,}}, {0x5A41,2,{0x8A,0xE4,0x00,0x00,}}, {0x5A42,2,{0x8A,0xE5,0x00,0x00,}}, {0x5A43,2,{0x8A,0xE6,0x00,0x00,}}, {0x5A44,2,{0x8A,0xE7,0x00,0x00,}}, {0x5A45,2,{0x8A,0xE8,0x00,0x00,}}, {0x5A46,2,{0xC6,0xC5,0x00,0x00,}}, {0x5A47,2,{0x8A,0xE9,0x00,0x00,}}, {0x5A48,2,{0x8A,0xEA,0x00,0x00,}}, {0x5A49,2,{0xCD,0xF1,0x00,0x00,}}, {0x5A4A,2,{0xE6,0xBB,0x00,0x00,}}, {0x5A4B,2,{0x8A,0xEB,0x00,0x00,}}, {0x5A4C,2,{0x8A,0xEC,0x00,0x00,}}, {0x5A4D,2,{0x8A,0xED,0x00,0x00,}}, {0x5A4E,2,{0x8A,0xEE,0x00,0x00,}}, {0x5A4F,2,{0x8A,0xEF,0x00,0x00,}}, {0x5A50,2,{0x8A,0xF0,0x00,0x00,}}, {0x5A51,2,{0x8A,0xF1,0x00,0x00,}}, {0x5A52,2,{0x8A,0xF2,0x00,0x00,}}, {0x5A53,2,{0x8A,0xF3,0x00,0x00,}}, {0x5A54,2,{0x8A,0xF4,0x00,0x00,}}, {0x5A55,2,{0xE6,0xBC,0x00,0x00,}}, {0x5A56,2,{0x8A,0xF5,0x00,0x00,}}, {0x5A57,2,{0x8A,0xF6,0x00,0x00,}}, {0x5A58,2,{0x8A,0xF7,0x00,0x00,}}, {0x5A59,2,{0x8A,0xF8,0x00,0x00,}}, {0x5A5A,2,{0xBB,0xE9,0x00,0x00,}}, {0x5A5B,2,{0x8A,0xF9,0x00,0x00,}}, {0x5A5C,2,{0x8A,0xFA,0x00,0x00,}}, {0x5A5D,2,{0x8A,0xFB,0x00,0x00,}}, {0x5A5E,2,{0x8A,0xFC,0x00,0x00,}}, {0x5A5F,2,{0x8A,0xFD,0x00,0x00,}}, {0x5A60,2,{0x8A,0xFE,0x00,0x00,}}, {0x5A61,2,{0x8B,0x40,0x00,0x00,}}, {0x5A62,2,{0xE6,0xBE,0x00,0x00,}}, {0x5A63,2,{0x8B,0x41,0x00,0x00,}}, {0x5A64,2,{0x8B,0x42,0x00,0x00,}}, {0x5A65,2,{0x8B,0x43,0x00,0x00,}}, {0x5A66,2,{0x8B,0x44,0x00,0x00,}}, {0x5A67,2,{0xE6,0xBA,0x00,0x00,}}, {0x5A68,2,{0x8B,0x45,0x00,0x00,}}, {0x5A69,2,{0x8B,0x46,0x00,0x00,}}, {0x5A6A,2,{0xC0,0xB7,0x00,0x00,}}, {0x5A6B,2,{0x8B,0x47,0x00,0x00,}}, {0x5A6C,2,{0x8B,0x48,0x00,0x00,}}, {0x5A6D,2,{0x8B,0x49,0x00,0x00,}}, {0x5A6E,2,{0x8B,0x4A,0x00,0x00,}}, {0x5A6F,2,{0x8B,0x4B,0x00,0x00,}}, {0x5A70,2,{0x8B,0x4C,0x00,0x00,}}, {0x5A71,2,{0x8B,0x4D,0x00,0x00,}}, {0x5A72,2,{0x8B,0x4E,0x00,0x00,}}, {0x5A73,2,{0x8B,0x4F,0x00,0x00,}}, {0x5A74,2,{0xD3,0xA4,0x00,0x00,}}, {0x5A75,2,{0xE6,0xBF,0x00,0x00,}}, {0x5A76,2,{0xC9,0xF4,0x00,0x00,}}, {0x5A77,2,{0xE6,0xC3,0x00,0x00,}}, {0x5A78,2,{0x8B,0x50,0x00,0x00,}}, {0x5A79,2,{0x8B,0x51,0x00,0x00,}}, {0x5A7A,2,{0xE6,0xC4,0x00,0x00,}}, {0x5A7B,2,{0x8B,0x52,0x00,0x00,}}, {0x5A7C,2,{0x8B,0x53,0x00,0x00,}}, {0x5A7D,2,{0x8B,0x54,0x00,0x00,}}, {0x5A7E,2,{0x8B,0x55,0x00,0x00,}}, {0x5A7F,2,{0xD0,0xF6,0x00,0x00,}}, {0x5A80,2,{0x8B,0x56,0x00,0x00,}}, {0x5A81,2,{0x8B,0x57,0x00,0x00,}}, {0x5A82,2,{0x8B,0x58,0x00,0x00,}}, {0x5A83,2,{0x8B,0x59,0x00,0x00,}}, {0x5A84,2,{0x8B,0x5A,0x00,0x00,}}, {0x5A85,2,{0x8B,0x5B,0x00,0x00,}}, {0x5A86,2,{0x8B,0x5C,0x00,0x00,}}, {0x5A87,2,{0x8B,0x5D,0x00,0x00,}}, {0x5A88,2,{0x8B,0x5E,0x00,0x00,}}, {0x5A89,2,{0x8B,0x5F,0x00,0x00,}}, {0x5A8A,2,{0x8B,0x60,0x00,0x00,}}, {0x5A8B,2,{0x8B,0x61,0x00,0x00,}}, {0x5A8C,2,{0x8B,0x62,0x00,0x00,}}, {0x5A8D,2,{0x8B,0x63,0x00,0x00,}}, {0x5A8E,2,{0x8B,0x64,0x00,0x00,}}, {0x5A8F,2,{0x8B,0x65,0x00,0x00,}}, {0x5A90,2,{0x8B,0x66,0x00,0x00,}}, {0x5A91,2,{0x8B,0x67,0x00,0x00,}}, {0x5A92,2,{0xC3,0xBD,0x00,0x00,}}, {0x5A93,2,{0x8B,0x68,0x00,0x00,}}, {0x5A94,2,{0x8B,0x69,0x00,0x00,}}, {0x5A95,2,{0x8B,0x6A,0x00,0x00,}}, {0x5A96,2,{0x8B,0x6B,0x00,0x00,}}, {0x5A97,2,{0x8B,0x6C,0x00,0x00,}}, {0x5A98,2,{0x8B,0x6D,0x00,0x00,}}, {0x5A99,2,{0x8B,0x6E,0x00,0x00,}}, {0x5A9A,2,{0xC3,0xC4,0x00,0x00,}}, {0x5A9B,2,{0xE6,0xC2,0x00,0x00,}}, {0x5A9C,2,{0x8B,0x6F,0x00,0x00,}}, {0x5A9D,2,{0x8B,0x70,0x00,0x00,}}, {0x5A9E,2,{0x8B,0x71,0x00,0x00,}}, {0x5A9F,2,{0x8B,0x72,0x00,0x00,}}, {0x5AA0,2,{0x8B,0x73,0x00,0x00,}}, {0x5AA1,2,{0x8B,0x74,0x00,0x00,}}, {0x5AA2,2,{0x8B,0x75,0x00,0x00,}}, {0x5AA3,2,{0x8B,0x76,0x00,0x00,}}, {0x5AA4,2,{0x8B,0x77,0x00,0x00,}}, {0x5AA5,2,{0x8B,0x78,0x00,0x00,}}, {0x5AA6,2,{0x8B,0x79,0x00,0x00,}}, {0x5AA7,2,{0x8B,0x7A,0x00,0x00,}}, {0x5AA8,2,{0x8B,0x7B,0x00,0x00,}}, {0x5AA9,2,{0x8B,0x7C,0x00,0x00,}}, {0x5AAA,2,{0xE6,0xC1,0x00,0x00,}}, {0x5AAB,2,{0x8B,0x7D,0x00,0x00,}}, {0x5AAC,2,{0x8B,0x7E,0x00,0x00,}}, {0x5AAD,2,{0x8B,0x80,0x00,0x00,}}, {0x5AAE,2,{0x8B,0x81,0x00,0x00,}}, {0x5AAF,2,{0x8B,0x82,0x00,0x00,}}, {0x5AB0,2,{0x8B,0x83,0x00,0x00,}}, {0x5AB1,2,{0x8B,0x84,0x00,0x00,}}, {0x5AB2,2,{0xE6,0xC7,0x00,0x00,}}, {0x5AB3,2,{0xCF,0xB1,0x00,0x00,}}, {0x5AB4,2,{0x8B,0x85,0x00,0x00,}}, {0x5AB5,2,{0xEB,0xF4,0x00,0x00,}}, {0x5AB6,2,{0x8B,0x86,0x00,0x00,}}, {0x5AB7,2,{0x8B,0x87,0x00,0x00,}}, {0x5AB8,2,{0xE6,0xCA,0x00,0x00,}}, {0x5AB9,2,{0x8B,0x88,0x00,0x00,}}, {0x5ABA,2,{0x8B,0x89,0x00,0x00,}}, {0x5ABB,2,{0x8B,0x8A,0x00,0x00,}}, {0x5ABC,2,{0x8B,0x8B,0x00,0x00,}}, {0x5ABD,2,{0x8B,0x8C,0x00,0x00,}}, {0x5ABE,2,{0xE6,0xC5,0x00,0x00,}}, {0x5ABF,2,{0x8B,0x8D,0x00,0x00,}}, {0x5AC0,2,{0x8B,0x8E,0x00,0x00,}}, {0x5AC1,2,{0xBC,0xDE,0x00,0x00,}}, {0x5AC2,2,{0xC9,0xA9,0x00,0x00,}}, {0x5AC3,2,{0x8B,0x8F,0x00,0x00,}}, {0x5AC4,2,{0x8B,0x90,0x00,0x00,}}, {0x5AC5,2,{0x8B,0x91,0x00,0x00,}}, {0x5AC6,2,{0x8B,0x92,0x00,0x00,}}, {0x5AC7,2,{0x8B,0x93,0x00,0x00,}}, {0x5AC8,2,{0x8B,0x94,0x00,0x00,}}, {0x5AC9,2,{0xBC,0xB5,0x00,0x00,}}, {0x5ACA,2,{0x8B,0x95,0x00,0x00,}}, {0x5ACB,2,{0x8B,0x96,0x00,0x00,}}, {0x5ACC,2,{0xCF,0xD3,0x00,0x00,}}, {0x5ACD,2,{0x8B,0x97,0x00,0x00,}}, {0x5ACE,2,{0x8B,0x98,0x00,0x00,}}, {0x5ACF,2,{0x8B,0x99,0x00,0x00,}}, {0x5AD0,2,{0x8B,0x9A,0x00,0x00,}}, {0x5AD1,2,{0x8B,0x9B,0x00,0x00,}}, {0x5AD2,2,{0xE6,0xC8,0x00,0x00,}}, {0x5AD3,2,{0x8B,0x9C,0x00,0x00,}}, {0x5AD4,2,{0xE6,0xC9,0x00,0x00,}}, {0x5AD5,2,{0x8B,0x9D,0x00,0x00,}}, {0x5AD6,2,{0xE6,0xCE,0x00,0x00,}}, {0x5AD7,2,{0x8B,0x9E,0x00,0x00,}}, {0x5AD8,2,{0xE6,0xD0,0x00,0x00,}}, {0x5AD9,2,{0x8B,0x9F,0x00,0x00,}}, {0x5ADA,2,{0x8B,0xA0,0x00,0x00,}}, {0x5ADB,2,{0x8B,0xA1,0x00,0x00,}}, {0x5ADC,2,{0xE6,0xD1,0x00,0x00,}}, {0x5ADD,2,{0x8B,0xA2,0x00,0x00,}}, {0x5ADE,2,{0x8B,0xA3,0x00,0x00,}}, {0x5ADF,2,{0x8B,0xA4,0x00,0x00,}}, {0x5AE0,2,{0xE6,0xCB,0x00,0x00,}}, {0x5AE1,2,{0xB5,0xD5,0x00,0x00,}}, {0x5AE2,2,{0x8B,0xA5,0x00,0x00,}}, {0x5AE3,2,{0xE6,0xCC,0x00,0x00,}}, {0x5AE4,2,{0x8B,0xA6,0x00,0x00,}}, {0x5AE5,2,{0x8B,0xA7,0x00,0x00,}}, {0x5AE6,2,{0xE6,0xCF,0x00,0x00,}}, {0x5AE7,2,{0x8B,0xA8,0x00,0x00,}}, {0x5AE8,2,{0x8B,0xA9,0x00,0x00,}}, {0x5AE9,2,{0xC4,0xDB,0x00,0x00,}}, {0x5AEA,2,{0x8B,0xAA,0x00,0x00,}}, {0x5AEB,2,{0xE6,0xC6,0x00,0x00,}}, {0x5AEC,2,{0x8B,0xAB,0x00,0x00,}}, {0x5AED,2,{0x8B,0xAC,0x00,0x00,}}, {0x5AEE,2,{0x8B,0xAD,0x00,0x00,}}, {0x5AEF,2,{0x8B,0xAE,0x00,0x00,}}, {0x5AF0,2,{0x8B,0xAF,0x00,0x00,}}, {0x5AF1,2,{0xE6,0xCD,0x00,0x00,}}, {0x5AF2,2,{0x8B,0xB0,0x00,0x00,}}, {0x5AF3,2,{0x8B,0xB1,0x00,0x00,}}, {0x5AF4,2,{0x8B,0xB2,0x00,0x00,}}, {0x5AF5,2,{0x8B,0xB3,0x00,0x00,}}, {0x5AF6,2,{0x8B,0xB4,0x00,0x00,}}, {0x5AF7,2,{0x8B,0xB5,0x00,0x00,}}, {0x5AF8,2,{0x8B,0xB6,0x00,0x00,}}, {0x5AF9,2,{0x8B,0xB7,0x00,0x00,}}, {0x5AFA,2,{0x8B,0xB8,0x00,0x00,}}, {0x5AFB,2,{0x8B,0xB9,0x00,0x00,}}, {0x5AFC,2,{0x8B,0xBA,0x00,0x00,}}, {0x5AFD,2,{0x8B,0xBB,0x00,0x00,}}, {0x5AFE,2,{0x8B,0xBC,0x00,0x00,}}, {0x5AFF,2,{0x8B,0xBD,0x00,0x00,}}, {0x5B00,2,{0x8B,0xBE,0x00,0x00,}}, {0x5B01,2,{0x8B,0xBF,0x00,0x00,}}, {0x5B02,2,{0x8B,0xC0,0x00,0x00,}}, {0x5B03,2,{0x8B,0xC1,0x00,0x00,}}, {0x5B04,2,{0x8B,0xC2,0x00,0x00,}}, {0x5B05,2,{0x8B,0xC3,0x00,0x00,}}, {0x5B06,2,{0x8B,0xC4,0x00,0x00,}}, {0x5B07,2,{0x8B,0xC5,0x00,0x00,}}, {0x5B08,2,{0x8B,0xC6,0x00,0x00,}}, {0x5B09,2,{0xE6,0xD2,0x00,0x00,}}, {0x5B0A,2,{0x8B,0xC7,0x00,0x00,}}, {0x5B0B,2,{0x8B,0xC8,0x00,0x00,}}, {0x5B0C,2,{0x8B,0xC9,0x00,0x00,}}, {0x5B0D,2,{0x8B,0xCA,0x00,0x00,}}, {0x5B0E,2,{0x8B,0xCB,0x00,0x00,}}, {0x5B0F,2,{0x8B,0xCC,0x00,0x00,}}, {0x5B10,2,{0x8B,0xCD,0x00,0x00,}}, {0x5B11,2,{0x8B,0xCE,0x00,0x00,}}, {0x5B12,2,{0x8B,0xCF,0x00,0x00,}}, {0x5B13,2,{0x8B,0xD0,0x00,0x00,}}, {0x5B14,2,{0x8B,0xD1,0x00,0x00,}}, {0x5B15,2,{0x8B,0xD2,0x00,0x00,}}, {0x5B16,2,{0xE6,0xD4,0x00,0x00,}}, {0x5B17,2,{0xE6,0xD3,0x00,0x00,}}, {0x5B18,2,{0x8B,0xD3,0x00,0x00,}}, {0x5B19,2,{0x8B,0xD4,0x00,0x00,}}, {0x5B1A,2,{0x8B,0xD5,0x00,0x00,}}, {0x5B1B,2,{0x8B,0xD6,0x00,0x00,}}, {0x5B1C,2,{0x8B,0xD7,0x00,0x00,}}, {0x5B1D,2,{0x8B,0xD8,0x00,0x00,}}, {0x5B1E,2,{0x8B,0xD9,0x00,0x00,}}, {0x5B1F,2,{0x8B,0xDA,0x00,0x00,}}, {0x5B20,2,{0x8B,0xDB,0x00,0x00,}}, {0x5B21,2,{0x8B,0xDC,0x00,0x00,}}, {0x5B22,2,{0x8B,0xDD,0x00,0x00,}}, {0x5B23,2,{0x8B,0xDE,0x00,0x00,}}, {0x5B24,2,{0x8B,0xDF,0x00,0x00,}}, {0x5B25,2,{0x8B,0xE0,0x00,0x00,}}, {0x5B26,2,{0x8B,0xE1,0x00,0x00,}}, {0x5B27,2,{0x8B,0xE2,0x00,0x00,}}, {0x5B28,2,{0x8B,0xE3,0x00,0x00,}}, {0x5B29,2,{0x8B,0xE4,0x00,0x00,}}, {0x5B2A,2,{0x8B,0xE5,0x00,0x00,}}, {0x5B2B,2,{0x8B,0xE6,0x00,0x00,}}, {0x5B2C,2,{0x8B,0xE7,0x00,0x00,}}, {0x5B2D,2,{0x8B,0xE8,0x00,0x00,}}, {0x5B2E,2,{0x8B,0xE9,0x00,0x00,}}, {0x5B2F,2,{0x8B,0xEA,0x00,0x00,}}, {0x5B30,2,{0x8B,0xEB,0x00,0x00,}}, {0x5B31,2,{0x8B,0xEC,0x00,0x00,}}, {0x5B32,2,{0xE6,0xD5,0x00,0x00,}}, {0x5B33,2,{0x8B,0xED,0x00,0x00,}}, {0x5B34,2,{0xD9,0xF8,0x00,0x00,}}, {0x5B35,2,{0x8B,0xEE,0x00,0x00,}}, {0x5B36,2,{0x8B,0xEF,0x00,0x00,}}, {0x5B37,2,{0xE6,0xD6,0x00,0x00,}}, {0x5B38,2,{0x8B,0xF0,0x00,0x00,}}, {0x5B39,2,{0x8B,0xF1,0x00,0x00,}}, {0x5B3A,2,{0x8B,0xF2,0x00,0x00,}}, {0x5B3B,2,{0x8B,0xF3,0x00,0x00,}}, {0x5B3C,2,{0x8B,0xF4,0x00,0x00,}}, {0x5B3D,2,{0x8B,0xF5,0x00,0x00,}}, {0x5B3E,2,{0x8B,0xF6,0x00,0x00,}}, {0x5B3F,2,{0x8B,0xF7,0x00,0x00,}}, {0x5B40,2,{0xE6,0xD7,0x00,0x00,}}, {0x5B41,2,{0x8B,0xF8,0x00,0x00,}}, {0x5B42,2,{0x8B,0xF9,0x00,0x00,}}, {0x5B43,2,{0x8B,0xFA,0x00,0x00,}}, {0x5B44,2,{0x8B,0xFB,0x00,0x00,}}, {0x5B45,2,{0x8B,0xFC,0x00,0x00,}}, {0x5B46,2,{0x8B,0xFD,0x00,0x00,}}, {0x5B47,2,{0x8B,0xFE,0x00,0x00,}}, {0x5B48,2,{0x8C,0x40,0x00,0x00,}}, {0x5B49,2,{0x8C,0x41,0x00,0x00,}}, {0x5B4A,2,{0x8C,0x42,0x00,0x00,}}, {0x5B4B,2,{0x8C,0x43,0x00,0x00,}}, {0x5B4C,2,{0x8C,0x44,0x00,0x00,}}, {0x5B4D,2,{0x8C,0x45,0x00,0x00,}}, {0x5B4E,2,{0x8C,0x46,0x00,0x00,}}, {0x5B4F,2,{0x8C,0x47,0x00,0x00,}}, {0x5B50,2,{0xD7,0xD3,0x00,0x00,}}, {0x5B51,2,{0xE6,0xDD,0x00,0x00,}}, {0x5B52,2,{0x8C,0x48,0x00,0x00,}}, {0x5B53,2,{0xE6,0xDE,0x00,0x00,}}, {0x5B54,2,{0xBF,0xD7,0x00,0x00,}}, {0x5B55,2,{0xD4,0xD0,0x00,0x00,}}, {0x5B56,2,{0x8C,0x49,0x00,0x00,}}, {0x5B57,2,{0xD7,0xD6,0x00,0x00,}}, {0x5B58,2,{0xB4,0xE6,0x00,0x00,}}, {0x5B59,2,{0xCB,0xEF,0x00,0x00,}}, {0x5B5A,2,{0xE6,0xDA,0x00,0x00,}}, {0x5B5B,2,{0xD8,0xC3,0x00,0x00,}}, {0x5B5C,2,{0xD7,0xCE,0x00,0x00,}}, {0x5B5D,2,{0xD0,0xA2,0x00,0x00,}}, {0x5B5E,2,{0x8C,0x4A,0x00,0x00,}}, {0x5B5F,2,{0xC3,0xCF,0x00,0x00,}}, {0x5B60,2,{0x8C,0x4B,0x00,0x00,}}, {0x5B61,2,{0x8C,0x4C,0x00,0x00,}}, {0x5B62,2,{0xE6,0xDF,0x00,0x00,}}, {0x5B63,2,{0xBC,0xBE,0x00,0x00,}}, {0x5B64,2,{0xB9,0xC2,0x00,0x00,}}, {0x5B65,2,{0xE6,0xDB,0x00,0x00,}}, {0x5B66,2,{0xD1,0xA7,0x00,0x00,}}, {0x5B67,2,{0x8C,0x4D,0x00,0x00,}}, {0x5B68,2,{0x8C,0x4E,0x00,0x00,}}, {0x5B69,2,{0xBA,0xA2,0x00,0x00,}}, {0x5B6A,2,{0xC2,0xCF,0x00,0x00,}}, {0x5B6B,2,{0x8C,0x4F,0x00,0x00,}}, {0x5B6C,2,{0xD8,0xAB,0x00,0x00,}}, {0x5B6D,2,{0x8C,0x50,0x00,0x00,}}, {0x5B6E,2,{0x8C,0x51,0x00,0x00,}}, {0x5B6F,2,{0x8C,0x52,0x00,0x00,}}, {0x5B70,2,{0xCA,0xEB,0x00,0x00,}}, {0x5B71,2,{0xE5,0xEE,0x00,0x00,}}, {0x5B72,2,{0x8C,0x53,0x00,0x00,}}, {0x5B73,2,{0xE6,0xDC,0x00,0x00,}}, {0x5B74,2,{0x8C,0x54,0x00,0x00,}}, {0x5B75,2,{0xB7,0xF5,0x00,0x00,}}, {0x5B76,2,{0x8C,0x55,0x00,0x00,}}, {0x5B77,2,{0x8C,0x56,0x00,0x00,}}, {0x5B78,2,{0x8C,0x57,0x00,0x00,}}, {0x5B79,2,{0x8C,0x58,0x00,0x00,}}, {0x5B7A,2,{0xC8,0xE6,0x00,0x00,}}, {0x5B7B,2,{0x8C,0x59,0x00,0x00,}}, {0x5B7C,2,{0x8C,0x5A,0x00,0x00,}}, {0x5B7D,2,{0xC4,0xF5,0x00,0x00,}}, {0x5B7E,2,{0x8C,0x5B,0x00,0x00,}}, {0x5B7F,2,{0x8C,0x5C,0x00,0x00,}}, {0x5B80,2,{0xE5,0xB2,0x00,0x00,}}, {0x5B81,2,{0xC4,0xFE,0x00,0x00,}}, {0x5B82,2,{0x8C,0x5D,0x00,0x00,}}, {0x5B83,2,{0xCB,0xFC,0x00,0x00,}}, {0x5B84,2,{0xE5,0xB3,0x00,0x00,}}, {0x5B85,2,{0xD5,0xAC,0x00,0x00,}}, {0x5B86,2,{0x8C,0x5E,0x00,0x00,}}, {0x5B87,2,{0xD3,0xEE,0x00,0x00,}}, {0x5B88,2,{0xCA,0xD8,0x00,0x00,}}, {0x5B89,2,{0xB0,0xB2,0x00,0x00,}}, {0x5B8A,2,{0x8C,0x5F,0x00,0x00,}}, {0x5B8B,2,{0xCB,0xCE,0x00,0x00,}}, {0x5B8C,2,{0xCD,0xEA,0x00,0x00,}}, {0x5B8D,2,{0x8C,0x60,0x00,0x00,}}, {0x5B8E,2,{0x8C,0x61,0x00,0x00,}}, {0x5B8F,2,{0xBA,0xEA,0x00,0x00,}}, {0x5B90,2,{0x8C,0x62,0x00,0x00,}}, {0x5B91,2,{0x8C,0x63,0x00,0x00,}}, {0x5B92,2,{0x8C,0x64,0x00,0x00,}}, {0x5B93,2,{0xE5,0xB5,0x00,0x00,}}, {0x5B94,2,{0x8C,0x65,0x00,0x00,}}, {0x5B95,2,{0xE5,0xB4,0x00,0x00,}}, {0x5B96,2,{0x8C,0x66,0x00,0x00,}}, {0x5B97,2,{0xD7,0xDA,0x00,0x00,}}, {0x5B98,2,{0xB9,0xD9,0x00,0x00,}}, {0x5B99,2,{0xD6,0xE6,0x00,0x00,}}, {0x5B9A,2,{0xB6,0xA8,0x00,0x00,}}, {0x5B9B,2,{0xCD,0xF0,0x00,0x00,}}, {0x5B9C,2,{0xD2,0xCB,0x00,0x00,}}, {0x5B9D,2,{0xB1,0xA6,0x00,0x00,}}, {0x5B9E,2,{0xCA,0xB5,0x00,0x00,}}, {0x5B9F,2,{0x8C,0x67,0x00,0x00,}}, {0x5BA0,2,{0xB3,0xE8,0x00,0x00,}}, {0x5BA1,2,{0xC9,0xF3,0x00,0x00,}}, {0x5BA2,2,{0xBF,0xCD,0x00,0x00,}}, {0x5BA3,2,{0xD0,0xFB,0x00,0x00,}}, {0x5BA4,2,{0xCA,0xD2,0x00,0x00,}}, {0x5BA5,2,{0xE5,0xB6,0x00,0x00,}}, {0x5BA6,2,{0xBB,0xC2,0x00,0x00,}}, {0x5BA7,2,{0x8C,0x68,0x00,0x00,}}, {0x5BA8,2,{0x8C,0x69,0x00,0x00,}}, {0x5BA9,2,{0x8C,0x6A,0x00,0x00,}}, {0x5BAA,2,{0xCF,0xDC,0x00,0x00,}}, {0x5BAB,2,{0xB9,0xAC,0x00,0x00,}}, {0x5BAC,2,{0x8C,0x6B,0x00,0x00,}}, {0x5BAD,2,{0x8C,0x6C,0x00,0x00,}}, {0x5BAE,2,{0x8C,0x6D,0x00,0x00,}}, {0x5BAF,2,{0x8C,0x6E,0x00,0x00,}}, {0x5BB0,2,{0xD4,0xD7,0x00,0x00,}}, {0x5BB1,2,{0x8C,0x6F,0x00,0x00,}}, {0x5BB2,2,{0x8C,0x70,0x00,0x00,}}, {0x5BB3,2,{0xBA,0xA6,0x00,0x00,}}, {0x5BB4,2,{0xD1,0xE7,0x00,0x00,}}, {0x5BB5,2,{0xCF,0xFC,0x00,0x00,}}, {0x5BB6,2,{0xBC,0xD2,0x00,0x00,}}, {0x5BB7,2,{0x8C,0x71,0x00,0x00,}}, {0x5BB8,2,{0xE5,0xB7,0x00,0x00,}}, {0x5BB9,2,{0xC8,0xDD,0x00,0x00,}}, {0x5BBA,2,{0x8C,0x72,0x00,0x00,}}, {0x5BBB,2,{0x8C,0x73,0x00,0x00,}}, {0x5BBC,2,{0x8C,0x74,0x00,0x00,}}, {0x5BBD,2,{0xBF,0xED,0x00,0x00,}}, {0x5BBE,2,{0xB1,0xF6,0x00,0x00,}}, {0x5BBF,2,{0xCB,0xDE,0x00,0x00,}}, {0x5BC0,2,{0x8C,0x75,0x00,0x00,}}, {0x5BC1,2,{0x8C,0x76,0x00,0x00,}}, {0x5BC2,2,{0xBC,0xC5,0x00,0x00,}}, {0x5BC3,2,{0x8C,0x77,0x00,0x00,}}, {0x5BC4,2,{0xBC,0xC4,0x00,0x00,}}, {0x5BC5,2,{0xD2,0xFA,0x00,0x00,}}, {0x5BC6,2,{0xC3,0xDC,0x00,0x00,}}, {0x5BC7,2,{0xBF,0xDC,0x00,0x00,}}, {0x5BC8,2,{0x8C,0x78,0x00,0x00,}}, {0x5BC9,2,{0x8C,0x79,0x00,0x00,}}, {0x5BCA,2,{0x8C,0x7A,0x00,0x00,}}, {0x5BCB,2,{0x8C,0x7B,0x00,0x00,}}, {0x5BCC,2,{0xB8,0xBB,0x00,0x00,}}, {0x5BCD,2,{0x8C,0x7C,0x00,0x00,}}, {0x5BCE,2,{0x8C,0x7D,0x00,0x00,}}, {0x5BCF,2,{0x8C,0x7E,0x00,0x00,}}, {0x5BD0,2,{0xC3,0xC2,0x00,0x00,}}, {0x5BD1,2,{0x8C,0x80,0x00,0x00,}}, {0x5BD2,2,{0xBA,0xAE,0x00,0x00,}}, {0x5BD3,2,{0xD4,0xA2,0x00,0x00,}}, {0x5BD4,2,{0x8C,0x81,0x00,0x00,}}, {0x5BD5,2,{0x8C,0x82,0x00,0x00,}}, {0x5BD6,2,{0x8C,0x83,0x00,0x00,}}, {0x5BD7,2,{0x8C,0x84,0x00,0x00,}}, {0x5BD8,2,{0x8C,0x85,0x00,0x00,}}, {0x5BD9,2,{0x8C,0x86,0x00,0x00,}}, {0x5BDA,2,{0x8C,0x87,0x00,0x00,}}, {0x5BDB,2,{0x8C,0x88,0x00,0x00,}}, {0x5BDC,2,{0x8C,0x89,0x00,0x00,}}, {0x5BDD,2,{0xC7,0xDE,0x00,0x00,}}, {0x5BDE,2,{0xC4,0xAF,0x00,0x00,}}, {0x5BDF,2,{0xB2,0xEC,0x00,0x00,}}, {0x5BE0,2,{0x8C,0x8A,0x00,0x00,}}, {0x5BE1,2,{0xB9,0xD1,0x00,0x00,}}, {0x5BE2,2,{0x8C,0x8B,0x00,0x00,}}, {0x5BE3,2,{0x8C,0x8C,0x00,0x00,}}, {0x5BE4,2,{0xE5,0xBB,0x00,0x00,}}, {0x5BE5,2,{0xC1,0xC8,0x00,0x00,}}, {0x5BE6,2,{0x8C,0x8D,0x00,0x00,}}, {0x5BE7,2,{0x8C,0x8E,0x00,0x00,}}, {0x5BE8,2,{0xD5,0xAF,0x00,0x00,}}, {0x5BE9,2,{0x8C,0x8F,0x00,0x00,}}, {0x5BEA,2,{0x8C,0x90,0x00,0x00,}}, {0x5BEB,2,{0x8C,0x91,0x00,0x00,}}, {0x5BEC,2,{0x8C,0x92,0x00,0x00,}}, {0x5BED,2,{0x8C,0x93,0x00,0x00,}}, {0x5BEE,2,{0xE5,0xBC,0x00,0x00,}}, {0x5BEF,2,{0x8C,0x94,0x00,0x00,}}, {0x5BF0,2,{0xE5,0xBE,0x00,0x00,}}, {0x5BF1,2,{0x8C,0x95,0x00,0x00,}}, {0x5BF2,2,{0x8C,0x96,0x00,0x00,}}, {0x5BF3,2,{0x8C,0x97,0x00,0x00,}}, {0x5BF4,2,{0x8C,0x98,0x00,0x00,}}, {0x5BF5,2,{0x8C,0x99,0x00,0x00,}}, {0x5BF6,2,{0x8C,0x9A,0x00,0x00,}}, {0x5BF7,2,{0x8C,0x9B,0x00,0x00,}}, {0x5BF8,2,{0xB4,0xE7,0x00,0x00,}}, {0x5BF9,2,{0xB6,0xD4,0x00,0x00,}}, {0x5BFA,2,{0xCB,0xC2,0x00,0x00,}}, {0x5BFB,2,{0xD1,0xB0,0x00,0x00,}}, {0x5BFC,2,{0xB5,0xBC,0x00,0x00,}}, {0x5BFD,2,{0x8C,0x9C,0x00,0x00,}}, {0x5BFE,2,{0x8C,0x9D,0x00,0x00,}}, {0x5BFF,2,{0xCA,0xD9,0x00,0x00,}}, {0x5C00,2,{0x8C,0x9E,0x00,0x00,}}, {0x5C01,2,{0xB7,0xE2,0x00,0x00,}}, {0x5C02,2,{0x8C,0x9F,0x00,0x00,}}, {0x5C03,2,{0x8C,0xA0,0x00,0x00,}}, {0x5C04,2,{0xC9,0xE4,0x00,0x00,}}, {0x5C05,2,{0x8C,0xA1,0x00,0x00,}}, {0x5C06,2,{0xBD,0xAB,0x00,0x00,}}, {0x5C07,2,{0x8C,0xA2,0x00,0x00,}}, {0x5C08,2,{0x8C,0xA3,0x00,0x00,}}, {0x5C09,2,{0xCE,0xBE,0x00,0x00,}}, {0x5C0A,2,{0xD7,0xF0,0x00,0x00,}}, {0x5C0B,2,{0x8C,0xA4,0x00,0x00,}}, {0x5C0C,2,{0x8C,0xA5,0x00,0x00,}}, {0x5C0D,2,{0x8C,0xA6,0x00,0x00,}}, {0x5C0E,2,{0x8C,0xA7,0x00,0x00,}}, {0x5C0F,2,{0xD0,0xA1,0x00,0x00,}}, {0x5C10,2,{0x8C,0xA8,0x00,0x00,}}, {0x5C11,2,{0xC9,0xD9,0x00,0x00,}}, {0x5C12,2,{0x8C,0xA9,0x00,0x00,}}, {0x5C13,2,{0x8C,0xAA,0x00,0x00,}}, {0x5C14,2,{0xB6,0xFB,0x00,0x00,}}, {0x5C15,2,{0xE6,0xD8,0x00,0x00,}}, {0x5C16,2,{0xBC,0xE2,0x00,0x00,}}, {0x5C17,2,{0x8C,0xAB,0x00,0x00,}}, {0x5C18,2,{0xB3,0xBE,0x00,0x00,}}, {0x5C19,2,{0x8C,0xAC,0x00,0x00,}}, {0x5C1A,2,{0xC9,0xD0,0x00,0x00,}}, {0x5C1B,2,{0x8C,0xAD,0x00,0x00,}}, {0x5C1C,2,{0xE6,0xD9,0x00,0x00,}}, {0x5C1D,2,{0xB3,0xA2,0x00,0x00,}}, {0x5C1E,2,{0x8C,0xAE,0x00,0x00,}}, {0x5C1F,2,{0x8C,0xAF,0x00,0x00,}}, {0x5C20,2,{0x8C,0xB0,0x00,0x00,}}, {0x5C21,2,{0x8C,0xB1,0x00,0x00,}}, {0x5C22,2,{0xDE,0xCC,0x00,0x00,}}, {0x5C23,2,{0x8C,0xB2,0x00,0x00,}}, {0x5C24,2,{0xD3,0xC8,0x00,0x00,}}, {0x5C25,2,{0xDE,0xCD,0x00,0x00,}}, {0x5C26,2,{0x8C,0xB3,0x00,0x00,}}, {0x5C27,2,{0xD2,0xA2,0x00,0x00,}}, {0x5C28,2,{0x8C,0xB4,0x00,0x00,}}, {0x5C29,2,{0x8C,0xB5,0x00,0x00,}}, {0x5C2A,2,{0x8C,0xB6,0x00,0x00,}}, {0x5C2B,2,{0x8C,0xB7,0x00,0x00,}}, {0x5C2C,2,{0xDE,0xCE,0x00,0x00,}}, {0x5C2D,2,{0x8C,0xB8,0x00,0x00,}}, {0x5C2E,2,{0x8C,0xB9,0x00,0x00,}}, {0x5C2F,2,{0x8C,0xBA,0x00,0x00,}}, {0x5C30,2,{0x8C,0xBB,0x00,0x00,}}, {0x5C31,2,{0xBE,0xCD,0x00,0x00,}}, {0x5C32,2,{0x8C,0xBC,0x00,0x00,}}, {0x5C33,2,{0x8C,0xBD,0x00,0x00,}}, {0x5C34,2,{0xDE,0xCF,0x00,0x00,}}, {0x5C35,2,{0x8C,0xBE,0x00,0x00,}}, {0x5C36,2,{0x8C,0xBF,0x00,0x00,}}, {0x5C37,2,{0x8C,0xC0,0x00,0x00,}}, {0x5C38,2,{0xCA,0xAC,0x00,0x00,}}, {0x5C39,2,{0xD2,0xFC,0x00,0x00,}}, {0x5C3A,2,{0xB3,0xDF,0x00,0x00,}}, {0x5C3B,2,{0xE5,0xEA,0x00,0x00,}}, {0x5C3C,2,{0xC4,0xE1,0x00,0x00,}}, {0x5C3D,2,{0xBE,0xA1,0x00,0x00,}}, {0x5C3E,2,{0xCE,0xB2,0x00,0x00,}}, {0x5C3F,2,{0xC4,0xF2,0x00,0x00,}}, {0x5C40,2,{0xBE,0xD6,0x00,0x00,}}, {0x5C41,2,{0xC6,0xA8,0x00,0x00,}}, {0x5C42,2,{0xB2,0xE3,0x00,0x00,}}, {0x5C43,2,{0x8C,0xC1,0x00,0x00,}}, {0x5C44,2,{0x8C,0xC2,0x00,0x00,}}, {0x5C45,2,{0xBE,0xD3,0x00,0x00,}}, {0x5C46,2,{0x8C,0xC3,0x00,0x00,}}, {0x5C47,2,{0x8C,0xC4,0x00,0x00,}}, {0x5C48,2,{0xC7,0xFC,0x00,0x00,}}, {0x5C49,2,{0xCC,0xEB,0x00,0x00,}}, {0x5C4A,2,{0xBD,0xEC,0x00,0x00,}}, {0x5C4B,2,{0xCE,0xDD,0x00,0x00,}}, {0x5C4C,2,{0x8C,0xC5,0x00,0x00,}}, {0x5C4D,2,{0x8C,0xC6,0x00,0x00,}}, {0x5C4E,2,{0xCA,0xBA,0x00,0x00,}}, {0x5C4F,2,{0xC6,0xC1,0x00,0x00,}}, {0x5C50,2,{0xE5,0xEC,0x00,0x00,}}, {0x5C51,2,{0xD0,0xBC,0x00,0x00,}}, {0x5C52,2,{0x8C,0xC7,0x00,0x00,}}, {0x5C53,2,{0x8C,0xC8,0x00,0x00,}}, {0x5C54,2,{0x8C,0xC9,0x00,0x00,}}, {0x5C55,2,{0xD5,0xB9,0x00,0x00,}}, {0x5C56,2,{0x8C,0xCA,0x00,0x00,}}, {0x5C57,2,{0x8C,0xCB,0x00,0x00,}}, {0x5C58,2,{0x8C,0xCC,0x00,0x00,}}, {0x5C59,2,{0xE5,0xED,0x00,0x00,}}, {0x5C5A,2,{0x8C,0xCD,0x00,0x00,}}, {0x5C5B,2,{0x8C,0xCE,0x00,0x00,}}, {0x5C5C,2,{0x8C,0xCF,0x00,0x00,}}, {0x5C5D,2,{0x8C,0xD0,0x00,0x00,}}, {0x5C5E,2,{0xCA,0xF4,0x00,0x00,}}, {0x5C5F,2,{0x8C,0xD1,0x00,0x00,}}, {0x5C60,2,{0xCD,0xC0,0x00,0x00,}}, {0x5C61,2,{0xC2,0xC5,0x00,0x00,}}, {0x5C62,2,{0x8C,0xD2,0x00,0x00,}}, {0x5C63,2,{0xE5,0xEF,0x00,0x00,}}, {0x5C64,2,{0x8C,0xD3,0x00,0x00,}}, {0x5C65,2,{0xC2,0xC4,0x00,0x00,}}, {0x5C66,2,{0xE5,0xF0,0x00,0x00,}}, {0x5C67,2,{0x8C,0xD4,0x00,0x00,}}, {0x5C68,2,{0x8C,0xD5,0x00,0x00,}}, {0x5C69,2,{0x8C,0xD6,0x00,0x00,}}, {0x5C6A,2,{0x8C,0xD7,0x00,0x00,}}, {0x5C6B,2,{0x8C,0xD8,0x00,0x00,}}, {0x5C6C,2,{0x8C,0xD9,0x00,0x00,}}, {0x5C6D,2,{0x8C,0xDA,0x00,0x00,}}, {0x5C6E,2,{0xE5,0xF8,0x00,0x00,}}, {0x5C6F,2,{0xCD,0xCD,0x00,0x00,}}, {0x5C70,2,{0x8C,0xDB,0x00,0x00,}}, {0x5C71,2,{0xC9,0xBD,0x00,0x00,}}, {0x5C72,2,{0x8C,0xDC,0x00,0x00,}}, {0x5C73,2,{0x8C,0xDD,0x00,0x00,}}, {0x5C74,2,{0x8C,0xDE,0x00,0x00,}}, {0x5C75,2,{0x8C,0xDF,0x00,0x00,}}, {0x5C76,2,{0x8C,0xE0,0x00,0x00,}}, {0x5C77,2,{0x8C,0xE1,0x00,0x00,}}, {0x5C78,2,{0x8C,0xE2,0x00,0x00,}}, {0x5C79,2,{0xD2,0xD9,0x00,0x00,}}, {0x5C7A,2,{0xE1,0xA8,0x00,0x00,}}, {0x5C7B,2,{0x8C,0xE3,0x00,0x00,}}, {0x5C7C,2,{0x8C,0xE4,0x00,0x00,}}, {0x5C7D,2,{0x8C,0xE5,0x00,0x00,}}, {0x5C7E,2,{0x8C,0xE6,0x00,0x00,}}, {0x5C7F,2,{0xD3,0xEC,0x00,0x00,}}, {0x5C80,2,{0x8C,0xE7,0x00,0x00,}}, {0x5C81,2,{0xCB,0xEA,0x00,0x00,}}, {0x5C82,2,{0xC6,0xF1,0x00,0x00,}}, {0x5C83,2,{0x8C,0xE8,0x00,0x00,}}, {0x5C84,2,{0x8C,0xE9,0x00,0x00,}}, {0x5C85,2,{0x8C,0xEA,0x00,0x00,}}, {0x5C86,2,{0x8C,0xEB,0x00,0x00,}}, {0x5C87,2,{0x8C,0xEC,0x00,0x00,}}, {0x5C88,2,{0xE1,0xAC,0x00,0x00,}}, {0x5C89,2,{0x8C,0xED,0x00,0x00,}}, {0x5C8A,2,{0x8C,0xEE,0x00,0x00,}}, {0x5C8B,2,{0x8C,0xEF,0x00,0x00,}}, {0x5C8C,2,{0xE1,0xA7,0x00,0x00,}}, {0x5C8D,2,{0xE1,0xA9,0x00,0x00,}}, {0x5C8E,2,{0x8C,0xF0,0x00,0x00,}}, {0x5C8F,2,{0x8C,0xF1,0x00,0x00,}}, {0x5C90,2,{0xE1,0xAA,0x00,0x00,}}, {0x5C91,2,{0xE1,0xAF,0x00,0x00,}}, {0x5C92,2,{0x8C,0xF2,0x00,0x00,}}, {0x5C93,2,{0x8C,0xF3,0x00,0x00,}}, {0x5C94,2,{0xB2,0xED,0x00,0x00,}}, {0x5C95,2,{0x8C,0xF4,0x00,0x00,}}, {0x5C96,2,{0xE1,0xAB,0x00,0x00,}}, {0x5C97,2,{0xB8,0xDA,0x00,0x00,}}, {0x5C98,2,{0xE1,0xAD,0x00,0x00,}}, {0x5C99,2,{0xE1,0xAE,0x00,0x00,}}, {0x5C9A,2,{0xE1,0xB0,0x00,0x00,}}, {0x5C9B,2,{0xB5,0xBA,0x00,0x00,}}, {0x5C9C,2,{0xE1,0xB1,0x00,0x00,}}, {0x5C9D,2,{0x8C,0xF5,0x00,0x00,}}, {0x5C9E,2,{0x8C,0xF6,0x00,0x00,}}, {0x5C9F,2,{0x8C,0xF7,0x00,0x00,}}, {0x5CA0,2,{0x8C,0xF8,0x00,0x00,}}, {0x5CA1,2,{0x8C,0xF9,0x00,0x00,}}, {0x5CA2,2,{0xE1,0xB3,0x00,0x00,}}, {0x5CA3,2,{0xE1,0xB8,0x00,0x00,}}, {0x5CA4,2,{0x8C,0xFA,0x00,0x00,}}, {0x5CA5,2,{0x8C,0xFB,0x00,0x00,}}, {0x5CA6,2,{0x8C,0xFC,0x00,0x00,}}, {0x5CA7,2,{0x8C,0xFD,0x00,0x00,}}, {0x5CA8,2,{0x8C,0xFE,0x00,0x00,}}, {0x5CA9,2,{0xD1,0xD2,0x00,0x00,}}, {0x5CAA,2,{0x8D,0x40,0x00,0x00,}}, {0x5CAB,2,{0xE1,0xB6,0x00,0x00,}}, {0x5CAC,2,{0xE1,0xB5,0x00,0x00,}}, {0x5CAD,2,{0xC1,0xEB,0x00,0x00,}}, {0x5CAE,2,{0x8D,0x41,0x00,0x00,}}, {0x5CAF,2,{0x8D,0x42,0x00,0x00,}}, {0x5CB0,2,{0x8D,0x43,0x00,0x00,}}, {0x5CB1,2,{0xE1,0xB7,0x00,0x00,}}, {0x5CB2,2,{0x8D,0x44,0x00,0x00,}}, {0x5CB3,2,{0xD4,0xC0,0x00,0x00,}}, {0x5CB4,2,{0x8D,0x45,0x00,0x00,}}, {0x5CB5,2,{0xE1,0xB2,0x00,0x00,}}, {0x5CB6,2,{0x8D,0x46,0x00,0x00,}}, {0x5CB7,2,{0xE1,0xBA,0x00,0x00,}}, {0x5CB8,2,{0xB0,0xB6,0x00,0x00,}}, {0x5CB9,2,{0x8D,0x47,0x00,0x00,}}, {0x5CBA,2,{0x8D,0x48,0x00,0x00,}}, {0x5CBB,2,{0x8D,0x49,0x00,0x00,}}, {0x5CBC,2,{0x8D,0x4A,0x00,0x00,}}, {0x5CBD,2,{0xE1,0xB4,0x00,0x00,}}, {0x5CBE,2,{0x8D,0x4B,0x00,0x00,}}, {0x5CBF,2,{0xBF,0xF9,0x00,0x00,}}, {0x5CC0,2,{0x8D,0x4C,0x00,0x00,}}, {0x5CC1,2,{0xE1,0xB9,0x00,0x00,}}, {0x5CC2,2,{0x8D,0x4D,0x00,0x00,}}, {0x5CC3,2,{0x8D,0x4E,0x00,0x00,}}, {0x5CC4,2,{0xE1,0xBB,0x00,0x00,}}, {0x5CC5,2,{0x8D,0x4F,0x00,0x00,}}, {0x5CC6,2,{0x8D,0x50,0x00,0x00,}}, {0x5CC7,2,{0x8D,0x51,0x00,0x00,}}, {0x5CC8,2,{0x8D,0x52,0x00,0x00,}}, {0x5CC9,2,{0x8D,0x53,0x00,0x00,}}, {0x5CCA,2,{0x8D,0x54,0x00,0x00,}}, {0x5CCB,2,{0xE1,0xBE,0x00,0x00,}}, {0x5CCC,2,{0x8D,0x55,0x00,0x00,}}, {0x5CCD,2,{0x8D,0x56,0x00,0x00,}}, {0x5CCE,2,{0x8D,0x57,0x00,0x00,}}, {0x5CCF,2,{0x8D,0x58,0x00,0x00,}}, {0x5CD0,2,{0x8D,0x59,0x00,0x00,}}, {0x5CD1,2,{0x8D,0x5A,0x00,0x00,}}, {0x5CD2,2,{0xE1,0xBC,0x00,0x00,}}, {0x5CD3,2,{0x8D,0x5B,0x00,0x00,}}, {0x5CD4,2,{0x8D,0x5C,0x00,0x00,}}, {0x5CD5,2,{0x8D,0x5D,0x00,0x00,}}, {0x5CD6,2,{0x8D,0x5E,0x00,0x00,}}, {0x5CD7,2,{0x8D,0x5F,0x00,0x00,}}, {0x5CD8,2,{0x8D,0x60,0x00,0x00,}}, {0x5CD9,2,{0xD6,0xC5,0x00,0x00,}}, {0x5CDA,2,{0x8D,0x61,0x00,0x00,}}, {0x5CDB,2,{0x8D,0x62,0x00,0x00,}}, {0x5CDC,2,{0x8D,0x63,0x00,0x00,}}, {0x5CDD,2,{0x8D,0x64,0x00,0x00,}}, {0x5CDE,2,{0x8D,0x65,0x00,0x00,}}, {0x5CDF,2,{0x8D,0x66,0x00,0x00,}}, {0x5CE0,2,{0x8D,0x67,0x00,0x00,}}, {0x5CE1,2,{0xCF,0xBF,0x00,0x00,}}, {0x5CE2,2,{0x8D,0x68,0x00,0x00,}}, {0x5CE3,2,{0x8D,0x69,0x00,0x00,}}, {0x5CE4,2,{0xE1,0xBD,0x00,0x00,}}, {0x5CE5,2,{0xE1,0xBF,0x00,0x00,}}, {0x5CE6,2,{0xC2,0xCD,0x00,0x00,}}, {0x5CE7,2,{0x8D,0x6A,0x00,0x00,}}, {0x5CE8,2,{0xB6,0xEB,0x00,0x00,}}, {0x5CE9,2,{0x8D,0x6B,0x00,0x00,}}, {0x5CEA,2,{0xD3,0xF8,0x00,0x00,}}, {0x5CEB,2,{0x8D,0x6C,0x00,0x00,}}, {0x5CEC,2,{0x8D,0x6D,0x00,0x00,}}, {0x5CED,2,{0xC7,0xCD,0x00,0x00,}}, {0x5CEE,2,{0x8D,0x6E,0x00,0x00,}}, {0x5CEF,2,{0x8D,0x6F,0x00,0x00,}}, {0x5CF0,2,{0xB7,0xE5,0x00,0x00,}}, {0x5CF1,2,{0x8D,0x70,0x00,0x00,}}, {0x5CF2,2,{0x8D,0x71,0x00,0x00,}}, {0x5CF3,2,{0x8D,0x72,0x00,0x00,}}, {0x5CF4,2,{0x8D,0x73,0x00,0x00,}}, {0x5CF5,2,{0x8D,0x74,0x00,0x00,}}, {0x5CF6,2,{0x8D,0x75,0x00,0x00,}}, {0x5CF7,2,{0x8D,0x76,0x00,0x00,}}, {0x5CF8,2,{0x8D,0x77,0x00,0x00,}}, {0x5CF9,2,{0x8D,0x78,0x00,0x00,}}, {0x5CFA,2,{0x8D,0x79,0x00,0x00,}}, {0x5CFB,2,{0xBE,0xFE,0x00,0x00,}}, {0x5CFC,2,{0x8D,0x7A,0x00,0x00,}}, {0x5CFD,2,{0x8D,0x7B,0x00,0x00,}}, {0x5CFE,2,{0x8D,0x7C,0x00,0x00,}}, {0x5CFF,2,{0x8D,0x7D,0x00,0x00,}}, {0x5D00,2,{0x8D,0x7E,0x00,0x00,}}, {0x5D01,2,{0x8D,0x80,0x00,0x00,}}, {0x5D02,2,{0xE1,0xC0,0x00,0x00,}}, {0x5D03,2,{0xE1,0xC1,0x00,0x00,}}, {0x5D04,2,{0x8D,0x81,0x00,0x00,}}, {0x5D05,2,{0x8D,0x82,0x00,0x00,}}, {0x5D06,2,{0xE1,0xC7,0x00,0x00,}}, {0x5D07,2,{0xB3,0xE7,0x00,0x00,}}, {0x5D08,2,{0x8D,0x83,0x00,0x00,}}, {0x5D09,2,{0x8D,0x84,0x00,0x00,}}, {0x5D0A,2,{0x8D,0x85,0x00,0x00,}}, {0x5D0B,2,{0x8D,0x86,0x00,0x00,}}, {0x5D0C,2,{0x8D,0x87,0x00,0x00,}}, {0x5D0D,2,{0x8D,0x88,0x00,0x00,}}, {0x5D0E,2,{0xC6,0xE9,0x00,0x00,}}, {0x5D0F,2,{0x8D,0x89,0x00,0x00,}}, {0x5D10,2,{0x8D,0x8A,0x00,0x00,}}, {0x5D11,2,{0x8D,0x8B,0x00,0x00,}}, {0x5D12,2,{0x8D,0x8C,0x00,0x00,}}, {0x5D13,2,{0x8D,0x8D,0x00,0x00,}}, {0x5D14,2,{0xB4,0xDE,0x00,0x00,}}, {0x5D15,2,{0x8D,0x8E,0x00,0x00,}}, {0x5D16,2,{0xD1,0xC2,0x00,0x00,}}, {0x5D17,2,{0x8D,0x8F,0x00,0x00,}}, {0x5D18,2,{0x8D,0x90,0x00,0x00,}}, {0x5D19,2,{0x8D,0x91,0x00,0x00,}}, {0x5D1A,2,{0x8D,0x92,0x00,0x00,}}, {0x5D1B,2,{0xE1,0xC8,0x00,0x00,}}, {0x5D1C,2,{0x8D,0x93,0x00,0x00,}}, {0x5D1D,2,{0x8D,0x94,0x00,0x00,}}, {0x5D1E,2,{0xE1,0xC6,0x00,0x00,}}, {0x5D1F,2,{0x8D,0x95,0x00,0x00,}}, {0x5D20,2,{0x8D,0x96,0x00,0x00,}}, {0x5D21,2,{0x8D,0x97,0x00,0x00,}}, {0x5D22,2,{0x8D,0x98,0x00,0x00,}}, {0x5D23,2,{0x8D,0x99,0x00,0x00,}}, {0x5D24,2,{0xE1,0xC5,0x00,0x00,}}, {0x5D25,2,{0x8D,0x9A,0x00,0x00,}}, {0x5D26,2,{0xE1,0xC3,0x00,0x00,}}, {0x5D27,2,{0xE1,0xC2,0x00,0x00,}}, {0x5D28,2,{0x8D,0x9B,0x00,0x00,}}, {0x5D29,2,{0xB1,0xC0,0x00,0x00,}}, {0x5D2A,2,{0x8D,0x9C,0x00,0x00,}}, {0x5D2B,2,{0x8D,0x9D,0x00,0x00,}}, {0x5D2C,2,{0x8D,0x9E,0x00,0x00,}}, {0x5D2D,2,{0xD5,0xB8,0x00,0x00,}}, {0x5D2E,2,{0xE1,0xC4,0x00,0x00,}}, {0x5D2F,2,{0x8D,0x9F,0x00,0x00,}}, {0x5D30,2,{0x8D,0xA0,0x00,0x00,}}, {0x5D31,2,{0x8D,0xA1,0x00,0x00,}}, {0x5D32,2,{0x8D,0xA2,0x00,0x00,}}, {0x5D33,2,{0x8D,0xA3,0x00,0x00,}}, {0x5D34,2,{0xE1,0xCB,0x00,0x00,}}, {0x5D35,2,{0x8D,0xA4,0x00,0x00,}}, {0x5D36,2,{0x8D,0xA5,0x00,0x00,}}, {0x5D37,2,{0x8D,0xA6,0x00,0x00,}}, {0x5D38,2,{0x8D,0xA7,0x00,0x00,}}, {0x5D39,2,{0x8D,0xA8,0x00,0x00,}}, {0x5D3A,2,{0x8D,0xA9,0x00,0x00,}}, {0x5D3B,2,{0x8D,0xAA,0x00,0x00,}}, {0x5D3C,2,{0x8D,0xAB,0x00,0x00,}}, {0x5D3D,2,{0xE1,0xCC,0x00,0x00,}}, {0x5D3E,2,{0xE1,0xCA,0x00,0x00,}}, {0x5D3F,2,{0x8D,0xAC,0x00,0x00,}}, {0x5D40,2,{0x8D,0xAD,0x00,0x00,}}, {0x5D41,2,{0x8D,0xAE,0x00,0x00,}}, {0x5D42,2,{0x8D,0xAF,0x00,0x00,}}, {0x5D43,2,{0x8D,0xB0,0x00,0x00,}}, {0x5D44,2,{0x8D,0xB1,0x00,0x00,}}, {0x5D45,2,{0x8D,0xB2,0x00,0x00,}}, {0x5D46,2,{0x8D,0xB3,0x00,0x00,}}, {0x5D47,2,{0xEF,0xFA,0x00,0x00,}}, {0x5D48,2,{0x8D,0xB4,0x00,0x00,}}, {0x5D49,2,{0x8D,0xB5,0x00,0x00,}}, {0x5D4A,2,{0xE1,0xD3,0x00,0x00,}}, {0x5D4B,2,{0xE1,0xD2,0x00,0x00,}}, {0x5D4C,2,{0xC7,0xB6,0x00,0x00,}}, {0x5D4D,2,{0x8D,0xB6,0x00,0x00,}}, {0x5D4E,2,{0x8D,0xB7,0x00,0x00,}}, {0x5D4F,2,{0x8D,0xB8,0x00,0x00,}}, {0x5D50,2,{0x8D,0xB9,0x00,0x00,}}, {0x5D51,2,{0x8D,0xBA,0x00,0x00,}}, {0x5D52,2,{0x8D,0xBB,0x00,0x00,}}, {0x5D53,2,{0x8D,0xBC,0x00,0x00,}}, {0x5D54,2,{0x8D,0xBD,0x00,0x00,}}, {0x5D55,2,{0x8D,0xBE,0x00,0x00,}}, {0x5D56,2,{0x8D,0xBF,0x00,0x00,}}, {0x5D57,2,{0x8D,0xC0,0x00,0x00,}}, {0x5D58,2,{0xE1,0xC9,0x00,0x00,}}, {0x5D59,2,{0x8D,0xC1,0x00,0x00,}}, {0x5D5A,2,{0x8D,0xC2,0x00,0x00,}}, {0x5D5B,2,{0xE1,0xCE,0x00,0x00,}}, {0x5D5C,2,{0x8D,0xC3,0x00,0x00,}}, {0x5D5D,2,{0xE1,0xD0,0x00,0x00,}}, {0x5D5E,2,{0x8D,0xC4,0x00,0x00,}}, {0x5D5F,2,{0x8D,0xC5,0x00,0x00,}}, {0x5D60,2,{0x8D,0xC6,0x00,0x00,}}, {0x5D61,2,{0x8D,0xC7,0x00,0x00,}}, {0x5D62,2,{0x8D,0xC8,0x00,0x00,}}, {0x5D63,2,{0x8D,0xC9,0x00,0x00,}}, {0x5D64,2,{0x8D,0xCA,0x00,0x00,}}, {0x5D65,2,{0x8D,0xCB,0x00,0x00,}}, {0x5D66,2,{0x8D,0xCC,0x00,0x00,}}, {0x5D67,2,{0x8D,0xCD,0x00,0x00,}}, {0x5D68,2,{0x8D,0xCE,0x00,0x00,}}, {0x5D69,2,{0xE1,0xD4,0x00,0x00,}}, {0x5D6A,2,{0x8D,0xCF,0x00,0x00,}}, {0x5D6B,2,{0xE1,0xD1,0x00,0x00,}}, {0x5D6C,2,{0xE1,0xCD,0x00,0x00,}}, {0x5D6D,2,{0x8D,0xD0,0x00,0x00,}}, {0x5D6E,2,{0x8D,0xD1,0x00,0x00,}}, {0x5D6F,2,{0xE1,0xCF,0x00,0x00,}}, {0x5D70,2,{0x8D,0xD2,0x00,0x00,}}, {0x5D71,2,{0x8D,0xD3,0x00,0x00,}}, {0x5D72,2,{0x8D,0xD4,0x00,0x00,}}, {0x5D73,2,{0x8D,0xD5,0x00,0x00,}}, {0x5D74,2,{0xE1,0xD5,0x00,0x00,}}, {0x5D75,2,{0x8D,0xD6,0x00,0x00,}}, {0x5D76,2,{0x8D,0xD7,0x00,0x00,}}, {0x5D77,2,{0x8D,0xD8,0x00,0x00,}}, {0x5D78,2,{0x8D,0xD9,0x00,0x00,}}, {0x5D79,2,{0x8D,0xDA,0x00,0x00,}}, {0x5D7A,2,{0x8D,0xDB,0x00,0x00,}}, {0x5D7B,2,{0x8D,0xDC,0x00,0x00,}}, {0x5D7C,2,{0x8D,0xDD,0x00,0x00,}}, {0x5D7D,2,{0x8D,0xDE,0x00,0x00,}}, {0x5D7E,2,{0x8D,0xDF,0x00,0x00,}}, {0x5D7F,2,{0x8D,0xE0,0x00,0x00,}}, {0x5D80,2,{0x8D,0xE1,0x00,0x00,}}, {0x5D81,2,{0x8D,0xE2,0x00,0x00,}}, {0x5D82,2,{0xE1,0xD6,0x00,0x00,}}, {0x5D83,2,{0x8D,0xE3,0x00,0x00,}}, {0x5D84,2,{0x8D,0xE4,0x00,0x00,}}, {0x5D85,2,{0x8D,0xE5,0x00,0x00,}}, {0x5D86,2,{0x8D,0xE6,0x00,0x00,}}, {0x5D87,2,{0x8D,0xE7,0x00,0x00,}}, {0x5D88,2,{0x8D,0xE8,0x00,0x00,}}, {0x5D89,2,{0x8D,0xE9,0x00,0x00,}}, {0x5D8A,2,{0x8D,0xEA,0x00,0x00,}}, {0x5D8B,2,{0x8D,0xEB,0x00,0x00,}}, {0x5D8C,2,{0x8D,0xEC,0x00,0x00,}}, {0x5D8D,2,{0x8D,0xED,0x00,0x00,}}, {0x5D8E,2,{0x8D,0xEE,0x00,0x00,}}, {0x5D8F,2,{0x8D,0xEF,0x00,0x00,}}, {0x5D90,2,{0x8D,0xF0,0x00,0x00,}}, {0x5D91,2,{0x8D,0xF1,0x00,0x00,}}, {0x5D92,2,{0x8D,0xF2,0x00,0x00,}}, {0x5D93,2,{0x8D,0xF3,0x00,0x00,}}, {0x5D94,2,{0x8D,0xF4,0x00,0x00,}}, {0x5D95,2,{0x8D,0xF5,0x00,0x00,}}, {0x5D96,2,{0x8D,0xF6,0x00,0x00,}}, {0x5D97,2,{0x8D,0xF7,0x00,0x00,}}, {0x5D98,2,{0x8D,0xF8,0x00,0x00,}}, {0x5D99,2,{0xE1,0xD7,0x00,0x00,}}, {0x5D9A,2,{0x8D,0xF9,0x00,0x00,}}, {0x5D9B,2,{0x8D,0xFA,0x00,0x00,}}, {0x5D9C,2,{0x8D,0xFB,0x00,0x00,}}, {0x5D9D,2,{0xE1,0xD8,0x00,0x00,}}, {0x5D9E,2,{0x8D,0xFC,0x00,0x00,}}, {0x5D9F,2,{0x8D,0xFD,0x00,0x00,}}, {0x5DA0,2,{0x8D,0xFE,0x00,0x00,}}, {0x5DA1,2,{0x8E,0x40,0x00,0x00,}}, {0x5DA2,2,{0x8E,0x41,0x00,0x00,}}, {0x5DA3,2,{0x8E,0x42,0x00,0x00,}}, {0x5DA4,2,{0x8E,0x43,0x00,0x00,}}, {0x5DA5,2,{0x8E,0x44,0x00,0x00,}}, {0x5DA6,2,{0x8E,0x45,0x00,0x00,}}, {0x5DA7,2,{0x8E,0x46,0x00,0x00,}}, {0x5DA8,2,{0x8E,0x47,0x00,0x00,}}, {0x5DA9,2,{0x8E,0x48,0x00,0x00,}}, {0x5DAA,2,{0x8E,0x49,0x00,0x00,}}, {0x5DAB,2,{0x8E,0x4A,0x00,0x00,}}, {0x5DAC,2,{0x8E,0x4B,0x00,0x00,}}, {0x5DAD,2,{0x8E,0x4C,0x00,0x00,}}, {0x5DAE,2,{0x8E,0x4D,0x00,0x00,}}, {0x5DAF,2,{0x8E,0x4E,0x00,0x00,}}, {0x5DB0,2,{0x8E,0x4F,0x00,0x00,}}, {0x5DB1,2,{0x8E,0x50,0x00,0x00,}}, {0x5DB2,2,{0x8E,0x51,0x00,0x00,}}, {0x5DB3,2,{0x8E,0x52,0x00,0x00,}}, {0x5DB4,2,{0x8E,0x53,0x00,0x00,}}, {0x5DB5,2,{0x8E,0x54,0x00,0x00,}}, {0x5DB6,2,{0x8E,0x55,0x00,0x00,}}, {0x5DB7,2,{0xE1,0xDA,0x00,0x00,}}, {0x5DB8,2,{0x8E,0x56,0x00,0x00,}}, {0x5DB9,2,{0x8E,0x57,0x00,0x00,}}, {0x5DBA,2,{0x8E,0x58,0x00,0x00,}}, {0x5DBB,2,{0x8E,0x59,0x00,0x00,}}, {0x5DBC,2,{0x8E,0x5A,0x00,0x00,}}, {0x5DBD,2,{0x8E,0x5B,0x00,0x00,}}, {0x5DBE,2,{0x8E,0x5C,0x00,0x00,}}, {0x5DBF,2,{0x8E,0x5D,0x00,0x00,}}, {0x5DC0,2,{0x8E,0x5E,0x00,0x00,}}, {0x5DC1,2,{0x8E,0x5F,0x00,0x00,}}, {0x5DC2,2,{0x8E,0x60,0x00,0x00,}}, {0x5DC3,2,{0x8E,0x61,0x00,0x00,}}, {0x5DC4,2,{0x8E,0x62,0x00,0x00,}}, {0x5DC5,2,{0xE1,0xDB,0x00,0x00,}}, {0x5DC6,2,{0x8E,0x63,0x00,0x00,}}, {0x5DC7,2,{0x8E,0x64,0x00,0x00,}}, {0x5DC8,2,{0x8E,0x65,0x00,0x00,}}, {0x5DC9,2,{0x8E,0x66,0x00,0x00,}}, {0x5DCA,2,{0x8E,0x67,0x00,0x00,}}, {0x5DCB,2,{0x8E,0x68,0x00,0x00,}}, {0x5DCC,2,{0x8E,0x69,0x00,0x00,}}, {0x5DCD,2,{0xCE,0xA1,0x00,0x00,}}, {0x5DCE,2,{0x8E,0x6A,0x00,0x00,}}, {0x5DCF,2,{0x8E,0x6B,0x00,0x00,}}, {0x5DD0,2,{0x8E,0x6C,0x00,0x00,}}, {0x5DD1,2,{0x8E,0x6D,0x00,0x00,}}, {0x5DD2,2,{0x8E,0x6E,0x00,0x00,}}, {0x5DD3,2,{0x8E,0x6F,0x00,0x00,}}, {0x5DD4,2,{0x8E,0x70,0x00,0x00,}}, {0x5DD5,2,{0x8E,0x71,0x00,0x00,}}, {0x5DD6,2,{0x8E,0x72,0x00,0x00,}}, {0x5DD7,2,{0x8E,0x73,0x00,0x00,}}, {0x5DD8,2,{0x8E,0x74,0x00,0x00,}}, {0x5DD9,2,{0x8E,0x75,0x00,0x00,}}, {0x5DDA,2,{0x8E,0x76,0x00,0x00,}}, {0x5DDB,2,{0xE7,0xDD,0x00,0x00,}}, {0x5DDC,2,{0x8E,0x77,0x00,0x00,}}, {0x5DDD,2,{0xB4,0xA8,0x00,0x00,}}, {0x5DDE,2,{0xD6,0xDD,0x00,0x00,}}, {0x5DDF,2,{0x8E,0x78,0x00,0x00,}}, {0x5DE0,2,{0x8E,0x79,0x00,0x00,}}, {0x5DE1,2,{0xD1,0xB2,0x00,0x00,}}, {0x5DE2,2,{0xB3,0xB2,0x00,0x00,}}, {0x5DE3,2,{0x8E,0x7A,0x00,0x00,}}, {0x5DE4,2,{0x8E,0x7B,0x00,0x00,}}, {0x5DE5,2,{0xB9,0xA4,0x00,0x00,}}, {0x5DE6,2,{0xD7,0xF3,0x00,0x00,}}, {0x5DE7,2,{0xC7,0xC9,0x00,0x00,}}, {0x5DE8,2,{0xBE,0xDE,0x00,0x00,}}, {0x5DE9,2,{0xB9,0xAE,0x00,0x00,}}, {0x5DEA,2,{0x8E,0x7C,0x00,0x00,}}, {0x5DEB,2,{0xCE,0xD7,0x00,0x00,}}, {0x5DEC,2,{0x8E,0x7D,0x00,0x00,}}, {0x5DED,2,{0x8E,0x7E,0x00,0x00,}}, {0x5DEE,2,{0xB2,0xEE,0x00,0x00,}}, {0x5DEF,2,{0xDB,0xCF,0x00,0x00,}}, {0x5DF0,2,{0x8E,0x80,0x00,0x00,}}, {0x5DF1,2,{0xBC,0xBA,0x00,0x00,}}, {0x5DF2,2,{0xD2,0xD1,0x00,0x00,}}, {0x5DF3,2,{0xCB,0xC8,0x00,0x00,}}, {0x5DF4,2,{0xB0,0xCD,0x00,0x00,}}, {0x5DF5,2,{0x8E,0x81,0x00,0x00,}}, {0x5DF6,2,{0x8E,0x82,0x00,0x00,}}, {0x5DF7,2,{0xCF,0xEF,0x00,0x00,}}, {0x5DF8,2,{0x8E,0x83,0x00,0x00,}}, {0x5DF9,2,{0x8E,0x84,0x00,0x00,}}, {0x5DFA,2,{0x8E,0x85,0x00,0x00,}}, {0x5DFB,2,{0x8E,0x86,0x00,0x00,}}, {0x5DFC,2,{0x8E,0x87,0x00,0x00,}}, {0x5DFD,2,{0xD9,0xE3,0x00,0x00,}}, {0x5DFE,2,{0xBD,0xED,0x00,0x00,}}, {0x5DFF,2,{0x8E,0x88,0x00,0x00,}}, {0x5E00,2,{0x8E,0x89,0x00,0x00,}}, {0x5E01,2,{0xB1,0xD2,0x00,0x00,}}, {0x5E02,2,{0xCA,0xD0,0x00,0x00,}}, {0x5E03,2,{0xB2,0xBC,0x00,0x00,}}, {0x5E04,2,{0x8E,0x8A,0x00,0x00,}}, {0x5E05,2,{0xCB,0xA7,0x00,0x00,}}, {0x5E06,2,{0xB7,0xAB,0x00,0x00,}}, {0x5E07,2,{0x8E,0x8B,0x00,0x00,}}, {0x5E08,2,{0xCA,0xA6,0x00,0x00,}}, {0x5E09,2,{0x8E,0x8C,0x00,0x00,}}, {0x5E0A,2,{0x8E,0x8D,0x00,0x00,}}, {0x5E0B,2,{0x8E,0x8E,0x00,0x00,}}, {0x5E0C,2,{0xCF,0xA3,0x00,0x00,}}, {0x5E0D,2,{0x8E,0x8F,0x00,0x00,}}, {0x5E0E,2,{0x8E,0x90,0x00,0x00,}}, {0x5E0F,2,{0xE0,0xF8,0x00,0x00,}}, {0x5E10,2,{0xD5,0xCA,0x00,0x00,}}, {0x5E11,2,{0xE0,0xFB,0x00,0x00,}}, {0x5E12,2,{0x8E,0x91,0x00,0x00,}}, {0x5E13,2,{0x8E,0x92,0x00,0x00,}}, {0x5E14,2,{0xE0,0xFA,0x00,0x00,}}, {0x5E15,2,{0xC5,0xC1,0x00,0x00,}}, {0x5E16,2,{0xCC,0xFB,0x00,0x00,}}, {0x5E17,2,{0x8E,0x93,0x00,0x00,}}, {0x5E18,2,{0xC1,0xB1,0x00,0x00,}}, {0x5E19,2,{0xE0,0xF9,0x00,0x00,}}, {0x5E1A,2,{0xD6,0xE3,0x00,0x00,}}, {0x5E1B,2,{0xB2,0xAF,0x00,0x00,}}, {0x5E1C,2,{0xD6,0xC4,0x00,0x00,}}, {0x5E1D,2,{0xB5,0xDB,0x00,0x00,}}, {0x5E1E,2,{0x8E,0x94,0x00,0x00,}}, {0x5E1F,2,{0x8E,0x95,0x00,0x00,}}, {0x5E20,2,{0x8E,0x96,0x00,0x00,}}, {0x5E21,2,{0x8E,0x97,0x00,0x00,}}, {0x5E22,2,{0x8E,0x98,0x00,0x00,}}, {0x5E23,2,{0x8E,0x99,0x00,0x00,}}, {0x5E24,2,{0x8E,0x9A,0x00,0x00,}}, {0x5E25,2,{0x8E,0x9B,0x00,0x00,}}, {0x5E26,2,{0xB4,0xF8,0x00,0x00,}}, {0x5E27,2,{0xD6,0xA1,0x00,0x00,}}, {0x5E28,2,{0x8E,0x9C,0x00,0x00,}}, {0x5E29,2,{0x8E,0x9D,0x00,0x00,}}, {0x5E2A,2,{0x8E,0x9E,0x00,0x00,}}, {0x5E2B,2,{0x8E,0x9F,0x00,0x00,}}, {0x5E2C,2,{0x8E,0xA0,0x00,0x00,}}, {0x5E2D,2,{0xCF,0xAF,0x00,0x00,}}, {0x5E2E,2,{0xB0,0xEF,0x00,0x00,}}, {0x5E2F,2,{0x8E,0xA1,0x00,0x00,}}, {0x5E30,2,{0x8E,0xA2,0x00,0x00,}}, {0x5E31,2,{0xE0,0xFC,0x00,0x00,}}, {0x5E32,2,{0x8E,0xA3,0x00,0x00,}}, {0x5E33,2,{0x8E,0xA4,0x00,0x00,}}, {0x5E34,2,{0x8E,0xA5,0x00,0x00,}}, {0x5E35,2,{0x8E,0xA6,0x00,0x00,}}, {0x5E36,2,{0x8E,0xA7,0x00,0x00,}}, {0x5E37,2,{0xE1,0xA1,0x00,0x00,}}, {0x5E38,2,{0xB3,0xA3,0x00,0x00,}}, {0x5E39,2,{0x8E,0xA8,0x00,0x00,}}, {0x5E3A,2,{0x8E,0xA9,0x00,0x00,}}, {0x5E3B,2,{0xE0,0xFD,0x00,0x00,}}, {0x5E3C,2,{0xE0,0xFE,0x00,0x00,}}, {0x5E3D,2,{0xC3,0xB1,0x00,0x00,}}, {0x5E3E,2,{0x8E,0xAA,0x00,0x00,}}, {0x5E3F,2,{0x8E,0xAB,0x00,0x00,}}, {0x5E40,2,{0x8E,0xAC,0x00,0x00,}}, {0x5E41,2,{0x8E,0xAD,0x00,0x00,}}, {0x5E42,2,{0xC3,0xDD,0x00,0x00,}}, {0x5E43,2,{0x8E,0xAE,0x00,0x00,}}, {0x5E44,2,{0xE1,0xA2,0x00,0x00,}}, {0x5E45,2,{0xB7,0xF9,0x00,0x00,}}, {0x5E46,2,{0x8E,0xAF,0x00,0x00,}}, {0x5E47,2,{0x8E,0xB0,0x00,0x00,}}, {0x5E48,2,{0x8E,0xB1,0x00,0x00,}}, {0x5E49,2,{0x8E,0xB2,0x00,0x00,}}, {0x5E4A,2,{0x8E,0xB3,0x00,0x00,}}, {0x5E4B,2,{0x8E,0xB4,0x00,0x00,}}, {0x5E4C,2,{0xBB,0xCF,0x00,0x00,}}, {0x5E4D,2,{0x8E,0xB5,0x00,0x00,}}, {0x5E4E,2,{0x8E,0xB6,0x00,0x00,}}, {0x5E4F,2,{0x8E,0xB7,0x00,0x00,}}, {0x5E50,2,{0x8E,0xB8,0x00,0x00,}}, {0x5E51,2,{0x8E,0xB9,0x00,0x00,}}, {0x5E52,2,{0x8E,0xBA,0x00,0x00,}}, {0x5E53,2,{0x8E,0xBB,0x00,0x00,}}, {0x5E54,2,{0xE1,0xA3,0x00,0x00,}}, {0x5E55,2,{0xC4,0xBB,0x00,0x00,}}, {0x5E56,2,{0x8E,0xBC,0x00,0x00,}}, {0x5E57,2,{0x8E,0xBD,0x00,0x00,}}, {0x5E58,2,{0x8E,0xBE,0x00,0x00,}}, {0x5E59,2,{0x8E,0xBF,0x00,0x00,}}, {0x5E5A,2,{0x8E,0xC0,0x00,0x00,}}, {0x5E5B,2,{0xE1,0xA4,0x00,0x00,}}, {0x5E5C,2,{0x8E,0xC1,0x00,0x00,}}, {0x5E5D,2,{0x8E,0xC2,0x00,0x00,}}, {0x5E5E,2,{0xE1,0xA5,0x00,0x00,}}, {0x5E5F,2,{0x8E,0xC3,0x00,0x00,}}, {0x5E60,2,{0x8E,0xC4,0x00,0x00,}}, {0x5E61,2,{0xE1,0xA6,0x00,0x00,}}, {0x5E62,2,{0xB4,0xB1,0x00,0x00,}}, {0x5E63,2,{0x8E,0xC5,0x00,0x00,}}, {0x5E64,2,{0x8E,0xC6,0x00,0x00,}}, {0x5E65,2,{0x8E,0xC7,0x00,0x00,}}, {0x5E66,2,{0x8E,0xC8,0x00,0x00,}}, {0x5E67,2,{0x8E,0xC9,0x00,0x00,}}, {0x5E68,2,{0x8E,0xCA,0x00,0x00,}}, {0x5E69,2,{0x8E,0xCB,0x00,0x00,}}, {0x5E6A,2,{0x8E,0xCC,0x00,0x00,}}, {0x5E6B,2,{0x8E,0xCD,0x00,0x00,}}, {0x5E6C,2,{0x8E,0xCE,0x00,0x00,}}, {0x5E6D,2,{0x8E,0xCF,0x00,0x00,}}, {0x5E6E,2,{0x8E,0xD0,0x00,0x00,}}, {0x5E6F,2,{0x8E,0xD1,0x00,0x00,}}, {0x5E70,2,{0x8E,0xD2,0x00,0x00,}}, {0x5E71,2,{0x8E,0xD3,0x00,0x00,}}, {0x5E72,2,{0xB8,0xC9,0x00,0x00,}}, {0x5E73,2,{0xC6,0xBD,0x00,0x00,}}, {0x5E74,2,{0xC4,0xEA,0x00,0x00,}}, {0x5E75,2,{0x8E,0xD4,0x00,0x00,}}, {0x5E76,2,{0xB2,0xA2,0x00,0x00,}}, {0x5E77,2,{0x8E,0xD5,0x00,0x00,}}, {0x5E78,2,{0xD0,0xD2,0x00,0x00,}}, {0x5E79,2,{0x8E,0xD6,0x00,0x00,}}, {0x5E7A,2,{0xE7,0xDB,0x00,0x00,}}, {0x5E7B,2,{0xBB,0xC3,0x00,0x00,}}, {0x5E7C,2,{0xD3,0xD7,0x00,0x00,}}, {0x5E7D,2,{0xD3,0xC4,0x00,0x00,}}, {0x5E7E,2,{0x8E,0xD7,0x00,0x00,}}, {0x5E7F,2,{0xB9,0xE3,0x00,0x00,}}, {0x5E80,2,{0xE2,0xCF,0x00,0x00,}}, {0x5E81,2,{0x8E,0xD8,0x00,0x00,}}, {0x5E82,2,{0x8E,0xD9,0x00,0x00,}}, {0x5E83,2,{0x8E,0xDA,0x00,0x00,}}, {0x5E84,2,{0xD7,0xAF,0x00,0x00,}}, {0x5E85,2,{0x8E,0xDB,0x00,0x00,}}, {0x5E86,2,{0xC7,0xEC,0x00,0x00,}}, {0x5E87,2,{0xB1,0xD3,0x00,0x00,}}, {0x5E88,2,{0x8E,0xDC,0x00,0x00,}}, {0x5E89,2,{0x8E,0xDD,0x00,0x00,}}, {0x5E8A,2,{0xB4,0xB2,0x00,0x00,}}, {0x5E8B,2,{0xE2,0xD1,0x00,0x00,}}, {0x5E8C,2,{0x8E,0xDE,0x00,0x00,}}, {0x5E8D,2,{0x8E,0xDF,0x00,0x00,}}, {0x5E8E,2,{0x8E,0xE0,0x00,0x00,}}, {0x5E8F,2,{0xD0,0xF2,0x00,0x00,}}, {0x5E90,2,{0xC2,0xAE,0x00,0x00,}}, {0x5E91,2,{0xE2,0xD0,0x00,0x00,}}, {0x5E92,2,{0x8E,0xE1,0x00,0x00,}}, {0x5E93,2,{0xBF,0xE2,0x00,0x00,}}, {0x5E94,2,{0xD3,0xA6,0x00,0x00,}}, {0x5E95,2,{0xB5,0xD7,0x00,0x00,}}, {0x5E96,2,{0xE2,0xD2,0x00,0x00,}}, {0x5E97,2,{0xB5,0xEA,0x00,0x00,}}, {0x5E98,2,{0x8E,0xE2,0x00,0x00,}}, {0x5E99,2,{0xC3,0xED,0x00,0x00,}}, {0x5E9A,2,{0xB8,0xFD,0x00,0x00,}}, {0x5E9B,2,{0x8E,0xE3,0x00,0x00,}}, {0x5E9C,2,{0xB8,0xAE,0x00,0x00,}}, {0x5E9D,2,{0x8E,0xE4,0x00,0x00,}}, {0x5E9E,2,{0xC5,0xD3,0x00,0x00,}}, {0x5E9F,2,{0xB7,0xCF,0x00,0x00,}}, {0x5EA0,2,{0xE2,0xD4,0x00,0x00,}}, {0x5EA1,2,{0x8E,0xE5,0x00,0x00,}}, {0x5EA2,2,{0x8E,0xE6,0x00,0x00,}}, {0x5EA3,2,{0x8E,0xE7,0x00,0x00,}}, {0x5EA4,2,{0x8E,0xE8,0x00,0x00,}}, {0x5EA5,2,{0xE2,0xD3,0x00,0x00,}}, {0x5EA6,2,{0xB6,0xC8,0x00,0x00,}}, {0x5EA7,2,{0xD7,0xF9,0x00,0x00,}}, {0x5EA8,2,{0x8E,0xE9,0x00,0x00,}}, {0x5EA9,2,{0x8E,0xEA,0x00,0x00,}}, {0x5EAA,2,{0x8E,0xEB,0x00,0x00,}}, {0x5EAB,2,{0x8E,0xEC,0x00,0x00,}}, {0x5EAC,2,{0x8E,0xED,0x00,0x00,}}, {0x5EAD,2,{0xCD,0xA5,0x00,0x00,}}, {0x5EAE,2,{0x8E,0xEE,0x00,0x00,}}, {0x5EAF,2,{0x8E,0xEF,0x00,0x00,}}, {0x5EB0,2,{0x8E,0xF0,0x00,0x00,}}, {0x5EB1,2,{0x8E,0xF1,0x00,0x00,}}, {0x5EB2,2,{0x8E,0xF2,0x00,0x00,}}, {0x5EB3,2,{0xE2,0xD8,0x00,0x00,}}, {0x5EB4,2,{0x8E,0xF3,0x00,0x00,}}, {0x5EB5,2,{0xE2,0xD6,0x00,0x00,}}, {0x5EB6,2,{0xCA,0xFC,0x00,0x00,}}, {0x5EB7,2,{0xBF,0xB5,0x00,0x00,}}, {0x5EB8,2,{0xD3,0xB9,0x00,0x00,}}, {0x5EB9,2,{0xE2,0xD5,0x00,0x00,}}, {0x5EBA,2,{0x8E,0xF4,0x00,0x00,}}, {0x5EBB,2,{0x8E,0xF5,0x00,0x00,}}, {0x5EBC,2,{0x8E,0xF6,0x00,0x00,}}, {0x5EBD,2,{0x8E,0xF7,0x00,0x00,}}, {0x5EBE,2,{0xE2,0xD7,0x00,0x00,}}, {0x5EBF,2,{0x8E,0xF8,0x00,0x00,}}, {0x5EC0,2,{0x8E,0xF9,0x00,0x00,}}, {0x5EC1,2,{0x8E,0xFA,0x00,0x00,}}, {0x5EC2,2,{0x8E,0xFB,0x00,0x00,}}, {0x5EC3,2,{0x8E,0xFC,0x00,0x00,}}, {0x5EC4,2,{0x8E,0xFD,0x00,0x00,}}, {0x5EC5,2,{0x8E,0xFE,0x00,0x00,}}, {0x5EC6,2,{0x8F,0x40,0x00,0x00,}}, {0x5EC7,2,{0x8F,0x41,0x00,0x00,}}, {0x5EC8,2,{0x8F,0x42,0x00,0x00,}}, {0x5EC9,2,{0xC1,0xAE,0x00,0x00,}}, {0x5ECA,2,{0xC0,0xC8,0x00,0x00,}}, {0x5ECB,2,{0x8F,0x43,0x00,0x00,}}, {0x5ECC,2,{0x8F,0x44,0x00,0x00,}}, {0x5ECD,2,{0x8F,0x45,0x00,0x00,}}, {0x5ECE,2,{0x8F,0x46,0x00,0x00,}}, {0x5ECF,2,{0x8F,0x47,0x00,0x00,}}, {0x5ED0,2,{0x8F,0x48,0x00,0x00,}}, {0x5ED1,2,{0xE2,0xDB,0x00,0x00,}}, {0x5ED2,2,{0xE2,0xDA,0x00,0x00,}}, {0x5ED3,2,{0xC0,0xAA,0x00,0x00,}}, {0x5ED4,2,{0x8F,0x49,0x00,0x00,}}, {0x5ED5,2,{0x8F,0x4A,0x00,0x00,}}, {0x5ED6,2,{0xC1,0xCE,0x00,0x00,}}, {0x5ED7,2,{0x8F,0x4B,0x00,0x00,}}, {0x5ED8,2,{0x8F,0x4C,0x00,0x00,}}, {0x5ED9,2,{0x8F,0x4D,0x00,0x00,}}, {0x5EDA,2,{0x8F,0x4E,0x00,0x00,}}, {0x5EDB,2,{0xE2,0xDC,0x00,0x00,}}, {0x5EDC,2,{0x8F,0x4F,0x00,0x00,}}, {0x5EDD,2,{0x8F,0x50,0x00,0x00,}}, {0x5EDE,2,{0x8F,0x51,0x00,0x00,}}, {0x5EDF,2,{0x8F,0x52,0x00,0x00,}}, {0x5EE0,2,{0x8F,0x53,0x00,0x00,}}, {0x5EE1,2,{0x8F,0x54,0x00,0x00,}}, {0x5EE2,2,{0x8F,0x55,0x00,0x00,}}, {0x5EE3,2,{0x8F,0x56,0x00,0x00,}}, {0x5EE4,2,{0x8F,0x57,0x00,0x00,}}, {0x5EE5,2,{0x8F,0x58,0x00,0x00,}}, {0x5EE6,2,{0x8F,0x59,0x00,0x00,}}, {0x5EE7,2,{0x8F,0x5A,0x00,0x00,}}, {0x5EE8,2,{0xE2,0xDD,0x00,0x00,}}, {0x5EE9,2,{0x8F,0x5B,0x00,0x00,}}, {0x5EEA,2,{0xE2,0xDE,0x00,0x00,}}, {0x5EEB,2,{0x8F,0x5C,0x00,0x00,}}, {0x5EEC,2,{0x8F,0x5D,0x00,0x00,}}, {0x5EED,2,{0x8F,0x5E,0x00,0x00,}}, {0x5EEE,2,{0x8F,0x5F,0x00,0x00,}}, {0x5EEF,2,{0x8F,0x60,0x00,0x00,}}, {0x5EF0,2,{0x8F,0x61,0x00,0x00,}}, {0x5EF1,2,{0x8F,0x62,0x00,0x00,}}, {0x5EF2,2,{0x8F,0x63,0x00,0x00,}}, {0x5EF3,2,{0x8F,0x64,0x00,0x00,}}, {0x5EF4,2,{0xDB,0xC8,0x00,0x00,}}, {0x5EF5,2,{0x8F,0x65,0x00,0x00,}}, {0x5EF6,2,{0xD1,0xD3,0x00,0x00,}}, {0x5EF7,2,{0xCD,0xA2,0x00,0x00,}}, {0x5EF8,2,{0x8F,0x66,0x00,0x00,}}, {0x5EF9,2,{0x8F,0x67,0x00,0x00,}}, {0x5EFA,2,{0xBD,0xA8,0x00,0x00,}}, {0x5EFB,2,{0x8F,0x68,0x00,0x00,}}, {0x5EFC,2,{0x8F,0x69,0x00,0x00,}}, {0x5EFD,2,{0x8F,0x6A,0x00,0x00,}}, {0x5EFE,2,{0xDE,0xC3,0x00,0x00,}}, {0x5EFF,2,{0xD8,0xA5,0x00,0x00,}}, {0x5F00,2,{0xBF,0xAA,0x00,0x00,}}, {0x5F01,2,{0xDB,0xCD,0x00,0x00,}}, {0x5F02,2,{0xD2,0xEC,0x00,0x00,}}, {0x5F03,2,{0xC6,0xFA,0x00,0x00,}}, {0x5F04,2,{0xC5,0xAA,0x00,0x00,}}, {0x5F05,2,{0x8F,0x6B,0x00,0x00,}}, {0x5F06,2,{0x8F,0x6C,0x00,0x00,}}, {0x5F07,2,{0x8F,0x6D,0x00,0x00,}}, {0x5F08,2,{0xDE,0xC4,0x00,0x00,}}, {0x5F09,2,{0x8F,0x6E,0x00,0x00,}}, {0x5F0A,2,{0xB1,0xD7,0x00,0x00,}}, {0x5F0B,2,{0xDF,0xAE,0x00,0x00,}}, {0x5F0C,2,{0x8F,0x6F,0x00,0x00,}}, {0x5F0D,2,{0x8F,0x70,0x00,0x00,}}, {0x5F0E,2,{0x8F,0x71,0x00,0x00,}}, {0x5F0F,2,{0xCA,0xBD,0x00,0x00,}}, {0x5F10,2,{0x8F,0x72,0x00,0x00,}}, {0x5F11,2,{0xDF,0xB1,0x00,0x00,}}, {0x5F12,2,{0x8F,0x73,0x00,0x00,}}, {0x5F13,2,{0xB9,0xAD,0x00,0x00,}}, {0x5F14,2,{0x8F,0x74,0x00,0x00,}}, {0x5F15,2,{0xD2,0xFD,0x00,0x00,}}, {0x5F16,2,{0x8F,0x75,0x00,0x00,}}, {0x5F17,2,{0xB8,0xA5,0x00,0x00,}}, {0x5F18,2,{0xBA,0xEB,0x00,0x00,}}, {0x5F19,2,{0x8F,0x76,0x00,0x00,}}, {0x5F1A,2,{0x8F,0x77,0x00,0x00,}}, {0x5F1B,2,{0xB3,0xDA,0x00,0x00,}}, {0x5F1C,2,{0x8F,0x78,0x00,0x00,}}, {0x5F1D,2,{0x8F,0x79,0x00,0x00,}}, {0x5F1E,2,{0x8F,0x7A,0x00,0x00,}}, {0x5F1F,2,{0xB5,0xDC,0x00,0x00,}}, {0x5F20,2,{0xD5,0xC5,0x00,0x00,}}, {0x5F21,2,{0x8F,0x7B,0x00,0x00,}}, {0x5F22,2,{0x8F,0x7C,0x00,0x00,}}, {0x5F23,2,{0x8F,0x7D,0x00,0x00,}}, {0x5F24,2,{0x8F,0x7E,0x00,0x00,}}, {0x5F25,2,{0xC3,0xD6,0x00,0x00,}}, {0x5F26,2,{0xCF,0xD2,0x00,0x00,}}, {0x5F27,2,{0xBB,0xA1,0x00,0x00,}}, {0x5F28,2,{0x8F,0x80,0x00,0x00,}}, {0x5F29,2,{0xE5,0xF3,0x00,0x00,}}, {0x5F2A,2,{0xE5,0xF2,0x00,0x00,}}, {0x5F2B,2,{0x8F,0x81,0x00,0x00,}}, {0x5F2C,2,{0x8F,0x82,0x00,0x00,}}, {0x5F2D,2,{0xE5,0xF4,0x00,0x00,}}, {0x5F2E,2,{0x8F,0x83,0x00,0x00,}}, {0x5F2F,2,{0xCD,0xE4,0x00,0x00,}}, {0x5F30,2,{0x8F,0x84,0x00,0x00,}}, {0x5F31,2,{0xC8,0xF5,0x00,0x00,}}, {0x5F32,2,{0x8F,0x85,0x00,0x00,}}, {0x5F33,2,{0x8F,0x86,0x00,0x00,}}, {0x5F34,2,{0x8F,0x87,0x00,0x00,}}, {0x5F35,2,{0x8F,0x88,0x00,0x00,}}, {0x5F36,2,{0x8F,0x89,0x00,0x00,}}, {0x5F37,2,{0x8F,0x8A,0x00,0x00,}}, {0x5F38,2,{0x8F,0x8B,0x00,0x00,}}, {0x5F39,2,{0xB5,0xAF,0x00,0x00,}}, {0x5F3A,2,{0xC7,0xBF,0x00,0x00,}}, {0x5F3B,2,{0x8F,0x8C,0x00,0x00,}}, {0x5F3C,2,{0xE5,0xF6,0x00,0x00,}}, {0x5F3D,2,{0x8F,0x8D,0x00,0x00,}}, {0x5F3E,2,{0x8F,0x8E,0x00,0x00,}}, {0x5F3F,2,{0x8F,0x8F,0x00,0x00,}}, {0x5F40,2,{0xEC,0xB0,0x00,0x00,}}, {0x5F41,2,{0x8F,0x90,0x00,0x00,}}, {0x5F42,2,{0x8F,0x91,0x00,0x00,}}, {0x5F43,2,{0x8F,0x92,0x00,0x00,}}, {0x5F44,2,{0x8F,0x93,0x00,0x00,}}, {0x5F45,2,{0x8F,0x94,0x00,0x00,}}, {0x5F46,2,{0x8F,0x95,0x00,0x00,}}, {0x5F47,2,{0x8F,0x96,0x00,0x00,}}, {0x5F48,2,{0x8F,0x97,0x00,0x00,}}, {0x5F49,2,{0x8F,0x98,0x00,0x00,}}, {0x5F4A,2,{0x8F,0x99,0x00,0x00,}}, {0x5F4B,2,{0x8F,0x9A,0x00,0x00,}}, {0x5F4C,2,{0x8F,0x9B,0x00,0x00,}}, {0x5F4D,2,{0x8F,0x9C,0x00,0x00,}}, {0x5F4E,2,{0x8F,0x9D,0x00,0x00,}}, {0x5F4F,2,{0x8F,0x9E,0x00,0x00,}}, {0x5F50,2,{0xE5,0xE6,0x00,0x00,}}, {0x5F51,2,{0x8F,0x9F,0x00,0x00,}}, {0x5F52,2,{0xB9,0xE9,0x00,0x00,}}, {0x5F53,2,{0xB5,0xB1,0x00,0x00,}}, {0x5F54,2,{0x8F,0xA0,0x00,0x00,}}, {0x5F55,2,{0xC2,0xBC,0x00,0x00,}}, {0x5F56,2,{0xE5,0xE8,0x00,0x00,}}, {0x5F57,2,{0xE5,0xE7,0x00,0x00,}}, {0x5F58,2,{0xE5,0xE9,0x00,0x00,}}, {0x5F59,2,{0x8F,0xA1,0x00,0x00,}}, {0x5F5A,2,{0x8F,0xA2,0x00,0x00,}}, {0x5F5B,2,{0x8F,0xA3,0x00,0x00,}}, {0x5F5C,2,{0x8F,0xA4,0x00,0x00,}}, {0x5F5D,2,{0xD2,0xCD,0x00,0x00,}}, {0x5F5E,2,{0x8F,0xA5,0x00,0x00,}}, {0x5F5F,2,{0x8F,0xA6,0x00,0x00,}}, {0x5F60,2,{0x8F,0xA7,0x00,0x00,}}, {0x5F61,2,{0xE1,0xEA,0x00,0x00,}}, {0x5F62,2,{0xD0,0xCE,0x00,0x00,}}, {0x5F63,2,{0x8F,0xA8,0x00,0x00,}}, {0x5F64,2,{0xCD,0xAE,0x00,0x00,}}, {0x5F65,2,{0x8F,0xA9,0x00,0x00,}}, {0x5F66,2,{0xD1,0xE5,0x00,0x00,}}, {0x5F67,2,{0x8F,0xAA,0x00,0x00,}}, {0x5F68,2,{0x8F,0xAB,0x00,0x00,}}, {0x5F69,2,{0xB2,0xCA,0x00,0x00,}}, {0x5F6A,2,{0xB1,0xEB,0x00,0x00,}}, {0x5F6B,2,{0x8F,0xAC,0x00,0x00,}}, {0x5F6C,2,{0xB1,0xF2,0x00,0x00,}}, {0x5F6D,2,{0xC5,0xED,0x00,0x00,}}, {0x5F6E,2,{0x8F,0xAD,0x00,0x00,}}, {0x5F6F,2,{0x8F,0xAE,0x00,0x00,}}, {0x5F70,2,{0xD5,0xC3,0x00,0x00,}}, {0x5F71,2,{0xD3,0xB0,0x00,0x00,}}, {0x5F72,2,{0x8F,0xAF,0x00,0x00,}}, {0x5F73,2,{0xE1,0xDC,0x00,0x00,}}, {0x5F74,2,{0x8F,0xB0,0x00,0x00,}}, {0x5F75,2,{0x8F,0xB1,0x00,0x00,}}, {0x5F76,2,{0x8F,0xB2,0x00,0x00,}}, {0x5F77,2,{0xE1,0xDD,0x00,0x00,}}, {0x5F78,2,{0x8F,0xB3,0x00,0x00,}}, {0x5F79,2,{0xD2,0xDB,0x00,0x00,}}, {0x5F7A,2,{0x8F,0xB4,0x00,0x00,}}, {0x5F7B,2,{0xB3,0xB9,0x00,0x00,}}, {0x5F7C,2,{0xB1,0xCB,0x00,0x00,}}, {0x5F7D,2,{0x8F,0xB5,0x00,0x00,}}, {0x5F7E,2,{0x8F,0xB6,0x00,0x00,}}, {0x5F7F,2,{0x8F,0xB7,0x00,0x00,}}, {0x5F80,2,{0xCD,0xF9,0x00,0x00,}}, {0x5F81,2,{0xD5,0xF7,0x00,0x00,}}, {0x5F82,2,{0xE1,0xDE,0x00,0x00,}}, {0x5F83,2,{0x8F,0xB8,0x00,0x00,}}, {0x5F84,2,{0xBE,0xB6,0x00,0x00,}}, {0x5F85,2,{0xB4,0xFD,0x00,0x00,}}, {0x5F86,2,{0x8F,0xB9,0x00,0x00,}}, {0x5F87,2,{0xE1,0xDF,0x00,0x00,}}, {0x5F88,2,{0xBA,0xDC,0x00,0x00,}}, {0x5F89,2,{0xE1,0xE0,0x00,0x00,}}, {0x5F8A,2,{0xBB,0xB2,0x00,0x00,}}, {0x5F8B,2,{0xC2,0xC9,0x00,0x00,}}, {0x5F8C,2,{0xE1,0xE1,0x00,0x00,}}, {0x5F8D,2,{0x8F,0xBA,0x00,0x00,}}, {0x5F8E,2,{0x8F,0xBB,0x00,0x00,}}, {0x5F8F,2,{0x8F,0xBC,0x00,0x00,}}, {0x5F90,2,{0xD0,0xEC,0x00,0x00,}}, {0x5F91,2,{0x8F,0xBD,0x00,0x00,}}, {0x5F92,2,{0xCD,0xBD,0x00,0x00,}}, {0x5F93,2,{0x8F,0xBE,0x00,0x00,}}, {0x5F94,2,{0x8F,0xBF,0x00,0x00,}}, {0x5F95,2,{0xE1,0xE2,0x00,0x00,}}, {0x5F96,2,{0x8F,0xC0,0x00,0x00,}}, {0x5F97,2,{0xB5,0xC3,0x00,0x00,}}, {0x5F98,2,{0xC5,0xC7,0x00,0x00,}}, {0x5F99,2,{0xE1,0xE3,0x00,0x00,}}, {0x5F9A,2,{0x8F,0xC1,0x00,0x00,}}, {0x5F9B,2,{0x8F,0xC2,0x00,0x00,}}, {0x5F9C,2,{0xE1,0xE4,0x00,0x00,}}, {0x5F9D,2,{0x8F,0xC3,0x00,0x00,}}, {0x5F9E,2,{0x8F,0xC4,0x00,0x00,}}, {0x5F9F,2,{0x8F,0xC5,0x00,0x00,}}, {0x5FA0,2,{0x8F,0xC6,0x00,0x00,}}, {0x5FA1,2,{0xD3,0xF9,0x00,0x00,}}, {0x5FA2,2,{0x8F,0xC7,0x00,0x00,}}, {0x5FA3,2,{0x8F,0xC8,0x00,0x00,}}, {0x5FA4,2,{0x8F,0xC9,0x00,0x00,}}, {0x5FA5,2,{0x8F,0xCA,0x00,0x00,}}, {0x5FA6,2,{0x8F,0xCB,0x00,0x00,}}, {0x5FA7,2,{0x8F,0xCC,0x00,0x00,}}, {0x5FA8,2,{0xE1,0xE5,0x00,0x00,}}, {0x5FA9,2,{0x8F,0xCD,0x00,0x00,}}, {0x5FAA,2,{0xD1,0xAD,0x00,0x00,}}, {0x5FAB,2,{0x8F,0xCE,0x00,0x00,}}, {0x5FAC,2,{0x8F,0xCF,0x00,0x00,}}, {0x5FAD,2,{0xE1,0xE6,0x00,0x00,}}, {0x5FAE,2,{0xCE,0xA2,0x00,0x00,}}, {0x5FAF,2,{0x8F,0xD0,0x00,0x00,}}, {0x5FB0,2,{0x8F,0xD1,0x00,0x00,}}, {0x5FB1,2,{0x8F,0xD2,0x00,0x00,}}, {0x5FB2,2,{0x8F,0xD3,0x00,0x00,}}, {0x5FB3,2,{0x8F,0xD4,0x00,0x00,}}, {0x5FB4,2,{0x8F,0xD5,0x00,0x00,}}, {0x5FB5,2,{0xE1,0xE7,0x00,0x00,}}, {0x5FB6,2,{0x8F,0xD6,0x00,0x00,}}, {0x5FB7,2,{0xB5,0xC2,0x00,0x00,}}, {0x5FB8,2,{0x8F,0xD7,0x00,0x00,}}, {0x5FB9,2,{0x8F,0xD8,0x00,0x00,}}, {0x5FBA,2,{0x8F,0xD9,0x00,0x00,}}, {0x5FBB,2,{0x8F,0xDA,0x00,0x00,}}, {0x5FBC,2,{0xE1,0xE8,0x00,0x00,}}, {0x5FBD,2,{0xBB,0xD5,0x00,0x00,}}, {0x5FBE,2,{0x8F,0xDB,0x00,0x00,}}, {0x5FBF,2,{0x8F,0xDC,0x00,0x00,}}, {0x5FC0,2,{0x8F,0xDD,0x00,0x00,}}, {0x5FC1,2,{0x8F,0xDE,0x00,0x00,}}, {0x5FC2,2,{0x8F,0xDF,0x00,0x00,}}, {0x5FC3,2,{0xD0,0xC4,0x00,0x00,}}, {0x5FC4,2,{0xE2,0xE0,0x00,0x00,}}, {0x5FC5,2,{0xB1,0xD8,0x00,0x00,}}, {0x5FC6,2,{0xD2,0xE4,0x00,0x00,}}, {0x5FC7,2,{0x8F,0xE0,0x00,0x00,}}, {0x5FC8,2,{0x8F,0xE1,0x00,0x00,}}, {0x5FC9,2,{0xE2,0xE1,0x00,0x00,}}, {0x5FCA,2,{0x8F,0xE2,0x00,0x00,}}, {0x5FCB,2,{0x8F,0xE3,0x00,0x00,}}, {0x5FCC,2,{0xBC,0xC9,0x00,0x00,}}, {0x5FCD,2,{0xC8,0xCC,0x00,0x00,}}, {0x5FCE,2,{0x8F,0xE4,0x00,0x00,}}, {0x5FCF,2,{0xE2,0xE3,0x00,0x00,}}, {0x5FD0,2,{0xEC,0xFE,0x00,0x00,}}, {0x5FD1,2,{0xEC,0xFD,0x00,0x00,}}, {0x5FD2,2,{0xDF,0xAF,0x00,0x00,}}, {0x5FD3,2,{0x8F,0xE5,0x00,0x00,}}, {0x5FD4,2,{0x8F,0xE6,0x00,0x00,}}, {0x5FD5,2,{0x8F,0xE7,0x00,0x00,}}, {0x5FD6,2,{0xE2,0xE2,0x00,0x00,}}, {0x5FD7,2,{0xD6,0xBE,0x00,0x00,}}, {0x5FD8,2,{0xCD,0xFC,0x00,0x00,}}, {0x5FD9,2,{0xC3,0xA6,0x00,0x00,}}, {0x5FDA,2,{0x8F,0xE8,0x00,0x00,}}, {0x5FDB,2,{0x8F,0xE9,0x00,0x00,}}, {0x5FDC,2,{0x8F,0xEA,0x00,0x00,}}, {0x5FDD,2,{0xE3,0xC3,0x00,0x00,}}, {0x5FDE,2,{0x8F,0xEB,0x00,0x00,}}, {0x5FDF,2,{0x8F,0xEC,0x00,0x00,}}, {0x5FE0,2,{0xD6,0xD2,0x00,0x00,}}, {0x5FE1,2,{0xE2,0xE7,0x00,0x00,}}, {0x5FE2,2,{0x8F,0xED,0x00,0x00,}}, {0x5FE3,2,{0x8F,0xEE,0x00,0x00,}}, {0x5FE4,2,{0xE2,0xE8,0x00,0x00,}}, {0x5FE5,2,{0x8F,0xEF,0x00,0x00,}}, {0x5FE6,2,{0x8F,0xF0,0x00,0x00,}}, {0x5FE7,2,{0xD3,0xC7,0x00,0x00,}}, {0x5FE8,2,{0x8F,0xF1,0x00,0x00,}}, {0x5FE9,2,{0x8F,0xF2,0x00,0x00,}}, {0x5FEA,2,{0xE2,0xEC,0x00,0x00,}}, {0x5FEB,2,{0xBF,0xEC,0x00,0x00,}}, {0x5FEC,2,{0x8F,0xF3,0x00,0x00,}}, {0x5FED,2,{0xE2,0xED,0x00,0x00,}}, {0x5FEE,2,{0xE2,0xE5,0x00,0x00,}}, {0x5FEF,2,{0x8F,0xF4,0x00,0x00,}}, {0x5FF0,2,{0x8F,0xF5,0x00,0x00,}}, {0x5FF1,2,{0xB3,0xC0,0x00,0x00,}}, {0x5FF2,2,{0x8F,0xF6,0x00,0x00,}}, {0x5FF3,2,{0x8F,0xF7,0x00,0x00,}}, {0x5FF4,2,{0x8F,0xF8,0x00,0x00,}}, {0x5FF5,2,{0xC4,0xEE,0x00,0x00,}}, {0x5FF6,2,{0x8F,0xF9,0x00,0x00,}}, {0x5FF7,2,{0x8F,0xFA,0x00,0x00,}}, {0x5FF8,2,{0xE2,0xEE,0x00,0x00,}}, {0x5FF9,2,{0x8F,0xFB,0x00,0x00,}}, {0x5FFA,2,{0x8F,0xFC,0x00,0x00,}}, {0x5FFB,2,{0xD0,0xC3,0x00,0x00,}}, {0x5FFC,2,{0x8F,0xFD,0x00,0x00,}}, {0x5FFD,2,{0xBA,0xF6,0x00,0x00,}}, {0x5FFE,2,{0xE2,0xE9,0x00,0x00,}}, {0x5FFF,2,{0xB7,0xDE,0x00,0x00,}}, {0x6000,2,{0xBB,0xB3,0x00,0x00,}}, {0x6001,2,{0xCC,0xAC,0x00,0x00,}}, {0x6002,2,{0xCB,0xCB,0x00,0x00,}}, {0x6003,2,{0xE2,0xE4,0x00,0x00,}}, {0x6004,2,{0xE2,0xE6,0x00,0x00,}}, {0x6005,2,{0xE2,0xEA,0x00,0x00,}}, {0x6006,2,{0xE2,0xEB,0x00,0x00,}}, {0x6007,2,{0x8F,0xFE,0x00,0x00,}}, {0x6008,2,{0x90,0x40,0x00,0x00,}}, {0x6009,2,{0x90,0x41,0x00,0x00,}}, {0x600A,2,{0xE2,0xF7,0x00,0x00,}}, {0x600B,2,{0x90,0x42,0x00,0x00,}}, {0x600C,2,{0x90,0x43,0x00,0x00,}}, {0x600D,2,{0xE2,0xF4,0x00,0x00,}}, {0x600E,2,{0xD4,0xF5,0x00,0x00,}}, {0x600F,2,{0xE2,0xF3,0x00,0x00,}}, {0x6010,2,{0x90,0x44,0x00,0x00,}}, {0x6011,2,{0x90,0x45,0x00,0x00,}}, {0x6012,2,{0xC5,0xAD,0x00,0x00,}}, {0x6013,2,{0x90,0x46,0x00,0x00,}}, {0x6014,2,{0xD5,0xFA,0x00,0x00,}}, {0x6015,2,{0xC5,0xC2,0x00,0x00,}}, {0x6016,2,{0xB2,0xC0,0x00,0x00,}}, {0x6017,2,{0x90,0x47,0x00,0x00,}}, {0x6018,2,{0x90,0x48,0x00,0x00,}}, {0x6019,2,{0xE2,0xEF,0x00,0x00,}}, {0x601A,2,{0x90,0x49,0x00,0x00,}}, {0x601B,2,{0xE2,0xF2,0x00,0x00,}}, {0x601C,2,{0xC1,0xAF,0x00,0x00,}}, {0x601D,2,{0xCB,0xBC,0x00,0x00,}}, {0x601E,2,{0x90,0x4A,0x00,0x00,}}, {0x601F,2,{0x90,0x4B,0x00,0x00,}}, {0x6020,2,{0xB5,0xA1,0x00,0x00,}}, {0x6021,2,{0xE2,0xF9,0x00,0x00,}}, {0x6022,2,{0x90,0x4C,0x00,0x00,}}, {0x6023,2,{0x90,0x4D,0x00,0x00,}}, {0x6024,2,{0x90,0x4E,0x00,0x00,}}, {0x6025,2,{0xBC,0xB1,0x00,0x00,}}, {0x6026,2,{0xE2,0xF1,0x00,0x00,}}, {0x6027,2,{0xD0,0xD4,0x00,0x00,}}, {0x6028,2,{0xD4,0xB9,0x00,0x00,}}, {0x6029,2,{0xE2,0xF5,0x00,0x00,}}, {0x602A,2,{0xB9,0xD6,0x00,0x00,}}, {0x602B,2,{0xE2,0xF6,0x00,0x00,}}, {0x602C,2,{0x90,0x4F,0x00,0x00,}}, {0x602D,2,{0x90,0x50,0x00,0x00,}}, {0x602E,2,{0x90,0x51,0x00,0x00,}}, {0x602F,2,{0xC7,0xD3,0x00,0x00,}}, {0x6030,2,{0x90,0x52,0x00,0x00,}}, {0x6031,2,{0x90,0x53,0x00,0x00,}}, {0x6032,2,{0x90,0x54,0x00,0x00,}}, {0x6033,2,{0x90,0x55,0x00,0x00,}}, {0x6034,2,{0x90,0x56,0x00,0x00,}}, {0x6035,2,{0xE2,0xF0,0x00,0x00,}}, {0x6036,2,{0x90,0x57,0x00,0x00,}}, {0x6037,2,{0x90,0x58,0x00,0x00,}}, {0x6038,2,{0x90,0x59,0x00,0x00,}}, {0x6039,2,{0x90,0x5A,0x00,0x00,}}, {0x603A,2,{0x90,0x5B,0x00,0x00,}}, {0x603B,2,{0xD7,0xDC,0x00,0x00,}}, {0x603C,2,{0xED,0xA1,0x00,0x00,}}, {0x603D,2,{0x90,0x5C,0x00,0x00,}}, {0x603E,2,{0x90,0x5D,0x00,0x00,}}, {0x603F,2,{0xE2,0xF8,0x00,0x00,}}, {0x6040,2,{0x90,0x5E,0x00,0x00,}}, {0x6041,2,{0xED,0xA5,0x00,0x00,}}, {0x6042,2,{0xE2,0xFE,0x00,0x00,}}, {0x6043,2,{0xCA,0xD1,0x00,0x00,}}, {0x6044,2,{0x90,0x5F,0x00,0x00,}}, {0x6045,2,{0x90,0x60,0x00,0x00,}}, {0x6046,2,{0x90,0x61,0x00,0x00,}}, {0x6047,2,{0x90,0x62,0x00,0x00,}}, {0x6048,2,{0x90,0x63,0x00,0x00,}}, {0x6049,2,{0x90,0x64,0x00,0x00,}}, {0x604A,2,{0x90,0x65,0x00,0x00,}}, {0x604B,2,{0xC1,0xB5,0x00,0x00,}}, {0x604C,2,{0x90,0x66,0x00,0x00,}}, {0x604D,2,{0xBB,0xD0,0x00,0x00,}}, {0x604E,2,{0x90,0x67,0x00,0x00,}}, {0x604F,2,{0x90,0x68,0x00,0x00,}}, {0x6050,2,{0xBF,0xD6,0x00,0x00,}}, {0x6051,2,{0x90,0x69,0x00,0x00,}}, {0x6052,2,{0xBA,0xE3,0x00,0x00,}}, {0x6053,2,{0x90,0x6A,0x00,0x00,}}, {0x6054,2,{0x90,0x6B,0x00,0x00,}}, {0x6055,2,{0xCB,0xA1,0x00,0x00,}}, {0x6056,2,{0x90,0x6C,0x00,0x00,}}, {0x6057,2,{0x90,0x6D,0x00,0x00,}}, {0x6058,2,{0x90,0x6E,0x00,0x00,}}, {0x6059,2,{0xED,0xA6,0x00,0x00,}}, {0x605A,2,{0xED,0xA3,0x00,0x00,}}, {0x605B,2,{0x90,0x6F,0x00,0x00,}}, {0x605C,2,{0x90,0x70,0x00,0x00,}}, {0x605D,2,{0xED,0xA2,0x00,0x00,}}, {0x605E,2,{0x90,0x71,0x00,0x00,}}, {0x605F,2,{0x90,0x72,0x00,0x00,}}, {0x6060,2,{0x90,0x73,0x00,0x00,}}, {0x6061,2,{0x90,0x74,0x00,0x00,}}, {0x6062,2,{0xBB,0xD6,0x00,0x00,}}, {0x6063,2,{0xED,0xA7,0x00,0x00,}}, {0x6064,2,{0xD0,0xF4,0x00,0x00,}}, {0x6065,2,{0x90,0x75,0x00,0x00,}}, {0x6066,2,{0x90,0x76,0x00,0x00,}}, {0x6067,2,{0xED,0xA4,0x00,0x00,}}, {0x6068,2,{0xBA,0xDE,0x00,0x00,}}, {0x6069,2,{0xB6,0xF7,0x00,0x00,}}, {0x606A,2,{0xE3,0xA1,0x00,0x00,}}, {0x606B,2,{0xB6,0xB2,0x00,0x00,}}, {0x606C,2,{0xCC,0xF1,0x00,0x00,}}, {0x606D,2,{0xB9,0xA7,0x00,0x00,}}, {0x606E,2,{0x90,0x77,0x00,0x00,}}, {0x606F,2,{0xCF,0xA2,0x00,0x00,}}, {0x6070,2,{0xC7,0xA1,0x00,0x00,}}, {0x6071,2,{0x90,0x78,0x00,0x00,}}, {0x6072,2,{0x90,0x79,0x00,0x00,}}, {0x6073,2,{0xBF,0xD2,0x00,0x00,}}, {0x6074,2,{0x90,0x7A,0x00,0x00,}}, {0x6075,2,{0x90,0x7B,0x00,0x00,}}, {0x6076,2,{0xB6,0xF1,0x00,0x00,}}, {0x6077,2,{0x90,0x7C,0x00,0x00,}}, {0x6078,2,{0xE2,0xFA,0x00,0x00,}}, {0x6079,2,{0xE2,0xFB,0x00,0x00,}}, {0x607A,2,{0xE2,0xFD,0x00,0x00,}}, {0x607B,2,{0xE2,0xFC,0x00,0x00,}}, {0x607C,2,{0xC4,0xD5,0x00,0x00,}}, {0x607D,2,{0xE3,0xA2,0x00,0x00,}}, {0x607E,2,{0x90,0x7D,0x00,0x00,}}, {0x607F,2,{0xD3,0xC1,0x00,0x00,}}, {0x6080,2,{0x90,0x7E,0x00,0x00,}}, {0x6081,2,{0x90,0x80,0x00,0x00,}}, {0x6082,2,{0x90,0x81,0x00,0x00,}}, {0x6083,2,{0xE3,0xA7,0x00,0x00,}}, {0x6084,2,{0xC7,0xC4,0x00,0x00,}}, {0x6085,2,{0x90,0x82,0x00,0x00,}}, {0x6086,2,{0x90,0x83,0x00,0x00,}}, {0x6087,2,{0x90,0x84,0x00,0x00,}}, {0x6088,2,{0x90,0x85,0x00,0x00,}}, {0x6089,2,{0xCF,0xA4,0x00,0x00,}}, {0x608A,2,{0x90,0x86,0x00,0x00,}}, {0x608B,2,{0x90,0x87,0x00,0x00,}}, {0x608C,2,{0xE3,0xA9,0x00,0x00,}}, {0x608D,2,{0xBA,0xB7,0x00,0x00,}}, {0x608E,2,{0x90,0x88,0x00,0x00,}}, {0x608F,2,{0x90,0x89,0x00,0x00,}}, {0x6090,2,{0x90,0x8A,0x00,0x00,}}, {0x6091,2,{0x90,0x8B,0x00,0x00,}}, {0x6092,2,{0xE3,0xA8,0x00,0x00,}}, {0x6093,2,{0x90,0x8C,0x00,0x00,}}, {0x6094,2,{0xBB,0xDA,0x00,0x00,}}, {0x6095,2,{0x90,0x8D,0x00,0x00,}}, {0x6096,2,{0xE3,0xA3,0x00,0x00,}}, {0x6097,2,{0x90,0x8E,0x00,0x00,}}, {0x6098,2,{0x90,0x8F,0x00,0x00,}}, {0x6099,2,{0x90,0x90,0x00,0x00,}}, {0x609A,2,{0xE3,0xA4,0x00,0x00,}}, {0x609B,2,{0xE3,0xAA,0x00,0x00,}}, {0x609C,2,{0x90,0x91,0x00,0x00,}}, {0x609D,2,{0xE3,0xA6,0x00,0x00,}}, {0x609E,2,{0x90,0x92,0x00,0x00,}}, {0x609F,2,{0xCE,0xF2,0x00,0x00,}}, {0x60A0,2,{0xD3,0xC6,0x00,0x00,}}, {0x60A1,2,{0x90,0x93,0x00,0x00,}}, {0x60A2,2,{0x90,0x94,0x00,0x00,}}, {0x60A3,2,{0xBB,0xBC,0x00,0x00,}}, {0x60A4,2,{0x90,0x95,0x00,0x00,}}, {0x60A5,2,{0x90,0x96,0x00,0x00,}}, {0x60A6,2,{0xD4,0xC3,0x00,0x00,}}, {0x60A7,2,{0x90,0x97,0x00,0x00,}}, {0x60A8,2,{0xC4,0xFA,0x00,0x00,}}, {0x60A9,2,{0x90,0x98,0x00,0x00,}}, {0x60AA,2,{0x90,0x99,0x00,0x00,}}, {0x60AB,2,{0xED,0xA8,0x00,0x00,}}, {0x60AC,2,{0xD0,0xFC,0x00,0x00,}}, {0x60AD,2,{0xE3,0xA5,0x00,0x00,}}, {0x60AE,2,{0x90,0x9A,0x00,0x00,}}, {0x60AF,2,{0xC3,0xF5,0x00,0x00,}}, {0x60B0,2,{0x90,0x9B,0x00,0x00,}}, {0x60B1,2,{0xE3,0xAD,0x00,0x00,}}, {0x60B2,2,{0xB1,0xAF,0x00,0x00,}}, {0x60B3,2,{0x90,0x9C,0x00,0x00,}}, {0x60B4,2,{0xE3,0xB2,0x00,0x00,}}, {0x60B5,2,{0x90,0x9D,0x00,0x00,}}, {0x60B6,2,{0x90,0x9E,0x00,0x00,}}, {0x60B7,2,{0x90,0x9F,0x00,0x00,}}, {0x60B8,2,{0xBC,0xC2,0x00,0x00,}}, {0x60B9,2,{0x90,0xA0,0x00,0x00,}}, {0x60BA,2,{0x90,0xA1,0x00,0x00,}}, {0x60BB,2,{0xE3,0xAC,0x00,0x00,}}, {0x60BC,2,{0xB5,0xBF,0x00,0x00,}}, {0x60BD,2,{0x90,0xA2,0x00,0x00,}}, {0x60BE,2,{0x90,0xA3,0x00,0x00,}}, {0x60BF,2,{0x90,0xA4,0x00,0x00,}}, {0x60C0,2,{0x90,0xA5,0x00,0x00,}}, {0x60C1,2,{0x90,0xA6,0x00,0x00,}}, {0x60C2,2,{0x90,0xA7,0x00,0x00,}}, {0x60C3,2,{0x90,0xA8,0x00,0x00,}}, {0x60C4,2,{0x90,0xA9,0x00,0x00,}}, {0x60C5,2,{0xC7,0xE9,0x00,0x00,}}, {0x60C6,2,{0xE3,0xB0,0x00,0x00,}}, {0x60C7,2,{0x90,0xAA,0x00,0x00,}}, {0x60C8,2,{0x90,0xAB,0x00,0x00,}}, {0x60C9,2,{0x90,0xAC,0x00,0x00,}}, {0x60CA,2,{0xBE,0xAA,0x00,0x00,}}, {0x60CB,2,{0xCD,0xEF,0x00,0x00,}}, {0x60CC,2,{0x90,0xAD,0x00,0x00,}}, {0x60CD,2,{0x90,0xAE,0x00,0x00,}}, {0x60CE,2,{0x90,0xAF,0x00,0x00,}}, {0x60CF,2,{0x90,0xB0,0x00,0x00,}}, {0x60D0,2,{0x90,0xB1,0x00,0x00,}}, {0x60D1,2,{0xBB,0xF3,0x00,0x00,}}, {0x60D2,2,{0x90,0xB2,0x00,0x00,}}, {0x60D3,2,{0x90,0xB3,0x00,0x00,}}, {0x60D4,2,{0x90,0xB4,0x00,0x00,}}, {0x60D5,2,{0xCC,0xE8,0x00,0x00,}}, {0x60D6,2,{0x90,0xB5,0x00,0x00,}}, {0x60D7,2,{0x90,0xB6,0x00,0x00,}}, {0x60D8,2,{0xE3,0xAF,0x00,0x00,}}, {0x60D9,2,{0x90,0xB7,0x00,0x00,}}, {0x60DA,2,{0xE3,0xB1,0x00,0x00,}}, {0x60DB,2,{0x90,0xB8,0x00,0x00,}}, {0x60DC,2,{0xCF,0xA7,0x00,0x00,}}, {0x60DD,2,{0xE3,0xAE,0x00,0x00,}}, {0x60DE,2,{0x90,0xB9,0x00,0x00,}}, {0x60DF,2,{0xCE,0xA9,0x00,0x00,}}, {0x60E0,2,{0xBB,0xDD,0x00,0x00,}}, {0x60E1,2,{0x90,0xBA,0x00,0x00,}}, {0x60E2,2,{0x90,0xBB,0x00,0x00,}}, {0x60E3,2,{0x90,0xBC,0x00,0x00,}}, {0x60E4,2,{0x90,0xBD,0x00,0x00,}}, {0x60E5,2,{0x90,0xBE,0x00,0x00,}}, {0x60E6,2,{0xB5,0xEB,0x00,0x00,}}, {0x60E7,2,{0xBE,0xE5,0x00,0x00,}}, {0x60E8,2,{0xB2,0xD2,0x00,0x00,}}, {0x60E9,2,{0xB3,0xCD,0x00,0x00,}}, {0x60EA,2,{0x90,0xBF,0x00,0x00,}}, {0x60EB,2,{0xB1,0xB9,0x00,0x00,}}, {0x60EC,2,{0xE3,0xAB,0x00,0x00,}}, {0x60ED,2,{0xB2,0xD1,0x00,0x00,}}, {0x60EE,2,{0xB5,0xAC,0x00,0x00,}}, {0x60EF,2,{0xB9,0xDF,0x00,0x00,}}, {0x60F0,2,{0xB6,0xE8,0x00,0x00,}}, {0x60F1,2,{0x90,0xC0,0x00,0x00,}}, {0x60F2,2,{0x90,0xC1,0x00,0x00,}}, {0x60F3,2,{0xCF,0xEB,0x00,0x00,}}, {0x60F4,2,{0xE3,0xB7,0x00,0x00,}}, {0x60F5,2,{0x90,0xC2,0x00,0x00,}}, {0x60F6,2,{0xBB,0xCC,0x00,0x00,}}, {0x60F7,2,{0x90,0xC3,0x00,0x00,}}, {0x60F8,2,{0x90,0xC4,0x00,0x00,}}, {0x60F9,2,{0xC8,0xC7,0x00,0x00,}}, {0x60FA,2,{0xD0,0xCA,0x00,0x00,}}, {0x60FB,2,{0x90,0xC5,0x00,0x00,}}, {0x60FC,2,{0x90,0xC6,0x00,0x00,}}, {0x60FD,2,{0x90,0xC7,0x00,0x00,}}, {0x60FE,2,{0x90,0xC8,0x00,0x00,}}, {0x60FF,2,{0x90,0xC9,0x00,0x00,}}, {0x6100,2,{0xE3,0xB8,0x00,0x00,}}, {0x6101,2,{0xB3,0xEE,0x00,0x00,}}, {0x6102,2,{0x90,0xCA,0x00,0x00,}}, {0x6103,2,{0x90,0xCB,0x00,0x00,}}, {0x6104,2,{0x90,0xCC,0x00,0x00,}}, {0x6105,2,{0x90,0xCD,0x00,0x00,}}, {0x6106,2,{0xED,0xA9,0x00,0x00,}}, {0x6107,2,{0x90,0xCE,0x00,0x00,}}, {0x6108,2,{0xD3,0xFA,0x00,0x00,}}, {0x6109,2,{0xD3,0xE4,0x00,0x00,}}, {0x610A,2,{0x90,0xCF,0x00,0x00,}}, {0x610B,2,{0x90,0xD0,0x00,0x00,}}, {0x610C,2,{0x90,0xD1,0x00,0x00,}}, {0x610D,2,{0xED,0xAA,0x00,0x00,}}, {0x610E,2,{0xE3,0xB9,0x00,0x00,}}, {0x610F,2,{0xD2,0xE2,0x00,0x00,}}, {0x6110,2,{0x90,0xD2,0x00,0x00,}}, {0x6111,2,{0x90,0xD3,0x00,0x00,}}, {0x6112,2,{0x90,0xD4,0x00,0x00,}}, {0x6113,2,{0x90,0xD5,0x00,0x00,}}, {0x6114,2,{0x90,0xD6,0x00,0x00,}}, {0x6115,2,{0xE3,0xB5,0x00,0x00,}}, {0x6116,2,{0x90,0xD7,0x00,0x00,}}, {0x6117,2,{0x90,0xD8,0x00,0x00,}}, {0x6118,2,{0x90,0xD9,0x00,0x00,}}, {0x6119,2,{0x90,0xDA,0x00,0x00,}}, {0x611A,2,{0xD3,0xDE,0x00,0x00,}}, {0x611B,2,{0x90,0xDB,0x00,0x00,}}, {0x611C,2,{0x90,0xDC,0x00,0x00,}}, {0x611D,2,{0x90,0xDD,0x00,0x00,}}, {0x611E,2,{0x90,0xDE,0x00,0x00,}}, {0x611F,2,{0xB8,0xD0,0x00,0x00,}}, {0x6120,2,{0xE3,0xB3,0x00,0x00,}}, {0x6121,2,{0x90,0xDF,0x00,0x00,}}, {0x6122,2,{0x90,0xE0,0x00,0x00,}}, {0x6123,2,{0xE3,0xB6,0x00,0x00,}}, {0x6124,2,{0xB7,0xDF,0x00,0x00,}}, {0x6125,2,{0x90,0xE1,0x00,0x00,}}, {0x6126,2,{0xE3,0xB4,0x00,0x00,}}, {0x6127,2,{0xC0,0xA2,0x00,0x00,}}, {0x6128,2,{0x90,0xE2,0x00,0x00,}}, {0x6129,2,{0x90,0xE3,0x00,0x00,}}, {0x612A,2,{0x90,0xE4,0x00,0x00,}}, {0x612B,2,{0xE3,0xBA,0x00,0x00,}}, {0x612C,2,{0x90,0xE5,0x00,0x00,}}, {0x612D,2,{0x90,0xE6,0x00,0x00,}}, {0x612E,2,{0x90,0xE7,0x00,0x00,}}, {0x612F,2,{0x90,0xE8,0x00,0x00,}}, {0x6130,2,{0x90,0xE9,0x00,0x00,}}, {0x6131,2,{0x90,0xEA,0x00,0x00,}}, {0x6132,2,{0x90,0xEB,0x00,0x00,}}, {0x6133,2,{0x90,0xEC,0x00,0x00,}}, {0x6134,2,{0x90,0xED,0x00,0x00,}}, {0x6135,2,{0x90,0xEE,0x00,0x00,}}, {0x6136,2,{0x90,0xEF,0x00,0x00,}}, {0x6137,2,{0x90,0xF0,0x00,0x00,}}, {0x6138,2,{0x90,0xF1,0x00,0x00,}}, {0x6139,2,{0x90,0xF2,0x00,0x00,}}, {0x613A,2,{0x90,0xF3,0x00,0x00,}}, {0x613B,2,{0x90,0xF4,0x00,0x00,}}, {0x613C,2,{0x90,0xF5,0x00,0x00,}}, {0x613D,2,{0x90,0xF6,0x00,0x00,}}, {0x613E,2,{0x90,0xF7,0x00,0x00,}}, {0x613F,2,{0xD4,0xB8,0x00,0x00,}}, {0x6140,2,{0x90,0xF8,0x00,0x00,}}, {0x6141,2,{0x90,0xF9,0x00,0x00,}}, {0x6142,2,{0x90,0xFA,0x00,0x00,}}, {0x6143,2,{0x90,0xFB,0x00,0x00,}}, {0x6144,2,{0x90,0xFC,0x00,0x00,}}, {0x6145,2,{0x90,0xFD,0x00,0x00,}}, {0x6146,2,{0x90,0xFE,0x00,0x00,}}, {0x6147,2,{0x91,0x40,0x00,0x00,}}, {0x6148,2,{0xB4,0xC8,0x00,0x00,}}, {0x6149,2,{0x91,0x41,0x00,0x00,}}, {0x614A,2,{0xE3,0xBB,0x00,0x00,}}, {0x614B,2,{0x91,0x42,0x00,0x00,}}, {0x614C,2,{0xBB,0xC5,0x00,0x00,}}, {0x614D,2,{0x91,0x43,0x00,0x00,}}, {0x614E,2,{0xC9,0xF7,0x00,0x00,}}, {0x614F,2,{0x91,0x44,0x00,0x00,}}, {0x6150,2,{0x91,0x45,0x00,0x00,}}, {0x6151,2,{0xC9,0xE5,0x00,0x00,}}, {0x6152,2,{0x91,0x46,0x00,0x00,}}, {0x6153,2,{0x91,0x47,0x00,0x00,}}, {0x6154,2,{0x91,0x48,0x00,0x00,}}, {0x6155,2,{0xC4,0xBD,0x00,0x00,}}, {0x6156,2,{0x91,0x49,0x00,0x00,}}, {0x6157,2,{0x91,0x4A,0x00,0x00,}}, {0x6158,2,{0x91,0x4B,0x00,0x00,}}, {0x6159,2,{0x91,0x4C,0x00,0x00,}}, {0x615A,2,{0x91,0x4D,0x00,0x00,}}, {0x615B,2,{0x91,0x4E,0x00,0x00,}}, {0x615C,2,{0x91,0x4F,0x00,0x00,}}, {0x615D,2,{0xED,0xAB,0x00,0x00,}}, {0x615E,2,{0x91,0x50,0x00,0x00,}}, {0x615F,2,{0x91,0x51,0x00,0x00,}}, {0x6160,2,{0x91,0x52,0x00,0x00,}}, {0x6161,2,{0x91,0x53,0x00,0x00,}}, {0x6162,2,{0xC2,0xFD,0x00,0x00,}}, {0x6163,2,{0x91,0x54,0x00,0x00,}}, {0x6164,2,{0x91,0x55,0x00,0x00,}}, {0x6165,2,{0x91,0x56,0x00,0x00,}}, {0x6166,2,{0x91,0x57,0x00,0x00,}}, {0x6167,2,{0xBB,0xDB,0x00,0x00,}}, {0x6168,2,{0xBF,0xAE,0x00,0x00,}}, {0x6169,2,{0x91,0x58,0x00,0x00,}}, {0x616A,2,{0x91,0x59,0x00,0x00,}}, {0x616B,2,{0x91,0x5A,0x00,0x00,}}, {0x616C,2,{0x91,0x5B,0x00,0x00,}}, {0x616D,2,{0x91,0x5C,0x00,0x00,}}, {0x616E,2,{0x91,0x5D,0x00,0x00,}}, {0x616F,2,{0x91,0x5E,0x00,0x00,}}, {0x6170,2,{0xCE,0xBF,0x00,0x00,}}, {0x6171,2,{0x91,0x5F,0x00,0x00,}}, {0x6172,2,{0x91,0x60,0x00,0x00,}}, {0x6173,2,{0x91,0x61,0x00,0x00,}}, {0x6174,2,{0x91,0x62,0x00,0x00,}}, {0x6175,2,{0xE3,0xBC,0x00,0x00,}}, {0x6176,2,{0x91,0x63,0x00,0x00,}}, {0x6177,2,{0xBF,0xB6,0x00,0x00,}}, {0x6178,2,{0x91,0x64,0x00,0x00,}}, {0x6179,2,{0x91,0x65,0x00,0x00,}}, {0x617A,2,{0x91,0x66,0x00,0x00,}}, {0x617B,2,{0x91,0x67,0x00,0x00,}}, {0x617C,2,{0x91,0x68,0x00,0x00,}}, {0x617D,2,{0x91,0x69,0x00,0x00,}}, {0x617E,2,{0x91,0x6A,0x00,0x00,}}, {0x617F,2,{0x91,0x6B,0x00,0x00,}}, {0x6180,2,{0x91,0x6C,0x00,0x00,}}, {0x6181,2,{0x91,0x6D,0x00,0x00,}}, {0x6182,2,{0x91,0x6E,0x00,0x00,}}, {0x6183,2,{0x91,0x6F,0x00,0x00,}}, {0x6184,2,{0x91,0x70,0x00,0x00,}}, {0x6185,2,{0x91,0x71,0x00,0x00,}}, {0x6186,2,{0x91,0x72,0x00,0x00,}}, {0x6187,2,{0x91,0x73,0x00,0x00,}}, {0x6188,2,{0x91,0x74,0x00,0x00,}}, {0x6189,2,{0x91,0x75,0x00,0x00,}}, {0x618A,2,{0x91,0x76,0x00,0x00,}}, {0x618B,2,{0xB1,0xEF,0x00,0x00,}}, {0x618C,2,{0x91,0x77,0x00,0x00,}}, {0x618D,2,{0x91,0x78,0x00,0x00,}}, {0x618E,2,{0xD4,0xF7,0x00,0x00,}}, {0x618F,2,{0x91,0x79,0x00,0x00,}}, {0x6190,2,{0x91,0x7A,0x00,0x00,}}, {0x6191,2,{0x91,0x7B,0x00,0x00,}}, {0x6192,2,{0x91,0x7C,0x00,0x00,}}, {0x6193,2,{0x91,0x7D,0x00,0x00,}}, {0x6194,2,{0xE3,0xBE,0x00,0x00,}}, {0x6195,2,{0x91,0x7E,0x00,0x00,}}, {0x6196,2,{0x91,0x80,0x00,0x00,}}, {0x6197,2,{0x91,0x81,0x00,0x00,}}, {0x6198,2,{0x91,0x82,0x00,0x00,}}, {0x6199,2,{0x91,0x83,0x00,0x00,}}, {0x619A,2,{0x91,0x84,0x00,0x00,}}, {0x619B,2,{0x91,0x85,0x00,0x00,}}, {0x619C,2,{0x91,0x86,0x00,0x00,}}, {0x619D,2,{0xED,0xAD,0x00,0x00,}}, {0x619E,2,{0x91,0x87,0x00,0x00,}}, {0x619F,2,{0x91,0x88,0x00,0x00,}}, {0x61A0,2,{0x91,0x89,0x00,0x00,}}, {0x61A1,2,{0x91,0x8A,0x00,0x00,}}, {0x61A2,2,{0x91,0x8B,0x00,0x00,}}, {0x61A3,2,{0x91,0x8C,0x00,0x00,}}, {0x61A4,2,{0x91,0x8D,0x00,0x00,}}, {0x61A5,2,{0x91,0x8E,0x00,0x00,}}, {0x61A6,2,{0x91,0x8F,0x00,0x00,}}, {0x61A7,2,{0xE3,0xBF,0x00,0x00,}}, {0x61A8,2,{0xBA,0xA9,0x00,0x00,}}, {0x61A9,2,{0xED,0xAC,0x00,0x00,}}, {0x61AA,2,{0x91,0x90,0x00,0x00,}}, {0x61AB,2,{0x91,0x91,0x00,0x00,}}, {0x61AC,2,{0xE3,0xBD,0x00,0x00,}}, {0x61AD,2,{0x91,0x92,0x00,0x00,}}, {0x61AE,2,{0x91,0x93,0x00,0x00,}}, {0x61AF,2,{0x91,0x94,0x00,0x00,}}, {0x61B0,2,{0x91,0x95,0x00,0x00,}}, {0x61B1,2,{0x91,0x96,0x00,0x00,}}, {0x61B2,2,{0x91,0x97,0x00,0x00,}}, {0x61B3,2,{0x91,0x98,0x00,0x00,}}, {0x61B4,2,{0x91,0x99,0x00,0x00,}}, {0x61B5,2,{0x91,0x9A,0x00,0x00,}}, {0x61B6,2,{0x91,0x9B,0x00,0x00,}}, {0x61B7,2,{0xE3,0xC0,0x00,0x00,}}, {0x61B8,2,{0x91,0x9C,0x00,0x00,}}, {0x61B9,2,{0x91,0x9D,0x00,0x00,}}, {0x61BA,2,{0x91,0x9E,0x00,0x00,}}, {0x61BB,2,{0x91,0x9F,0x00,0x00,}}, {0x61BC,2,{0x91,0xA0,0x00,0x00,}}, {0x61BD,2,{0x91,0xA1,0x00,0x00,}}, {0x61BE,2,{0xBA,0xB6,0x00,0x00,}}, {0x61BF,2,{0x91,0xA2,0x00,0x00,}}, {0x61C0,2,{0x91,0xA3,0x00,0x00,}}, {0x61C1,2,{0x91,0xA4,0x00,0x00,}}, {0x61C2,2,{0xB6,0xAE,0x00,0x00,}}, {0x61C3,2,{0x91,0xA5,0x00,0x00,}}, {0x61C4,2,{0x91,0xA6,0x00,0x00,}}, {0x61C5,2,{0x91,0xA7,0x00,0x00,}}, {0x61C6,2,{0x91,0xA8,0x00,0x00,}}, {0x61C7,2,{0x91,0xA9,0x00,0x00,}}, {0x61C8,2,{0xD0,0xB8,0x00,0x00,}}, {0x61C9,2,{0x91,0xAA,0x00,0x00,}}, {0x61CA,2,{0xB0,0xC3,0x00,0x00,}}, {0x61CB,2,{0xED,0xAE,0x00,0x00,}}, {0x61CC,2,{0x91,0xAB,0x00,0x00,}}, {0x61CD,2,{0x91,0xAC,0x00,0x00,}}, {0x61CE,2,{0x91,0xAD,0x00,0x00,}}, {0x61CF,2,{0x91,0xAE,0x00,0x00,}}, {0x61D0,2,{0x91,0xAF,0x00,0x00,}}, {0x61D1,2,{0xED,0xAF,0x00,0x00,}}, {0x61D2,2,{0xC0,0xC1,0x00,0x00,}}, {0x61D3,2,{0x91,0xB0,0x00,0x00,}}, {0x61D4,2,{0xE3,0xC1,0x00,0x00,}}, {0x61D5,2,{0x91,0xB1,0x00,0x00,}}, {0x61D6,2,{0x91,0xB2,0x00,0x00,}}, {0x61D7,2,{0x91,0xB3,0x00,0x00,}}, {0x61D8,2,{0x91,0xB4,0x00,0x00,}}, {0x61D9,2,{0x91,0xB5,0x00,0x00,}}, {0x61DA,2,{0x91,0xB6,0x00,0x00,}}, {0x61DB,2,{0x91,0xB7,0x00,0x00,}}, {0x61DC,2,{0x91,0xB8,0x00,0x00,}}, {0x61DD,2,{0x91,0xB9,0x00,0x00,}}, {0x61DE,2,{0x91,0xBA,0x00,0x00,}}, {0x61DF,2,{0x91,0xBB,0x00,0x00,}}, {0x61E0,2,{0x91,0xBC,0x00,0x00,}}, {0x61E1,2,{0x91,0xBD,0x00,0x00,}}, {0x61E2,2,{0x91,0xBE,0x00,0x00,}}, {0x61E3,2,{0x91,0xBF,0x00,0x00,}}, {0x61E4,2,{0x91,0xC0,0x00,0x00,}}, {0x61E5,2,{0x91,0xC1,0x00,0x00,}}, {0x61E6,2,{0xC5,0xB3,0x00,0x00,}}, {0x61E7,2,{0x91,0xC2,0x00,0x00,}}, {0x61E8,2,{0x91,0xC3,0x00,0x00,}}, {0x61E9,2,{0x91,0xC4,0x00,0x00,}}, {0x61EA,2,{0x91,0xC5,0x00,0x00,}}, {0x61EB,2,{0x91,0xC6,0x00,0x00,}}, {0x61EC,2,{0x91,0xC7,0x00,0x00,}}, {0x61ED,2,{0x91,0xC8,0x00,0x00,}}, {0x61EE,2,{0x91,0xC9,0x00,0x00,}}, {0x61EF,2,{0x91,0xCA,0x00,0x00,}}, {0x61F0,2,{0x91,0xCB,0x00,0x00,}}, {0x61F1,2,{0x91,0xCC,0x00,0x00,}}, {0x61F2,2,{0x91,0xCD,0x00,0x00,}}, {0x61F3,2,{0x91,0xCE,0x00,0x00,}}, {0x61F4,2,{0x91,0xCF,0x00,0x00,}}, {0x61F5,2,{0xE3,0xC2,0x00,0x00,}}, {0x61F6,2,{0x91,0xD0,0x00,0x00,}}, {0x61F7,2,{0x91,0xD1,0x00,0x00,}}, {0x61F8,2,{0x91,0xD2,0x00,0x00,}}, {0x61F9,2,{0x91,0xD3,0x00,0x00,}}, {0x61FA,2,{0x91,0xD4,0x00,0x00,}}, {0x61FB,2,{0x91,0xD5,0x00,0x00,}}, {0x61FC,2,{0x91,0xD6,0x00,0x00,}}, {0x61FD,2,{0x91,0xD7,0x00,0x00,}}, {0x61FE,2,{0x91,0xD8,0x00,0x00,}}, {0x61FF,2,{0xDC,0xB2,0x00,0x00,}}, {0x6200,2,{0x91,0xD9,0x00,0x00,}}, {0x6201,2,{0x91,0xDA,0x00,0x00,}}, {0x6202,2,{0x91,0xDB,0x00,0x00,}}, {0x6203,2,{0x91,0xDC,0x00,0x00,}}, {0x6204,2,{0x91,0xDD,0x00,0x00,}}, {0x6205,2,{0x91,0xDE,0x00,0x00,}}, {0x6206,2,{0xED,0xB0,0x00,0x00,}}, {0x6207,2,{0x91,0xDF,0x00,0x00,}}, {0x6208,2,{0xB8,0xEA,0x00,0x00,}}, {0x6209,2,{0x91,0xE0,0x00,0x00,}}, {0x620A,2,{0xCE,0xEC,0x00,0x00,}}, {0x620B,2,{0xEA,0xA7,0x00,0x00,}}, {0x620C,2,{0xD0,0xE7,0x00,0x00,}}, {0x620D,2,{0xCA,0xF9,0x00,0x00,}}, {0x620E,2,{0xC8,0xD6,0x00,0x00,}}, {0x620F,2,{0xCF,0xB7,0x00,0x00,}}, {0x6210,2,{0xB3,0xC9,0x00,0x00,}}, {0x6211,2,{0xCE,0xD2,0x00,0x00,}}, {0x6212,2,{0xBD,0xE4,0x00,0x00,}}, {0x6213,2,{0x91,0xE1,0x00,0x00,}}, {0x6214,2,{0x91,0xE2,0x00,0x00,}}, {0x6215,2,{0xE3,0xDE,0x00,0x00,}}, {0x6216,2,{0xBB,0xF2,0x00,0x00,}}, {0x6217,2,{0xEA,0xA8,0x00,0x00,}}, {0x6218,2,{0xD5,0xBD,0x00,0x00,}}, {0x6219,2,{0x91,0xE3,0x00,0x00,}}, {0x621A,2,{0xC6,0xDD,0x00,0x00,}}, {0x621B,2,{0xEA,0xA9,0x00,0x00,}}, {0x621C,2,{0x91,0xE4,0x00,0x00,}}, {0x621D,2,{0x91,0xE5,0x00,0x00,}}, {0x621E,2,{0x91,0xE6,0x00,0x00,}}, {0x621F,2,{0xEA,0xAA,0x00,0x00,}}, {0x6220,2,{0x91,0xE7,0x00,0x00,}}, {0x6221,2,{0xEA,0xAC,0x00,0x00,}}, {0x6222,2,{0xEA,0xAB,0x00,0x00,}}, {0x6223,2,{0x91,0xE8,0x00,0x00,}}, {0x6224,2,{0xEA,0xAE,0x00,0x00,}}, {0x6225,2,{0xEA,0xAD,0x00,0x00,}}, {0x6226,2,{0x91,0xE9,0x00,0x00,}}, {0x6227,2,{0x91,0xEA,0x00,0x00,}}, {0x6228,2,{0x91,0xEB,0x00,0x00,}}, {0x6229,2,{0x91,0xEC,0x00,0x00,}}, {0x622A,2,{0xBD,0xD8,0x00,0x00,}}, {0x622B,2,{0x91,0xED,0x00,0x00,}}, {0x622C,2,{0xEA,0xAF,0x00,0x00,}}, {0x622D,2,{0x91,0xEE,0x00,0x00,}}, {0x622E,2,{0xC2,0xBE,0x00,0x00,}}, {0x622F,2,{0x91,0xEF,0x00,0x00,}}, {0x6230,2,{0x91,0xF0,0x00,0x00,}}, {0x6231,2,{0x91,0xF1,0x00,0x00,}}, {0x6232,2,{0x91,0xF2,0x00,0x00,}}, {0x6233,2,{0xB4,0xC1,0x00,0x00,}}, {0x6234,2,{0xB4,0xF7,0x00,0x00,}}, {0x6235,2,{0x91,0xF3,0x00,0x00,}}, {0x6236,2,{0x91,0xF4,0x00,0x00,}}, {0x6237,2,{0xBB,0xA7,0x00,0x00,}}, {0x6238,2,{0x91,0xF5,0x00,0x00,}}, {0x6239,2,{0x91,0xF6,0x00,0x00,}}, {0x623A,2,{0x91,0xF7,0x00,0x00,}}, {0x623B,2,{0x91,0xF8,0x00,0x00,}}, {0x623C,2,{0x91,0xF9,0x00,0x00,}}, {0x623D,2,{0xEC,0xE6,0x00,0x00,}}, {0x623E,2,{0xEC,0xE5,0x00,0x00,}}, {0x623F,2,{0xB7,0xBF,0x00,0x00,}}, {0x6240,2,{0xCB,0xF9,0x00,0x00,}}, {0x6241,2,{0xB1,0xE2,0x00,0x00,}}, {0x6242,2,{0x91,0xFA,0x00,0x00,}}, {0x6243,2,{0xEC,0xE7,0x00,0x00,}}, {0x6244,2,{0x91,0xFB,0x00,0x00,}}, {0x6245,2,{0x91,0xFC,0x00,0x00,}}, {0x6246,2,{0x91,0xFD,0x00,0x00,}}, {0x6247,2,{0xC9,0xC8,0x00,0x00,}}, {0x6248,2,{0xEC,0xE8,0x00,0x00,}}, {0x6249,2,{0xEC,0xE9,0x00,0x00,}}, {0x624A,2,{0x91,0xFE,0x00,0x00,}}, {0x624B,2,{0xCA,0xD6,0x00,0x00,}}, {0x624C,2,{0xDE,0xD0,0x00,0x00,}}, {0x624D,2,{0xB2,0xC5,0x00,0x00,}}, {0x624E,2,{0xD4,0xFA,0x00,0x00,}}, {0x624F,2,{0x92,0x40,0x00,0x00,}}, {0x6250,2,{0x92,0x41,0x00,0x00,}}, {0x6251,2,{0xC6,0xCB,0x00,0x00,}}, {0x6252,2,{0xB0,0xC7,0x00,0x00,}}, {0x6253,2,{0xB4,0xF2,0x00,0x00,}}, {0x6254,2,{0xC8,0xD3,0x00,0x00,}}, {0x6255,2,{0x92,0x42,0x00,0x00,}}, {0x6256,2,{0x92,0x43,0x00,0x00,}}, {0x6257,2,{0x92,0x44,0x00,0x00,}}, {0x6258,2,{0xCD,0xD0,0x00,0x00,}}, {0x6259,2,{0x92,0x45,0x00,0x00,}}, {0x625A,2,{0x92,0x46,0x00,0x00,}}, {0x625B,2,{0xBF,0xB8,0x00,0x00,}}, {0x625C,2,{0x92,0x47,0x00,0x00,}}, {0x625D,2,{0x92,0x48,0x00,0x00,}}, {0x625E,2,{0x92,0x49,0x00,0x00,}}, {0x625F,2,{0x92,0x4A,0x00,0x00,}}, {0x6260,2,{0x92,0x4B,0x00,0x00,}}, {0x6261,2,{0x92,0x4C,0x00,0x00,}}, {0x6262,2,{0x92,0x4D,0x00,0x00,}}, {0x6263,2,{0xBF,0xDB,0x00,0x00,}}, {0x6264,2,{0x92,0x4E,0x00,0x00,}}, {0x6265,2,{0x92,0x4F,0x00,0x00,}}, {0x6266,2,{0xC7,0xA4,0x00,0x00,}}, {0x6267,2,{0xD6,0xB4,0x00,0x00,}}, {0x6268,2,{0x92,0x50,0x00,0x00,}}, {0x6269,2,{0xC0,0xA9,0x00,0x00,}}, {0x626A,2,{0xDE,0xD1,0x00,0x00,}}, {0x626B,2,{0xC9,0xA8,0x00,0x00,}}, {0x626C,2,{0xD1,0xEF,0x00,0x00,}}, {0x626D,2,{0xC5,0xA4,0x00,0x00,}}, {0x626E,2,{0xB0,0xE7,0x00,0x00,}}, {0x626F,2,{0xB3,0xB6,0x00,0x00,}}, {0x6270,2,{0xC8,0xC5,0x00,0x00,}}, {0x6271,2,{0x92,0x51,0x00,0x00,}}, {0x6272,2,{0x92,0x52,0x00,0x00,}}, {0x6273,2,{0xB0,0xE2,0x00,0x00,}}, {0x6274,2,{0x92,0x53,0x00,0x00,}}, {0x6275,2,{0x92,0x54,0x00,0x00,}}, {0x6276,2,{0xB7,0xF6,0x00,0x00,}}, {0x6277,2,{0x92,0x55,0x00,0x00,}}, {0x6278,2,{0x92,0x56,0x00,0x00,}}, {0x6279,2,{0xC5,0xFA,0x00,0x00,}}, {0x627A,2,{0x92,0x57,0x00,0x00,}}, {0x627B,2,{0x92,0x58,0x00,0x00,}}, {0x627C,2,{0xB6,0xF3,0x00,0x00,}}, {0x627D,2,{0x92,0x59,0x00,0x00,}}, {0x627E,2,{0xD5,0xD2,0x00,0x00,}}, {0x627F,2,{0xB3,0xD0,0x00,0x00,}}, {0x6280,2,{0xBC,0xBC,0x00,0x00,}}, {0x6281,2,{0x92,0x5A,0x00,0x00,}}, {0x6282,2,{0x92,0x5B,0x00,0x00,}}, {0x6283,2,{0x92,0x5C,0x00,0x00,}}, {0x6284,2,{0xB3,0xAD,0x00,0x00,}}, {0x6285,2,{0x92,0x5D,0x00,0x00,}}, {0x6286,2,{0x92,0x5E,0x00,0x00,}}, {0x6287,2,{0x92,0x5F,0x00,0x00,}}, {0x6288,2,{0x92,0x60,0x00,0x00,}}, {0x6289,2,{0xBE,0xF1,0x00,0x00,}}, {0x628A,2,{0xB0,0xD1,0x00,0x00,}}, {0x628B,2,{0x92,0x61,0x00,0x00,}}, {0x628C,2,{0x92,0x62,0x00,0x00,}}, {0x628D,2,{0x92,0x63,0x00,0x00,}}, {0x628E,2,{0x92,0x64,0x00,0x00,}}, {0x628F,2,{0x92,0x65,0x00,0x00,}}, {0x6290,2,{0x92,0x66,0x00,0x00,}}, {0x6291,2,{0xD2,0xD6,0x00,0x00,}}, {0x6292,2,{0xCA,0xE3,0x00,0x00,}}, {0x6293,2,{0xD7,0xA5,0x00,0x00,}}, {0x6294,2,{0x92,0x67,0x00,0x00,}}, {0x6295,2,{0xCD,0xB6,0x00,0x00,}}, {0x6296,2,{0xB6,0xB6,0x00,0x00,}}, {0x6297,2,{0xBF,0xB9,0x00,0x00,}}, {0x6298,2,{0xD5,0xDB,0x00,0x00,}}, {0x6299,2,{0x92,0x68,0x00,0x00,}}, {0x629A,2,{0xB8,0xA7,0x00,0x00,}}, {0x629B,2,{0xC5,0xD7,0x00,0x00,}}, {0x629C,2,{0x92,0x69,0x00,0x00,}}, {0x629D,2,{0x92,0x6A,0x00,0x00,}}, {0x629E,2,{0x92,0x6B,0x00,0x00,}}, {0x629F,2,{0xDE,0xD2,0x00,0x00,}}, {0x62A0,2,{0xBF,0xD9,0x00,0x00,}}, {0x62A1,2,{0xC2,0xD5,0x00,0x00,}}, {0x62A2,2,{0xC7,0xC0,0x00,0x00,}}, {0x62A3,2,{0x92,0x6C,0x00,0x00,}}, {0x62A4,2,{0xBB,0xA4,0x00,0x00,}}, {0x62A5,2,{0xB1,0xA8,0x00,0x00,}}, {0x62A6,2,{0x92,0x6D,0x00,0x00,}}, {0x62A7,2,{0x92,0x6E,0x00,0x00,}}, {0x62A8,2,{0xC5,0xEA,0x00,0x00,}}, {0x62A9,2,{0x92,0x6F,0x00,0x00,}}, {0x62AA,2,{0x92,0x70,0x00,0x00,}}, {0x62AB,2,{0xC5,0xFB,0x00,0x00,}}, {0x62AC,2,{0xCC,0xA7,0x00,0x00,}}, {0x62AD,2,{0x92,0x71,0x00,0x00,}}, {0x62AE,2,{0x92,0x72,0x00,0x00,}}, {0x62AF,2,{0x92,0x73,0x00,0x00,}}, {0x62B0,2,{0x92,0x74,0x00,0x00,}}, {0x62B1,2,{0xB1,0xA7,0x00,0x00,}}, {0x62B2,2,{0x92,0x75,0x00,0x00,}}, {0x62B3,2,{0x92,0x76,0x00,0x00,}}, {0x62B4,2,{0x92,0x77,0x00,0x00,}}, {0x62B5,2,{0xB5,0xD6,0x00,0x00,}}, {0x62B6,2,{0x92,0x78,0x00,0x00,}}, {0x62B7,2,{0x92,0x79,0x00,0x00,}}, {0x62B8,2,{0x92,0x7A,0x00,0x00,}}, {0x62B9,2,{0xC4,0xA8,0x00,0x00,}}, {0x62BA,2,{0x92,0x7B,0x00,0x00,}}, {0x62BB,2,{0xDE,0xD3,0x00,0x00,}}, {0x62BC,2,{0xD1,0xBA,0x00,0x00,}}, {0x62BD,2,{0xB3,0xE9,0x00,0x00,}}, {0x62BE,2,{0x92,0x7C,0x00,0x00,}}, {0x62BF,2,{0xC3,0xF2,0x00,0x00,}}, {0x62C0,2,{0x92,0x7D,0x00,0x00,}}, {0x62C1,2,{0x92,0x7E,0x00,0x00,}}, {0x62C2,2,{0xB7,0xF7,0x00,0x00,}}, {0x62C3,2,{0x92,0x80,0x00,0x00,}}, {0x62C4,2,{0xD6,0xF4,0x00,0x00,}}, {0x62C5,2,{0xB5,0xA3,0x00,0x00,}}, {0x62C6,2,{0xB2,0xF0,0x00,0x00,}}, {0x62C7,2,{0xC4,0xB4,0x00,0x00,}}, {0x62C8,2,{0xC4,0xE9,0x00,0x00,}}, {0x62C9,2,{0xC0,0xAD,0x00,0x00,}}, {0x62CA,2,{0xDE,0xD4,0x00,0x00,}}, {0x62CB,2,{0x92,0x81,0x00,0x00,}}, {0x62CC,2,{0xB0,0xE8,0x00,0x00,}}, {0x62CD,2,{0xC5,0xC4,0x00,0x00,}}, {0x62CE,2,{0xC1,0xE0,0x00,0x00,}}, {0x62CF,2,{0x92,0x82,0x00,0x00,}}, {0x62D0,2,{0xB9,0xD5,0x00,0x00,}}, {0x62D1,2,{0x92,0x83,0x00,0x00,}}, {0x62D2,2,{0xBE,0xDC,0x00,0x00,}}, {0x62D3,2,{0xCD,0xD8,0x00,0x00,}}, {0x62D4,2,{0xB0,0xCE,0x00,0x00,}}, {0x62D5,2,{0x92,0x84,0x00,0x00,}}, {0x62D6,2,{0xCD,0xCF,0x00,0x00,}}, {0x62D7,2,{0xDE,0xD6,0x00,0x00,}}, {0x62D8,2,{0xBE,0xD0,0x00,0x00,}}, {0x62D9,2,{0xD7,0xBE,0x00,0x00,}}, {0x62DA,2,{0xDE,0xD5,0x00,0x00,}}, {0x62DB,2,{0xD5,0xD0,0x00,0x00,}}, {0x62DC,2,{0xB0,0xDD,0x00,0x00,}}, {0x62DD,2,{0x92,0x85,0x00,0x00,}}, {0x62DE,2,{0x92,0x86,0x00,0x00,}}, {0x62DF,2,{0xC4,0xE2,0x00,0x00,}}, {0x62E0,2,{0x92,0x87,0x00,0x00,}}, {0x62E1,2,{0x92,0x88,0x00,0x00,}}, {0x62E2,2,{0xC2,0xA3,0x00,0x00,}}, {0x62E3,2,{0xBC,0xF0,0x00,0x00,}}, {0x62E4,2,{0x92,0x89,0x00,0x00,}}, {0x62E5,2,{0xD3,0xB5,0x00,0x00,}}, {0x62E6,2,{0xC0,0xB9,0x00,0x00,}}, {0x62E7,2,{0xC5,0xA1,0x00,0x00,}}, {0x62E8,2,{0xB2,0xA6,0x00,0x00,}}, {0x62E9,2,{0xD4,0xF1,0x00,0x00,}}, {0x62EA,2,{0x92,0x8A,0x00,0x00,}}, {0x62EB,2,{0x92,0x8B,0x00,0x00,}}, {0x62EC,2,{0xC0,0xA8,0x00,0x00,}}, {0x62ED,2,{0xCA,0xC3,0x00,0x00,}}, {0x62EE,2,{0xDE,0xD7,0x00,0x00,}}, {0x62EF,2,{0xD5,0xFC,0x00,0x00,}}, {0x62F0,2,{0x92,0x8C,0x00,0x00,}}, {0x62F1,2,{0xB9,0xB0,0x00,0x00,}}, {0x62F2,2,{0x92,0x8D,0x00,0x00,}}, {0x62F3,2,{0xC8,0xAD,0x00,0x00,}}, {0x62F4,2,{0xCB,0xA9,0x00,0x00,}}, {0x62F5,2,{0x92,0x8E,0x00,0x00,}}, {0x62F6,2,{0xDE,0xD9,0x00,0x00,}}, {0x62F7,2,{0xBF,0xBD,0x00,0x00,}}, {0x62F8,2,{0x92,0x8F,0x00,0x00,}}, {0x62F9,2,{0x92,0x90,0x00,0x00,}}, {0x62FA,2,{0x92,0x91,0x00,0x00,}}, {0x62FB,2,{0x92,0x92,0x00,0x00,}}, {0x62FC,2,{0xC6,0xB4,0x00,0x00,}}, {0x62FD,2,{0xD7,0xA7,0x00,0x00,}}, {0x62FE,2,{0xCA,0xB0,0x00,0x00,}}, {0x62FF,2,{0xC4,0xC3,0x00,0x00,}}, {0x6300,2,{0x92,0x93,0x00,0x00,}}, {0x6301,2,{0xB3,0xD6,0x00,0x00,}}, {0x6302,2,{0xB9,0xD2,0x00,0x00,}}, {0x6303,2,{0x92,0x94,0x00,0x00,}}, {0x6304,2,{0x92,0x95,0x00,0x00,}}, {0x6305,2,{0x92,0x96,0x00,0x00,}}, {0x6306,2,{0x92,0x97,0x00,0x00,}}, {0x6307,2,{0xD6,0xB8,0x00,0x00,}}, {0x6308,2,{0xEA,0xFC,0x00,0x00,}}, {0x6309,2,{0xB0,0xB4,0x00,0x00,}}, {0x630A,2,{0x92,0x98,0x00,0x00,}}, {0x630B,2,{0x92,0x99,0x00,0x00,}}, {0x630C,2,{0x92,0x9A,0x00,0x00,}}, {0x630D,2,{0x92,0x9B,0x00,0x00,}}, {0x630E,2,{0xBF,0xE6,0x00,0x00,}}, {0x630F,2,{0x92,0x9C,0x00,0x00,}}, {0x6310,2,{0x92,0x9D,0x00,0x00,}}, {0x6311,2,{0xCC,0xF4,0x00,0x00,}}, {0x6312,2,{0x92,0x9E,0x00,0x00,}}, {0x6313,2,{0x92,0x9F,0x00,0x00,}}, {0x6314,2,{0x92,0xA0,0x00,0x00,}}, {0x6315,2,{0x92,0xA1,0x00,0x00,}}, {0x6316,2,{0xCD,0xDA,0x00,0x00,}}, {0x6317,2,{0x92,0xA2,0x00,0x00,}}, {0x6318,2,{0x92,0xA3,0x00,0x00,}}, {0x6319,2,{0x92,0xA4,0x00,0x00,}}, {0x631A,2,{0xD6,0xBF,0x00,0x00,}}, {0x631B,2,{0xC2,0xCE,0x00,0x00,}}, {0x631C,2,{0x92,0xA5,0x00,0x00,}}, {0x631D,2,{0xCE,0xCE,0x00,0x00,}}, {0x631E,2,{0xCC,0xA2,0x00,0x00,}}, {0x631F,2,{0xD0,0xAE,0x00,0x00,}}, {0x6320,2,{0xC4,0xD3,0x00,0x00,}}, {0x6321,2,{0xB5,0xB2,0x00,0x00,}}, {0x6322,2,{0xDE,0xD8,0x00,0x00,}}, {0x6323,2,{0xD5,0xF5,0x00,0x00,}}, {0x6324,2,{0xBC,0xB7,0x00,0x00,}}, {0x6325,2,{0xBB,0xD3,0x00,0x00,}}, {0x6326,2,{0x92,0xA6,0x00,0x00,}}, {0x6327,2,{0x92,0xA7,0x00,0x00,}}, {0x6328,2,{0xB0,0xA4,0x00,0x00,}}, {0x6329,2,{0x92,0xA8,0x00,0x00,}}, {0x632A,2,{0xC5,0xB2,0x00,0x00,}}, {0x632B,2,{0xB4,0xEC,0x00,0x00,}}, {0x632C,2,{0x92,0xA9,0x00,0x00,}}, {0x632D,2,{0x92,0xAA,0x00,0x00,}}, {0x632E,2,{0x92,0xAB,0x00,0x00,}}, {0x632F,2,{0xD5,0xF1,0x00,0x00,}}, {0x6330,2,{0x92,0xAC,0x00,0x00,}}, {0x6331,2,{0x92,0xAD,0x00,0x00,}}, {0x6332,2,{0xEA,0xFD,0x00,0x00,}}, {0x6333,2,{0x92,0xAE,0x00,0x00,}}, {0x6334,2,{0x92,0xAF,0x00,0x00,}}, {0x6335,2,{0x92,0xB0,0x00,0x00,}}, {0x6336,2,{0x92,0xB1,0x00,0x00,}}, {0x6337,2,{0x92,0xB2,0x00,0x00,}}, {0x6338,2,{0x92,0xB3,0x00,0x00,}}, {0x6339,2,{0xDE,0xDA,0x00,0x00,}}, {0x633A,2,{0xCD,0xA6,0x00,0x00,}}, {0x633B,2,{0x92,0xB4,0x00,0x00,}}, {0x633C,2,{0x92,0xB5,0x00,0x00,}}, {0x633D,2,{0xCD,0xEC,0x00,0x00,}}, {0x633E,2,{0x92,0xB6,0x00,0x00,}}, {0x633F,2,{0x92,0xB7,0x00,0x00,}}, {0x6340,2,{0x92,0xB8,0x00,0x00,}}, {0x6341,2,{0x92,0xB9,0x00,0x00,}}, {0x6342,2,{0xCE,0xE6,0x00,0x00,}}, {0x6343,2,{0xDE,0xDC,0x00,0x00,}}, {0x6344,2,{0x92,0xBA,0x00,0x00,}}, {0x6345,2,{0xCD,0xB1,0x00,0x00,}}, {0x6346,2,{0xC0,0xA6,0x00,0x00,}}, {0x6347,2,{0x92,0xBB,0x00,0x00,}}, {0x6348,2,{0x92,0xBC,0x00,0x00,}}, {0x6349,2,{0xD7,0xBD,0x00,0x00,}}, {0x634A,2,{0x92,0xBD,0x00,0x00,}}, {0x634B,2,{0xDE,0xDB,0x00,0x00,}}, {0x634C,2,{0xB0,0xC6,0x00,0x00,}}, {0x634D,2,{0xBA,0xB4,0x00,0x00,}}, {0x634E,2,{0xC9,0xD3,0x00,0x00,}}, {0x634F,2,{0xC4,0xF3,0x00,0x00,}}, {0x6350,2,{0xBE,0xE8,0x00,0x00,}}, {0x6351,2,{0x92,0xBE,0x00,0x00,}}, {0x6352,2,{0x92,0xBF,0x00,0x00,}}, {0x6353,2,{0x92,0xC0,0x00,0x00,}}, {0x6354,2,{0x92,0xC1,0x00,0x00,}}, {0x6355,2,{0xB2,0xB6,0x00,0x00,}}, {0x6356,2,{0x92,0xC2,0x00,0x00,}}, {0x6357,2,{0x92,0xC3,0x00,0x00,}}, {0x6358,2,{0x92,0xC4,0x00,0x00,}}, {0x6359,2,{0x92,0xC5,0x00,0x00,}}, {0x635A,2,{0x92,0xC6,0x00,0x00,}}, {0x635B,2,{0x92,0xC7,0x00,0x00,}}, {0x635C,2,{0x92,0xC8,0x00,0x00,}}, {0x635D,2,{0x92,0xC9,0x00,0x00,}}, {0x635E,2,{0xC0,0xCC,0x00,0x00,}}, {0x635F,2,{0xCB,0xF0,0x00,0x00,}}, {0x6360,2,{0x92,0xCA,0x00,0x00,}}, {0x6361,2,{0xBC,0xF1,0x00,0x00,}}, {0x6362,2,{0xBB,0xBB,0x00,0x00,}}, {0x6363,2,{0xB5,0xB7,0x00,0x00,}}, {0x6364,2,{0x92,0xCB,0x00,0x00,}}, {0x6365,2,{0x92,0xCC,0x00,0x00,}}, {0x6366,2,{0x92,0xCD,0x00,0x00,}}, {0x6367,2,{0xC5,0xF5,0x00,0x00,}}, {0x6368,2,{0x92,0xCE,0x00,0x00,}}, {0x6369,2,{0xDE,0xE6,0x00,0x00,}}, {0x636A,2,{0x92,0xCF,0x00,0x00,}}, {0x636B,2,{0x92,0xD0,0x00,0x00,}}, {0x636C,2,{0x92,0xD1,0x00,0x00,}}, {0x636D,2,{0xDE,0xE3,0x00,0x00,}}, {0x636E,2,{0xBE,0xDD,0x00,0x00,}}, {0x636F,2,{0x92,0xD2,0x00,0x00,}}, {0x6370,2,{0x92,0xD3,0x00,0x00,}}, {0x6371,2,{0xDE,0xDF,0x00,0x00,}}, {0x6372,2,{0x92,0xD4,0x00,0x00,}}, {0x6373,2,{0x92,0xD5,0x00,0x00,}}, {0x6374,2,{0x92,0xD6,0x00,0x00,}}, {0x6375,2,{0x92,0xD7,0x00,0x00,}}, {0x6376,2,{0xB4,0xB7,0x00,0x00,}}, {0x6377,2,{0xBD,0xDD,0x00,0x00,}}, {0x6378,2,{0x92,0xD8,0x00,0x00,}}, {0x6379,2,{0x92,0xD9,0x00,0x00,}}, {0x637A,2,{0xDE,0xE0,0x00,0x00,}}, {0x637B,2,{0xC4,0xED,0x00,0x00,}}, {0x637C,2,{0x92,0xDA,0x00,0x00,}}, {0x637D,2,{0x92,0xDB,0x00,0x00,}}, {0x637E,2,{0x92,0xDC,0x00,0x00,}}, {0x637F,2,{0x92,0xDD,0x00,0x00,}}, {0x6380,2,{0xCF,0xC6,0x00,0x00,}}, {0x6381,2,{0x92,0xDE,0x00,0x00,}}, {0x6382,2,{0xB5,0xE0,0x00,0x00,}}, {0x6383,2,{0x92,0xDF,0x00,0x00,}}, {0x6384,2,{0x92,0xE0,0x00,0x00,}}, {0x6385,2,{0x92,0xE1,0x00,0x00,}}, {0x6386,2,{0x92,0xE2,0x00,0x00,}}, {0x6387,2,{0xB6,0xDE,0x00,0x00,}}, {0x6388,2,{0xCA,0xDA,0x00,0x00,}}, {0x6389,2,{0xB5,0xF4,0x00,0x00,}}, {0x638A,2,{0xDE,0xE5,0x00,0x00,}}, {0x638B,2,{0x92,0xE3,0x00,0x00,}}, {0x638C,2,{0xD5,0xC6,0x00,0x00,}}, {0x638D,2,{0x92,0xE4,0x00,0x00,}}, {0x638E,2,{0xDE,0xE1,0x00,0x00,}}, {0x638F,2,{0xCC,0xCD,0x00,0x00,}}, {0x6390,2,{0xC6,0xFE,0x00,0x00,}}, {0x6391,2,{0x92,0xE5,0x00,0x00,}}, {0x6392,2,{0xC5,0xC5,0x00,0x00,}}, {0x6393,2,{0x92,0xE6,0x00,0x00,}}, {0x6394,2,{0x92,0xE7,0x00,0x00,}}, {0x6395,2,{0x92,0xE8,0x00,0x00,}}, {0x6396,2,{0xD2,0xB4,0x00,0x00,}}, {0x6397,2,{0x92,0xE9,0x00,0x00,}}, {0x6398,2,{0xBE,0xF2,0x00,0x00,}}, {0x6399,2,{0x92,0xEA,0x00,0x00,}}, {0x639A,2,{0x92,0xEB,0x00,0x00,}}, {0x639B,2,{0x92,0xEC,0x00,0x00,}}, {0x639C,2,{0x92,0xED,0x00,0x00,}}, {0x639D,2,{0x92,0xEE,0x00,0x00,}}, {0x639E,2,{0x92,0xEF,0x00,0x00,}}, {0x639F,2,{0x92,0xF0,0x00,0x00,}}, {0x63A0,2,{0xC2,0xD3,0x00,0x00,}}, {0x63A1,2,{0x92,0xF1,0x00,0x00,}}, {0x63A2,2,{0xCC,0xBD,0x00,0x00,}}, {0x63A3,2,{0xB3,0xB8,0x00,0x00,}}, {0x63A4,2,{0x92,0xF2,0x00,0x00,}}, {0x63A5,2,{0xBD,0xD3,0x00,0x00,}}, {0x63A6,2,{0x92,0xF3,0x00,0x00,}}, {0x63A7,2,{0xBF,0xD8,0x00,0x00,}}, {0x63A8,2,{0xCD,0xC6,0x00,0x00,}}, {0x63A9,2,{0xD1,0xDA,0x00,0x00,}}, {0x63AA,2,{0xB4,0xEB,0x00,0x00,}}, {0x63AB,2,{0x92,0xF4,0x00,0x00,}}, {0x63AC,2,{0xDE,0xE4,0x00,0x00,}}, {0x63AD,2,{0xDE,0xDD,0x00,0x00,}}, {0x63AE,2,{0xDE,0xE7,0x00,0x00,}}, {0x63AF,2,{0x92,0xF5,0x00,0x00,}}, {0x63B0,2,{0xEA,0xFE,0x00,0x00,}}, {0x63B1,2,{0x92,0xF6,0x00,0x00,}}, {0x63B2,2,{0x92,0xF7,0x00,0x00,}}, {0x63B3,2,{0xC2,0xB0,0x00,0x00,}}, {0x63B4,2,{0xDE,0xE2,0x00,0x00,}}, {0x63B5,2,{0x92,0xF8,0x00,0x00,}}, {0x63B6,2,{0x92,0xF9,0x00,0x00,}}, {0x63B7,2,{0xD6,0xC0,0x00,0x00,}}, {0x63B8,2,{0xB5,0xA7,0x00,0x00,}}, {0x63B9,2,{0x92,0xFA,0x00,0x00,}}, {0x63BA,2,{0xB2,0xF4,0x00,0x00,}}, {0x63BB,2,{0x92,0xFB,0x00,0x00,}}, {0x63BC,2,{0xDE,0xE8,0x00,0x00,}}, {0x63BD,2,{0x92,0xFC,0x00,0x00,}}, {0x63BE,2,{0xDE,0xF2,0x00,0x00,}}, {0x63BF,2,{0x92,0xFD,0x00,0x00,}}, {0x63C0,2,{0x92,0xFE,0x00,0x00,}}, {0x63C1,2,{0x93,0x40,0x00,0x00,}}, {0x63C2,2,{0x93,0x41,0x00,0x00,}}, {0x63C3,2,{0x93,0x42,0x00,0x00,}}, {0x63C4,2,{0xDE,0xED,0x00,0x00,}}, {0x63C5,2,{0x93,0x43,0x00,0x00,}}, {0x63C6,2,{0xDE,0xF1,0x00,0x00,}}, {0x63C7,2,{0x93,0x44,0x00,0x00,}}, {0x63C8,2,{0x93,0x45,0x00,0x00,}}, {0x63C9,2,{0xC8,0xE0,0x00,0x00,}}, {0x63CA,2,{0x93,0x46,0x00,0x00,}}, {0x63CB,2,{0x93,0x47,0x00,0x00,}}, {0x63CC,2,{0x93,0x48,0x00,0x00,}}, {0x63CD,2,{0xD7,0xE1,0x00,0x00,}}, {0x63CE,2,{0xDE,0xEF,0x00,0x00,}}, {0x63CF,2,{0xC3,0xE8,0x00,0x00,}}, {0x63D0,2,{0xCC,0xE1,0x00,0x00,}}, {0x63D1,2,{0x93,0x49,0x00,0x00,}}, {0x63D2,2,{0xB2,0xE5,0x00,0x00,}}, {0x63D3,2,{0x93,0x4A,0x00,0x00,}}, {0x63D4,2,{0x93,0x4B,0x00,0x00,}}, {0x63D5,2,{0x93,0x4C,0x00,0x00,}}, {0x63D6,2,{0xD2,0xBE,0x00,0x00,}}, {0x63D7,2,{0x93,0x4D,0x00,0x00,}}, {0x63D8,2,{0x93,0x4E,0x00,0x00,}}, {0x63D9,2,{0x93,0x4F,0x00,0x00,}}, {0x63DA,2,{0x93,0x50,0x00,0x00,}}, {0x63DB,2,{0x93,0x51,0x00,0x00,}}, {0x63DC,2,{0x93,0x52,0x00,0x00,}}, {0x63DD,2,{0x93,0x53,0x00,0x00,}}, {0x63DE,2,{0xDE,0xEE,0x00,0x00,}}, {0x63DF,2,{0x93,0x54,0x00,0x00,}}, {0x63E0,2,{0xDE,0xEB,0x00,0x00,}}, {0x63E1,2,{0xCE,0xD5,0x00,0x00,}}, {0x63E2,2,{0x93,0x55,0x00,0x00,}}, {0x63E3,2,{0xB4,0xA7,0x00,0x00,}}, {0x63E4,2,{0x93,0x56,0x00,0x00,}}, {0x63E5,2,{0x93,0x57,0x00,0x00,}}, {0x63E6,2,{0x93,0x58,0x00,0x00,}}, {0x63E7,2,{0x93,0x59,0x00,0x00,}}, {0x63E8,2,{0x93,0x5A,0x00,0x00,}}, {0x63E9,2,{0xBF,0xAB,0x00,0x00,}}, {0x63EA,2,{0xBE,0xBE,0x00,0x00,}}, {0x63EB,2,{0x93,0x5B,0x00,0x00,}}, {0x63EC,2,{0x93,0x5C,0x00,0x00,}}, {0x63ED,2,{0xBD,0xD2,0x00,0x00,}}, {0x63EE,2,{0x93,0x5D,0x00,0x00,}}, {0x63EF,2,{0x93,0x5E,0x00,0x00,}}, {0x63F0,2,{0x93,0x5F,0x00,0x00,}}, {0x63F1,2,{0x93,0x60,0x00,0x00,}}, {0x63F2,2,{0xDE,0xE9,0x00,0x00,}}, {0x63F3,2,{0x93,0x61,0x00,0x00,}}, {0x63F4,2,{0xD4,0xAE,0x00,0x00,}}, {0x63F5,2,{0x93,0x62,0x00,0x00,}}, {0x63F6,2,{0xDE,0xDE,0x00,0x00,}}, {0x63F7,2,{0x93,0x63,0x00,0x00,}}, {0x63F8,2,{0xDE,0xEA,0x00,0x00,}}, {0x63F9,2,{0x93,0x64,0x00,0x00,}}, {0x63FA,2,{0x93,0x65,0x00,0x00,}}, {0x63FB,2,{0x93,0x66,0x00,0x00,}}, {0x63FC,2,{0x93,0x67,0x00,0x00,}}, {0x63FD,2,{0xC0,0xBF,0x00,0x00,}}, {0x63FE,2,{0x93,0x68,0x00,0x00,}}, {0x63FF,2,{0xDE,0xEC,0x00,0x00,}}, {0x6400,2,{0xB2,0xF3,0x00,0x00,}}, {0x6401,2,{0xB8,0xE9,0x00,0x00,}}, {0x6402,2,{0xC2,0xA7,0x00,0x00,}}, {0x6403,2,{0x93,0x69,0x00,0x00,}}, {0x6404,2,{0x93,0x6A,0x00,0x00,}}, {0x6405,2,{0xBD,0xC1,0x00,0x00,}}, {0x6406,2,{0x93,0x6B,0x00,0x00,}}, {0x6407,2,{0x93,0x6C,0x00,0x00,}}, {0x6408,2,{0x93,0x6D,0x00,0x00,}}, {0x6409,2,{0x93,0x6E,0x00,0x00,}}, {0x640A,2,{0x93,0x6F,0x00,0x00,}}, {0x640B,2,{0xDE,0xF5,0x00,0x00,}}, {0x640C,2,{0xDE,0xF8,0x00,0x00,}}, {0x640D,2,{0x93,0x70,0x00,0x00,}}, {0x640E,2,{0x93,0x71,0x00,0x00,}}, {0x640F,2,{0xB2,0xAB,0x00,0x00,}}, {0x6410,2,{0xB4,0xA4,0x00,0x00,}}, {0x6411,2,{0x93,0x72,0x00,0x00,}}, {0x6412,2,{0x93,0x73,0x00,0x00,}}, {0x6413,2,{0xB4,0xEA,0x00,0x00,}}, {0x6414,2,{0xC9,0xA6,0x00,0x00,}}, {0x6415,2,{0x93,0x74,0x00,0x00,}}, {0x6416,2,{0x93,0x75,0x00,0x00,}}, {0x6417,2,{0x93,0x76,0x00,0x00,}}, {0x6418,2,{0x93,0x77,0x00,0x00,}}, {0x6419,2,{0x93,0x78,0x00,0x00,}}, {0x641A,2,{0x93,0x79,0x00,0x00,}}, {0x641B,2,{0xDE,0xF6,0x00,0x00,}}, {0x641C,2,{0xCB,0xD1,0x00,0x00,}}, {0x641D,2,{0x93,0x7A,0x00,0x00,}}, {0x641E,2,{0xB8,0xE3,0x00,0x00,}}, {0x641F,2,{0x93,0x7B,0x00,0x00,}}, {0x6420,2,{0xDE,0xF7,0x00,0x00,}}, {0x6421,2,{0xDE,0xFA,0x00,0x00,}}, {0x6422,2,{0x93,0x7C,0x00,0x00,}}, {0x6423,2,{0x93,0x7D,0x00,0x00,}}, {0x6424,2,{0x93,0x7E,0x00,0x00,}}, {0x6425,2,{0x93,0x80,0x00,0x00,}}, {0x6426,2,{0xDE,0xF9,0x00,0x00,}}, {0x6427,2,{0x93,0x81,0x00,0x00,}}, {0x6428,2,{0x93,0x82,0x00,0x00,}}, {0x6429,2,{0x93,0x83,0x00,0x00,}}, {0x642A,2,{0xCC,0xC2,0x00,0x00,}}, {0x642B,2,{0x93,0x84,0x00,0x00,}}, {0x642C,2,{0xB0,0xE1,0x00,0x00,}}, {0x642D,2,{0xB4,0xEE,0x00,0x00,}}, {0x642E,2,{0x93,0x85,0x00,0x00,}}, {0x642F,2,{0x93,0x86,0x00,0x00,}}, {0x6430,2,{0x93,0x87,0x00,0x00,}}, {0x6431,2,{0x93,0x88,0x00,0x00,}}, {0x6432,2,{0x93,0x89,0x00,0x00,}}, {0x6433,2,{0x93,0x8A,0x00,0x00,}}, {0x6434,2,{0xE5,0xBA,0x00,0x00,}}, {0x6435,2,{0x93,0x8B,0x00,0x00,}}, {0x6436,2,{0x93,0x8C,0x00,0x00,}}, {0x6437,2,{0x93,0x8D,0x00,0x00,}}, {0x6438,2,{0x93,0x8E,0x00,0x00,}}, {0x6439,2,{0x93,0x8F,0x00,0x00,}}, {0x643A,2,{0xD0,0xAF,0x00,0x00,}}, {0x643B,2,{0x93,0x90,0x00,0x00,}}, {0x643C,2,{0x93,0x91,0x00,0x00,}}, {0x643D,2,{0xB2,0xEB,0x00,0x00,}}, {0x643E,2,{0x93,0x92,0x00,0x00,}}, {0x643F,2,{0xEB,0xA1,0x00,0x00,}}, {0x6440,2,{0x93,0x93,0x00,0x00,}}, {0x6441,2,{0xDE,0xF4,0x00,0x00,}}, {0x6442,2,{0x93,0x94,0x00,0x00,}}, {0x6443,2,{0x93,0x95,0x00,0x00,}}, {0x6444,2,{0xC9,0xE3,0x00,0x00,}}, {0x6445,2,{0xDE,0xF3,0x00,0x00,}}, {0x6446,2,{0xB0,0xDA,0x00,0x00,}}, {0x6447,2,{0xD2,0xA1,0x00,0x00,}}, {0x6448,2,{0xB1,0xF7,0x00,0x00,}}, {0x6449,2,{0x93,0x96,0x00,0x00,}}, {0x644A,2,{0xCC,0xAF,0x00,0x00,}}, {0x644B,2,{0x93,0x97,0x00,0x00,}}, {0x644C,2,{0x93,0x98,0x00,0x00,}}, {0x644D,2,{0x93,0x99,0x00,0x00,}}, {0x644E,2,{0x93,0x9A,0x00,0x00,}}, {0x644F,2,{0x93,0x9B,0x00,0x00,}}, {0x6450,2,{0x93,0x9C,0x00,0x00,}}, {0x6451,2,{0x93,0x9D,0x00,0x00,}}, {0x6452,2,{0xDE,0xF0,0x00,0x00,}}, {0x6453,2,{0x93,0x9E,0x00,0x00,}}, {0x6454,2,{0xCB,0xA4,0x00,0x00,}}, {0x6455,2,{0x93,0x9F,0x00,0x00,}}, {0x6456,2,{0x93,0xA0,0x00,0x00,}}, {0x6457,2,{0x93,0xA1,0x00,0x00,}}, {0x6458,2,{0xD5,0xAA,0x00,0x00,}}, {0x6459,2,{0x93,0xA2,0x00,0x00,}}, {0x645A,2,{0x93,0xA3,0x00,0x00,}}, {0x645B,2,{0x93,0xA4,0x00,0x00,}}, {0x645C,2,{0x93,0xA5,0x00,0x00,}}, {0x645D,2,{0x93,0xA6,0x00,0x00,}}, {0x645E,2,{0xDE,0xFB,0x00,0x00,}}, {0x645F,2,{0x93,0xA7,0x00,0x00,}}, {0x6460,2,{0x93,0xA8,0x00,0x00,}}, {0x6461,2,{0x93,0xA9,0x00,0x00,}}, {0x6462,2,{0x93,0xAA,0x00,0x00,}}, {0x6463,2,{0x93,0xAB,0x00,0x00,}}, {0x6464,2,{0x93,0xAC,0x00,0x00,}}, {0x6465,2,{0x93,0xAD,0x00,0x00,}}, {0x6466,2,{0x93,0xAE,0x00,0x00,}}, {0x6467,2,{0xB4,0xDD,0x00,0x00,}}, {0x6468,2,{0x93,0xAF,0x00,0x00,}}, {0x6469,2,{0xC4,0xA6,0x00,0x00,}}, {0x646A,2,{0x93,0xB0,0x00,0x00,}}, {0x646B,2,{0x93,0xB1,0x00,0x00,}}, {0x646C,2,{0x93,0xB2,0x00,0x00,}}, {0x646D,2,{0xDE,0xFD,0x00,0x00,}}, {0x646E,2,{0x93,0xB3,0x00,0x00,}}, {0x646F,2,{0x93,0xB4,0x00,0x00,}}, {0x6470,2,{0x93,0xB5,0x00,0x00,}}, {0x6471,2,{0x93,0xB6,0x00,0x00,}}, {0x6472,2,{0x93,0xB7,0x00,0x00,}}, {0x6473,2,{0x93,0xB8,0x00,0x00,}}, {0x6474,2,{0x93,0xB9,0x00,0x00,}}, {0x6475,2,{0x93,0xBA,0x00,0x00,}}, {0x6476,2,{0x93,0xBB,0x00,0x00,}}, {0x6477,2,{0x93,0xBC,0x00,0x00,}}, {0x6478,2,{0xC3,0xFE,0x00,0x00,}}, {0x6479,2,{0xC4,0xA1,0x00,0x00,}}, {0x647A,2,{0xDF,0xA1,0x00,0x00,}}, {0x647B,2,{0x93,0xBD,0x00,0x00,}}, {0x647C,2,{0x93,0xBE,0x00,0x00,}}, {0x647D,2,{0x93,0xBF,0x00,0x00,}}, {0x647E,2,{0x93,0xC0,0x00,0x00,}}, {0x647F,2,{0x93,0xC1,0x00,0x00,}}, {0x6480,2,{0x93,0xC2,0x00,0x00,}}, {0x6481,2,{0x93,0xC3,0x00,0x00,}}, {0x6482,2,{0xC1,0xCC,0x00,0x00,}}, {0x6483,2,{0x93,0xC4,0x00,0x00,}}, {0x6484,2,{0xDE,0xFC,0x00,0x00,}}, {0x6485,2,{0xBE,0xEF,0x00,0x00,}}, {0x6486,2,{0x93,0xC5,0x00,0x00,}}, {0x6487,2,{0xC6,0xB2,0x00,0x00,}}, {0x6488,2,{0x93,0xC6,0x00,0x00,}}, {0x6489,2,{0x93,0xC7,0x00,0x00,}}, {0x648A,2,{0x93,0xC8,0x00,0x00,}}, {0x648B,2,{0x93,0xC9,0x00,0x00,}}, {0x648C,2,{0x93,0xCA,0x00,0x00,}}, {0x648D,2,{0x93,0xCB,0x00,0x00,}}, {0x648E,2,{0x93,0xCC,0x00,0x00,}}, {0x648F,2,{0x93,0xCD,0x00,0x00,}}, {0x6490,2,{0x93,0xCE,0x00,0x00,}}, {0x6491,2,{0xB3,0xC5,0x00,0x00,}}, {0x6492,2,{0xC8,0xF6,0x00,0x00,}}, {0x6493,2,{0x93,0xCF,0x00,0x00,}}, {0x6494,2,{0x93,0xD0,0x00,0x00,}}, {0x6495,2,{0xCB,0xBA,0x00,0x00,}}, {0x6496,2,{0xDE,0xFE,0x00,0x00,}}, {0x6497,2,{0x93,0xD1,0x00,0x00,}}, {0x6498,2,{0x93,0xD2,0x00,0x00,}}, {0x6499,2,{0xDF,0xA4,0x00,0x00,}}, {0x649A,2,{0x93,0xD3,0x00,0x00,}}, {0x649B,2,{0x93,0xD4,0x00,0x00,}}, {0x649C,2,{0x93,0xD5,0x00,0x00,}}, {0x649D,2,{0x93,0xD6,0x00,0x00,}}, {0x649E,2,{0xD7,0xB2,0x00,0x00,}}, {0x649F,2,{0x93,0xD7,0x00,0x00,}}, {0x64A0,2,{0x93,0xD8,0x00,0x00,}}, {0x64A1,2,{0x93,0xD9,0x00,0x00,}}, {0x64A2,2,{0x93,0xDA,0x00,0x00,}}, {0x64A3,2,{0x93,0xDB,0x00,0x00,}}, {0x64A4,2,{0xB3,0xB7,0x00,0x00,}}, {0x64A5,2,{0x93,0xDC,0x00,0x00,}}, {0x64A6,2,{0x93,0xDD,0x00,0x00,}}, {0x64A7,2,{0x93,0xDE,0x00,0x00,}}, {0x64A8,2,{0x93,0xDF,0x00,0x00,}}, {0x64A9,2,{0xC1,0xC3,0x00,0x00,}}, {0x64AA,2,{0x93,0xE0,0x00,0x00,}}, {0x64AB,2,{0x93,0xE1,0x00,0x00,}}, {0x64AC,2,{0xC7,0xCB,0x00,0x00,}}, {0x64AD,2,{0xB2,0xA5,0x00,0x00,}}, {0x64AE,2,{0xB4,0xE9,0x00,0x00,}}, {0x64AF,2,{0x93,0xE2,0x00,0x00,}}, {0x64B0,2,{0xD7,0xAB,0x00,0x00,}}, {0x64B1,2,{0x93,0xE3,0x00,0x00,}}, {0x64B2,2,{0x93,0xE4,0x00,0x00,}}, {0x64B3,2,{0x93,0xE5,0x00,0x00,}}, {0x64B4,2,{0x93,0xE6,0x00,0x00,}}, {0x64B5,2,{0xC4,0xEC,0x00,0x00,}}, {0x64B6,2,{0x93,0xE7,0x00,0x00,}}, {0x64B7,2,{0xDF,0xA2,0x00,0x00,}}, {0x64B8,2,{0xDF,0xA3,0x00,0x00,}}, {0x64B9,2,{0x93,0xE8,0x00,0x00,}}, {0x64BA,2,{0xDF,0xA5,0x00,0x00,}}, {0x64BB,2,{0x93,0xE9,0x00,0x00,}}, {0x64BC,2,{0xBA,0xB3,0x00,0x00,}}, {0x64BD,2,{0x93,0xEA,0x00,0x00,}}, {0x64BE,2,{0x93,0xEB,0x00,0x00,}}, {0x64BF,2,{0x93,0xEC,0x00,0x00,}}, {0x64C0,2,{0xDF,0xA6,0x00,0x00,}}, {0x64C1,2,{0x93,0xED,0x00,0x00,}}, {0x64C2,2,{0xC0,0xDE,0x00,0x00,}}, {0x64C3,2,{0x93,0xEE,0x00,0x00,}}, {0x64C4,2,{0x93,0xEF,0x00,0x00,}}, {0x64C5,2,{0xC9,0xC3,0x00,0x00,}}, {0x64C6,2,{0x93,0xF0,0x00,0x00,}}, {0x64C7,2,{0x93,0xF1,0x00,0x00,}}, {0x64C8,2,{0x93,0xF2,0x00,0x00,}}, {0x64C9,2,{0x93,0xF3,0x00,0x00,}}, {0x64CA,2,{0x93,0xF4,0x00,0x00,}}, {0x64CB,2,{0x93,0xF5,0x00,0x00,}}, {0x64CC,2,{0x93,0xF6,0x00,0x00,}}, {0x64CD,2,{0xB2,0xD9,0x00,0x00,}}, {0x64CE,2,{0xC7,0xE6,0x00,0x00,}}, {0x64CF,2,{0x93,0xF7,0x00,0x00,}}, {0x64D0,2,{0xDF,0xA7,0x00,0x00,}}, {0x64D1,2,{0x93,0xF8,0x00,0x00,}}, {0x64D2,2,{0xC7,0xDC,0x00,0x00,}}, {0x64D3,2,{0x93,0xF9,0x00,0x00,}}, {0x64D4,2,{0x93,0xFA,0x00,0x00,}}, {0x64D5,2,{0x93,0xFB,0x00,0x00,}}, {0x64D6,2,{0x93,0xFC,0x00,0x00,}}, {0x64D7,2,{0xDF,0xA8,0x00,0x00,}}, {0x64D8,2,{0xEB,0xA2,0x00,0x00,}}, {0x64D9,2,{0x93,0xFD,0x00,0x00,}}, {0x64DA,2,{0x93,0xFE,0x00,0x00,}}, {0x64DB,2,{0x94,0x40,0x00,0x00,}}, {0x64DC,2,{0x94,0x41,0x00,0x00,}}, {0x64DD,2,{0x94,0x42,0x00,0x00,}}, {0x64DE,2,{0xCB,0xD3,0x00,0x00,}}, {0x64DF,2,{0x94,0x43,0x00,0x00,}}, {0x64E0,2,{0x94,0x44,0x00,0x00,}}, {0x64E1,2,{0x94,0x45,0x00,0x00,}}, {0x64E2,2,{0xDF,0xAA,0x00,0x00,}}, {0x64E3,2,{0x94,0x46,0x00,0x00,}}, {0x64E4,2,{0xDF,0xA9,0x00,0x00,}}, {0x64E5,2,{0x94,0x47,0x00,0x00,}}, {0x64E6,2,{0xB2,0xC1,0x00,0x00,}}, {0x64E7,2,{0x94,0x48,0x00,0x00,}}, {0x64E8,2,{0x94,0x49,0x00,0x00,}}, {0x64E9,2,{0x94,0x4A,0x00,0x00,}}, {0x64EA,2,{0x94,0x4B,0x00,0x00,}}, {0x64EB,2,{0x94,0x4C,0x00,0x00,}}, {0x64EC,2,{0x94,0x4D,0x00,0x00,}}, {0x64ED,2,{0x94,0x4E,0x00,0x00,}}, {0x64EE,2,{0x94,0x4F,0x00,0x00,}}, {0x64EF,2,{0x94,0x50,0x00,0x00,}}, {0x64F0,2,{0x94,0x51,0x00,0x00,}}, {0x64F1,2,{0x94,0x52,0x00,0x00,}}, {0x64F2,2,{0x94,0x53,0x00,0x00,}}, {0x64F3,2,{0x94,0x54,0x00,0x00,}}, {0x64F4,2,{0x94,0x55,0x00,0x00,}}, {0x64F5,2,{0x94,0x56,0x00,0x00,}}, {0x64F6,2,{0x94,0x57,0x00,0x00,}}, {0x64F7,2,{0x94,0x58,0x00,0x00,}}, {0x64F8,2,{0x94,0x59,0x00,0x00,}}, {0x64F9,2,{0x94,0x5A,0x00,0x00,}}, {0x64FA,2,{0x94,0x5B,0x00,0x00,}}, {0x64FB,2,{0x94,0x5C,0x00,0x00,}}, {0x64FC,2,{0x94,0x5D,0x00,0x00,}}, {0x64FD,2,{0x94,0x5E,0x00,0x00,}}, {0x64FE,2,{0x94,0x5F,0x00,0x00,}}, {0x64FF,2,{0x94,0x60,0x00,0x00,}}, {0x6500,2,{0xC5,0xCA,0x00,0x00,}}, {0x6501,2,{0x94,0x61,0x00,0x00,}}, {0x6502,2,{0x94,0x62,0x00,0x00,}}, {0x6503,2,{0x94,0x63,0x00,0x00,}}, {0x6504,2,{0x94,0x64,0x00,0x00,}}, {0x6505,2,{0x94,0x65,0x00,0x00,}}, {0x6506,2,{0x94,0x66,0x00,0x00,}}, {0x6507,2,{0x94,0x67,0x00,0x00,}}, {0x6508,2,{0x94,0x68,0x00,0x00,}}, {0x6509,2,{0xDF,0xAB,0x00,0x00,}}, {0x650A,2,{0x94,0x69,0x00,0x00,}}, {0x650B,2,{0x94,0x6A,0x00,0x00,}}, {0x650C,2,{0x94,0x6B,0x00,0x00,}}, {0x650D,2,{0x94,0x6C,0x00,0x00,}}, {0x650E,2,{0x94,0x6D,0x00,0x00,}}, {0x650F,2,{0x94,0x6E,0x00,0x00,}}, {0x6510,2,{0x94,0x6F,0x00,0x00,}}, {0x6511,2,{0x94,0x70,0x00,0x00,}}, {0x6512,2,{0xD4,0xDC,0x00,0x00,}}, {0x6513,2,{0x94,0x71,0x00,0x00,}}, {0x6514,2,{0x94,0x72,0x00,0x00,}}, {0x6515,2,{0x94,0x73,0x00,0x00,}}, {0x6516,2,{0x94,0x74,0x00,0x00,}}, {0x6517,2,{0x94,0x75,0x00,0x00,}}, {0x6518,2,{0xC8,0xC1,0x00,0x00,}}, {0x6519,2,{0x94,0x76,0x00,0x00,}}, {0x651A,2,{0x94,0x77,0x00,0x00,}}, {0x651B,2,{0x94,0x78,0x00,0x00,}}, {0x651C,2,{0x94,0x79,0x00,0x00,}}, {0x651D,2,{0x94,0x7A,0x00,0x00,}}, {0x651E,2,{0x94,0x7B,0x00,0x00,}}, {0x651F,2,{0x94,0x7C,0x00,0x00,}}, {0x6520,2,{0x94,0x7D,0x00,0x00,}}, {0x6521,2,{0x94,0x7E,0x00,0x00,}}, {0x6522,2,{0x94,0x80,0x00,0x00,}}, {0x6523,2,{0x94,0x81,0x00,0x00,}}, {0x6524,2,{0x94,0x82,0x00,0x00,}}, {0x6525,2,{0xDF,0xAC,0x00,0x00,}}, {0x6526,2,{0x94,0x83,0x00,0x00,}}, {0x6527,2,{0x94,0x84,0x00,0x00,}}, {0x6528,2,{0x94,0x85,0x00,0x00,}}, {0x6529,2,{0x94,0x86,0x00,0x00,}}, {0x652A,2,{0x94,0x87,0x00,0x00,}}, {0x652B,2,{0xBE,0xF0,0x00,0x00,}}, {0x652C,2,{0x94,0x88,0x00,0x00,}}, {0x652D,2,{0x94,0x89,0x00,0x00,}}, {0x652E,2,{0xDF,0xAD,0x00,0x00,}}, {0x652F,2,{0xD6,0xA7,0x00,0x00,}}, {0x6530,2,{0x94,0x8A,0x00,0x00,}}, {0x6531,2,{0x94,0x8B,0x00,0x00,}}, {0x6532,2,{0x94,0x8C,0x00,0x00,}}, {0x6533,2,{0x94,0x8D,0x00,0x00,}}, {0x6534,2,{0xEA,0xB7,0x00,0x00,}}, {0x6535,2,{0xEB,0xB6,0x00,0x00,}}, {0x6536,2,{0xCA,0xD5,0x00,0x00,}}, {0x6537,2,{0x94,0x8E,0x00,0x00,}}, {0x6538,2,{0xD8,0xFC,0x00,0x00,}}, {0x6539,2,{0xB8,0xC4,0x00,0x00,}}, {0x653A,2,{0x94,0x8F,0x00,0x00,}}, {0x653B,2,{0xB9,0xA5,0x00,0x00,}}, {0x653C,2,{0x94,0x90,0x00,0x00,}}, {0x653D,2,{0x94,0x91,0x00,0x00,}}, {0x653E,2,{0xB7,0xC5,0x00,0x00,}}, {0x653F,2,{0xD5,0xFE,0x00,0x00,}}, {0x6540,2,{0x94,0x92,0x00,0x00,}}, {0x6541,2,{0x94,0x93,0x00,0x00,}}, {0x6542,2,{0x94,0x94,0x00,0x00,}}, {0x6543,2,{0x94,0x95,0x00,0x00,}}, {0x6544,2,{0x94,0x96,0x00,0x00,}}, {0x6545,2,{0xB9,0xCA,0x00,0x00,}}, {0x6546,2,{0x94,0x97,0x00,0x00,}}, {0x6547,2,{0x94,0x98,0x00,0x00,}}, {0x6548,2,{0xD0,0xA7,0x00,0x00,}}, {0x6549,2,{0xF4,0xCD,0x00,0x00,}}, {0x654A,2,{0x94,0x99,0x00,0x00,}}, {0x654B,2,{0x94,0x9A,0x00,0x00,}}, {0x654C,2,{0xB5,0xD0,0x00,0x00,}}, {0x654D,2,{0x94,0x9B,0x00,0x00,}}, {0x654E,2,{0x94,0x9C,0x00,0x00,}}, {0x654F,2,{0xC3,0xF4,0x00,0x00,}}, {0x6550,2,{0x94,0x9D,0x00,0x00,}}, {0x6551,2,{0xBE,0xC8,0x00,0x00,}}, {0x6552,2,{0x94,0x9E,0x00,0x00,}}, {0x6553,2,{0x94,0x9F,0x00,0x00,}}, {0x6554,2,{0x94,0xA0,0x00,0x00,}}, {0x6555,2,{0xEB,0xB7,0x00,0x00,}}, {0x6556,2,{0xB0,0xBD,0x00,0x00,}}, {0x6557,2,{0x94,0xA1,0x00,0x00,}}, {0x6558,2,{0x94,0xA2,0x00,0x00,}}, {0x6559,2,{0xBD,0xCC,0x00,0x00,}}, {0x655A,2,{0x94,0xA3,0x00,0x00,}}, {0x655B,2,{0xC1,0xB2,0x00,0x00,}}, {0x655C,2,{0x94,0xA4,0x00,0x00,}}, {0x655D,2,{0xB1,0xD6,0x00,0x00,}}, {0x655E,2,{0xB3,0xA8,0x00,0x00,}}, {0x655F,2,{0x94,0xA5,0x00,0x00,}}, {0x6560,2,{0x94,0xA6,0x00,0x00,}}, {0x6561,2,{0x94,0xA7,0x00,0x00,}}, {0x6562,2,{0xB8,0xD2,0x00,0x00,}}, {0x6563,2,{0xC9,0xA2,0x00,0x00,}}, {0x6564,2,{0x94,0xA8,0x00,0x00,}}, {0x6565,2,{0x94,0xA9,0x00,0x00,}}, {0x6566,2,{0xB6,0xD8,0x00,0x00,}}, {0x6567,2,{0x94,0xAA,0x00,0x00,}}, {0x6568,2,{0x94,0xAB,0x00,0x00,}}, {0x6569,2,{0x94,0xAC,0x00,0x00,}}, {0x656A,2,{0x94,0xAD,0x00,0x00,}}, {0x656B,2,{0xEB,0xB8,0x00,0x00,}}, {0x656C,2,{0xBE,0xB4,0x00,0x00,}}, {0x656D,2,{0x94,0xAE,0x00,0x00,}}, {0x656E,2,{0x94,0xAF,0x00,0x00,}}, {0x656F,2,{0x94,0xB0,0x00,0x00,}}, {0x6570,2,{0xCA,0xFD,0x00,0x00,}}, {0x6571,2,{0x94,0xB1,0x00,0x00,}}, {0x6572,2,{0xC7,0xC3,0x00,0x00,}}, {0x6573,2,{0x94,0xB2,0x00,0x00,}}, {0x6574,2,{0xD5,0xFB,0x00,0x00,}}, {0x6575,2,{0x94,0xB3,0x00,0x00,}}, {0x6576,2,{0x94,0xB4,0x00,0x00,}}, {0x6577,2,{0xB7,0xF3,0x00,0x00,}}, {0x6578,2,{0x94,0xB5,0x00,0x00,}}, {0x6579,2,{0x94,0xB6,0x00,0x00,}}, {0x657A,2,{0x94,0xB7,0x00,0x00,}}, {0x657B,2,{0x94,0xB8,0x00,0x00,}}, {0x657C,2,{0x94,0xB9,0x00,0x00,}}, {0x657D,2,{0x94,0xBA,0x00,0x00,}}, {0x657E,2,{0x94,0xBB,0x00,0x00,}}, {0x657F,2,{0x94,0xBC,0x00,0x00,}}, {0x6580,2,{0x94,0xBD,0x00,0x00,}}, {0x6581,2,{0x94,0xBE,0x00,0x00,}}, {0x6582,2,{0x94,0xBF,0x00,0x00,}}, {0x6583,2,{0x94,0xC0,0x00,0x00,}}, {0x6584,2,{0x94,0xC1,0x00,0x00,}}, {0x6585,2,{0x94,0xC2,0x00,0x00,}}, {0x6586,2,{0x94,0xC3,0x00,0x00,}}, {0x6587,2,{0xCE,0xC4,0x00,0x00,}}, {0x6588,2,{0x94,0xC4,0x00,0x00,}}, {0x6589,2,{0x94,0xC5,0x00,0x00,}}, {0x658A,2,{0x94,0xC6,0x00,0x00,}}, {0x658B,2,{0xD5,0xAB,0x00,0x00,}}, {0x658C,2,{0xB1,0xF3,0x00,0x00,}}, {0x658D,2,{0x94,0xC7,0x00,0x00,}}, {0x658E,2,{0x94,0xC8,0x00,0x00,}}, {0x658F,2,{0x94,0xC9,0x00,0x00,}}, {0x6590,2,{0xEC,0xB3,0x00,0x00,}}, {0x6591,2,{0xB0,0xDF,0x00,0x00,}}, {0x6592,2,{0x94,0xCA,0x00,0x00,}}, {0x6593,2,{0xEC,0xB5,0x00,0x00,}}, {0x6594,2,{0x94,0xCB,0x00,0x00,}}, {0x6595,2,{0x94,0xCC,0x00,0x00,}}, {0x6596,2,{0x94,0xCD,0x00,0x00,}}, {0x6597,2,{0xB6,0xB7,0x00,0x00,}}, {0x6598,2,{0x94,0xCE,0x00,0x00,}}, {0x6599,2,{0xC1,0xCF,0x00,0x00,}}, {0x659A,2,{0x94,0xCF,0x00,0x00,}}, {0x659B,2,{0xF5,0xFA,0x00,0x00,}}, {0x659C,2,{0xD0,0xB1,0x00,0x00,}}, {0x659D,2,{0x94,0xD0,0x00,0x00,}}, {0x659E,2,{0x94,0xD1,0x00,0x00,}}, {0x659F,2,{0xD5,0xE5,0x00,0x00,}}, {0x65A0,2,{0x94,0xD2,0x00,0x00,}}, {0x65A1,2,{0xCE,0xD3,0x00,0x00,}}, {0x65A2,2,{0x94,0xD3,0x00,0x00,}}, {0x65A3,2,{0x94,0xD4,0x00,0x00,}}, {0x65A4,2,{0xBD,0xEF,0x00,0x00,}}, {0x65A5,2,{0xB3,0xE2,0x00,0x00,}}, {0x65A6,2,{0x94,0xD5,0x00,0x00,}}, {0x65A7,2,{0xB8,0xAB,0x00,0x00,}}, {0x65A8,2,{0x94,0xD6,0x00,0x00,}}, {0x65A9,2,{0xD5,0xB6,0x00,0x00,}}, {0x65AA,2,{0x94,0xD7,0x00,0x00,}}, {0x65AB,2,{0xED,0xBD,0x00,0x00,}}, {0x65AC,2,{0x94,0xD8,0x00,0x00,}}, {0x65AD,2,{0xB6,0xCF,0x00,0x00,}}, {0x65AE,2,{0x94,0xD9,0x00,0x00,}}, {0x65AF,2,{0xCB,0xB9,0x00,0x00,}}, {0x65B0,2,{0xD0,0xC2,0x00,0x00,}}, {0x65B1,2,{0x94,0xDA,0x00,0x00,}}, {0x65B2,2,{0x94,0xDB,0x00,0x00,}}, {0x65B3,2,{0x94,0xDC,0x00,0x00,}}, {0x65B4,2,{0x94,0xDD,0x00,0x00,}}, {0x65B5,2,{0x94,0xDE,0x00,0x00,}}, {0x65B6,2,{0x94,0xDF,0x00,0x00,}}, {0x65B7,2,{0x94,0xE0,0x00,0x00,}}, {0x65B8,2,{0x94,0xE1,0x00,0x00,}}, {0x65B9,2,{0xB7,0xBD,0x00,0x00,}}, {0x65BA,2,{0x94,0xE2,0x00,0x00,}}, {0x65BB,2,{0x94,0xE3,0x00,0x00,}}, {0x65BC,2,{0xEC,0xB6,0x00,0x00,}}, {0x65BD,2,{0xCA,0xA9,0x00,0x00,}}, {0x65BE,2,{0x94,0xE4,0x00,0x00,}}, {0x65BF,2,{0x94,0xE5,0x00,0x00,}}, {0x65C0,2,{0x94,0xE6,0x00,0x00,}}, {0x65C1,2,{0xC5,0xD4,0x00,0x00,}}, {0x65C2,2,{0x94,0xE7,0x00,0x00,}}, {0x65C3,2,{0xEC,0xB9,0x00,0x00,}}, {0x65C4,2,{0xEC,0xB8,0x00,0x00,}}, {0x65C5,2,{0xC2,0xC3,0x00,0x00,}}, {0x65C6,2,{0xEC,0xB7,0x00,0x00,}}, {0x65C7,2,{0x94,0xE8,0x00,0x00,}}, {0x65C8,2,{0x94,0xE9,0x00,0x00,}}, {0x65C9,2,{0x94,0xEA,0x00,0x00,}}, {0x65CA,2,{0x94,0xEB,0x00,0x00,}}, {0x65CB,2,{0xD0,0xFD,0x00,0x00,}}, {0x65CC,2,{0xEC,0xBA,0x00,0x00,}}, {0x65CD,2,{0x94,0xEC,0x00,0x00,}}, {0x65CE,2,{0xEC,0xBB,0x00,0x00,}}, {0x65CF,2,{0xD7,0xE5,0x00,0x00,}}, {0x65D0,2,{0x94,0xED,0x00,0x00,}}, {0x65D1,2,{0x94,0xEE,0x00,0x00,}}, {0x65D2,2,{0xEC,0xBC,0x00,0x00,}}, {0x65D3,2,{0x94,0xEF,0x00,0x00,}}, {0x65D4,2,{0x94,0xF0,0x00,0x00,}}, {0x65D5,2,{0x94,0xF1,0x00,0x00,}}, {0x65D6,2,{0xEC,0xBD,0x00,0x00,}}, {0x65D7,2,{0xC6,0xEC,0x00,0x00,}}, {0x65D8,2,{0x94,0xF2,0x00,0x00,}}, {0x65D9,2,{0x94,0xF3,0x00,0x00,}}, {0x65DA,2,{0x94,0xF4,0x00,0x00,}}, {0x65DB,2,{0x94,0xF5,0x00,0x00,}}, {0x65DC,2,{0x94,0xF6,0x00,0x00,}}, {0x65DD,2,{0x94,0xF7,0x00,0x00,}}, {0x65DE,2,{0x94,0xF8,0x00,0x00,}}, {0x65DF,2,{0x94,0xF9,0x00,0x00,}}, {0x65E0,2,{0xCE,0xDE,0x00,0x00,}}, {0x65E1,2,{0x94,0xFA,0x00,0x00,}}, {0x65E2,2,{0xBC,0xC8,0x00,0x00,}}, {0x65E3,2,{0x94,0xFB,0x00,0x00,}}, {0x65E4,2,{0x94,0xFC,0x00,0x00,}}, {0x65E5,2,{0xC8,0xD5,0x00,0x00,}}, {0x65E6,2,{0xB5,0xA9,0x00,0x00,}}, {0x65E7,2,{0xBE,0xC9,0x00,0x00,}}, {0x65E8,2,{0xD6,0xBC,0x00,0x00,}}, {0x65E9,2,{0xD4,0xE7,0x00,0x00,}}, {0x65EA,2,{0x94,0xFD,0x00,0x00,}}, {0x65EB,2,{0x94,0xFE,0x00,0x00,}}, {0x65EC,2,{0xD1,0xAE,0x00,0x00,}}, {0x65ED,2,{0xD0,0xF1,0x00,0x00,}}, {0x65EE,2,{0xEA,0xB8,0x00,0x00,}}, {0x65EF,2,{0xEA,0xB9,0x00,0x00,}}, {0x65F0,2,{0xEA,0xBA,0x00,0x00,}}, {0x65F1,2,{0xBA,0xB5,0x00,0x00,}}, {0x65F2,2,{0x95,0x40,0x00,0x00,}}, {0x65F3,2,{0x95,0x41,0x00,0x00,}}, {0x65F4,2,{0x95,0x42,0x00,0x00,}}, {0x65F5,2,{0x95,0x43,0x00,0x00,}}, {0x65F6,2,{0xCA,0xB1,0x00,0x00,}}, {0x65F7,2,{0xBF,0xF5,0x00,0x00,}}, {0x65F8,2,{0x95,0x44,0x00,0x00,}}, {0x65F9,2,{0x95,0x45,0x00,0x00,}}, {0x65FA,2,{0xCD,0xFA,0x00,0x00,}}, {0x65FB,2,{0x95,0x46,0x00,0x00,}}, {0x65FC,2,{0x95,0x47,0x00,0x00,}}, {0x65FD,2,{0x95,0x48,0x00,0x00,}}, {0x65FE,2,{0x95,0x49,0x00,0x00,}}, {0x65FF,2,{0x95,0x4A,0x00,0x00,}}, {0x6600,2,{0xEA,0xC0,0x00,0x00,}}, {0x6601,2,{0x95,0x4B,0x00,0x00,}}, {0x6602,2,{0xB0,0xBA,0x00,0x00,}}, {0x6603,2,{0xEA,0xBE,0x00,0x00,}}, {0x6604,2,{0x95,0x4C,0x00,0x00,}}, {0x6605,2,{0x95,0x4D,0x00,0x00,}}, {0x6606,2,{0xC0,0xA5,0x00,0x00,}}, {0x6607,2,{0x95,0x4E,0x00,0x00,}}, {0x6608,2,{0x95,0x4F,0x00,0x00,}}, {0x6609,2,{0x95,0x50,0x00,0x00,}}, {0x660A,2,{0xEA,0xBB,0x00,0x00,}}, {0x660B,2,{0x95,0x51,0x00,0x00,}}, {0x660C,2,{0xB2,0xFD,0x00,0x00,}}, {0x660D,2,{0x95,0x52,0x00,0x00,}}, {0x660E,2,{0xC3,0xF7,0x00,0x00,}}, {0x660F,2,{0xBB,0xE8,0x00,0x00,}}, {0x6610,2,{0x95,0x53,0x00,0x00,}}, {0x6611,2,{0x95,0x54,0x00,0x00,}}, {0x6612,2,{0x95,0x55,0x00,0x00,}}, {0x6613,2,{0xD2,0xD7,0x00,0x00,}}, {0x6614,2,{0xCE,0xF4,0x00,0x00,}}, {0x6615,2,{0xEA,0xBF,0x00,0x00,}}, {0x6616,2,{0x95,0x56,0x00,0x00,}}, {0x6617,2,{0x95,0x57,0x00,0x00,}}, {0x6618,2,{0x95,0x58,0x00,0x00,}}, {0x6619,2,{0xEA,0xBC,0x00,0x00,}}, {0x661A,2,{0x95,0x59,0x00,0x00,}}, {0x661B,2,{0x95,0x5A,0x00,0x00,}}, {0x661C,2,{0x95,0x5B,0x00,0x00,}}, {0x661D,2,{0xEA,0xC3,0x00,0x00,}}, {0x661E,2,{0x95,0x5C,0x00,0x00,}}, {0x661F,2,{0xD0,0xC7,0x00,0x00,}}, {0x6620,2,{0xD3,0xB3,0x00,0x00,}}, {0x6621,2,{0x95,0x5D,0x00,0x00,}}, {0x6622,2,{0x95,0x5E,0x00,0x00,}}, {0x6623,2,{0x95,0x5F,0x00,0x00,}}, {0x6624,2,{0x95,0x60,0x00,0x00,}}, {0x6625,2,{0xB4,0xBA,0x00,0x00,}}, {0x6626,2,{0x95,0x61,0x00,0x00,}}, {0x6627,2,{0xC3,0xC1,0x00,0x00,}}, {0x6628,2,{0xD7,0xF2,0x00,0x00,}}, {0x6629,2,{0x95,0x62,0x00,0x00,}}, {0x662A,2,{0x95,0x63,0x00,0x00,}}, {0x662B,2,{0x95,0x64,0x00,0x00,}}, {0x662C,2,{0x95,0x65,0x00,0x00,}}, {0x662D,2,{0xD5,0xD1,0x00,0x00,}}, {0x662E,2,{0x95,0x66,0x00,0x00,}}, {0x662F,2,{0xCA,0xC7,0x00,0x00,}}, {0x6630,2,{0x95,0x67,0x00,0x00,}}, {0x6631,2,{0xEA,0xC5,0x00,0x00,}}, {0x6632,2,{0x95,0x68,0x00,0x00,}}, {0x6633,2,{0x95,0x69,0x00,0x00,}}, {0x6634,2,{0xEA,0xC4,0x00,0x00,}}, {0x6635,2,{0xEA,0xC7,0x00,0x00,}}, {0x6636,2,{0xEA,0xC6,0x00,0x00,}}, {0x6637,2,{0x95,0x6A,0x00,0x00,}}, {0x6638,2,{0x95,0x6B,0x00,0x00,}}, {0x6639,2,{0x95,0x6C,0x00,0x00,}}, {0x663A,2,{0x95,0x6D,0x00,0x00,}}, {0x663B,2,{0x95,0x6E,0x00,0x00,}}, {0x663C,2,{0xD6,0xE7,0x00,0x00,}}, {0x663D,2,{0x95,0x6F,0x00,0x00,}}, {0x663E,2,{0xCF,0xD4,0x00,0x00,}}, {0x663F,2,{0x95,0x70,0x00,0x00,}}, {0x6640,2,{0x95,0x71,0x00,0x00,}}, {0x6641,2,{0xEA,0xCB,0x00,0x00,}}, {0x6642,2,{0x95,0x72,0x00,0x00,}}, {0x6643,2,{0xBB,0xCE,0x00,0x00,}}, {0x6644,2,{0x95,0x73,0x00,0x00,}}, {0x6645,2,{0x95,0x74,0x00,0x00,}}, {0x6646,2,{0x95,0x75,0x00,0x00,}}, {0x6647,2,{0x95,0x76,0x00,0x00,}}, {0x6648,2,{0x95,0x77,0x00,0x00,}}, {0x6649,2,{0x95,0x78,0x00,0x00,}}, {0x664A,2,{0x95,0x79,0x00,0x00,}}, {0x664B,2,{0xBD,0xFA,0x00,0x00,}}, {0x664C,2,{0xC9,0xCE,0x00,0x00,}}, {0x664D,2,{0x95,0x7A,0x00,0x00,}}, {0x664E,2,{0x95,0x7B,0x00,0x00,}}, {0x664F,2,{0xEA,0xCC,0x00,0x00,}}, {0x6650,2,{0x95,0x7C,0x00,0x00,}}, {0x6651,2,{0x95,0x7D,0x00,0x00,}}, {0x6652,2,{0xC9,0xB9,0x00,0x00,}}, {0x6653,2,{0xCF,0xFE,0x00,0x00,}}, {0x6654,2,{0xEA,0xCA,0x00,0x00,}}, {0x6655,2,{0xD4,0xCE,0x00,0x00,}}, {0x6656,2,{0xEA,0xCD,0x00,0x00,}}, {0x6657,2,{0xEA,0xCF,0x00,0x00,}}, {0x6658,2,{0x95,0x7E,0x00,0x00,}}, {0x6659,2,{0x95,0x80,0x00,0x00,}}, {0x665A,2,{0xCD,0xED,0x00,0x00,}}, {0x665B,2,{0x95,0x81,0x00,0x00,}}, {0x665C,2,{0x95,0x82,0x00,0x00,}}, {0x665D,2,{0x95,0x83,0x00,0x00,}}, {0x665E,2,{0x95,0x84,0x00,0x00,}}, {0x665F,2,{0xEA,0xC9,0x00,0x00,}}, {0x6660,2,{0x95,0x85,0x00,0x00,}}, {0x6661,2,{0xEA,0xCE,0x00,0x00,}}, {0x6662,2,{0x95,0x86,0x00,0x00,}}, {0x6663,2,{0x95,0x87,0x00,0x00,}}, {0x6664,2,{0xCE,0xEE,0x00,0x00,}}, {0x6665,2,{0x95,0x88,0x00,0x00,}}, {0x6666,2,{0xBB,0xDE,0x00,0x00,}}, {0x6667,2,{0x95,0x89,0x00,0x00,}}, {0x6668,2,{0xB3,0xBF,0x00,0x00,}}, {0x6669,2,{0x95,0x8A,0x00,0x00,}}, {0x666A,2,{0x95,0x8B,0x00,0x00,}}, {0x666B,2,{0x95,0x8C,0x00,0x00,}}, {0x666C,2,{0x95,0x8D,0x00,0x00,}}, {0x666D,2,{0x95,0x8E,0x00,0x00,}}, {0x666E,2,{0xC6,0xD5,0x00,0x00,}}, {0x666F,2,{0xBE,0xB0,0x00,0x00,}}, {0x6670,2,{0xCE,0xFA,0x00,0x00,}}, {0x6671,2,{0x95,0x8F,0x00,0x00,}}, {0x6672,2,{0x95,0x90,0x00,0x00,}}, {0x6673,2,{0x95,0x91,0x00,0x00,}}, {0x6674,2,{0xC7,0xE7,0x00,0x00,}}, {0x6675,2,{0x95,0x92,0x00,0x00,}}, {0x6676,2,{0xBE,0xA7,0x00,0x00,}}, {0x6677,2,{0xEA,0xD0,0x00,0x00,}}, {0x6678,2,{0x95,0x93,0x00,0x00,}}, {0x6679,2,{0x95,0x94,0x00,0x00,}}, {0x667A,2,{0xD6,0xC7,0x00,0x00,}}, {0x667B,2,{0x95,0x95,0x00,0x00,}}, {0x667C,2,{0x95,0x96,0x00,0x00,}}, {0x667D,2,{0x95,0x97,0x00,0x00,}}, {0x667E,2,{0xC1,0xC0,0x00,0x00,}}, {0x667F,2,{0x95,0x98,0x00,0x00,}}, {0x6680,2,{0x95,0x99,0x00,0x00,}}, {0x6681,2,{0x95,0x9A,0x00,0x00,}}, {0x6682,2,{0xD4,0xDD,0x00,0x00,}}, {0x6683,2,{0x95,0x9B,0x00,0x00,}}, {0x6684,2,{0xEA,0xD1,0x00,0x00,}}, {0x6685,2,{0x95,0x9C,0x00,0x00,}}, {0x6686,2,{0x95,0x9D,0x00,0x00,}}, {0x6687,2,{0xCF,0xBE,0x00,0x00,}}, {0x6688,2,{0x95,0x9E,0x00,0x00,}}, {0x6689,2,{0x95,0x9F,0x00,0x00,}}, {0x668A,2,{0x95,0xA0,0x00,0x00,}}, {0x668B,2,{0x95,0xA1,0x00,0x00,}}, {0x668C,2,{0xEA,0xD2,0x00,0x00,}}, {0x668D,2,{0x95,0xA2,0x00,0x00,}}, {0x668E,2,{0x95,0xA3,0x00,0x00,}}, {0x668F,2,{0x95,0xA4,0x00,0x00,}}, {0x6690,2,{0x95,0xA5,0x00,0x00,}}, {0x6691,2,{0xCA,0xEE,0x00,0x00,}}, {0x6692,2,{0x95,0xA6,0x00,0x00,}}, {0x6693,2,{0x95,0xA7,0x00,0x00,}}, {0x6694,2,{0x95,0xA8,0x00,0x00,}}, {0x6695,2,{0x95,0xA9,0x00,0x00,}}, {0x6696,2,{0xC5,0xAF,0x00,0x00,}}, {0x6697,2,{0xB0,0xB5,0x00,0x00,}}, {0x6698,2,{0x95,0xAA,0x00,0x00,}}, {0x6699,2,{0x95,0xAB,0x00,0x00,}}, {0x669A,2,{0x95,0xAC,0x00,0x00,}}, {0x669B,2,{0x95,0xAD,0x00,0x00,}}, {0x669C,2,{0x95,0xAE,0x00,0x00,}}, {0x669D,2,{0xEA,0xD4,0x00,0x00,}}, {0x669E,2,{0x95,0xAF,0x00,0x00,}}, {0x669F,2,{0x95,0xB0,0x00,0x00,}}, {0x66A0,2,{0x95,0xB1,0x00,0x00,}}, {0x66A1,2,{0x95,0xB2,0x00,0x00,}}, {0x66A2,2,{0x95,0xB3,0x00,0x00,}}, {0x66A3,2,{0x95,0xB4,0x00,0x00,}}, {0x66A4,2,{0x95,0xB5,0x00,0x00,}}, {0x66A5,2,{0x95,0xB6,0x00,0x00,}}, {0x66A6,2,{0x95,0xB7,0x00,0x00,}}, {0x66A7,2,{0xEA,0xD3,0x00,0x00,}}, {0x66A8,2,{0xF4,0xDF,0x00,0x00,}}, {0x66A9,2,{0x95,0xB8,0x00,0x00,}}, {0x66AA,2,{0x95,0xB9,0x00,0x00,}}, {0x66AB,2,{0x95,0xBA,0x00,0x00,}}, {0x66AC,2,{0x95,0xBB,0x00,0x00,}}, {0x66AD,2,{0x95,0xBC,0x00,0x00,}}, {0x66AE,2,{0xC4,0xBA,0x00,0x00,}}, {0x66AF,2,{0x95,0xBD,0x00,0x00,}}, {0x66B0,2,{0x95,0xBE,0x00,0x00,}}, {0x66B1,2,{0x95,0xBF,0x00,0x00,}}, {0x66B2,2,{0x95,0xC0,0x00,0x00,}}, {0x66B3,2,{0x95,0xC1,0x00,0x00,}}, {0x66B4,2,{0xB1,0xA9,0x00,0x00,}}, {0x66B5,2,{0x95,0xC2,0x00,0x00,}}, {0x66B6,2,{0x95,0xC3,0x00,0x00,}}, {0x66B7,2,{0x95,0xC4,0x00,0x00,}}, {0x66B8,2,{0x95,0xC5,0x00,0x00,}}, {0x66B9,2,{0xE5,0xDF,0x00,0x00,}}, {0x66BA,2,{0x95,0xC6,0x00,0x00,}}, {0x66BB,2,{0x95,0xC7,0x00,0x00,}}, {0x66BC,2,{0x95,0xC8,0x00,0x00,}}, {0x66BD,2,{0x95,0xC9,0x00,0x00,}}, {0x66BE,2,{0xEA,0xD5,0x00,0x00,}}, {0x66BF,2,{0x95,0xCA,0x00,0x00,}}, {0x66C0,2,{0x95,0xCB,0x00,0x00,}}, {0x66C1,2,{0x95,0xCC,0x00,0x00,}}, {0x66C2,2,{0x95,0xCD,0x00,0x00,}}, {0x66C3,2,{0x95,0xCE,0x00,0x00,}}, {0x66C4,2,{0x95,0xCF,0x00,0x00,}}, {0x66C5,2,{0x95,0xD0,0x00,0x00,}}, {0x66C6,2,{0x95,0xD1,0x00,0x00,}}, {0x66C7,2,{0x95,0xD2,0x00,0x00,}}, {0x66C8,2,{0x95,0xD3,0x00,0x00,}}, {0x66C9,2,{0x95,0xD4,0x00,0x00,}}, {0x66CA,2,{0x95,0xD5,0x00,0x00,}}, {0x66CB,2,{0x95,0xD6,0x00,0x00,}}, {0x66CC,2,{0x95,0xD7,0x00,0x00,}}, {0x66CD,2,{0x95,0xD8,0x00,0x00,}}, {0x66CE,2,{0x95,0xD9,0x00,0x00,}}, {0x66CF,2,{0x95,0xDA,0x00,0x00,}}, {0x66D0,2,{0x95,0xDB,0x00,0x00,}}, {0x66D1,2,{0x95,0xDC,0x00,0x00,}}, {0x66D2,2,{0x95,0xDD,0x00,0x00,}}, {0x66D3,2,{0x95,0xDE,0x00,0x00,}}, {0x66D4,2,{0x95,0xDF,0x00,0x00,}}, {0x66D5,2,{0x95,0xE0,0x00,0x00,}}, {0x66D6,2,{0x95,0xE1,0x00,0x00,}}, {0x66D7,2,{0x95,0xE2,0x00,0x00,}}, {0x66D8,2,{0x95,0xE3,0x00,0x00,}}, {0x66D9,2,{0xCA,0xEF,0x00,0x00,}}, {0x66DA,2,{0x95,0xE4,0x00,0x00,}}, {0x66DB,2,{0xEA,0xD6,0x00,0x00,}}, {0x66DC,2,{0xEA,0xD7,0x00,0x00,}}, {0x66DD,2,{0xC6,0xD8,0x00,0x00,}}, {0x66DE,2,{0x95,0xE5,0x00,0x00,}}, {0x66DF,2,{0x95,0xE6,0x00,0x00,}}, {0x66E0,2,{0x95,0xE7,0x00,0x00,}}, {0x66E1,2,{0x95,0xE8,0x00,0x00,}}, {0x66E2,2,{0x95,0xE9,0x00,0x00,}}, {0x66E3,2,{0x95,0xEA,0x00,0x00,}}, {0x66E4,2,{0x95,0xEB,0x00,0x00,}}, {0x66E5,2,{0x95,0xEC,0x00,0x00,}}, {0x66E6,2,{0xEA,0xD8,0x00,0x00,}}, {0x66E7,2,{0x95,0xED,0x00,0x00,}}, {0x66E8,2,{0x95,0xEE,0x00,0x00,}}, {0x66E9,2,{0xEA,0xD9,0x00,0x00,}}, {0x66EA,2,{0x95,0xEF,0x00,0x00,}}, {0x66EB,2,{0x95,0xF0,0x00,0x00,}}, {0x66EC,2,{0x95,0xF1,0x00,0x00,}}, {0x66ED,2,{0x95,0xF2,0x00,0x00,}}, {0x66EE,2,{0x95,0xF3,0x00,0x00,}}, {0x66EF,2,{0x95,0xF4,0x00,0x00,}}, {0x66F0,2,{0xD4,0xBB,0x00,0x00,}}, {0x66F1,2,{0x95,0xF5,0x00,0x00,}}, {0x66F2,2,{0xC7,0xFA,0x00,0x00,}}, {0x66F3,2,{0xD2,0xB7,0x00,0x00,}}, {0x66F4,2,{0xB8,0xFC,0x00,0x00,}}, {0x66F5,2,{0x95,0xF6,0x00,0x00,}}, {0x66F6,2,{0x95,0xF7,0x00,0x00,}}, {0x66F7,2,{0xEA,0xC2,0x00,0x00,}}, {0x66F8,2,{0x95,0xF8,0x00,0x00,}}, {0x66F9,2,{0xB2,0xDC,0x00,0x00,}}, {0x66FA,2,{0x95,0xF9,0x00,0x00,}}, {0x66FB,2,{0x95,0xFA,0x00,0x00,}}, {0x66FC,2,{0xC2,0xFC,0x00,0x00,}}, {0x66FD,2,{0x95,0xFB,0x00,0x00,}}, {0x66FE,2,{0xD4,0xF8,0x00,0x00,}}, {0x66FF,2,{0xCC,0xE6,0x00,0x00,}}, {0x6700,2,{0xD7,0xEE,0x00,0x00,}}, {0x6701,2,{0x95,0xFC,0x00,0x00,}}, {0x6702,2,{0x95,0xFD,0x00,0x00,}}, {0x6703,2,{0x95,0xFE,0x00,0x00,}}, {0x6704,2,{0x96,0x40,0x00,0x00,}}, {0x6705,2,{0x96,0x41,0x00,0x00,}}, {0x6706,2,{0x96,0x42,0x00,0x00,}}, {0x6707,2,{0x96,0x43,0x00,0x00,}}, {0x6708,2,{0xD4,0xC2,0x00,0x00,}}, {0x6709,2,{0xD3,0xD0,0x00,0x00,}}, {0x670A,2,{0xEB,0xC3,0x00,0x00,}}, {0x670B,2,{0xC5,0xF3,0x00,0x00,}}, {0x670C,2,{0x96,0x44,0x00,0x00,}}, {0x670D,2,{0xB7,0xFE,0x00,0x00,}}, {0x670E,2,{0x96,0x45,0x00,0x00,}}, {0x670F,2,{0x96,0x46,0x00,0x00,}}, {0x6710,2,{0xEB,0xD4,0x00,0x00,}}, {0x6711,2,{0x96,0x47,0x00,0x00,}}, {0x6712,2,{0x96,0x48,0x00,0x00,}}, {0x6713,2,{0x96,0x49,0x00,0x00,}}, {0x6714,2,{0xCB,0xB7,0x00,0x00,}}, {0x6715,2,{0xEB,0xDE,0x00,0x00,}}, {0x6716,2,{0x96,0x4A,0x00,0x00,}}, {0x6717,2,{0xC0,0xCA,0x00,0x00,}}, {0x6718,2,{0x96,0x4B,0x00,0x00,}}, {0x6719,2,{0x96,0x4C,0x00,0x00,}}, {0x671A,2,{0x96,0x4D,0x00,0x00,}}, {0x671B,2,{0xCD,0xFB,0x00,0x00,}}, {0x671C,2,{0x96,0x4E,0x00,0x00,}}, {0x671D,2,{0xB3,0xAF,0x00,0x00,}}, {0x671E,2,{0x96,0x4F,0x00,0x00,}}, {0x671F,2,{0xC6,0xDA,0x00,0x00,}}, {0x6720,2,{0x96,0x50,0x00,0x00,}}, {0x6721,2,{0x96,0x51,0x00,0x00,}}, {0x6722,2,{0x96,0x52,0x00,0x00,}}, {0x6723,2,{0x96,0x53,0x00,0x00,}}, {0x6724,2,{0x96,0x54,0x00,0x00,}}, {0x6725,2,{0x96,0x55,0x00,0x00,}}, {0x6726,2,{0xEB,0xFC,0x00,0x00,}}, {0x6727,2,{0x96,0x56,0x00,0x00,}}, {0x6728,2,{0xC4,0xBE,0x00,0x00,}}, {0x6729,2,{0x96,0x57,0x00,0x00,}}, {0x672A,2,{0xCE,0xB4,0x00,0x00,}}, {0x672B,2,{0xC4,0xA9,0x00,0x00,}}, {0x672C,2,{0xB1,0xBE,0x00,0x00,}}, {0x672D,2,{0xD4,0xFD,0x00,0x00,}}, {0x672E,2,{0x96,0x58,0x00,0x00,}}, {0x672F,2,{0xCA,0xF5,0x00,0x00,}}, {0x6730,2,{0x96,0x59,0x00,0x00,}}, {0x6731,2,{0xD6,0xEC,0x00,0x00,}}, {0x6732,2,{0x96,0x5A,0x00,0x00,}}, {0x6733,2,{0x96,0x5B,0x00,0x00,}}, {0x6734,2,{0xC6,0xD3,0x00,0x00,}}, {0x6735,2,{0xB6,0xE4,0x00,0x00,}}, {0x6736,2,{0x96,0x5C,0x00,0x00,}}, {0x6737,2,{0x96,0x5D,0x00,0x00,}}, {0x6738,2,{0x96,0x5E,0x00,0x00,}}, {0x6739,2,{0x96,0x5F,0x00,0x00,}}, {0x673A,2,{0xBB,0xFA,0x00,0x00,}}, {0x673B,2,{0x96,0x60,0x00,0x00,}}, {0x673C,2,{0x96,0x61,0x00,0x00,}}, {0x673D,2,{0xD0,0xE0,0x00,0x00,}}, {0x673E,2,{0x96,0x62,0x00,0x00,}}, {0x673F,2,{0x96,0x63,0x00,0x00,}}, {0x6740,2,{0xC9,0xB1,0x00,0x00,}}, {0x6741,2,{0x96,0x64,0x00,0x00,}}, {0x6742,2,{0xD4,0xD3,0x00,0x00,}}, {0x6743,2,{0xC8,0xA8,0x00,0x00,}}, {0x6744,2,{0x96,0x65,0x00,0x00,}}, {0x6745,2,{0x96,0x66,0x00,0x00,}}, {0x6746,2,{0xB8,0xCB,0x00,0x00,}}, {0x6747,2,{0x96,0x67,0x00,0x00,}}, {0x6748,2,{0xE8,0xBE,0x00,0x00,}}, {0x6749,2,{0xC9,0xBC,0x00,0x00,}}, {0x674A,2,{0x96,0x68,0x00,0x00,}}, {0x674B,2,{0x96,0x69,0x00,0x00,}}, {0x674C,2,{0xE8,0xBB,0x00,0x00,}}, {0x674D,2,{0x96,0x6A,0x00,0x00,}}, {0x674E,2,{0xC0,0xEE,0x00,0x00,}}, {0x674F,2,{0xD0,0xD3,0x00,0x00,}}, {0x6750,2,{0xB2,0xC4,0x00,0x00,}}, {0x6751,2,{0xB4,0xE5,0x00,0x00,}}, {0x6752,2,{0x96,0x6B,0x00,0x00,}}, {0x6753,2,{0xE8,0xBC,0x00,0x00,}}, {0x6754,2,{0x96,0x6C,0x00,0x00,}}, {0x6755,2,{0x96,0x6D,0x00,0x00,}}, {0x6756,2,{0xD5,0xC8,0x00,0x00,}}, {0x6757,2,{0x96,0x6E,0x00,0x00,}}, {0x6758,2,{0x96,0x6F,0x00,0x00,}}, {0x6759,2,{0x96,0x70,0x00,0x00,}}, {0x675A,2,{0x96,0x71,0x00,0x00,}}, {0x675B,2,{0x96,0x72,0x00,0x00,}}, {0x675C,2,{0xB6,0xC5,0x00,0x00,}}, {0x675D,2,{0x96,0x73,0x00,0x00,}}, {0x675E,2,{0xE8,0xBD,0x00,0x00,}}, {0x675F,2,{0xCA,0xF8,0x00,0x00,}}, {0x6760,2,{0xB8,0xDC,0x00,0x00,}}, {0x6761,2,{0xCC,0xF5,0x00,0x00,}}, {0x6762,2,{0x96,0x74,0x00,0x00,}}, {0x6763,2,{0x96,0x75,0x00,0x00,}}, {0x6764,2,{0x96,0x76,0x00,0x00,}}, {0x6765,2,{0xC0,0xB4,0x00,0x00,}}, {0x6766,2,{0x96,0x77,0x00,0x00,}}, {0x6767,2,{0x96,0x78,0x00,0x00,}}, {0x6768,2,{0xD1,0xEE,0x00,0x00,}}, {0x6769,2,{0xE8,0xBF,0x00,0x00,}}, {0x676A,2,{0xE8,0xC2,0x00,0x00,}}, {0x676B,2,{0x96,0x79,0x00,0x00,}}, {0x676C,2,{0x96,0x7A,0x00,0x00,}}, {0x676D,2,{0xBA,0xBC,0x00,0x00,}}, {0x676E,2,{0x96,0x7B,0x00,0x00,}}, {0x676F,2,{0xB1,0xAD,0x00,0x00,}}, {0x6770,2,{0xBD,0xDC,0x00,0x00,}}, {0x6771,2,{0x96,0x7C,0x00,0x00,}}, {0x6772,2,{0xEA,0xBD,0x00,0x00,}}, {0x6773,2,{0xE8,0xC3,0x00,0x00,}}, {0x6774,2,{0x96,0x7D,0x00,0x00,}}, {0x6775,2,{0xE8,0xC6,0x00,0x00,}}, {0x6776,2,{0x96,0x7E,0x00,0x00,}}, {0x6777,2,{0xE8,0xCB,0x00,0x00,}}, {0x6778,2,{0x96,0x80,0x00,0x00,}}, {0x6779,2,{0x96,0x81,0x00,0x00,}}, {0x677A,2,{0x96,0x82,0x00,0x00,}}, {0x677B,2,{0x96,0x83,0x00,0x00,}}, {0x677C,2,{0xE8,0xCC,0x00,0x00,}}, {0x677D,2,{0x96,0x84,0x00,0x00,}}, {0x677E,2,{0xCB,0xC9,0x00,0x00,}}, {0x677F,2,{0xB0,0xE5,0x00,0x00,}}, {0x6780,2,{0x96,0x85,0x00,0x00,}}, {0x6781,2,{0xBC,0xAB,0x00,0x00,}}, {0x6782,2,{0x96,0x86,0x00,0x00,}}, {0x6783,2,{0x96,0x87,0x00,0x00,}}, {0x6784,2,{0xB9,0xB9,0x00,0x00,}}, {0x6785,2,{0x96,0x88,0x00,0x00,}}, {0x6786,2,{0x96,0x89,0x00,0x00,}}, {0x6787,2,{0xE8,0xC1,0x00,0x00,}}, {0x6788,2,{0x96,0x8A,0x00,0x00,}}, {0x6789,2,{0xCD,0xF7,0x00,0x00,}}, {0x678A,2,{0x96,0x8B,0x00,0x00,}}, {0x678B,2,{0xE8,0xCA,0x00,0x00,}}, {0x678C,2,{0x96,0x8C,0x00,0x00,}}, {0x678D,2,{0x96,0x8D,0x00,0x00,}}, {0x678E,2,{0x96,0x8E,0x00,0x00,}}, {0x678F,2,{0x96,0x8F,0x00,0x00,}}, {0x6790,2,{0xCE,0xF6,0x00,0x00,}}, {0x6791,2,{0x96,0x90,0x00,0x00,}}, {0x6792,2,{0x96,0x91,0x00,0x00,}}, {0x6793,2,{0x96,0x92,0x00,0x00,}}, {0x6794,2,{0x96,0x93,0x00,0x00,}}, {0x6795,2,{0xD5,0xED,0x00,0x00,}}, {0x6796,2,{0x96,0x94,0x00,0x00,}}, {0x6797,2,{0xC1,0xD6,0x00,0x00,}}, {0x6798,2,{0xE8,0xC4,0x00,0x00,}}, {0x6799,2,{0x96,0x95,0x00,0x00,}}, {0x679A,2,{0xC3,0xB6,0x00,0x00,}}, {0x679B,2,{0x96,0x96,0x00,0x00,}}, {0x679C,2,{0xB9,0xFB,0x00,0x00,}}, {0x679D,2,{0xD6,0xA6,0x00,0x00,}}, {0x679E,2,{0xE8,0xC8,0x00,0x00,}}, {0x679F,2,{0x96,0x97,0x00,0x00,}}, {0x67A0,2,{0x96,0x98,0x00,0x00,}}, {0x67A1,2,{0x96,0x99,0x00,0x00,}}, {0x67A2,2,{0xCA,0xE0,0x00,0x00,}}, {0x67A3,2,{0xD4,0xE6,0x00,0x00,}}, {0x67A4,2,{0x96,0x9A,0x00,0x00,}}, {0x67A5,2,{0xE8,0xC0,0x00,0x00,}}, {0x67A6,2,{0x96,0x9B,0x00,0x00,}}, {0x67A7,2,{0xE8,0xC5,0x00,0x00,}}, {0x67A8,2,{0xE8,0xC7,0x00,0x00,}}, {0x67A9,2,{0x96,0x9C,0x00,0x00,}}, {0x67AA,2,{0xC7,0xB9,0x00,0x00,}}, {0x67AB,2,{0xB7,0xE3,0x00,0x00,}}, {0x67AC,2,{0x96,0x9D,0x00,0x00,}}, {0x67AD,2,{0xE8,0xC9,0x00,0x00,}}, {0x67AE,2,{0x96,0x9E,0x00,0x00,}}, {0x67AF,2,{0xBF,0xDD,0x00,0x00,}}, {0x67B0,2,{0xE8,0xD2,0x00,0x00,}}, {0x67B1,2,{0x96,0x9F,0x00,0x00,}}, {0x67B2,2,{0x96,0xA0,0x00,0x00,}}, {0x67B3,2,{0xE8,0xD7,0x00,0x00,}}, {0x67B4,2,{0x96,0xA1,0x00,0x00,}}, {0x67B5,2,{0xE8,0xD5,0x00,0x00,}}, {0x67B6,2,{0xBC,0xDC,0x00,0x00,}}, {0x67B7,2,{0xBC,0xCF,0x00,0x00,}}, {0x67B8,2,{0xE8,0xDB,0x00,0x00,}}, {0x67B9,2,{0x96,0xA2,0x00,0x00,}}, {0x67BA,2,{0x96,0xA3,0x00,0x00,}}, {0x67BB,2,{0x96,0xA4,0x00,0x00,}}, {0x67BC,2,{0x96,0xA5,0x00,0x00,}}, {0x67BD,2,{0x96,0xA6,0x00,0x00,}}, {0x67BE,2,{0x96,0xA7,0x00,0x00,}}, {0x67BF,2,{0x96,0xA8,0x00,0x00,}}, {0x67C0,2,{0x96,0xA9,0x00,0x00,}}, {0x67C1,2,{0xE8,0xDE,0x00,0x00,}}, {0x67C2,2,{0x96,0xAA,0x00,0x00,}}, {0x67C3,2,{0xE8,0xDA,0x00,0x00,}}, {0x67C4,2,{0xB1,0xFA,0x00,0x00,}}, {0x67C5,2,{0x96,0xAB,0x00,0x00,}}, {0x67C6,2,{0x96,0xAC,0x00,0x00,}}, {0x67C7,2,{0x96,0xAD,0x00,0x00,}}, {0x67C8,2,{0x96,0xAE,0x00,0x00,}}, {0x67C9,2,{0x96,0xAF,0x00,0x00,}}, {0x67CA,2,{0x96,0xB0,0x00,0x00,}}, {0x67CB,2,{0x96,0xB1,0x00,0x00,}}, {0x67CC,2,{0x96,0xB2,0x00,0x00,}}, {0x67CD,2,{0x96,0xB3,0x00,0x00,}}, {0x67CE,2,{0x96,0xB4,0x00,0x00,}}, {0x67CF,2,{0xB0,0xD8,0x00,0x00,}}, {0x67D0,2,{0xC4,0xB3,0x00,0x00,}}, {0x67D1,2,{0xB8,0xCC,0x00,0x00,}}, {0x67D2,2,{0xC6,0xE2,0x00,0x00,}}, {0x67D3,2,{0xC8,0xBE,0x00,0x00,}}, {0x67D4,2,{0xC8,0xE1,0x00,0x00,}}, {0x67D5,2,{0x96,0xB5,0x00,0x00,}}, {0x67D6,2,{0x96,0xB6,0x00,0x00,}}, {0x67D7,2,{0x96,0xB7,0x00,0x00,}}, {0x67D8,2,{0xE8,0xCF,0x00,0x00,}}, {0x67D9,2,{0xE8,0xD4,0x00,0x00,}}, {0x67DA,2,{0xE8,0xD6,0x00,0x00,}}, {0x67DB,2,{0x96,0xB8,0x00,0x00,}}, {0x67DC,2,{0xB9,0xF1,0x00,0x00,}}, {0x67DD,2,{0xE8,0xD8,0x00,0x00,}}, {0x67DE,2,{0xD7,0xF5,0x00,0x00,}}, {0x67DF,2,{0x96,0xB9,0x00,0x00,}}, {0x67E0,2,{0xC4,0xFB,0x00,0x00,}}, {0x67E1,2,{0x96,0xBA,0x00,0x00,}}, {0x67E2,2,{0xE8,0xDC,0x00,0x00,}}, {0x67E3,2,{0x96,0xBB,0x00,0x00,}}, {0x67E4,2,{0x96,0xBC,0x00,0x00,}}, {0x67E5,2,{0xB2,0xE9,0x00,0x00,}}, {0x67E6,2,{0x96,0xBD,0x00,0x00,}}, {0x67E7,2,{0x96,0xBE,0x00,0x00,}}, {0x67E8,2,{0x96,0xBF,0x00,0x00,}}, {0x67E9,2,{0xE8,0xD1,0x00,0x00,}}, {0x67EA,2,{0x96,0xC0,0x00,0x00,}}, {0x67EB,2,{0x96,0xC1,0x00,0x00,}}, {0x67EC,2,{0xBC,0xED,0x00,0x00,}}, {0x67ED,2,{0x96,0xC2,0x00,0x00,}}, {0x67EE,2,{0x96,0xC3,0x00,0x00,}}, {0x67EF,2,{0xBF,0xC2,0x00,0x00,}}, {0x67F0,2,{0xE8,0xCD,0x00,0x00,}}, {0x67F1,2,{0xD6,0xF9,0x00,0x00,}}, {0x67F2,2,{0x96,0xC4,0x00,0x00,}}, {0x67F3,2,{0xC1,0xF8,0x00,0x00,}}, {0x67F4,2,{0xB2,0xF1,0x00,0x00,}}, {0x67F5,2,{0x96,0xC5,0x00,0x00,}}, {0x67F6,2,{0x96,0xC6,0x00,0x00,}}, {0x67F7,2,{0x96,0xC7,0x00,0x00,}}, {0x67F8,2,{0x96,0xC8,0x00,0x00,}}, {0x67F9,2,{0x96,0xC9,0x00,0x00,}}, {0x67FA,2,{0x96,0xCA,0x00,0x00,}}, {0x67FB,2,{0x96,0xCB,0x00,0x00,}}, {0x67FC,2,{0x96,0xCC,0x00,0x00,}}, {0x67FD,2,{0xE8,0xDF,0x00,0x00,}}, {0x67FE,2,{0x96,0xCD,0x00,0x00,}}, {0x67FF,2,{0xCA,0xC1,0x00,0x00,}}, {0x6800,2,{0xE8,0xD9,0x00,0x00,}}, {0x6801,2,{0x96,0xCE,0x00,0x00,}}, {0x6802,2,{0x96,0xCF,0x00,0x00,}}, {0x6803,2,{0x96,0xD0,0x00,0x00,}}, {0x6804,2,{0x96,0xD1,0x00,0x00,}}, {0x6805,2,{0xD5,0xA4,0x00,0x00,}}, {0x6806,2,{0x96,0xD2,0x00,0x00,}}, {0x6807,2,{0xB1,0xEA,0x00,0x00,}}, {0x6808,2,{0xD5,0xBB,0x00,0x00,}}, {0x6809,2,{0xE8,0xCE,0x00,0x00,}}, {0x680A,2,{0xE8,0xD0,0x00,0x00,}}, {0x680B,2,{0xB6,0xB0,0x00,0x00,}}, {0x680C,2,{0xE8,0xD3,0x00,0x00,}}, {0x680D,2,{0x96,0xD3,0x00,0x00,}}, {0x680E,2,{0xE8,0xDD,0x00,0x00,}}, {0x680F,2,{0xC0,0xB8,0x00,0x00,}}, {0x6810,2,{0x96,0xD4,0x00,0x00,}}, {0x6811,2,{0xCA,0xF7,0x00,0x00,}}, {0x6812,2,{0x96,0xD5,0x00,0x00,}}, {0x6813,2,{0xCB,0xA8,0x00,0x00,}}, {0x6814,2,{0x96,0xD6,0x00,0x00,}}, {0x6815,2,{0x96,0xD7,0x00,0x00,}}, {0x6816,2,{0xC6,0xDC,0x00,0x00,}}, {0x6817,2,{0xC0,0xF5,0x00,0x00,}}, {0x6818,2,{0x96,0xD8,0x00,0x00,}}, {0x6819,2,{0x96,0xD9,0x00,0x00,}}, {0x681A,2,{0x96,0xDA,0x00,0x00,}}, {0x681B,2,{0x96,0xDB,0x00,0x00,}}, {0x681C,2,{0x96,0xDC,0x00,0x00,}}, {0x681D,2,{0xE8,0xE9,0x00,0x00,}}, {0x681E,2,{0x96,0xDD,0x00,0x00,}}, {0x681F,2,{0x96,0xDE,0x00,0x00,}}, {0x6820,2,{0x96,0xDF,0x00,0x00,}}, {0x6821,2,{0xD0,0xA3,0x00,0x00,}}, {0x6822,2,{0x96,0xE0,0x00,0x00,}}, {0x6823,2,{0x96,0xE1,0x00,0x00,}}, {0x6824,2,{0x96,0xE2,0x00,0x00,}}, {0x6825,2,{0x96,0xE3,0x00,0x00,}}, {0x6826,2,{0x96,0xE4,0x00,0x00,}}, {0x6827,2,{0x96,0xE5,0x00,0x00,}}, {0x6828,2,{0x96,0xE6,0x00,0x00,}}, {0x6829,2,{0xE8,0xF2,0x00,0x00,}}, {0x682A,2,{0xD6,0xEA,0x00,0x00,}}, {0x682B,2,{0x96,0xE7,0x00,0x00,}}, {0x682C,2,{0x96,0xE8,0x00,0x00,}}, {0x682D,2,{0x96,0xE9,0x00,0x00,}}, {0x682E,2,{0x96,0xEA,0x00,0x00,}}, {0x682F,2,{0x96,0xEB,0x00,0x00,}}, {0x6830,2,{0x96,0xEC,0x00,0x00,}}, {0x6831,2,{0x96,0xED,0x00,0x00,}}, {0x6832,2,{0xE8,0xE0,0x00,0x00,}}, {0x6833,2,{0xE8,0xE1,0x00,0x00,}}, {0x6834,2,{0x96,0xEE,0x00,0x00,}}, {0x6835,2,{0x96,0xEF,0x00,0x00,}}, {0x6836,2,{0x96,0xF0,0x00,0x00,}}, {0x6837,2,{0xD1,0xF9,0x00,0x00,}}, {0x6838,2,{0xBA,0xCB,0x00,0x00,}}, {0x6839,2,{0xB8,0xF9,0x00,0x00,}}, {0x683A,2,{0x96,0xF1,0x00,0x00,}}, {0x683B,2,{0x96,0xF2,0x00,0x00,}}, {0x683C,2,{0xB8,0xF1,0x00,0x00,}}, {0x683D,2,{0xD4,0xD4,0x00,0x00,}}, {0x683E,2,{0xE8,0xEF,0x00,0x00,}}, {0x683F,2,{0x96,0xF3,0x00,0x00,}}, {0x6840,2,{0xE8,0xEE,0x00,0x00,}}, {0x6841,2,{0xE8,0xEC,0x00,0x00,}}, {0x6842,2,{0xB9,0xF0,0x00,0x00,}}, {0x6843,2,{0xCC,0xD2,0x00,0x00,}}, {0x6844,2,{0xE8,0xE6,0x00,0x00,}}, {0x6845,2,{0xCE,0xA6,0x00,0x00,}}, {0x6846,2,{0xBF,0xF2,0x00,0x00,}}, {0x6847,2,{0x96,0xF4,0x00,0x00,}}, {0x6848,2,{0xB0,0xB8,0x00,0x00,}}, {0x6849,2,{0xE8,0xF1,0x00,0x00,}}, {0x684A,2,{0xE8,0xF0,0x00,0x00,}}, {0x684B,2,{0x96,0xF5,0x00,0x00,}}, {0x684C,2,{0xD7,0xC0,0x00,0x00,}}, {0x684D,2,{0x96,0xF6,0x00,0x00,}}, {0x684E,2,{0xE8,0xE4,0x00,0x00,}}, {0x684F,2,{0x96,0xF7,0x00,0x00,}}, {0x6850,2,{0xCD,0xA9,0x00,0x00,}}, {0x6851,2,{0xC9,0xA3,0x00,0x00,}}, {0x6852,2,{0x96,0xF8,0x00,0x00,}}, {0x6853,2,{0xBB,0xB8,0x00,0x00,}}, {0x6854,2,{0xBD,0xDB,0x00,0x00,}}, {0x6855,2,{0xE8,0xEA,0x00,0x00,}}, {0x6856,2,{0x96,0xF9,0x00,0x00,}}, {0x6857,2,{0x96,0xFA,0x00,0x00,}}, {0x6858,2,{0x96,0xFB,0x00,0x00,}}, {0x6859,2,{0x96,0xFC,0x00,0x00,}}, {0x685A,2,{0x96,0xFD,0x00,0x00,}}, {0x685B,2,{0x96,0xFE,0x00,0x00,}}, {0x685C,2,{0x97,0x40,0x00,0x00,}}, {0x685D,2,{0x97,0x41,0x00,0x00,}}, {0x685E,2,{0x97,0x42,0x00,0x00,}}, {0x685F,2,{0x97,0x43,0x00,0x00,}}, {0x6860,2,{0xE8,0xE2,0x00,0x00,}}, {0x6861,2,{0xE8,0xE3,0x00,0x00,}}, {0x6862,2,{0xE8,0xE5,0x00,0x00,}}, {0x6863,2,{0xB5,0xB5,0x00,0x00,}}, {0x6864,2,{0xE8,0xE7,0x00,0x00,}}, {0x6865,2,{0xC7,0xC5,0x00,0x00,}}, {0x6866,2,{0xE8,0xEB,0x00,0x00,}}, {0x6867,2,{0xE8,0xED,0x00,0x00,}}, {0x6868,2,{0xBD,0xB0,0x00,0x00,}}, {0x6869,2,{0xD7,0xAE,0x00,0x00,}}, {0x686A,2,{0x97,0x44,0x00,0x00,}}, {0x686B,2,{0xE8,0xF8,0x00,0x00,}}, {0x686C,2,{0x97,0x45,0x00,0x00,}}, {0x686D,2,{0x97,0x46,0x00,0x00,}}, {0x686E,2,{0x97,0x47,0x00,0x00,}}, {0x686F,2,{0x97,0x48,0x00,0x00,}}, {0x6870,2,{0x97,0x49,0x00,0x00,}}, {0x6871,2,{0x97,0x4A,0x00,0x00,}}, {0x6872,2,{0x97,0x4B,0x00,0x00,}}, {0x6873,2,{0x97,0x4C,0x00,0x00,}}, {0x6874,2,{0xE8,0xF5,0x00,0x00,}}, {0x6875,2,{0x97,0x4D,0x00,0x00,}}, {0x6876,2,{0xCD,0xB0,0x00,0x00,}}, {0x6877,2,{0xE8,0xF6,0x00,0x00,}}, {0x6878,2,{0x97,0x4E,0x00,0x00,}}, {0x6879,2,{0x97,0x4F,0x00,0x00,}}, {0x687A,2,{0x97,0x50,0x00,0x00,}}, {0x687B,2,{0x97,0x51,0x00,0x00,}}, {0x687C,2,{0x97,0x52,0x00,0x00,}}, {0x687D,2,{0x97,0x53,0x00,0x00,}}, {0x687E,2,{0x97,0x54,0x00,0x00,}}, {0x687F,2,{0x97,0x55,0x00,0x00,}}, {0x6880,2,{0x97,0x56,0x00,0x00,}}, {0x6881,2,{0xC1,0xBA,0x00,0x00,}}, {0x6882,2,{0x97,0x57,0x00,0x00,}}, {0x6883,2,{0xE8,0xE8,0x00,0x00,}}, {0x6884,2,{0x97,0x58,0x00,0x00,}}, {0x6885,2,{0xC3,0xB7,0x00,0x00,}}, {0x6886,2,{0xB0,0xF0,0x00,0x00,}}, {0x6887,2,{0x97,0x59,0x00,0x00,}}, {0x6888,2,{0x97,0x5A,0x00,0x00,}}, {0x6889,2,{0x97,0x5B,0x00,0x00,}}, {0x688A,2,{0x97,0x5C,0x00,0x00,}}, {0x688B,2,{0x97,0x5D,0x00,0x00,}}, {0x688C,2,{0x97,0x5E,0x00,0x00,}}, {0x688D,2,{0x97,0x5F,0x00,0x00,}}, {0x688E,2,{0x97,0x60,0x00,0x00,}}, {0x688F,2,{0xE8,0xF4,0x00,0x00,}}, {0x6890,2,{0x97,0x61,0x00,0x00,}}, {0x6891,2,{0x97,0x62,0x00,0x00,}}, {0x6892,2,{0x97,0x63,0x00,0x00,}}, {0x6893,2,{0xE8,0xF7,0x00,0x00,}}, {0x6894,2,{0x97,0x64,0x00,0x00,}}, {0x6895,2,{0x97,0x65,0x00,0x00,}}, {0x6896,2,{0x97,0x66,0x00,0x00,}}, {0x6897,2,{0xB9,0xA3,0x00,0x00,}}, {0x6898,2,{0x97,0x67,0x00,0x00,}}, {0x6899,2,{0x97,0x68,0x00,0x00,}}, {0x689A,2,{0x97,0x69,0x00,0x00,}}, {0x689B,2,{0x97,0x6A,0x00,0x00,}}, {0x689C,2,{0x97,0x6B,0x00,0x00,}}, {0x689D,2,{0x97,0x6C,0x00,0x00,}}, {0x689E,2,{0x97,0x6D,0x00,0x00,}}, {0x689F,2,{0x97,0x6E,0x00,0x00,}}, {0x68A0,2,{0x97,0x6F,0x00,0x00,}}, {0x68A1,2,{0x97,0x70,0x00,0x00,}}, {0x68A2,2,{0xC9,0xD2,0x00,0x00,}}, {0x68A3,2,{0x97,0x71,0x00,0x00,}}, {0x68A4,2,{0x97,0x72,0x00,0x00,}}, {0x68A5,2,{0x97,0x73,0x00,0x00,}}, {0x68A6,2,{0xC3,0xCE,0x00,0x00,}}, {0x68A7,2,{0xCE,0xE0,0x00,0x00,}}, {0x68A8,2,{0xC0,0xE6,0x00,0x00,}}, {0x68A9,2,{0x97,0x74,0x00,0x00,}}, {0x68AA,2,{0x97,0x75,0x00,0x00,}}, {0x68AB,2,{0x97,0x76,0x00,0x00,}}, {0x68AC,2,{0x97,0x77,0x00,0x00,}}, {0x68AD,2,{0xCB,0xF3,0x00,0x00,}}, {0x68AE,2,{0x97,0x78,0x00,0x00,}}, {0x68AF,2,{0xCC,0xDD,0x00,0x00,}}, {0x68B0,2,{0xD0,0xB5,0x00,0x00,}}, {0x68B1,2,{0x97,0x79,0x00,0x00,}}, {0x68B2,2,{0x97,0x7A,0x00,0x00,}}, {0x68B3,2,{0xCA,0xE1,0x00,0x00,}}, {0x68B4,2,{0x97,0x7B,0x00,0x00,}}, {0x68B5,2,{0xE8,0xF3,0x00,0x00,}}, {0x68B6,2,{0x97,0x7C,0x00,0x00,}}, {0x68B7,2,{0x97,0x7D,0x00,0x00,}}, {0x68B8,2,{0x97,0x7E,0x00,0x00,}}, {0x68B9,2,{0x97,0x80,0x00,0x00,}}, {0x68BA,2,{0x97,0x81,0x00,0x00,}}, {0x68BB,2,{0x97,0x82,0x00,0x00,}}, {0x68BC,2,{0x97,0x83,0x00,0x00,}}, {0x68BD,2,{0x97,0x84,0x00,0x00,}}, {0x68BE,2,{0x97,0x85,0x00,0x00,}}, {0x68BF,2,{0x97,0x86,0x00,0x00,}}, {0x68C0,2,{0xBC,0xEC,0x00,0x00,}}, {0x68C1,2,{0x97,0x87,0x00,0x00,}}, {0x68C2,2,{0xE8,0xF9,0x00,0x00,}}, {0x68C3,2,{0x97,0x88,0x00,0x00,}}, {0x68C4,2,{0x97,0x89,0x00,0x00,}}, {0x68C5,2,{0x97,0x8A,0x00,0x00,}}, {0x68C6,2,{0x97,0x8B,0x00,0x00,}}, {0x68C7,2,{0x97,0x8C,0x00,0x00,}}, {0x68C8,2,{0x97,0x8D,0x00,0x00,}}, {0x68C9,2,{0xC3,0xDE,0x00,0x00,}}, {0x68CA,2,{0x97,0x8E,0x00,0x00,}}, {0x68CB,2,{0xC6,0xE5,0x00,0x00,}}, {0x68CC,2,{0x97,0x8F,0x00,0x00,}}, {0x68CD,2,{0xB9,0xF7,0x00,0x00,}}, {0x68CE,2,{0x97,0x90,0x00,0x00,}}, {0x68CF,2,{0x97,0x91,0x00,0x00,}}, {0x68D0,2,{0x97,0x92,0x00,0x00,}}, {0x68D1,2,{0x97,0x93,0x00,0x00,}}, {0x68D2,2,{0xB0,0xF4,0x00,0x00,}}, {0x68D3,2,{0x97,0x94,0x00,0x00,}}, {0x68D4,2,{0x97,0x95,0x00,0x00,}}, {0x68D5,2,{0xD7,0xD8,0x00,0x00,}}, {0x68D6,2,{0x97,0x96,0x00,0x00,}}, {0x68D7,2,{0x97,0x97,0x00,0x00,}}, {0x68D8,2,{0xBC,0xAC,0x00,0x00,}}, {0x68D9,2,{0x97,0x98,0x00,0x00,}}, {0x68DA,2,{0xC5,0xEF,0x00,0x00,}}, {0x68DB,2,{0x97,0x99,0x00,0x00,}}, {0x68DC,2,{0x97,0x9A,0x00,0x00,}}, {0x68DD,2,{0x97,0x9B,0x00,0x00,}}, {0x68DE,2,{0x97,0x9C,0x00,0x00,}}, {0x68DF,2,{0x97,0x9D,0x00,0x00,}}, {0x68E0,2,{0xCC,0xC4,0x00,0x00,}}, {0x68E1,2,{0x97,0x9E,0x00,0x00,}}, {0x68E2,2,{0x97,0x9F,0x00,0x00,}}, {0x68E3,2,{0xE9,0xA6,0x00,0x00,}}, {0x68E4,2,{0x97,0xA0,0x00,0x00,}}, {0x68E5,2,{0x97,0xA1,0x00,0x00,}}, {0x68E6,2,{0x97,0xA2,0x00,0x00,}}, {0x68E7,2,{0x97,0xA3,0x00,0x00,}}, {0x68E8,2,{0x97,0xA4,0x00,0x00,}}, {0x68E9,2,{0x97,0xA5,0x00,0x00,}}, {0x68EA,2,{0x97,0xA6,0x00,0x00,}}, {0x68EB,2,{0x97,0xA7,0x00,0x00,}}, {0x68EC,2,{0x97,0xA8,0x00,0x00,}}, {0x68ED,2,{0x97,0xA9,0x00,0x00,}}, {0x68EE,2,{0xC9,0xAD,0x00,0x00,}}, {0x68EF,2,{0x97,0xAA,0x00,0x00,}}, {0x68F0,2,{0xE9,0xA2,0x00,0x00,}}, {0x68F1,2,{0xC0,0xE2,0x00,0x00,}}, {0x68F2,2,{0x97,0xAB,0x00,0x00,}}, {0x68F3,2,{0x97,0xAC,0x00,0x00,}}, {0x68F4,2,{0x97,0xAD,0x00,0x00,}}, {0x68F5,2,{0xBF,0xC3,0x00,0x00,}}, {0x68F6,2,{0x97,0xAE,0x00,0x00,}}, {0x68F7,2,{0x97,0xAF,0x00,0x00,}}, {0x68F8,2,{0x97,0xB0,0x00,0x00,}}, {0x68F9,2,{0xE8,0xFE,0x00,0x00,}}, {0x68FA,2,{0xB9,0xD7,0x00,0x00,}}, {0x68FB,2,{0x97,0xB1,0x00,0x00,}}, {0x68FC,2,{0xE8,0xFB,0x00,0x00,}}, {0x68FD,2,{0x97,0xB2,0x00,0x00,}}, {0x68FE,2,{0x97,0xB3,0x00,0x00,}}, {0x68FF,2,{0x97,0xB4,0x00,0x00,}}, {0x6900,2,{0x97,0xB5,0x00,0x00,}}, {0x6901,2,{0xE9,0xA4,0x00,0x00,}}, {0x6902,2,{0x97,0xB6,0x00,0x00,}}, {0x6903,2,{0x97,0xB7,0x00,0x00,}}, {0x6904,2,{0x97,0xB8,0x00,0x00,}}, {0x6905,2,{0xD2,0xCE,0x00,0x00,}}, {0x6906,2,{0x97,0xB9,0x00,0x00,}}, {0x6907,2,{0x97,0xBA,0x00,0x00,}}, {0x6908,2,{0x97,0xBB,0x00,0x00,}}, {0x6909,2,{0x97,0xBC,0x00,0x00,}}, {0x690A,2,{0x97,0xBD,0x00,0x00,}}, {0x690B,2,{0xE9,0xA3,0x00,0x00,}}, {0x690C,2,{0x97,0xBE,0x00,0x00,}}, {0x690D,2,{0xD6,0xB2,0x00,0x00,}}, {0x690E,2,{0xD7,0xB5,0x00,0x00,}}, {0x690F,2,{0x97,0xBF,0x00,0x00,}}, {0x6910,2,{0xE9,0xA7,0x00,0x00,}}, {0x6911,2,{0x97,0xC0,0x00,0x00,}}, {0x6912,2,{0xBD,0xB7,0x00,0x00,}}, {0x6913,2,{0x97,0xC1,0x00,0x00,}}, {0x6914,2,{0x97,0xC2,0x00,0x00,}}, {0x6915,2,{0x97,0xC3,0x00,0x00,}}, {0x6916,2,{0x97,0xC4,0x00,0x00,}}, {0x6917,2,{0x97,0xC5,0x00,0x00,}}, {0x6918,2,{0x97,0xC6,0x00,0x00,}}, {0x6919,2,{0x97,0xC7,0x00,0x00,}}, {0x691A,2,{0x97,0xC8,0x00,0x00,}}, {0x691B,2,{0x97,0xC9,0x00,0x00,}}, {0x691C,2,{0x97,0xCA,0x00,0x00,}}, {0x691D,2,{0x97,0xCB,0x00,0x00,}}, {0x691E,2,{0x97,0xCC,0x00,0x00,}}, {0x691F,2,{0xE8,0xFC,0x00,0x00,}}, {0x6920,2,{0xE8,0xFD,0x00,0x00,}}, {0x6921,2,{0x97,0xCD,0x00,0x00,}}, {0x6922,2,{0x97,0xCE,0x00,0x00,}}, {0x6923,2,{0x97,0xCF,0x00,0x00,}}, {0x6924,2,{0xE9,0xA1,0x00,0x00,}}, {0x6925,2,{0x97,0xD0,0x00,0x00,}}, {0x6926,2,{0x97,0xD1,0x00,0x00,}}, {0x6927,2,{0x97,0xD2,0x00,0x00,}}, {0x6928,2,{0x97,0xD3,0x00,0x00,}}, {0x6929,2,{0x97,0xD4,0x00,0x00,}}, {0x692A,2,{0x97,0xD5,0x00,0x00,}}, {0x692B,2,{0x97,0xD6,0x00,0x00,}}, {0x692C,2,{0x97,0xD7,0x00,0x00,}}, {0x692D,2,{0xCD,0xD6,0x00,0x00,}}, {0x692E,2,{0x97,0xD8,0x00,0x00,}}, {0x692F,2,{0x97,0xD9,0x00,0x00,}}, {0x6930,2,{0xD2,0xAC,0x00,0x00,}}, {0x6931,2,{0x97,0xDA,0x00,0x00,}}, {0x6932,2,{0x97,0xDB,0x00,0x00,}}, {0x6933,2,{0x97,0xDC,0x00,0x00,}}, {0x6934,2,{0xE9,0xB2,0x00,0x00,}}, {0x6935,2,{0x97,0xDD,0x00,0x00,}}, {0x6936,2,{0x97,0xDE,0x00,0x00,}}, {0x6937,2,{0x97,0xDF,0x00,0x00,}}, {0x6938,2,{0x97,0xE0,0x00,0x00,}}, {0x6939,2,{0xE9,0xA9,0x00,0x00,}}, {0x693A,2,{0x97,0xE1,0x00,0x00,}}, {0x693B,2,{0x97,0xE2,0x00,0x00,}}, {0x693C,2,{0x97,0xE3,0x00,0x00,}}, {0x693D,2,{0xB4,0xAA,0x00,0x00,}}, {0x693E,2,{0x97,0xE4,0x00,0x00,}}, {0x693F,2,{0xB4,0xBB,0x00,0x00,}}, {0x6940,2,{0x97,0xE5,0x00,0x00,}}, {0x6941,2,{0x97,0xE6,0x00,0x00,}}, {0x6942,2,{0xE9,0xAB,0x00,0x00,}}, {0x6943,2,{0x97,0xE7,0x00,0x00,}}, {0x6944,2,{0x97,0xE8,0x00,0x00,}}, {0x6945,2,{0x97,0xE9,0x00,0x00,}}, {0x6946,2,{0x97,0xEA,0x00,0x00,}}, {0x6947,2,{0x97,0xEB,0x00,0x00,}}, {0x6948,2,{0x97,0xEC,0x00,0x00,}}, {0x6949,2,{0x97,0xED,0x00,0x00,}}, {0x694A,2,{0x97,0xEE,0x00,0x00,}}, {0x694B,2,{0x97,0xEF,0x00,0x00,}}, {0x694C,2,{0x97,0xF0,0x00,0x00,}}, {0x694D,2,{0x97,0xF1,0x00,0x00,}}, {0x694E,2,{0x97,0xF2,0x00,0x00,}}, {0x694F,2,{0x97,0xF3,0x00,0x00,}}, {0x6950,2,{0x97,0xF4,0x00,0x00,}}, {0x6951,2,{0x97,0xF5,0x00,0x00,}}, {0x6952,2,{0x97,0xF6,0x00,0x00,}}, {0x6953,2,{0x97,0xF7,0x00,0x00,}}, {0x6954,2,{0xD0,0xA8,0x00,0x00,}}, {0x6955,2,{0x97,0xF8,0x00,0x00,}}, {0x6956,2,{0x97,0xF9,0x00,0x00,}}, {0x6957,2,{0xE9,0xA5,0x00,0x00,}}, {0x6958,2,{0x97,0xFA,0x00,0x00,}}, {0x6959,2,{0x97,0xFB,0x00,0x00,}}, {0x695A,2,{0xB3,0xFE,0x00,0x00,}}, {0x695B,2,{0x97,0xFC,0x00,0x00,}}, {0x695C,2,{0x97,0xFD,0x00,0x00,}}, {0x695D,2,{0xE9,0xAC,0x00,0x00,}}, {0x695E,2,{0xC0,0xE3,0x00,0x00,}}, {0x695F,2,{0x97,0xFE,0x00,0x00,}}, {0x6960,2,{0xE9,0xAA,0x00,0x00,}}, {0x6961,2,{0x98,0x40,0x00,0x00,}}, {0x6962,2,{0x98,0x41,0x00,0x00,}}, {0x6963,2,{0xE9,0xB9,0x00,0x00,}}, {0x6964,2,{0x98,0x42,0x00,0x00,}}, {0x6965,2,{0x98,0x43,0x00,0x00,}}, {0x6966,2,{0xE9,0xB8,0x00,0x00,}}, {0x6967,2,{0x98,0x44,0x00,0x00,}}, {0x6968,2,{0x98,0x45,0x00,0x00,}}, {0x6969,2,{0x98,0x46,0x00,0x00,}}, {0x696A,2,{0x98,0x47,0x00,0x00,}}, {0x696B,2,{0xE9,0xAE,0x00,0x00,}}, {0x696C,2,{0x98,0x48,0x00,0x00,}}, {0x696D,2,{0x98,0x49,0x00,0x00,}}, {0x696E,2,{0xE8,0xFA,0x00,0x00,}}, {0x696F,2,{0x98,0x4A,0x00,0x00,}}, {0x6970,2,{0x98,0x4B,0x00,0x00,}}, {0x6971,2,{0xE9,0xA8,0x00,0x00,}}, {0x6972,2,{0x98,0x4C,0x00,0x00,}}, {0x6973,2,{0x98,0x4D,0x00,0x00,}}, {0x6974,2,{0x98,0x4E,0x00,0x00,}}, {0x6975,2,{0x98,0x4F,0x00,0x00,}}, {0x6976,2,{0x98,0x50,0x00,0x00,}}, {0x6977,2,{0xBF,0xAC,0x00,0x00,}}, {0x6978,2,{0xE9,0xB1,0x00,0x00,}}, {0x6979,2,{0xE9,0xBA,0x00,0x00,}}, {0x697A,2,{0x98,0x51,0x00,0x00,}}, {0x697B,2,{0x98,0x52,0x00,0x00,}}, {0x697C,2,{0xC2,0xA5,0x00,0x00,}}, {0x697D,2,{0x98,0x53,0x00,0x00,}}, {0x697E,2,{0x98,0x54,0x00,0x00,}}, {0x697F,2,{0x98,0x55,0x00,0x00,}}, {0x6980,2,{0xE9,0xAF,0x00,0x00,}}, {0x6981,2,{0x98,0x56,0x00,0x00,}}, {0x6982,2,{0xB8,0xC5,0x00,0x00,}}, {0x6983,2,{0x98,0x57,0x00,0x00,}}, {0x6984,2,{0xE9,0xAD,0x00,0x00,}}, {0x6985,2,{0x98,0x58,0x00,0x00,}}, {0x6986,2,{0xD3,0xDC,0x00,0x00,}}, {0x6987,2,{0xE9,0xB4,0x00,0x00,}}, {0x6988,2,{0xE9,0xB5,0x00,0x00,}}, {0x6989,2,{0xE9,0xB7,0x00,0x00,}}, {0x698A,2,{0x98,0x59,0x00,0x00,}}, {0x698B,2,{0x98,0x5A,0x00,0x00,}}, {0x698C,2,{0x98,0x5B,0x00,0x00,}}, {0x698D,2,{0xE9,0xC7,0x00,0x00,}}, {0x698E,2,{0x98,0x5C,0x00,0x00,}}, {0x698F,2,{0x98,0x5D,0x00,0x00,}}, {0x6990,2,{0x98,0x5E,0x00,0x00,}}, {0x6991,2,{0x98,0x5F,0x00,0x00,}}, {0x6992,2,{0x98,0x60,0x00,0x00,}}, {0x6993,2,{0x98,0x61,0x00,0x00,}}, {0x6994,2,{0xC0,0xC6,0x00,0x00,}}, {0x6995,2,{0xE9,0xC5,0x00,0x00,}}, {0x6996,2,{0x98,0x62,0x00,0x00,}}, {0x6997,2,{0x98,0x63,0x00,0x00,}}, {0x6998,2,{0xE9,0xB0,0x00,0x00,}}, {0x6999,2,{0x98,0x64,0x00,0x00,}}, {0x699A,2,{0x98,0x65,0x00,0x00,}}, {0x699B,2,{0xE9,0xBB,0x00,0x00,}}, {0x699C,2,{0xB0,0xF1,0x00,0x00,}}, {0x699D,2,{0x98,0x66,0x00,0x00,}}, {0x699E,2,{0x98,0x67,0x00,0x00,}}, {0x699F,2,{0x98,0x68,0x00,0x00,}}, {0x69A0,2,{0x98,0x69,0x00,0x00,}}, {0x69A1,2,{0x98,0x6A,0x00,0x00,}}, {0x69A2,2,{0x98,0x6B,0x00,0x00,}}, {0x69A3,2,{0x98,0x6C,0x00,0x00,}}, {0x69A4,2,{0x98,0x6D,0x00,0x00,}}, {0x69A5,2,{0x98,0x6E,0x00,0x00,}}, {0x69A6,2,{0x98,0x6F,0x00,0x00,}}, {0x69A7,2,{0xE9,0xBC,0x00,0x00,}}, {0x69A8,2,{0xD5,0xA5,0x00,0x00,}}, {0x69A9,2,{0x98,0x70,0x00,0x00,}}, {0x69AA,2,{0x98,0x71,0x00,0x00,}}, {0x69AB,2,{0xE9,0xBE,0x00,0x00,}}, {0x69AC,2,{0x98,0x72,0x00,0x00,}}, {0x69AD,2,{0xE9,0xBF,0x00,0x00,}}, {0x69AE,2,{0x98,0x73,0x00,0x00,}}, {0x69AF,2,{0x98,0x74,0x00,0x00,}}, {0x69B0,2,{0x98,0x75,0x00,0x00,}}, {0x69B1,2,{0xE9,0xC1,0x00,0x00,}}, {0x69B2,2,{0x98,0x76,0x00,0x00,}}, {0x69B3,2,{0x98,0x77,0x00,0x00,}}, {0x69B4,2,{0xC1,0xF1,0x00,0x00,}}, {0x69B5,2,{0x98,0x78,0x00,0x00,}}, {0x69B6,2,{0x98,0x79,0x00,0x00,}}, {0x69B7,2,{0xC8,0xB6,0x00,0x00,}}, {0x69B8,2,{0x98,0x7A,0x00,0x00,}}, {0x69B9,2,{0x98,0x7B,0x00,0x00,}}, {0x69BA,2,{0x98,0x7C,0x00,0x00,}}, {0x69BB,2,{0xE9,0xBD,0x00,0x00,}}, {0x69BC,2,{0x98,0x7D,0x00,0x00,}}, {0x69BD,2,{0x98,0x7E,0x00,0x00,}}, {0x69BE,2,{0x98,0x80,0x00,0x00,}}, {0x69BF,2,{0x98,0x81,0x00,0x00,}}, {0x69C0,2,{0x98,0x82,0x00,0x00,}}, {0x69C1,2,{0xE9,0xC2,0x00,0x00,}}, {0x69C2,2,{0x98,0x83,0x00,0x00,}}, {0x69C3,2,{0x98,0x84,0x00,0x00,}}, {0x69C4,2,{0x98,0x85,0x00,0x00,}}, {0x69C5,2,{0x98,0x86,0x00,0x00,}}, {0x69C6,2,{0x98,0x87,0x00,0x00,}}, {0x69C7,2,{0x98,0x88,0x00,0x00,}}, {0x69C8,2,{0x98,0x89,0x00,0x00,}}, {0x69C9,2,{0x98,0x8A,0x00,0x00,}}, {0x69CA,2,{0xE9,0xC3,0x00,0x00,}}, {0x69CB,2,{0x98,0x8B,0x00,0x00,}}, {0x69CC,2,{0xE9,0xB3,0x00,0x00,}}, {0x69CD,2,{0x98,0x8C,0x00,0x00,}}, {0x69CE,2,{0xE9,0xB6,0x00,0x00,}}, {0x69CF,2,{0x98,0x8D,0x00,0x00,}}, {0x69D0,2,{0xBB,0xB1,0x00,0x00,}}, {0x69D1,2,{0x98,0x8E,0x00,0x00,}}, {0x69D2,2,{0x98,0x8F,0x00,0x00,}}, {0x69D3,2,{0x98,0x90,0x00,0x00,}}, {0x69D4,2,{0xE9,0xC0,0x00,0x00,}}, {0x69D5,2,{0x98,0x91,0x00,0x00,}}, {0x69D6,2,{0x98,0x92,0x00,0x00,}}, {0x69D7,2,{0x98,0x93,0x00,0x00,}}, {0x69D8,2,{0x98,0x94,0x00,0x00,}}, {0x69D9,2,{0x98,0x95,0x00,0x00,}}, {0x69DA,2,{0x98,0x96,0x00,0x00,}}, {0x69DB,2,{0xBC,0xF7,0x00,0x00,}}, {0x69DC,2,{0x98,0x97,0x00,0x00,}}, {0x69DD,2,{0x98,0x98,0x00,0x00,}}, {0x69DE,2,{0x98,0x99,0x00,0x00,}}, {0x69DF,2,{0xE9,0xC4,0x00,0x00,}}, {0x69E0,2,{0xE9,0xC6,0x00,0x00,}}, {0x69E1,2,{0x98,0x9A,0x00,0x00,}}, {0x69E2,2,{0x98,0x9B,0x00,0x00,}}, {0x69E3,2,{0x98,0x9C,0x00,0x00,}}, {0x69E4,2,{0x98,0x9D,0x00,0x00,}}, {0x69E5,2,{0x98,0x9E,0x00,0x00,}}, {0x69E6,2,{0x98,0x9F,0x00,0x00,}}, {0x69E7,2,{0x98,0xA0,0x00,0x00,}}, {0x69E8,2,{0x98,0xA1,0x00,0x00,}}, {0x69E9,2,{0x98,0xA2,0x00,0x00,}}, {0x69EA,2,{0x98,0xA3,0x00,0x00,}}, {0x69EB,2,{0x98,0xA4,0x00,0x00,}}, {0x69EC,2,{0x98,0xA5,0x00,0x00,}}, {0x69ED,2,{0xE9,0xCA,0x00,0x00,}}, {0x69EE,2,{0x98,0xA6,0x00,0x00,}}, {0x69EF,2,{0x98,0xA7,0x00,0x00,}}, {0x69F0,2,{0x98,0xA8,0x00,0x00,}}, {0x69F1,2,{0x98,0xA9,0x00,0x00,}}, {0x69F2,2,{0xE9,0xCE,0x00,0x00,}}, {0x69F3,2,{0x98,0xAA,0x00,0x00,}}, {0x69F4,2,{0x98,0xAB,0x00,0x00,}}, {0x69F5,2,{0x98,0xAC,0x00,0x00,}}, {0x69F6,2,{0x98,0xAD,0x00,0x00,}}, {0x69F7,2,{0x98,0xAE,0x00,0x00,}}, {0x69F8,2,{0x98,0xAF,0x00,0x00,}}, {0x69F9,2,{0x98,0xB0,0x00,0x00,}}, {0x69FA,2,{0x98,0xB1,0x00,0x00,}}, {0x69FB,2,{0x98,0xB2,0x00,0x00,}}, {0x69FC,2,{0x98,0xB3,0x00,0x00,}}, {0x69FD,2,{0xB2,0xDB,0x00,0x00,}}, {0x69FE,2,{0x98,0xB4,0x00,0x00,}}, {0x69FF,2,{0xE9,0xC8,0x00,0x00,}}, {0x6A00,2,{0x98,0xB5,0x00,0x00,}}, {0x6A01,2,{0x98,0xB6,0x00,0x00,}}, {0x6A02,2,{0x98,0xB7,0x00,0x00,}}, {0x6A03,2,{0x98,0xB8,0x00,0x00,}}, {0x6A04,2,{0x98,0xB9,0x00,0x00,}}, {0x6A05,2,{0x98,0xBA,0x00,0x00,}}, {0x6A06,2,{0x98,0xBB,0x00,0x00,}}, {0x6A07,2,{0x98,0xBC,0x00,0x00,}}, {0x6A08,2,{0x98,0xBD,0x00,0x00,}}, {0x6A09,2,{0x98,0xBE,0x00,0x00,}}, {0x6A0A,2,{0xB7,0xAE,0x00,0x00,}}, {0x6A0B,2,{0x98,0xBF,0x00,0x00,}}, {0x6A0C,2,{0x98,0xC0,0x00,0x00,}}, {0x6A0D,2,{0x98,0xC1,0x00,0x00,}}, {0x6A0E,2,{0x98,0xC2,0x00,0x00,}}, {0x6A0F,2,{0x98,0xC3,0x00,0x00,}}, {0x6A10,2,{0x98,0xC4,0x00,0x00,}}, {0x6A11,2,{0x98,0xC5,0x00,0x00,}}, {0x6A12,2,{0x98,0xC6,0x00,0x00,}}, {0x6A13,2,{0x98,0xC7,0x00,0x00,}}, {0x6A14,2,{0x98,0xC8,0x00,0x00,}}, {0x6A15,2,{0x98,0xC9,0x00,0x00,}}, {0x6A16,2,{0x98,0xCA,0x00,0x00,}}, {0x6A17,2,{0xE9,0xCB,0x00,0x00,}}, {0x6A18,2,{0xE9,0xCC,0x00,0x00,}}, {0x6A19,2,{0x98,0xCB,0x00,0x00,}}, {0x6A1A,2,{0x98,0xCC,0x00,0x00,}}, {0x6A1B,2,{0x98,0xCD,0x00,0x00,}}, {0x6A1C,2,{0x98,0xCE,0x00,0x00,}}, {0x6A1D,2,{0x98,0xCF,0x00,0x00,}}, {0x6A1E,2,{0x98,0xD0,0x00,0x00,}}, {0x6A1F,2,{0xD5,0xC1,0x00,0x00,}}, {0x6A20,2,{0x98,0xD1,0x00,0x00,}}, {0x6A21,2,{0xC4,0xA3,0x00,0x00,}}, {0x6A22,2,{0x98,0xD2,0x00,0x00,}}, {0x6A23,2,{0x98,0xD3,0x00,0x00,}}, {0x6A24,2,{0x98,0xD4,0x00,0x00,}}, {0x6A25,2,{0x98,0xD5,0x00,0x00,}}, {0x6A26,2,{0x98,0xD6,0x00,0x00,}}, {0x6A27,2,{0x98,0xD7,0x00,0x00,}}, {0x6A28,2,{0xE9,0xD8,0x00,0x00,}}, {0x6A29,2,{0x98,0xD8,0x00,0x00,}}, {0x6A2A,2,{0xBA,0xE1,0x00,0x00,}}, {0x6A2B,2,{0x98,0xD9,0x00,0x00,}}, {0x6A2C,2,{0x98,0xDA,0x00,0x00,}}, {0x6A2D,2,{0x98,0xDB,0x00,0x00,}}, {0x6A2E,2,{0x98,0xDC,0x00,0x00,}}, {0x6A2F,2,{0xE9,0xC9,0x00,0x00,}}, {0x6A30,2,{0x98,0xDD,0x00,0x00,}}, {0x6A31,2,{0xD3,0xA3,0x00,0x00,}}, {0x6A32,2,{0x98,0xDE,0x00,0x00,}}, {0x6A33,2,{0x98,0xDF,0x00,0x00,}}, {0x6A34,2,{0x98,0xE0,0x00,0x00,}}, {0x6A35,2,{0xE9,0xD4,0x00,0x00,}}, {0x6A36,2,{0x98,0xE1,0x00,0x00,}}, {0x6A37,2,{0x98,0xE2,0x00,0x00,}}, {0x6A38,2,{0x98,0xE3,0x00,0x00,}}, {0x6A39,2,{0x98,0xE4,0x00,0x00,}}, {0x6A3A,2,{0x98,0xE5,0x00,0x00,}}, {0x6A3B,2,{0x98,0xE6,0x00,0x00,}}, {0x6A3C,2,{0x98,0xE7,0x00,0x00,}}, {0x6A3D,2,{0xE9,0xD7,0x00,0x00,}}, {0x6A3E,2,{0xE9,0xD0,0x00,0x00,}}, {0x6A3F,2,{0x98,0xE8,0x00,0x00,}}, {0x6A40,2,{0x98,0xE9,0x00,0x00,}}, {0x6A41,2,{0x98,0xEA,0x00,0x00,}}, {0x6A42,2,{0x98,0xEB,0x00,0x00,}}, {0x6A43,2,{0x98,0xEC,0x00,0x00,}}, {0x6A44,2,{0xE9,0xCF,0x00,0x00,}}, {0x6A45,2,{0x98,0xED,0x00,0x00,}}, {0x6A46,2,{0x98,0xEE,0x00,0x00,}}, {0x6A47,2,{0xC7,0xC1,0x00,0x00,}}, {0x6A48,2,{0x98,0xEF,0x00,0x00,}}, {0x6A49,2,{0x98,0xF0,0x00,0x00,}}, {0x6A4A,2,{0x98,0xF1,0x00,0x00,}}, {0x6A4B,2,{0x98,0xF2,0x00,0x00,}}, {0x6A4C,2,{0x98,0xF3,0x00,0x00,}}, {0x6A4D,2,{0x98,0xF4,0x00,0x00,}}, {0x6A4E,2,{0x98,0xF5,0x00,0x00,}}, {0x6A4F,2,{0x98,0xF6,0x00,0x00,}}, {0x6A50,2,{0xE9,0xD2,0x00,0x00,}}, {0x6A51,2,{0x98,0xF7,0x00,0x00,}}, {0x6A52,2,{0x98,0xF8,0x00,0x00,}}, {0x6A53,2,{0x98,0xF9,0x00,0x00,}}, {0x6A54,2,{0x98,0xFA,0x00,0x00,}}, {0x6A55,2,{0x98,0xFB,0x00,0x00,}}, {0x6A56,2,{0x98,0xFC,0x00,0x00,}}, {0x6A57,2,{0x98,0xFD,0x00,0x00,}}, {0x6A58,2,{0xE9,0xD9,0x00,0x00,}}, {0x6A59,2,{0xB3,0xC8,0x00,0x00,}}, {0x6A5A,2,{0x98,0xFE,0x00,0x00,}}, {0x6A5B,2,{0xE9,0xD3,0x00,0x00,}}, {0x6A5C,2,{0x99,0x40,0x00,0x00,}}, {0x6A5D,2,{0x99,0x41,0x00,0x00,}}, {0x6A5E,2,{0x99,0x42,0x00,0x00,}}, {0x6A5F,2,{0x99,0x43,0x00,0x00,}}, {0x6A60,2,{0x99,0x44,0x00,0x00,}}, {0x6A61,2,{0xCF,0xF0,0x00,0x00,}}, {0x6A62,2,{0x99,0x45,0x00,0x00,}}, {0x6A63,2,{0x99,0x46,0x00,0x00,}}, {0x6A64,2,{0x99,0x47,0x00,0x00,}}, {0x6A65,2,{0xE9,0xCD,0x00,0x00,}}, {0x6A66,2,{0x99,0x48,0x00,0x00,}}, {0x6A67,2,{0x99,0x49,0x00,0x00,}}, {0x6A68,2,{0x99,0x4A,0x00,0x00,}}, {0x6A69,2,{0x99,0x4B,0x00,0x00,}}, {0x6A6A,2,{0x99,0x4C,0x00,0x00,}}, {0x6A6B,2,{0x99,0x4D,0x00,0x00,}}, {0x6A6C,2,{0x99,0x4E,0x00,0x00,}}, {0x6A6D,2,{0x99,0x4F,0x00,0x00,}}, {0x6A6E,2,{0x99,0x50,0x00,0x00,}}, {0x6A6F,2,{0x99,0x51,0x00,0x00,}}, {0x6A70,2,{0x99,0x52,0x00,0x00,}}, {0x6A71,2,{0xB3,0xF7,0x00,0x00,}}, {0x6A72,2,{0x99,0x53,0x00,0x00,}}, {0x6A73,2,{0x99,0x54,0x00,0x00,}}, {0x6A74,2,{0x99,0x55,0x00,0x00,}}, {0x6A75,2,{0x99,0x56,0x00,0x00,}}, {0x6A76,2,{0x99,0x57,0x00,0x00,}}, {0x6A77,2,{0x99,0x58,0x00,0x00,}}, {0x6A78,2,{0x99,0x59,0x00,0x00,}}, {0x6A79,2,{0xE9,0xD6,0x00,0x00,}}, {0x6A7A,2,{0x99,0x5A,0x00,0x00,}}, {0x6A7B,2,{0x99,0x5B,0x00,0x00,}}, {0x6A7C,2,{0xE9,0xDA,0x00,0x00,}}, {0x6A7D,2,{0x99,0x5C,0x00,0x00,}}, {0x6A7E,2,{0x99,0x5D,0x00,0x00,}}, {0x6A7F,2,{0x99,0x5E,0x00,0x00,}}, {0x6A80,2,{0xCC,0xB4,0x00,0x00,}}, {0x6A81,2,{0x99,0x5F,0x00,0x00,}}, {0x6A82,2,{0x99,0x60,0x00,0x00,}}, {0x6A83,2,{0x99,0x61,0x00,0x00,}}, {0x6A84,2,{0xCF,0xAD,0x00,0x00,}}, {0x6A85,2,{0x99,0x62,0x00,0x00,}}, {0x6A86,2,{0x99,0x63,0x00,0x00,}}, {0x6A87,2,{0x99,0x64,0x00,0x00,}}, {0x6A88,2,{0x99,0x65,0x00,0x00,}}, {0x6A89,2,{0x99,0x66,0x00,0x00,}}, {0x6A8A,2,{0x99,0x67,0x00,0x00,}}, {0x6A8B,2,{0x99,0x68,0x00,0x00,}}, {0x6A8C,2,{0x99,0x69,0x00,0x00,}}, {0x6A8D,2,{0x99,0x6A,0x00,0x00,}}, {0x6A8E,2,{0xE9,0xD5,0x00,0x00,}}, {0x6A8F,2,{0x99,0x6B,0x00,0x00,}}, {0x6A90,2,{0xE9,0xDC,0x00,0x00,}}, {0x6A91,2,{0xE9,0xDB,0x00,0x00,}}, {0x6A92,2,{0x99,0x6C,0x00,0x00,}}, {0x6A93,2,{0x99,0x6D,0x00,0x00,}}, {0x6A94,2,{0x99,0x6E,0x00,0x00,}}, {0x6A95,2,{0x99,0x6F,0x00,0x00,}}, {0x6A96,2,{0x99,0x70,0x00,0x00,}}, {0x6A97,2,{0xE9,0xDE,0x00,0x00,}}, {0x6A98,2,{0x99,0x71,0x00,0x00,}}, {0x6A99,2,{0x99,0x72,0x00,0x00,}}, {0x6A9A,2,{0x99,0x73,0x00,0x00,}}, {0x6A9B,2,{0x99,0x74,0x00,0x00,}}, {0x6A9C,2,{0x99,0x75,0x00,0x00,}}, {0x6A9D,2,{0x99,0x76,0x00,0x00,}}, {0x6A9E,2,{0x99,0x77,0x00,0x00,}}, {0x6A9F,2,{0x99,0x78,0x00,0x00,}}, {0x6AA0,2,{0xE9,0xD1,0x00,0x00,}}, {0x6AA1,2,{0x99,0x79,0x00,0x00,}}, {0x6AA2,2,{0x99,0x7A,0x00,0x00,}}, {0x6AA3,2,{0x99,0x7B,0x00,0x00,}}, {0x6AA4,2,{0x99,0x7C,0x00,0x00,}}, {0x6AA5,2,{0x99,0x7D,0x00,0x00,}}, {0x6AA6,2,{0x99,0x7E,0x00,0x00,}}, {0x6AA7,2,{0x99,0x80,0x00,0x00,}}, {0x6AA8,2,{0x99,0x81,0x00,0x00,}}, {0x6AA9,2,{0xE9,0xDD,0x00,0x00,}}, {0x6AAA,2,{0x99,0x82,0x00,0x00,}}, {0x6AAB,2,{0xE9,0xDF,0x00,0x00,}}, {0x6AAC,2,{0xC3,0xCA,0x00,0x00,}}, {0x6AAD,2,{0x99,0x83,0x00,0x00,}}, {0x6AAE,2,{0x99,0x84,0x00,0x00,}}, {0x6AAF,2,{0x99,0x85,0x00,0x00,}}, {0x6AB0,2,{0x99,0x86,0x00,0x00,}}, {0x6AB1,2,{0x99,0x87,0x00,0x00,}}, {0x6AB2,2,{0x99,0x88,0x00,0x00,}}, {0x6AB3,2,{0x99,0x89,0x00,0x00,}}, {0x6AB4,2,{0x99,0x8A,0x00,0x00,}}, {0x6AB5,2,{0x99,0x8B,0x00,0x00,}}, {0x6AB6,2,{0x99,0x8C,0x00,0x00,}}, {0x6AB7,2,{0x99,0x8D,0x00,0x00,}}, {0x6AB8,2,{0x99,0x8E,0x00,0x00,}}, {0x6AB9,2,{0x99,0x8F,0x00,0x00,}}, {0x6ABA,2,{0x99,0x90,0x00,0x00,}}, {0x6ABB,2,{0x99,0x91,0x00,0x00,}}, {0x6ABC,2,{0x99,0x92,0x00,0x00,}}, {0x6ABD,2,{0x99,0x93,0x00,0x00,}}, {0x6ABE,2,{0x99,0x94,0x00,0x00,}}, {0x6ABF,2,{0x99,0x95,0x00,0x00,}}, {0x6AC0,2,{0x99,0x96,0x00,0x00,}}, {0x6AC1,2,{0x99,0x97,0x00,0x00,}}, {0x6AC2,2,{0x99,0x98,0x00,0x00,}}, {0x6AC3,2,{0x99,0x99,0x00,0x00,}}, {0x6AC4,2,{0x99,0x9A,0x00,0x00,}}, {0x6AC5,2,{0x99,0x9B,0x00,0x00,}}, {0x6AC6,2,{0x99,0x9C,0x00,0x00,}}, {0x6AC7,2,{0x99,0x9D,0x00,0x00,}}, {0x6AC8,2,{0x99,0x9E,0x00,0x00,}}, {0x6AC9,2,{0x99,0x9F,0x00,0x00,}}, {0x6ACA,2,{0x99,0xA0,0x00,0x00,}}, {0x6ACB,2,{0x99,0xA1,0x00,0x00,}}, {0x6ACC,2,{0x99,0xA2,0x00,0x00,}}, {0x6ACD,2,{0x99,0xA3,0x00,0x00,}}, {0x6ACE,2,{0x99,0xA4,0x00,0x00,}}, {0x6ACF,2,{0x99,0xA5,0x00,0x00,}}, {0x6AD0,2,{0x99,0xA6,0x00,0x00,}}, {0x6AD1,2,{0x99,0xA7,0x00,0x00,}}, {0x6AD2,2,{0x99,0xA8,0x00,0x00,}}, {0x6AD3,2,{0x99,0xA9,0x00,0x00,}}, {0x6AD4,2,{0x99,0xAA,0x00,0x00,}}, {0x6AD5,2,{0x99,0xAB,0x00,0x00,}}, {0x6AD6,2,{0x99,0xAC,0x00,0x00,}}, {0x6AD7,2,{0x99,0xAD,0x00,0x00,}}, {0x6AD8,2,{0x99,0xAE,0x00,0x00,}}, {0x6AD9,2,{0x99,0xAF,0x00,0x00,}}, {0x6ADA,2,{0x99,0xB0,0x00,0x00,}}, {0x6ADB,2,{0x99,0xB1,0x00,0x00,}}, {0x6ADC,2,{0x99,0xB2,0x00,0x00,}}, {0x6ADD,2,{0x99,0xB3,0x00,0x00,}}, {0x6ADE,2,{0x99,0xB4,0x00,0x00,}}, {0x6ADF,2,{0x99,0xB5,0x00,0x00,}}, {0x6AE0,2,{0x99,0xB6,0x00,0x00,}}, {0x6AE1,2,{0x99,0xB7,0x00,0x00,}}, {0x6AE2,2,{0x99,0xB8,0x00,0x00,}}, {0x6AE3,2,{0x99,0xB9,0x00,0x00,}}, {0x6AE4,2,{0x99,0xBA,0x00,0x00,}}, {0x6AE5,2,{0x99,0xBB,0x00,0x00,}}, {0x6AE6,2,{0x99,0xBC,0x00,0x00,}}, {0x6AE7,2,{0x99,0xBD,0x00,0x00,}}, {0x6AE8,2,{0x99,0xBE,0x00,0x00,}}, {0x6AE9,2,{0x99,0xBF,0x00,0x00,}}, {0x6AEA,2,{0x99,0xC0,0x00,0x00,}}, {0x6AEB,2,{0x99,0xC1,0x00,0x00,}}, {0x6AEC,2,{0x99,0xC2,0x00,0x00,}}, {0x6AED,2,{0x99,0xC3,0x00,0x00,}}, {0x6AEE,2,{0x99,0xC4,0x00,0x00,}}, {0x6AEF,2,{0x99,0xC5,0x00,0x00,}}, {0x6AF0,2,{0x99,0xC6,0x00,0x00,}}, {0x6AF1,2,{0x99,0xC7,0x00,0x00,}}, {0x6AF2,2,{0x99,0xC8,0x00,0x00,}}, {0x6AF3,2,{0x99,0xC9,0x00,0x00,}}, {0x6AF4,2,{0x99,0xCA,0x00,0x00,}}, {0x6AF5,2,{0x99,0xCB,0x00,0x00,}}, {0x6AF6,2,{0x99,0xCC,0x00,0x00,}}, {0x6AF7,2,{0x99,0xCD,0x00,0x00,}}, {0x6AF8,2,{0x99,0xCE,0x00,0x00,}}, {0x6AF9,2,{0x99,0xCF,0x00,0x00,}}, {0x6AFA,2,{0x99,0xD0,0x00,0x00,}}, {0x6AFB,2,{0x99,0xD1,0x00,0x00,}}, {0x6AFC,2,{0x99,0xD2,0x00,0x00,}}, {0x6AFD,2,{0x99,0xD3,0x00,0x00,}}, {0x6AFE,2,{0x99,0xD4,0x00,0x00,}}, {0x6AFF,2,{0x99,0xD5,0x00,0x00,}}, {0x6B00,2,{0x99,0xD6,0x00,0x00,}}, {0x6B01,2,{0x99,0xD7,0x00,0x00,}}, {0x6B02,2,{0x99,0xD8,0x00,0x00,}}, {0x6B03,2,{0x99,0xD9,0x00,0x00,}}, {0x6B04,2,{0x99,0xDA,0x00,0x00,}}, {0x6B05,2,{0x99,0xDB,0x00,0x00,}}, {0x6B06,2,{0x99,0xDC,0x00,0x00,}}, {0x6B07,2,{0x99,0xDD,0x00,0x00,}}, {0x6B08,2,{0x99,0xDE,0x00,0x00,}}, {0x6B09,2,{0x99,0xDF,0x00,0x00,}}, {0x6B0A,2,{0x99,0xE0,0x00,0x00,}}, {0x6B0B,2,{0x99,0xE1,0x00,0x00,}}, {0x6B0C,2,{0x99,0xE2,0x00,0x00,}}, {0x6B0D,2,{0x99,0xE3,0x00,0x00,}}, {0x6B0E,2,{0x99,0xE4,0x00,0x00,}}, {0x6B0F,2,{0x99,0xE5,0x00,0x00,}}, {0x6B10,2,{0x99,0xE6,0x00,0x00,}}, {0x6B11,2,{0x99,0xE7,0x00,0x00,}}, {0x6B12,2,{0x99,0xE8,0x00,0x00,}}, {0x6B13,2,{0x99,0xE9,0x00,0x00,}}, {0x6B14,2,{0x99,0xEA,0x00,0x00,}}, {0x6B15,2,{0x99,0xEB,0x00,0x00,}}, {0x6B16,2,{0x99,0xEC,0x00,0x00,}}, {0x6B17,2,{0x99,0xED,0x00,0x00,}}, {0x6B18,2,{0x99,0xEE,0x00,0x00,}}, {0x6B19,2,{0x99,0xEF,0x00,0x00,}}, {0x6B1A,2,{0x99,0xF0,0x00,0x00,}}, {0x6B1B,2,{0x99,0xF1,0x00,0x00,}}, {0x6B1C,2,{0x99,0xF2,0x00,0x00,}}, {0x6B1D,2,{0x99,0xF3,0x00,0x00,}}, {0x6B1E,2,{0x99,0xF4,0x00,0x00,}}, {0x6B1F,2,{0x99,0xF5,0x00,0x00,}}, {0x6B20,2,{0xC7,0xB7,0x00,0x00,}}, {0x6B21,2,{0xB4,0xCE,0x00,0x00,}}, {0x6B22,2,{0xBB,0xB6,0x00,0x00,}}, {0x6B23,2,{0xD0,0xC0,0x00,0x00,}}, {0x6B24,2,{0xEC,0xA3,0x00,0x00,}}, {0x6B25,2,{0x99,0xF6,0x00,0x00,}}, {0x6B26,2,{0x99,0xF7,0x00,0x00,}}, {0x6B27,2,{0xC5,0xB7,0x00,0x00,}}, {0x6B28,2,{0x99,0xF8,0x00,0x00,}}, {0x6B29,2,{0x99,0xF9,0x00,0x00,}}, {0x6B2A,2,{0x99,0xFA,0x00,0x00,}}, {0x6B2B,2,{0x99,0xFB,0x00,0x00,}}, {0x6B2C,2,{0x99,0xFC,0x00,0x00,}}, {0x6B2D,2,{0x99,0xFD,0x00,0x00,}}, {0x6B2E,2,{0x99,0xFE,0x00,0x00,}}, {0x6B2F,2,{0x9A,0x40,0x00,0x00,}}, {0x6B30,2,{0x9A,0x41,0x00,0x00,}}, {0x6B31,2,{0x9A,0x42,0x00,0x00,}}, {0x6B32,2,{0xD3,0xFB,0x00,0x00,}}, {0x6B33,2,{0x9A,0x43,0x00,0x00,}}, {0x6B34,2,{0x9A,0x44,0x00,0x00,}}, {0x6B35,2,{0x9A,0x45,0x00,0x00,}}, {0x6B36,2,{0x9A,0x46,0x00,0x00,}}, {0x6B37,2,{0xEC,0xA4,0x00,0x00,}}, {0x6B38,2,{0x9A,0x47,0x00,0x00,}}, {0x6B39,2,{0xEC,0xA5,0x00,0x00,}}, {0x6B3A,2,{0xC6,0xDB,0x00,0x00,}}, {0x6B3B,2,{0x9A,0x48,0x00,0x00,}}, {0x6B3C,2,{0x9A,0x49,0x00,0x00,}}, {0x6B3D,2,{0x9A,0x4A,0x00,0x00,}}, {0x6B3E,2,{0xBF,0xEE,0x00,0x00,}}, {0x6B3F,2,{0x9A,0x4B,0x00,0x00,}}, {0x6B40,2,{0x9A,0x4C,0x00,0x00,}}, {0x6B41,2,{0x9A,0x4D,0x00,0x00,}}, {0x6B42,2,{0x9A,0x4E,0x00,0x00,}}, {0x6B43,2,{0xEC,0xA6,0x00,0x00,}}, {0x6B44,2,{0x9A,0x4F,0x00,0x00,}}, {0x6B45,2,{0x9A,0x50,0x00,0x00,}}, {0x6B46,2,{0xEC,0xA7,0x00,0x00,}}, {0x6B47,2,{0xD0,0xAA,0x00,0x00,}}, {0x6B48,2,{0x9A,0x51,0x00,0x00,}}, {0x6B49,2,{0xC7,0xB8,0x00,0x00,}}, {0x6B4A,2,{0x9A,0x52,0x00,0x00,}}, {0x6B4B,2,{0x9A,0x53,0x00,0x00,}}, {0x6B4C,2,{0xB8,0xE8,0x00,0x00,}}, {0x6B4D,2,{0x9A,0x54,0x00,0x00,}}, {0x6B4E,2,{0x9A,0x55,0x00,0x00,}}, {0x6B4F,2,{0x9A,0x56,0x00,0x00,}}, {0x6B50,2,{0x9A,0x57,0x00,0x00,}}, {0x6B51,2,{0x9A,0x58,0x00,0x00,}}, {0x6B52,2,{0x9A,0x59,0x00,0x00,}}, {0x6B53,2,{0x9A,0x5A,0x00,0x00,}}, {0x6B54,2,{0x9A,0x5B,0x00,0x00,}}, {0x6B55,2,{0x9A,0x5C,0x00,0x00,}}, {0x6B56,2,{0x9A,0x5D,0x00,0x00,}}, {0x6B57,2,{0x9A,0x5E,0x00,0x00,}}, {0x6B58,2,{0x9A,0x5F,0x00,0x00,}}, {0x6B59,2,{0xEC,0xA8,0x00,0x00,}}, {0x6B5A,2,{0x9A,0x60,0x00,0x00,}}, {0x6B5B,2,{0x9A,0x61,0x00,0x00,}}, {0x6B5C,2,{0x9A,0x62,0x00,0x00,}}, {0x6B5D,2,{0x9A,0x63,0x00,0x00,}}, {0x6B5E,2,{0x9A,0x64,0x00,0x00,}}, {0x6B5F,2,{0x9A,0x65,0x00,0x00,}}, {0x6B60,2,{0x9A,0x66,0x00,0x00,}}, {0x6B61,2,{0x9A,0x67,0x00,0x00,}}, {0x6B62,2,{0xD6,0xB9,0x00,0x00,}}, {0x6B63,2,{0xD5,0xFD,0x00,0x00,}}, {0x6B64,2,{0xB4,0xCB,0x00,0x00,}}, {0x6B65,2,{0xB2,0xBD,0x00,0x00,}}, {0x6B66,2,{0xCE,0xE4,0x00,0x00,}}, {0x6B67,2,{0xC6,0xE7,0x00,0x00,}}, {0x6B68,2,{0x9A,0x68,0x00,0x00,}}, {0x6B69,2,{0x9A,0x69,0x00,0x00,}}, {0x6B6A,2,{0xCD,0xE1,0x00,0x00,}}, {0x6B6B,2,{0x9A,0x6A,0x00,0x00,}}, {0x6B6C,2,{0x9A,0x6B,0x00,0x00,}}, {0x6B6D,2,{0x9A,0x6C,0x00,0x00,}}, {0x6B6E,2,{0x9A,0x6D,0x00,0x00,}}, {0x6B6F,2,{0x9A,0x6E,0x00,0x00,}}, {0x6B70,2,{0x9A,0x6F,0x00,0x00,}}, {0x6B71,2,{0x9A,0x70,0x00,0x00,}}, {0x6B72,2,{0x9A,0x71,0x00,0x00,}}, {0x6B73,2,{0x9A,0x72,0x00,0x00,}}, {0x6B74,2,{0x9A,0x73,0x00,0x00,}}, {0x6B75,2,{0x9A,0x74,0x00,0x00,}}, {0x6B76,2,{0x9A,0x75,0x00,0x00,}}, {0x6B77,2,{0x9A,0x76,0x00,0x00,}}, {0x6B78,2,{0x9A,0x77,0x00,0x00,}}, {0x6B79,2,{0xB4,0xF5,0x00,0x00,}}, {0x6B7A,2,{0x9A,0x78,0x00,0x00,}}, {0x6B7B,2,{0xCB,0xC0,0x00,0x00,}}, {0x6B7C,2,{0xBC,0xDF,0x00,0x00,}}, {0x6B7D,2,{0x9A,0x79,0x00,0x00,}}, {0x6B7E,2,{0x9A,0x7A,0x00,0x00,}}, {0x6B7F,2,{0x9A,0x7B,0x00,0x00,}}, {0x6B80,2,{0x9A,0x7C,0x00,0x00,}}, {0x6B81,2,{0xE9,0xE2,0x00,0x00,}}, {0x6B82,2,{0xE9,0xE3,0x00,0x00,}}, {0x6B83,2,{0xD1,0xEA,0x00,0x00,}}, {0x6B84,2,{0xE9,0xE5,0x00,0x00,}}, {0x6B85,2,{0x9A,0x7D,0x00,0x00,}}, {0x6B86,2,{0xB4,0xF9,0x00,0x00,}}, {0x6B87,2,{0xE9,0xE4,0x00,0x00,}}, {0x6B88,2,{0x9A,0x7E,0x00,0x00,}}, {0x6B89,2,{0xD1,0xB3,0x00,0x00,}}, {0x6B8A,2,{0xCA,0xE2,0x00,0x00,}}, {0x6B8B,2,{0xB2,0xD0,0x00,0x00,}}, {0x6B8C,2,{0x9A,0x80,0x00,0x00,}}, {0x6B8D,2,{0xE9,0xE8,0x00,0x00,}}, {0x6B8E,2,{0x9A,0x81,0x00,0x00,}}, {0x6B8F,2,{0x9A,0x82,0x00,0x00,}}, {0x6B90,2,{0x9A,0x83,0x00,0x00,}}, {0x6B91,2,{0x9A,0x84,0x00,0x00,}}, {0x6B92,2,{0xE9,0xE6,0x00,0x00,}}, {0x6B93,2,{0xE9,0xE7,0x00,0x00,}}, {0x6B94,2,{0x9A,0x85,0x00,0x00,}}, {0x6B95,2,{0x9A,0x86,0x00,0x00,}}, {0x6B96,2,{0xD6,0xB3,0x00,0x00,}}, {0x6B97,2,{0x9A,0x87,0x00,0x00,}}, {0x6B98,2,{0x9A,0x88,0x00,0x00,}}, {0x6B99,2,{0x9A,0x89,0x00,0x00,}}, {0x6B9A,2,{0xE9,0xE9,0x00,0x00,}}, {0x6B9B,2,{0xE9,0xEA,0x00,0x00,}}, {0x6B9C,2,{0x9A,0x8A,0x00,0x00,}}, {0x6B9D,2,{0x9A,0x8B,0x00,0x00,}}, {0x6B9E,2,{0x9A,0x8C,0x00,0x00,}}, {0x6B9F,2,{0x9A,0x8D,0x00,0x00,}}, {0x6BA0,2,{0x9A,0x8E,0x00,0x00,}}, {0x6BA1,2,{0xE9,0xEB,0x00,0x00,}}, {0x6BA2,2,{0x9A,0x8F,0x00,0x00,}}, {0x6BA3,2,{0x9A,0x90,0x00,0x00,}}, {0x6BA4,2,{0x9A,0x91,0x00,0x00,}}, {0x6BA5,2,{0x9A,0x92,0x00,0x00,}}, {0x6BA6,2,{0x9A,0x93,0x00,0x00,}}, {0x6BA7,2,{0x9A,0x94,0x00,0x00,}}, {0x6BA8,2,{0x9A,0x95,0x00,0x00,}}, {0x6BA9,2,{0x9A,0x96,0x00,0x00,}}, {0x6BAA,2,{0xE9,0xEC,0x00,0x00,}}, {0x6BAB,2,{0x9A,0x97,0x00,0x00,}}, {0x6BAC,2,{0x9A,0x98,0x00,0x00,}}, {0x6BAD,2,{0x9A,0x99,0x00,0x00,}}, {0x6BAE,2,{0x9A,0x9A,0x00,0x00,}}, {0x6BAF,2,{0x9A,0x9B,0x00,0x00,}}, {0x6BB0,2,{0x9A,0x9C,0x00,0x00,}}, {0x6BB1,2,{0x9A,0x9D,0x00,0x00,}}, {0x6BB2,2,{0x9A,0x9E,0x00,0x00,}}, {0x6BB3,2,{0xEC,0xAF,0x00,0x00,}}, {0x6BB4,2,{0xC5,0xB9,0x00,0x00,}}, {0x6BB5,2,{0xB6,0xCE,0x00,0x00,}}, {0x6BB6,2,{0x9A,0x9F,0x00,0x00,}}, {0x6BB7,2,{0xD2,0xF3,0x00,0x00,}}, {0x6BB8,2,{0x9A,0xA0,0x00,0x00,}}, {0x6BB9,2,{0x9A,0xA1,0x00,0x00,}}, {0x6BBA,2,{0x9A,0xA2,0x00,0x00,}}, {0x6BBB,2,{0x9A,0xA3,0x00,0x00,}}, {0x6BBC,2,{0x9A,0xA4,0x00,0x00,}}, {0x6BBD,2,{0x9A,0xA5,0x00,0x00,}}, {0x6BBE,2,{0x9A,0xA6,0x00,0x00,}}, {0x6BBF,2,{0xB5,0xEE,0x00,0x00,}}, {0x6BC0,2,{0x9A,0xA7,0x00,0x00,}}, {0x6BC1,2,{0xBB,0xD9,0x00,0x00,}}, {0x6BC2,2,{0xEC,0xB1,0x00,0x00,}}, {0x6BC3,2,{0x9A,0xA8,0x00,0x00,}}, {0x6BC4,2,{0x9A,0xA9,0x00,0x00,}}, {0x6BC5,2,{0xD2,0xE3,0x00,0x00,}}, {0x6BC6,2,{0x9A,0xAA,0x00,0x00,}}, {0x6BC7,2,{0x9A,0xAB,0x00,0x00,}}, {0x6BC8,2,{0x9A,0xAC,0x00,0x00,}}, {0x6BC9,2,{0x9A,0xAD,0x00,0x00,}}, {0x6BCA,2,{0x9A,0xAE,0x00,0x00,}}, {0x6BCB,2,{0xCE,0xE3,0x00,0x00,}}, {0x6BCC,2,{0x9A,0xAF,0x00,0x00,}}, {0x6BCD,2,{0xC4,0xB8,0x00,0x00,}}, {0x6BCE,2,{0x9A,0xB0,0x00,0x00,}}, {0x6BCF,2,{0xC3,0xBF,0x00,0x00,}}, {0x6BD0,2,{0x9A,0xB1,0x00,0x00,}}, {0x6BD1,2,{0x9A,0xB2,0x00,0x00,}}, {0x6BD2,2,{0xB6,0xBE,0x00,0x00,}}, {0x6BD3,2,{0xD8,0xB9,0x00,0x00,}}, {0x6BD4,2,{0xB1,0xC8,0x00,0x00,}}, {0x6BD5,2,{0xB1,0xCF,0x00,0x00,}}, {0x6BD6,2,{0xB1,0xD1,0x00,0x00,}}, {0x6BD7,2,{0xC5,0xFE,0x00,0x00,}}, {0x6BD8,2,{0x9A,0xB3,0x00,0x00,}}, {0x6BD9,2,{0xB1,0xD0,0x00,0x00,}}, {0x6BDA,2,{0x9A,0xB4,0x00,0x00,}}, {0x6BDB,2,{0xC3,0xAB,0x00,0x00,}}, {0x6BDC,2,{0x9A,0xB5,0x00,0x00,}}, {0x6BDD,2,{0x9A,0xB6,0x00,0x00,}}, {0x6BDE,2,{0x9A,0xB7,0x00,0x00,}}, {0x6BDF,2,{0x9A,0xB8,0x00,0x00,}}, {0x6BE0,2,{0x9A,0xB9,0x00,0x00,}}, {0x6BE1,2,{0xD5,0xB1,0x00,0x00,}}, {0x6BE2,2,{0x9A,0xBA,0x00,0x00,}}, {0x6BE3,2,{0x9A,0xBB,0x00,0x00,}}, {0x6BE4,2,{0x9A,0xBC,0x00,0x00,}}, {0x6BE5,2,{0x9A,0xBD,0x00,0x00,}}, {0x6BE6,2,{0x9A,0xBE,0x00,0x00,}}, {0x6BE7,2,{0x9A,0xBF,0x00,0x00,}}, {0x6BE8,2,{0x9A,0xC0,0x00,0x00,}}, {0x6BE9,2,{0x9A,0xC1,0x00,0x00,}}, {0x6BEA,2,{0xEB,0xA4,0x00,0x00,}}, {0x6BEB,2,{0xBA,0xC1,0x00,0x00,}}, {0x6BEC,2,{0x9A,0xC2,0x00,0x00,}}, {0x6BED,2,{0x9A,0xC3,0x00,0x00,}}, {0x6BEE,2,{0x9A,0xC4,0x00,0x00,}}, {0x6BEF,2,{0xCC,0xBA,0x00,0x00,}}, {0x6BF0,2,{0x9A,0xC5,0x00,0x00,}}, {0x6BF1,2,{0x9A,0xC6,0x00,0x00,}}, {0x6BF2,2,{0x9A,0xC7,0x00,0x00,}}, {0x6BF3,2,{0xEB,0xA5,0x00,0x00,}}, {0x6BF4,2,{0x9A,0xC8,0x00,0x00,}}, {0x6BF5,2,{0xEB,0xA7,0x00,0x00,}}, {0x6BF6,2,{0x9A,0xC9,0x00,0x00,}}, {0x6BF7,2,{0x9A,0xCA,0x00,0x00,}}, {0x6BF8,2,{0x9A,0xCB,0x00,0x00,}}, {0x6BF9,2,{0xEB,0xA8,0x00,0x00,}}, {0x6BFA,2,{0x9A,0xCC,0x00,0x00,}}, {0x6BFB,2,{0x9A,0xCD,0x00,0x00,}}, {0x6BFC,2,{0x9A,0xCE,0x00,0x00,}}, {0x6BFD,2,{0xEB,0xA6,0x00,0x00,}}, {0x6BFE,2,{0x9A,0xCF,0x00,0x00,}}, {0x6BFF,2,{0x9A,0xD0,0x00,0x00,}}, {0x6C00,2,{0x9A,0xD1,0x00,0x00,}}, {0x6C01,2,{0x9A,0xD2,0x00,0x00,}}, {0x6C02,2,{0x9A,0xD3,0x00,0x00,}}, {0x6C03,2,{0x9A,0xD4,0x00,0x00,}}, {0x6C04,2,{0x9A,0xD5,0x00,0x00,}}, {0x6C05,2,{0xEB,0xA9,0x00,0x00,}}, {0x6C06,2,{0xEB,0xAB,0x00,0x00,}}, {0x6C07,2,{0xEB,0xAA,0x00,0x00,}}, {0x6C08,2,{0x9A,0xD6,0x00,0x00,}}, {0x6C09,2,{0x9A,0xD7,0x00,0x00,}}, {0x6C0A,2,{0x9A,0xD8,0x00,0x00,}}, {0x6C0B,2,{0x9A,0xD9,0x00,0x00,}}, {0x6C0C,2,{0x9A,0xDA,0x00,0x00,}}, {0x6C0D,2,{0xEB,0xAC,0x00,0x00,}}, {0x6C0E,2,{0x9A,0xDB,0x00,0x00,}}, {0x6C0F,2,{0xCA,0xCF,0x00,0x00,}}, {0x6C10,2,{0xD8,0xB5,0x00,0x00,}}, {0x6C11,2,{0xC3,0xF1,0x00,0x00,}}, {0x6C12,2,{0x9A,0xDC,0x00,0x00,}}, {0x6C13,2,{0xC3,0xA5,0x00,0x00,}}, {0x6C14,2,{0xC6,0xF8,0x00,0x00,}}, {0x6C15,2,{0xEB,0xAD,0x00,0x00,}}, {0x6C16,2,{0xC4,0xCA,0x00,0x00,}}, {0x6C17,2,{0x9A,0xDD,0x00,0x00,}}, {0x6C18,2,{0xEB,0xAE,0x00,0x00,}}, {0x6C19,2,{0xEB,0xAF,0x00,0x00,}}, {0x6C1A,2,{0xEB,0xB0,0x00,0x00,}}, {0x6C1B,2,{0xB7,0xD5,0x00,0x00,}}, {0x6C1C,2,{0x9A,0xDE,0x00,0x00,}}, {0x6C1D,2,{0x9A,0xDF,0x00,0x00,}}, {0x6C1E,2,{0x9A,0xE0,0x00,0x00,}}, {0x6C1F,2,{0xB7,0xFA,0x00,0x00,}}, {0x6C20,2,{0x9A,0xE1,0x00,0x00,}}, {0x6C21,2,{0xEB,0xB1,0x00,0x00,}}, {0x6C22,2,{0xC7,0xE2,0x00,0x00,}}, {0x6C23,2,{0x9A,0xE2,0x00,0x00,}}, {0x6C24,2,{0xEB,0xB3,0x00,0x00,}}, {0x6C25,2,{0x9A,0xE3,0x00,0x00,}}, {0x6C26,2,{0xBA,0xA4,0x00,0x00,}}, {0x6C27,2,{0xD1,0xF5,0x00,0x00,}}, {0x6C28,2,{0xB0,0xB1,0x00,0x00,}}, {0x6C29,2,{0xEB,0xB2,0x00,0x00,}}, {0x6C2A,2,{0xEB,0xB4,0x00,0x00,}}, {0x6C2B,2,{0x9A,0xE4,0x00,0x00,}}, {0x6C2C,2,{0x9A,0xE5,0x00,0x00,}}, {0x6C2D,2,{0x9A,0xE6,0x00,0x00,}}, {0x6C2E,2,{0xB5,0xAA,0x00,0x00,}}, {0x6C2F,2,{0xC2,0xC8,0x00,0x00,}}, {0x6C30,2,{0xC7,0xE8,0x00,0x00,}}, {0x6C31,2,{0x9A,0xE7,0x00,0x00,}}, {0x6C32,2,{0xEB,0xB5,0x00,0x00,}}, {0x6C33,2,{0x9A,0xE8,0x00,0x00,}}, {0x6C34,2,{0xCB,0xAE,0x00,0x00,}}, {0x6C35,2,{0xE3,0xDF,0x00,0x00,}}, {0x6C36,2,{0x9A,0xE9,0x00,0x00,}}, {0x6C37,2,{0x9A,0xEA,0x00,0x00,}}, {0x6C38,2,{0xD3,0xC0,0x00,0x00,}}, {0x6C39,2,{0x9A,0xEB,0x00,0x00,}}, {0x6C3A,2,{0x9A,0xEC,0x00,0x00,}}, {0x6C3B,2,{0x9A,0xED,0x00,0x00,}}, {0x6C3C,2,{0x9A,0xEE,0x00,0x00,}}, {0x6C3D,2,{0xD9,0xDB,0x00,0x00,}}, {0x6C3E,2,{0x9A,0xEF,0x00,0x00,}}, {0x6C3F,2,{0x9A,0xF0,0x00,0x00,}}, {0x6C40,2,{0xCD,0xA1,0x00,0x00,}}, {0x6C41,2,{0xD6,0xAD,0x00,0x00,}}, {0x6C42,2,{0xC7,0xF3,0x00,0x00,}}, {0x6C43,2,{0x9A,0xF1,0x00,0x00,}}, {0x6C44,2,{0x9A,0xF2,0x00,0x00,}}, {0x6C45,2,{0x9A,0xF3,0x00,0x00,}}, {0x6C46,2,{0xD9,0xE0,0x00,0x00,}}, {0x6C47,2,{0xBB,0xE3,0x00,0x00,}}, {0x6C48,2,{0x9A,0xF4,0x00,0x00,}}, {0x6C49,2,{0xBA,0xBA,0x00,0x00,}}, {0x6C4A,2,{0xE3,0xE2,0x00,0x00,}}, {0x6C4B,2,{0x9A,0xF5,0x00,0x00,}}, {0x6C4C,2,{0x9A,0xF6,0x00,0x00,}}, {0x6C4D,2,{0x9A,0xF7,0x00,0x00,}}, {0x6C4E,2,{0x9A,0xF8,0x00,0x00,}}, {0x6C4F,2,{0x9A,0xF9,0x00,0x00,}}, {0x6C50,2,{0xCF,0xAB,0x00,0x00,}}, {0x6C51,2,{0x9A,0xFA,0x00,0x00,}}, {0x6C52,2,{0x9A,0xFB,0x00,0x00,}}, {0x6C53,2,{0x9A,0xFC,0x00,0x00,}}, {0x6C54,2,{0xE3,0xE0,0x00,0x00,}}, {0x6C55,2,{0xC9,0xC7,0x00,0x00,}}, {0x6C56,2,{0x9A,0xFD,0x00,0x00,}}, {0x6C57,2,{0xBA,0xB9,0x00,0x00,}}, {0x6C58,2,{0x9A,0xFE,0x00,0x00,}}, {0x6C59,2,{0x9B,0x40,0x00,0x00,}}, {0x6C5A,2,{0x9B,0x41,0x00,0x00,}}, {0x6C5B,2,{0xD1,0xB4,0x00,0x00,}}, {0x6C5C,2,{0xE3,0xE1,0x00,0x00,}}, {0x6C5D,2,{0xC8,0xEA,0x00,0x00,}}, {0x6C5E,2,{0xB9,0xAF,0x00,0x00,}}, {0x6C5F,2,{0xBD,0xAD,0x00,0x00,}}, {0x6C60,2,{0xB3,0xD8,0x00,0x00,}}, {0x6C61,2,{0xCE,0xDB,0x00,0x00,}}, {0x6C62,2,{0x9B,0x42,0x00,0x00,}}, {0x6C63,2,{0x9B,0x43,0x00,0x00,}}, {0x6C64,2,{0xCC,0xC0,0x00,0x00,}}, {0x6C65,2,{0x9B,0x44,0x00,0x00,}}, {0x6C66,2,{0x9B,0x45,0x00,0x00,}}, {0x6C67,2,{0x9B,0x46,0x00,0x00,}}, {0x6C68,2,{0xE3,0xE8,0x00,0x00,}}, {0x6C69,2,{0xE3,0xE9,0x00,0x00,}}, {0x6C6A,2,{0xCD,0xF4,0x00,0x00,}}, {0x6C6B,2,{0x9B,0x47,0x00,0x00,}}, {0x6C6C,2,{0x9B,0x48,0x00,0x00,}}, {0x6C6D,2,{0x9B,0x49,0x00,0x00,}}, {0x6C6E,2,{0x9B,0x4A,0x00,0x00,}}, {0x6C6F,2,{0x9B,0x4B,0x00,0x00,}}, {0x6C70,2,{0xCC,0xAD,0x00,0x00,}}, {0x6C71,2,{0x9B,0x4C,0x00,0x00,}}, {0x6C72,2,{0xBC,0xB3,0x00,0x00,}}, {0x6C73,2,{0x9B,0x4D,0x00,0x00,}}, {0x6C74,2,{0xE3,0xEA,0x00,0x00,}}, {0x6C75,2,{0x9B,0x4E,0x00,0x00,}}, {0x6C76,2,{0xE3,0xEB,0x00,0x00,}}, {0x6C77,2,{0x9B,0x4F,0x00,0x00,}}, {0x6C78,2,{0x9B,0x50,0x00,0x00,}}, {0x6C79,2,{0xD0,0xDA,0x00,0x00,}}, {0x6C7A,2,{0x9B,0x51,0x00,0x00,}}, {0x6C7B,2,{0x9B,0x52,0x00,0x00,}}, {0x6C7C,2,{0x9B,0x53,0x00,0x00,}}, {0x6C7D,2,{0xC6,0xFB,0x00,0x00,}}, {0x6C7E,2,{0xB7,0xDA,0x00,0x00,}}, {0x6C7F,2,{0x9B,0x54,0x00,0x00,}}, {0x6C80,2,{0x9B,0x55,0x00,0x00,}}, {0x6C81,2,{0xC7,0xDF,0x00,0x00,}}, {0x6C82,2,{0xD2,0xCA,0x00,0x00,}}, {0x6C83,2,{0xCE,0xD6,0x00,0x00,}}, {0x6C84,2,{0x9B,0x56,0x00,0x00,}}, {0x6C85,2,{0xE3,0xE4,0x00,0x00,}}, {0x6C86,2,{0xE3,0xEC,0x00,0x00,}}, {0x6C87,2,{0x9B,0x57,0x00,0x00,}}, {0x6C88,2,{0xC9,0xF2,0x00,0x00,}}, {0x6C89,2,{0xB3,0xC1,0x00,0x00,}}, {0x6C8A,2,{0x9B,0x58,0x00,0x00,}}, {0x6C8B,2,{0x9B,0x59,0x00,0x00,}}, {0x6C8C,2,{0xE3,0xE7,0x00,0x00,}}, {0x6C8D,2,{0x9B,0x5A,0x00,0x00,}}, {0x6C8E,2,{0x9B,0x5B,0x00,0x00,}}, {0x6C8F,2,{0xC6,0xE3,0x00,0x00,}}, {0x6C90,2,{0xE3,0xE5,0x00,0x00,}}, {0x6C91,2,{0x9B,0x5C,0x00,0x00,}}, {0x6C92,2,{0x9B,0x5D,0x00,0x00,}}, {0x6C93,2,{0xED,0xB3,0x00,0x00,}}, {0x6C94,2,{0xE3,0xE6,0x00,0x00,}}, {0x6C95,2,{0x9B,0x5E,0x00,0x00,}}, {0x6C96,2,{0x9B,0x5F,0x00,0x00,}}, {0x6C97,2,{0x9B,0x60,0x00,0x00,}}, {0x6C98,2,{0x9B,0x61,0x00,0x00,}}, {0x6C99,2,{0xC9,0xB3,0x00,0x00,}}, {0x6C9A,2,{0x9B,0x62,0x00,0x00,}}, {0x6C9B,2,{0xC5,0xE6,0x00,0x00,}}, {0x6C9C,2,{0x9B,0x63,0x00,0x00,}}, {0x6C9D,2,{0x9B,0x64,0x00,0x00,}}, {0x6C9E,2,{0x9B,0x65,0x00,0x00,}}, {0x6C9F,2,{0xB9,0xB5,0x00,0x00,}}, {0x6CA0,2,{0x9B,0x66,0x00,0x00,}}, {0x6CA1,2,{0xC3,0xBB,0x00,0x00,}}, {0x6CA2,2,{0x9B,0x67,0x00,0x00,}}, {0x6CA3,2,{0xE3,0xE3,0x00,0x00,}}, {0x6CA4,2,{0xC5,0xBD,0x00,0x00,}}, {0x6CA5,2,{0xC1,0xA4,0x00,0x00,}}, {0x6CA6,2,{0xC2,0xD9,0x00,0x00,}}, {0x6CA7,2,{0xB2,0xD7,0x00,0x00,}}, {0x6CA8,2,{0x9B,0x68,0x00,0x00,}}, {0x6CA9,2,{0xE3,0xED,0x00,0x00,}}, {0x6CAA,2,{0xBB,0xA6,0x00,0x00,}}, {0x6CAB,2,{0xC4,0xAD,0x00,0x00,}}, {0x6CAC,2,{0x9B,0x69,0x00,0x00,}}, {0x6CAD,2,{0xE3,0xF0,0x00,0x00,}}, {0x6CAE,2,{0xBE,0xDA,0x00,0x00,}}, {0x6CAF,2,{0x9B,0x6A,0x00,0x00,}}, {0x6CB0,2,{0x9B,0x6B,0x00,0x00,}}, {0x6CB1,2,{0xE3,0xFB,0x00,0x00,}}, {0x6CB2,2,{0xE3,0xF5,0x00,0x00,}}, {0x6CB3,2,{0xBA,0xD3,0x00,0x00,}}, {0x6CB4,2,{0x9B,0x6C,0x00,0x00,}}, {0x6CB5,2,{0x9B,0x6D,0x00,0x00,}}, {0x6CB6,2,{0x9B,0x6E,0x00,0x00,}}, {0x6CB7,2,{0x9B,0x6F,0x00,0x00,}}, {0x6CB8,2,{0xB7,0xD0,0x00,0x00,}}, {0x6CB9,2,{0xD3,0xCD,0x00,0x00,}}, {0x6CBA,2,{0x9B,0x70,0x00,0x00,}}, {0x6CBB,2,{0xD6,0xCE,0x00,0x00,}}, {0x6CBC,2,{0xD5,0xD3,0x00,0x00,}}, {0x6CBD,2,{0xB9,0xC1,0x00,0x00,}}, {0x6CBE,2,{0xD5,0xB4,0x00,0x00,}}, {0x6CBF,2,{0xD1,0xD8,0x00,0x00,}}, {0x6CC0,2,{0x9B,0x71,0x00,0x00,}}, {0x6CC1,2,{0x9B,0x72,0x00,0x00,}}, {0x6CC2,2,{0x9B,0x73,0x00,0x00,}}, {0x6CC3,2,{0x9B,0x74,0x00,0x00,}}, {0x6CC4,2,{0xD0,0xB9,0x00,0x00,}}, {0x6CC5,2,{0xC7,0xF6,0x00,0x00,}}, {0x6CC6,2,{0x9B,0x75,0x00,0x00,}}, {0x6CC7,2,{0x9B,0x76,0x00,0x00,}}, {0x6CC8,2,{0x9B,0x77,0x00,0x00,}}, {0x6CC9,2,{0xC8,0xAA,0x00,0x00,}}, {0x6CCA,2,{0xB2,0xB4,0x00,0x00,}}, {0x6CCB,2,{0x9B,0x78,0x00,0x00,}}, {0x6CCC,2,{0xC3,0xDA,0x00,0x00,}}, {0x6CCD,2,{0x9B,0x79,0x00,0x00,}}, {0x6CCE,2,{0x9B,0x7A,0x00,0x00,}}, {0x6CCF,2,{0x9B,0x7B,0x00,0x00,}}, {0x6CD0,2,{0xE3,0xEE,0x00,0x00,}}, {0x6CD1,2,{0x9B,0x7C,0x00,0x00,}}, {0x6CD2,2,{0x9B,0x7D,0x00,0x00,}}, {0x6CD3,2,{0xE3,0xFC,0x00,0x00,}}, {0x6CD4,2,{0xE3,0xEF,0x00,0x00,}}, {0x6CD5,2,{0xB7,0xA8,0x00,0x00,}}, {0x6CD6,2,{0xE3,0xF7,0x00,0x00,}}, {0x6CD7,2,{0xE3,0xF4,0x00,0x00,}}, {0x6CD8,2,{0x9B,0x7E,0x00,0x00,}}, {0x6CD9,2,{0x9B,0x80,0x00,0x00,}}, {0x6CDA,2,{0x9B,0x81,0x00,0x00,}}, {0x6CDB,2,{0xB7,0xBA,0x00,0x00,}}, {0x6CDC,2,{0x9B,0x82,0x00,0x00,}}, {0x6CDD,2,{0x9B,0x83,0x00,0x00,}}, {0x6CDE,2,{0xC5,0xA2,0x00,0x00,}}, {0x6CDF,2,{0x9B,0x84,0x00,0x00,}}, {0x6CE0,2,{0xE3,0xF6,0x00,0x00,}}, {0x6CE1,2,{0xC5,0xDD,0x00,0x00,}}, {0x6CE2,2,{0xB2,0xA8,0x00,0x00,}}, {0x6CE3,2,{0xC6,0xFC,0x00,0x00,}}, {0x6CE4,2,{0x9B,0x85,0x00,0x00,}}, {0x6CE5,2,{0xC4,0xE0,0x00,0x00,}}, {0x6CE6,2,{0x9B,0x86,0x00,0x00,}}, {0x6CE7,2,{0x9B,0x87,0x00,0x00,}}, {0x6CE8,2,{0xD7,0xA2,0x00,0x00,}}, {0x6CE9,2,{0x9B,0x88,0x00,0x00,}}, {0x6CEA,2,{0xC0,0xE1,0x00,0x00,}}, {0x6CEB,2,{0xE3,0xF9,0x00,0x00,}}, {0x6CEC,2,{0x9B,0x89,0x00,0x00,}}, {0x6CED,2,{0x9B,0x8A,0x00,0x00,}}, {0x6CEE,2,{0xE3,0xFA,0x00,0x00,}}, {0x6CEF,2,{0xE3,0xFD,0x00,0x00,}}, {0x6CF0,2,{0xCC,0xA9,0x00,0x00,}}, {0x6CF1,2,{0xE3,0xF3,0x00,0x00,}}, {0x6CF2,2,{0x9B,0x8B,0x00,0x00,}}, {0x6CF3,2,{0xD3,0xBE,0x00,0x00,}}, {0x6CF4,2,{0x9B,0x8C,0x00,0x00,}}, {0x6CF5,2,{0xB1,0xC3,0x00,0x00,}}, {0x6CF6,2,{0xED,0xB4,0x00,0x00,}}, {0x6CF7,2,{0xE3,0xF1,0x00,0x00,}}, {0x6CF8,2,{0xE3,0xF2,0x00,0x00,}}, {0x6CF9,2,{0x9B,0x8D,0x00,0x00,}}, {0x6CFA,2,{0xE3,0xF8,0x00,0x00,}}, {0x6CFB,2,{0xD0,0xBA,0x00,0x00,}}, {0x6CFC,2,{0xC6,0xC3,0x00,0x00,}}, {0x6CFD,2,{0xD4,0xF3,0x00,0x00,}}, {0x6CFE,2,{0xE3,0xFE,0x00,0x00,}}, {0x6CFF,2,{0x9B,0x8E,0x00,0x00,}}, {0x6D00,2,{0x9B,0x8F,0x00,0x00,}}, {0x6D01,2,{0xBD,0xE0,0x00,0x00,}}, {0x6D02,2,{0x9B,0x90,0x00,0x00,}}, {0x6D03,2,{0x9B,0x91,0x00,0x00,}}, {0x6D04,2,{0xE4,0xA7,0x00,0x00,}}, {0x6D05,2,{0x9B,0x92,0x00,0x00,}}, {0x6D06,2,{0x9B,0x93,0x00,0x00,}}, {0x6D07,2,{0xE4,0xA6,0x00,0x00,}}, {0x6D08,2,{0x9B,0x94,0x00,0x00,}}, {0x6D09,2,{0x9B,0x95,0x00,0x00,}}, {0x6D0A,2,{0x9B,0x96,0x00,0x00,}}, {0x6D0B,2,{0xD1,0xF3,0x00,0x00,}}, {0x6D0C,2,{0xE4,0xA3,0x00,0x00,}}, {0x6D0D,2,{0x9B,0x97,0x00,0x00,}}, {0x6D0E,2,{0xE4,0xA9,0x00,0x00,}}, {0x6D0F,2,{0x9B,0x98,0x00,0x00,}}, {0x6D10,2,{0x9B,0x99,0x00,0x00,}}, {0x6D11,2,{0x9B,0x9A,0x00,0x00,}}, {0x6D12,2,{0xC8,0xF7,0x00,0x00,}}, {0x6D13,2,{0x9B,0x9B,0x00,0x00,}}, {0x6D14,2,{0x9B,0x9C,0x00,0x00,}}, {0x6D15,2,{0x9B,0x9D,0x00,0x00,}}, {0x6D16,2,{0x9B,0x9E,0x00,0x00,}}, {0x6D17,2,{0xCF,0xB4,0x00,0x00,}}, {0x6D18,2,{0x9B,0x9F,0x00,0x00,}}, {0x6D19,2,{0xE4,0xA8,0x00,0x00,}}, {0x6D1A,2,{0xE4,0xAE,0x00,0x00,}}, {0x6D1B,2,{0xC2,0xE5,0x00,0x00,}}, {0x6D1C,2,{0x9B,0xA0,0x00,0x00,}}, {0x6D1D,2,{0x9B,0xA1,0x00,0x00,}}, {0x6D1E,2,{0xB6,0xB4,0x00,0x00,}}, {0x6D1F,2,{0x9B,0xA2,0x00,0x00,}}, {0x6D20,2,{0x9B,0xA3,0x00,0x00,}}, {0x6D21,2,{0x9B,0xA4,0x00,0x00,}}, {0x6D22,2,{0x9B,0xA5,0x00,0x00,}}, {0x6D23,2,{0x9B,0xA6,0x00,0x00,}}, {0x6D24,2,{0x9B,0xA7,0x00,0x00,}}, {0x6D25,2,{0xBD,0xF2,0x00,0x00,}}, {0x6D26,2,{0x9B,0xA8,0x00,0x00,}}, {0x6D27,2,{0xE4,0xA2,0x00,0x00,}}, {0x6D28,2,{0x9B,0xA9,0x00,0x00,}}, {0x6D29,2,{0x9B,0xAA,0x00,0x00,}}, {0x6D2A,2,{0xBA,0xE9,0x00,0x00,}}, {0x6D2B,2,{0xE4,0xAA,0x00,0x00,}}, {0x6D2C,2,{0x9B,0xAB,0x00,0x00,}}, {0x6D2D,2,{0x9B,0xAC,0x00,0x00,}}, {0x6D2E,2,{0xE4,0xAC,0x00,0x00,}}, {0x6D2F,2,{0x9B,0xAD,0x00,0x00,}}, {0x6D30,2,{0x9B,0xAE,0x00,0x00,}}, {0x6D31,2,{0xB6,0xFD,0x00,0x00,}}, {0x6D32,2,{0xD6,0xDE,0x00,0x00,}}, {0x6D33,2,{0xE4,0xB2,0x00,0x00,}}, {0x6D34,2,{0x9B,0xAF,0x00,0x00,}}, {0x6D35,2,{0xE4,0xAD,0x00,0x00,}}, {0x6D36,2,{0x9B,0xB0,0x00,0x00,}}, {0x6D37,2,{0x9B,0xB1,0x00,0x00,}}, {0x6D38,2,{0x9B,0xB2,0x00,0x00,}}, {0x6D39,2,{0xE4,0xA1,0x00,0x00,}}, {0x6D3A,2,{0x9B,0xB3,0x00,0x00,}}, {0x6D3B,2,{0xBB,0xEE,0x00,0x00,}}, {0x6D3C,2,{0xCD,0xDD,0x00,0x00,}}, {0x6D3D,2,{0xC7,0xA2,0x00,0x00,}}, {0x6D3E,2,{0xC5,0xC9,0x00,0x00,}}, {0x6D3F,2,{0x9B,0xB4,0x00,0x00,}}, {0x6D40,2,{0x9B,0xB5,0x00,0x00,}}, {0x6D41,2,{0xC1,0xF7,0x00,0x00,}}, {0x6D42,2,{0x9B,0xB6,0x00,0x00,}}, {0x6D43,2,{0xE4,0xA4,0x00,0x00,}}, {0x6D44,2,{0x9B,0xB7,0x00,0x00,}}, {0x6D45,2,{0xC7,0xB3,0x00,0x00,}}, {0x6D46,2,{0xBD,0xAC,0x00,0x00,}}, {0x6D47,2,{0xBD,0xBD,0x00,0x00,}}, {0x6D48,2,{0xE4,0xA5,0x00,0x00,}}, {0x6D49,2,{0x9B,0xB8,0x00,0x00,}}, {0x6D4A,2,{0xD7,0xC7,0x00,0x00,}}, {0x6D4B,2,{0xB2,0xE2,0x00,0x00,}}, {0x6D4C,2,{0x9B,0xB9,0x00,0x00,}}, {0x6D4D,2,{0xE4,0xAB,0x00,0x00,}}, {0x6D4E,2,{0xBC,0xC3,0x00,0x00,}}, {0x6D4F,2,{0xE4,0xAF,0x00,0x00,}}, {0x6D50,2,{0x9B,0xBA,0x00,0x00,}}, {0x6D51,2,{0xBB,0xEB,0x00,0x00,}}, {0x6D52,2,{0xE4,0xB0,0x00,0x00,}}, {0x6D53,2,{0xC5,0xA8,0x00,0x00,}}, {0x6D54,2,{0xE4,0xB1,0x00,0x00,}}, {0x6D55,2,{0x9B,0xBB,0x00,0x00,}}, {0x6D56,2,{0x9B,0xBC,0x00,0x00,}}, {0x6D57,2,{0x9B,0xBD,0x00,0x00,}}, {0x6D58,2,{0x9B,0xBE,0x00,0x00,}}, {0x6D59,2,{0xD5,0xE3,0x00,0x00,}}, {0x6D5A,2,{0xBF,0xA3,0x00,0x00,}}, {0x6D5B,2,{0x9B,0xBF,0x00,0x00,}}, {0x6D5C,2,{0xE4,0xBA,0x00,0x00,}}, {0x6D5D,2,{0x9B,0xC0,0x00,0x00,}}, {0x6D5E,2,{0xE4,0xB7,0x00,0x00,}}, {0x6D5F,2,{0x9B,0xC1,0x00,0x00,}}, {0x6D60,2,{0xE4,0xBB,0x00,0x00,}}, {0x6D61,2,{0x9B,0xC2,0x00,0x00,}}, {0x6D62,2,{0x9B,0xC3,0x00,0x00,}}, {0x6D63,2,{0xE4,0xBD,0x00,0x00,}}, {0x6D64,2,{0x9B,0xC4,0x00,0x00,}}, {0x6D65,2,{0x9B,0xC5,0x00,0x00,}}, {0x6D66,2,{0xC6,0xD6,0x00,0x00,}}, {0x6D67,2,{0x9B,0xC6,0x00,0x00,}}, {0x6D68,2,{0x9B,0xC7,0x00,0x00,}}, {0x6D69,2,{0xBA,0xC6,0x00,0x00,}}, {0x6D6A,2,{0xC0,0xCB,0x00,0x00,}}, {0x6D6B,2,{0x9B,0xC8,0x00,0x00,}}, {0x6D6C,2,{0x9B,0xC9,0x00,0x00,}}, {0x6D6D,2,{0x9B,0xCA,0x00,0x00,}}, {0x6D6E,2,{0xB8,0xA1,0x00,0x00,}}, {0x6D6F,2,{0xE4,0xB4,0x00,0x00,}}, {0x6D70,2,{0x9B,0xCB,0x00,0x00,}}, {0x6D71,2,{0x9B,0xCC,0x00,0x00,}}, {0x6D72,2,{0x9B,0xCD,0x00,0x00,}}, {0x6D73,2,{0x9B,0xCE,0x00,0x00,}}, {0x6D74,2,{0xD4,0xA1,0x00,0x00,}}, {0x6D75,2,{0x9B,0xCF,0x00,0x00,}}, {0x6D76,2,{0x9B,0xD0,0x00,0x00,}}, {0x6D77,2,{0xBA,0xA3,0x00,0x00,}}, {0x6D78,2,{0xBD,0xFE,0x00,0x00,}}, {0x6D79,2,{0x9B,0xD1,0x00,0x00,}}, {0x6D7A,2,{0x9B,0xD2,0x00,0x00,}}, {0x6D7B,2,{0x9B,0xD3,0x00,0x00,}}, {0x6D7C,2,{0xE4,0xBC,0x00,0x00,}}, {0x6D7D,2,{0x9B,0xD4,0x00,0x00,}}, {0x6D7E,2,{0x9B,0xD5,0x00,0x00,}}, {0x6D7F,2,{0x9B,0xD6,0x00,0x00,}}, {0x6D80,2,{0x9B,0xD7,0x00,0x00,}}, {0x6D81,2,{0x9B,0xD8,0x00,0x00,}}, {0x6D82,2,{0xCD,0xBF,0x00,0x00,}}, {0x6D83,2,{0x9B,0xD9,0x00,0x00,}}, {0x6D84,2,{0x9B,0xDA,0x00,0x00,}}, {0x6D85,2,{0xC4,0xF9,0x00,0x00,}}, {0x6D86,2,{0x9B,0xDB,0x00,0x00,}}, {0x6D87,2,{0x9B,0xDC,0x00,0x00,}}, {0x6D88,2,{0xCF,0xFB,0x00,0x00,}}, {0x6D89,2,{0xC9,0xE6,0x00,0x00,}}, {0x6D8A,2,{0x9B,0xDD,0x00,0x00,}}, {0x6D8B,2,{0x9B,0xDE,0x00,0x00,}}, {0x6D8C,2,{0xD3,0xBF,0x00,0x00,}}, {0x6D8D,2,{0x9B,0xDF,0x00,0x00,}}, {0x6D8E,2,{0xCF,0xD1,0x00,0x00,}}, {0x6D8F,2,{0x9B,0xE0,0x00,0x00,}}, {0x6D90,2,{0x9B,0xE1,0x00,0x00,}}, {0x6D91,2,{0xE4,0xB3,0x00,0x00,}}, {0x6D92,2,{0x9B,0xE2,0x00,0x00,}}, {0x6D93,2,{0xE4,0xB8,0x00,0x00,}}, {0x6D94,2,{0xE4,0xB9,0x00,0x00,}}, {0x6D95,2,{0xCC,0xE9,0x00,0x00,}}, {0x6D96,2,{0x9B,0xE3,0x00,0x00,}}, {0x6D97,2,{0x9B,0xE4,0x00,0x00,}}, {0x6D98,2,{0x9B,0xE5,0x00,0x00,}}, {0x6D99,2,{0x9B,0xE6,0x00,0x00,}}, {0x6D9A,2,{0x9B,0xE7,0x00,0x00,}}, {0x6D9B,2,{0xCC,0xCE,0x00,0x00,}}, {0x6D9C,2,{0x9B,0xE8,0x00,0x00,}}, {0x6D9D,2,{0xC0,0xD4,0x00,0x00,}}, {0x6D9E,2,{0xE4,0xB5,0x00,0x00,}}, {0x6D9F,2,{0xC1,0xB0,0x00,0x00,}}, {0x6DA0,2,{0xE4,0xB6,0x00,0x00,}}, {0x6DA1,2,{0xCE,0xD0,0x00,0x00,}}, {0x6DA2,2,{0x9B,0xE9,0x00,0x00,}}, {0x6DA3,2,{0xBB,0xC1,0x00,0x00,}}, {0x6DA4,2,{0xB5,0xD3,0x00,0x00,}}, {0x6DA5,2,{0x9B,0xEA,0x00,0x00,}}, {0x6DA6,2,{0xC8,0xF3,0x00,0x00,}}, {0x6DA7,2,{0xBD,0xA7,0x00,0x00,}}, {0x6DA8,2,{0xD5,0xC7,0x00,0x00,}}, {0x6DA9,2,{0xC9,0xAC,0x00,0x00,}}, {0x6DAA,2,{0xB8,0xA2,0x00,0x00,}}, {0x6DAB,2,{0xE4,0xCA,0x00,0x00,}}, {0x6DAC,2,{0x9B,0xEB,0x00,0x00,}}, {0x6DAD,2,{0x9B,0xEC,0x00,0x00,}}, {0x6DAE,2,{0xE4,0xCC,0x00,0x00,}}, {0x6DAF,2,{0xD1,0xC4,0x00,0x00,}}, {0x6DB0,2,{0x9B,0xED,0x00,0x00,}}, {0x6DB1,2,{0x9B,0xEE,0x00,0x00,}}, {0x6DB2,2,{0xD2,0xBA,0x00,0x00,}}, {0x6DB3,2,{0x9B,0xEF,0x00,0x00,}}, {0x6DB4,2,{0x9B,0xF0,0x00,0x00,}}, {0x6DB5,2,{0xBA,0xAD,0x00,0x00,}}, {0x6DB6,2,{0x9B,0xF1,0x00,0x00,}}, {0x6DB7,2,{0x9B,0xF2,0x00,0x00,}}, {0x6DB8,2,{0xBA,0xD4,0x00,0x00,}}, {0x6DB9,2,{0x9B,0xF3,0x00,0x00,}}, {0x6DBA,2,{0x9B,0xF4,0x00,0x00,}}, {0x6DBB,2,{0x9B,0xF5,0x00,0x00,}}, {0x6DBC,2,{0x9B,0xF6,0x00,0x00,}}, {0x6DBD,2,{0x9B,0xF7,0x00,0x00,}}, {0x6DBE,2,{0x9B,0xF8,0x00,0x00,}}, {0x6DBF,2,{0xE4,0xC3,0x00,0x00,}}, {0x6DC0,2,{0xB5,0xED,0x00,0x00,}}, {0x6DC1,2,{0x9B,0xF9,0x00,0x00,}}, {0x6DC2,2,{0x9B,0xFA,0x00,0x00,}}, {0x6DC3,2,{0x9B,0xFB,0x00,0x00,}}, {0x6DC4,2,{0xD7,0xCD,0x00,0x00,}}, {0x6DC5,2,{0xE4,0xC0,0x00,0x00,}}, {0x6DC6,2,{0xCF,0xFD,0x00,0x00,}}, {0x6DC7,2,{0xE4,0xBF,0x00,0x00,}}, {0x6DC8,2,{0x9B,0xFC,0x00,0x00,}}, {0x6DC9,2,{0x9B,0xFD,0x00,0x00,}}, {0x6DCA,2,{0x9B,0xFE,0x00,0x00,}}, {0x6DCB,2,{0xC1,0xDC,0x00,0x00,}}, {0x6DCC,2,{0xCC,0xCA,0x00,0x00,}}, {0x6DCD,2,{0x9C,0x40,0x00,0x00,}}, {0x6DCE,2,{0x9C,0x41,0x00,0x00,}}, {0x6DCF,2,{0x9C,0x42,0x00,0x00,}}, {0x6DD0,2,{0x9C,0x43,0x00,0x00,}}, {0x6DD1,2,{0xCA,0xE7,0x00,0x00,}}, {0x6DD2,2,{0x9C,0x44,0x00,0x00,}}, {0x6DD3,2,{0x9C,0x45,0x00,0x00,}}, {0x6DD4,2,{0x9C,0x46,0x00,0x00,}}, {0x6DD5,2,{0x9C,0x47,0x00,0x00,}}, {0x6DD6,2,{0xC4,0xD7,0x00,0x00,}}, {0x6DD7,2,{0x9C,0x48,0x00,0x00,}}, {0x6DD8,2,{0xCC,0xD4,0x00,0x00,}}, {0x6DD9,2,{0xE4,0xC8,0x00,0x00,}}, {0x6DDA,2,{0x9C,0x49,0x00,0x00,}}, {0x6DDB,2,{0x9C,0x4A,0x00,0x00,}}, {0x6DDC,2,{0x9C,0x4B,0x00,0x00,}}, {0x6DDD,2,{0xE4,0xC7,0x00,0x00,}}, {0x6DDE,2,{0xE4,0xC1,0x00,0x00,}}, {0x6DDF,2,{0x9C,0x4C,0x00,0x00,}}, {0x6DE0,2,{0xE4,0xC4,0x00,0x00,}}, {0x6DE1,2,{0xB5,0xAD,0x00,0x00,}}, {0x6DE2,2,{0x9C,0x4D,0x00,0x00,}}, {0x6DE3,2,{0x9C,0x4E,0x00,0x00,}}, {0x6DE4,2,{0xD3,0xD9,0x00,0x00,}}, {0x6DE5,2,{0x9C,0x4F,0x00,0x00,}}, {0x6DE6,2,{0xE4,0xC6,0x00,0x00,}}, {0x6DE7,2,{0x9C,0x50,0x00,0x00,}}, {0x6DE8,2,{0x9C,0x51,0x00,0x00,}}, {0x6DE9,2,{0x9C,0x52,0x00,0x00,}}, {0x6DEA,2,{0x9C,0x53,0x00,0x00,}}, {0x6DEB,2,{0xD2,0xF9,0x00,0x00,}}, {0x6DEC,2,{0xB4,0xE3,0x00,0x00,}}, {0x6DED,2,{0x9C,0x54,0x00,0x00,}}, {0x6DEE,2,{0xBB,0xB4,0x00,0x00,}}, {0x6DEF,2,{0x9C,0x55,0x00,0x00,}}, {0x6DF0,2,{0x9C,0x56,0x00,0x00,}}, {0x6DF1,2,{0xC9,0xEE,0x00,0x00,}}, {0x6DF2,2,{0x9C,0x57,0x00,0x00,}}, {0x6DF3,2,{0xB4,0xBE,0x00,0x00,}}, {0x6DF4,2,{0x9C,0x58,0x00,0x00,}}, {0x6DF5,2,{0x9C,0x59,0x00,0x00,}}, {0x6DF6,2,{0x9C,0x5A,0x00,0x00,}}, {0x6DF7,2,{0xBB,0xEC,0x00,0x00,}}, {0x6DF8,2,{0x9C,0x5B,0x00,0x00,}}, {0x6DF9,2,{0xD1,0xCD,0x00,0x00,}}, {0x6DFA,2,{0x9C,0x5C,0x00,0x00,}}, {0x6DFB,2,{0xCC,0xED,0x00,0x00,}}, {0x6DFC,2,{0xED,0xB5,0x00,0x00,}}, {0x6DFD,2,{0x9C,0x5D,0x00,0x00,}}, {0x6DFE,2,{0x9C,0x5E,0x00,0x00,}}, {0x6DFF,2,{0x9C,0x5F,0x00,0x00,}}, {0x6E00,2,{0x9C,0x60,0x00,0x00,}}, {0x6E01,2,{0x9C,0x61,0x00,0x00,}}, {0x6E02,2,{0x9C,0x62,0x00,0x00,}}, {0x6E03,2,{0x9C,0x63,0x00,0x00,}}, {0x6E04,2,{0x9C,0x64,0x00,0x00,}}, {0x6E05,2,{0xC7,0xE5,0x00,0x00,}}, {0x6E06,2,{0x9C,0x65,0x00,0x00,}}, {0x6E07,2,{0x9C,0x66,0x00,0x00,}}, {0x6E08,2,{0x9C,0x67,0x00,0x00,}}, {0x6E09,2,{0x9C,0x68,0x00,0x00,}}, {0x6E0A,2,{0xD4,0xA8,0x00,0x00,}}, {0x6E0B,2,{0x9C,0x69,0x00,0x00,}}, {0x6E0C,2,{0xE4,0xCB,0x00,0x00,}}, {0x6E0D,2,{0xD7,0xD5,0x00,0x00,}}, {0x6E0E,2,{0xE4,0xC2,0x00,0x00,}}, {0x6E0F,2,{0x9C,0x6A,0x00,0x00,}}, {0x6E10,2,{0xBD,0xA5,0x00,0x00,}}, {0x6E11,2,{0xE4,0xC5,0x00,0x00,}}, {0x6E12,2,{0x9C,0x6B,0x00,0x00,}}, {0x6E13,2,{0x9C,0x6C,0x00,0x00,}}, {0x6E14,2,{0xD3,0xE6,0x00,0x00,}}, {0x6E15,2,{0x9C,0x6D,0x00,0x00,}}, {0x6E16,2,{0xE4,0xC9,0x00,0x00,}}, {0x6E17,2,{0xC9,0xF8,0x00,0x00,}}, {0x6E18,2,{0x9C,0x6E,0x00,0x00,}}, {0x6E19,2,{0x9C,0x6F,0x00,0x00,}}, {0x6E1A,2,{0xE4,0xBE,0x00,0x00,}}, {0x6E1B,2,{0x9C,0x70,0x00,0x00,}}, {0x6E1C,2,{0x9C,0x71,0x00,0x00,}}, {0x6E1D,2,{0xD3,0xE5,0x00,0x00,}}, {0x6E1E,2,{0x9C,0x72,0x00,0x00,}}, {0x6E1F,2,{0x9C,0x73,0x00,0x00,}}, {0x6E20,2,{0xC7,0xFE,0x00,0x00,}}, {0x6E21,2,{0xB6,0xC9,0x00,0x00,}}, {0x6E22,2,{0x9C,0x74,0x00,0x00,}}, {0x6E23,2,{0xD4,0xFC,0x00,0x00,}}, {0x6E24,2,{0xB2,0xB3,0x00,0x00,}}, {0x6E25,2,{0xE4,0xD7,0x00,0x00,}}, {0x6E26,2,{0x9C,0x75,0x00,0x00,}}, {0x6E27,2,{0x9C,0x76,0x00,0x00,}}, {0x6E28,2,{0x9C,0x77,0x00,0x00,}}, {0x6E29,2,{0xCE,0xC2,0x00,0x00,}}, {0x6E2A,2,{0x9C,0x78,0x00,0x00,}}, {0x6E2B,2,{0xE4,0xCD,0x00,0x00,}}, {0x6E2C,2,{0x9C,0x79,0x00,0x00,}}, {0x6E2D,2,{0xCE,0xBC,0x00,0x00,}}, {0x6E2E,2,{0x9C,0x7A,0x00,0x00,}}, {0x6E2F,2,{0xB8,0xDB,0x00,0x00,}}, {0x6E30,2,{0x9C,0x7B,0x00,0x00,}}, {0x6E31,2,{0x9C,0x7C,0x00,0x00,}}, {0x6E32,2,{0xE4,0xD6,0x00,0x00,}}, {0x6E33,2,{0x9C,0x7D,0x00,0x00,}}, {0x6E34,2,{0xBF,0xCA,0x00,0x00,}}, {0x6E35,2,{0x9C,0x7E,0x00,0x00,}}, {0x6E36,2,{0x9C,0x80,0x00,0x00,}}, {0x6E37,2,{0x9C,0x81,0x00,0x00,}}, {0x6E38,2,{0xD3,0xCE,0x00,0x00,}}, {0x6E39,2,{0x9C,0x82,0x00,0x00,}}, {0x6E3A,2,{0xC3,0xEC,0x00,0x00,}}, {0x6E3B,2,{0x9C,0x83,0x00,0x00,}}, {0x6E3C,2,{0x9C,0x84,0x00,0x00,}}, {0x6E3D,2,{0x9C,0x85,0x00,0x00,}}, {0x6E3E,2,{0x9C,0x86,0x00,0x00,}}, {0x6E3F,2,{0x9C,0x87,0x00,0x00,}}, {0x6E40,2,{0x9C,0x88,0x00,0x00,}}, {0x6E41,2,{0x9C,0x89,0x00,0x00,}}, {0x6E42,2,{0x9C,0x8A,0x00,0x00,}}, {0x6E43,2,{0xC5,0xC8,0x00,0x00,}}, {0x6E44,2,{0xE4,0xD8,0x00,0x00,}}, {0x6E45,2,{0x9C,0x8B,0x00,0x00,}}, {0x6E46,2,{0x9C,0x8C,0x00,0x00,}}, {0x6E47,2,{0x9C,0x8D,0x00,0x00,}}, {0x6E48,2,{0x9C,0x8E,0x00,0x00,}}, {0x6E49,2,{0x9C,0x8F,0x00,0x00,}}, {0x6E4A,2,{0x9C,0x90,0x00,0x00,}}, {0x6E4B,2,{0x9C,0x91,0x00,0x00,}}, {0x6E4C,2,{0x9C,0x92,0x00,0x00,}}, {0x6E4D,2,{0xCD,0xC4,0x00,0x00,}}, {0x6E4E,2,{0xE4,0xCF,0x00,0x00,}}, {0x6E4F,2,{0x9C,0x93,0x00,0x00,}}, {0x6E50,2,{0x9C,0x94,0x00,0x00,}}, {0x6E51,2,{0x9C,0x95,0x00,0x00,}}, {0x6E52,2,{0x9C,0x96,0x00,0x00,}}, {0x6E53,2,{0xE4,0xD4,0x00,0x00,}}, {0x6E54,2,{0xE4,0xD5,0x00,0x00,}}, {0x6E55,2,{0x9C,0x97,0x00,0x00,}}, {0x6E56,2,{0xBA,0xFE,0x00,0x00,}}, {0x6E57,2,{0x9C,0x98,0x00,0x00,}}, {0x6E58,2,{0xCF,0xE6,0x00,0x00,}}, {0x6E59,2,{0x9C,0x99,0x00,0x00,}}, {0x6E5A,2,{0x9C,0x9A,0x00,0x00,}}, {0x6E5B,2,{0xD5,0xBF,0x00,0x00,}}, {0x6E5C,2,{0x9C,0x9B,0x00,0x00,}}, {0x6E5D,2,{0x9C,0x9C,0x00,0x00,}}, {0x6E5E,2,{0x9C,0x9D,0x00,0x00,}}, {0x6E5F,2,{0xE4,0xD2,0x00,0x00,}}, {0x6E60,2,{0x9C,0x9E,0x00,0x00,}}, {0x6E61,2,{0x9C,0x9F,0x00,0x00,}}, {0x6E62,2,{0x9C,0xA0,0x00,0x00,}}, {0x6E63,2,{0x9C,0xA1,0x00,0x00,}}, {0x6E64,2,{0x9C,0xA2,0x00,0x00,}}, {0x6E65,2,{0x9C,0xA3,0x00,0x00,}}, {0x6E66,2,{0x9C,0xA4,0x00,0x00,}}, {0x6E67,2,{0x9C,0xA5,0x00,0x00,}}, {0x6E68,2,{0x9C,0xA6,0x00,0x00,}}, {0x6E69,2,{0x9C,0xA7,0x00,0x00,}}, {0x6E6A,2,{0x9C,0xA8,0x00,0x00,}}, {0x6E6B,2,{0xE4,0xD0,0x00,0x00,}}, {0x6E6C,2,{0x9C,0xA9,0x00,0x00,}}, {0x6E6D,2,{0x9C,0xAA,0x00,0x00,}}, {0x6E6E,2,{0xE4,0xCE,0x00,0x00,}}, {0x6E6F,2,{0x9C,0xAB,0x00,0x00,}}, {0x6E70,2,{0x9C,0xAC,0x00,0x00,}}, {0x6E71,2,{0x9C,0xAD,0x00,0x00,}}, {0x6E72,2,{0x9C,0xAE,0x00,0x00,}}, {0x6E73,2,{0x9C,0xAF,0x00,0x00,}}, {0x6E74,2,{0x9C,0xB0,0x00,0x00,}}, {0x6E75,2,{0x9C,0xB1,0x00,0x00,}}, {0x6E76,2,{0x9C,0xB2,0x00,0x00,}}, {0x6E77,2,{0x9C,0xB3,0x00,0x00,}}, {0x6E78,2,{0x9C,0xB4,0x00,0x00,}}, {0x6E79,2,{0x9C,0xB5,0x00,0x00,}}, {0x6E7A,2,{0x9C,0xB6,0x00,0x00,}}, {0x6E7B,2,{0x9C,0xB7,0x00,0x00,}}, {0x6E7C,2,{0x9C,0xB8,0x00,0x00,}}, {0x6E7D,2,{0x9C,0xB9,0x00,0x00,}}, {0x6E7E,2,{0xCD,0xE5,0x00,0x00,}}, {0x6E7F,2,{0xCA,0xAA,0x00,0x00,}}, {0x6E80,2,{0x9C,0xBA,0x00,0x00,}}, {0x6E81,2,{0x9C,0xBB,0x00,0x00,}}, {0x6E82,2,{0x9C,0xBC,0x00,0x00,}}, {0x6E83,2,{0xC0,0xA3,0x00,0x00,}}, {0x6E84,2,{0x9C,0xBD,0x00,0x00,}}, {0x6E85,2,{0xBD,0xA6,0x00,0x00,}}, {0x6E86,2,{0xE4,0xD3,0x00,0x00,}}, {0x6E87,2,{0x9C,0xBE,0x00,0x00,}}, {0x6E88,2,{0x9C,0xBF,0x00,0x00,}}, {0x6E89,2,{0xB8,0xC8,0x00,0x00,}}, {0x6E8A,2,{0x9C,0xC0,0x00,0x00,}}, {0x6E8B,2,{0x9C,0xC1,0x00,0x00,}}, {0x6E8C,2,{0x9C,0xC2,0x00,0x00,}}, {0x6E8D,2,{0x9C,0xC3,0x00,0x00,}}, {0x6E8E,2,{0x9C,0xC4,0x00,0x00,}}, {0x6E8F,2,{0xE4,0xE7,0x00,0x00,}}, {0x6E90,2,{0xD4,0xB4,0x00,0x00,}}, {0x6E91,2,{0x9C,0xC5,0x00,0x00,}}, {0x6E92,2,{0x9C,0xC6,0x00,0x00,}}, {0x6E93,2,{0x9C,0xC7,0x00,0x00,}}, {0x6E94,2,{0x9C,0xC8,0x00,0x00,}}, {0x6E95,2,{0x9C,0xC9,0x00,0x00,}}, {0x6E96,2,{0x9C,0xCA,0x00,0x00,}}, {0x6E97,2,{0x9C,0xCB,0x00,0x00,}}, {0x6E98,2,{0xE4,0xDB,0x00,0x00,}}, {0x6E99,2,{0x9C,0xCC,0x00,0x00,}}, {0x6E9A,2,{0x9C,0xCD,0x00,0x00,}}, {0x6E9B,2,{0x9C,0xCE,0x00,0x00,}}, {0x6E9C,2,{0xC1,0xEF,0x00,0x00,}}, {0x6E9D,2,{0x9C,0xCF,0x00,0x00,}}, {0x6E9E,2,{0x9C,0xD0,0x00,0x00,}}, {0x6E9F,2,{0xE4,0xE9,0x00,0x00,}}, {0x6EA0,2,{0x9C,0xD1,0x00,0x00,}}, {0x6EA1,2,{0x9C,0xD2,0x00,0x00,}}, {0x6EA2,2,{0xD2,0xE7,0x00,0x00,}}, {0x6EA3,2,{0x9C,0xD3,0x00,0x00,}}, {0x6EA4,2,{0x9C,0xD4,0x00,0x00,}}, {0x6EA5,2,{0xE4,0xDF,0x00,0x00,}}, {0x6EA6,2,{0x9C,0xD5,0x00,0x00,}}, {0x6EA7,2,{0xE4,0xE0,0x00,0x00,}}, {0x6EA8,2,{0x9C,0xD6,0x00,0x00,}}, {0x6EA9,2,{0x9C,0xD7,0x00,0x00,}}, {0x6EAA,2,{0xCF,0xAA,0x00,0x00,}}, {0x6EAB,2,{0x9C,0xD8,0x00,0x00,}}, {0x6EAC,2,{0x9C,0xD9,0x00,0x00,}}, {0x6EAD,2,{0x9C,0xDA,0x00,0x00,}}, {0x6EAE,2,{0x9C,0xDB,0x00,0x00,}}, {0x6EAF,2,{0xCB,0xDD,0x00,0x00,}}, {0x6EB0,2,{0x9C,0xDC,0x00,0x00,}}, {0x6EB1,2,{0xE4,0xDA,0x00,0x00,}}, {0x6EB2,2,{0xE4,0xD1,0x00,0x00,}}, {0x6EB3,2,{0x9C,0xDD,0x00,0x00,}}, {0x6EB4,2,{0xE4,0xE5,0x00,0x00,}}, {0x6EB5,2,{0x9C,0xDE,0x00,0x00,}}, {0x6EB6,2,{0xC8,0xDC,0x00,0x00,}}, {0x6EB7,2,{0xE4,0xE3,0x00,0x00,}}, {0x6EB8,2,{0x9C,0xDF,0x00,0x00,}}, {0x6EB9,2,{0x9C,0xE0,0x00,0x00,}}, {0x6EBA,2,{0xC4,0xE7,0x00,0x00,}}, {0x6EBB,2,{0xE4,0xE2,0x00,0x00,}}, {0x6EBC,2,{0x9C,0xE1,0x00,0x00,}}, {0x6EBD,2,{0xE4,0xE1,0x00,0x00,}}, {0x6EBE,2,{0x9C,0xE2,0x00,0x00,}}, {0x6EBF,2,{0x9C,0xE3,0x00,0x00,}}, {0x6EC0,2,{0x9C,0xE4,0x00,0x00,}}, {0x6EC1,2,{0xB3,0xFC,0x00,0x00,}}, {0x6EC2,2,{0xE4,0xE8,0x00,0x00,}}, {0x6EC3,2,{0x9C,0xE5,0x00,0x00,}}, {0x6EC4,2,{0x9C,0xE6,0x00,0x00,}}, {0x6EC5,2,{0x9C,0xE7,0x00,0x00,}}, {0x6EC6,2,{0x9C,0xE8,0x00,0x00,}}, {0x6EC7,2,{0xB5,0xE1,0x00,0x00,}}, {0x6EC8,2,{0x9C,0xE9,0x00,0x00,}}, {0x6EC9,2,{0x9C,0xEA,0x00,0x00,}}, {0x6ECA,2,{0x9C,0xEB,0x00,0x00,}}, {0x6ECB,2,{0xD7,0xCC,0x00,0x00,}}, {0x6ECC,2,{0x9C,0xEC,0x00,0x00,}}, {0x6ECD,2,{0x9C,0xED,0x00,0x00,}}, {0x6ECE,2,{0x9C,0xEE,0x00,0x00,}}, {0x6ECF,2,{0xE4,0xE6,0x00,0x00,}}, {0x6ED0,2,{0x9C,0xEF,0x00,0x00,}}, {0x6ED1,2,{0xBB,0xAC,0x00,0x00,}}, {0x6ED2,2,{0x9C,0xF0,0x00,0x00,}}, {0x6ED3,2,{0xD7,0xD2,0x00,0x00,}}, {0x6ED4,2,{0xCC,0xCF,0x00,0x00,}}, {0x6ED5,2,{0xEB,0xF8,0x00,0x00,}}, {0x6ED6,2,{0x9C,0xF1,0x00,0x00,}}, {0x6ED7,2,{0xE4,0xE4,0x00,0x00,}}, {0x6ED8,2,{0x9C,0xF2,0x00,0x00,}}, {0x6ED9,2,{0x9C,0xF3,0x00,0x00,}}, {0x6EDA,2,{0xB9,0xF6,0x00,0x00,}}, {0x6EDB,2,{0x9C,0xF4,0x00,0x00,}}, {0x6EDC,2,{0x9C,0xF5,0x00,0x00,}}, {0x6EDD,2,{0x9C,0xF6,0x00,0x00,}}, {0x6EDE,2,{0xD6,0xCD,0x00,0x00,}}, {0x6EDF,2,{0xE4,0xD9,0x00,0x00,}}, {0x6EE0,2,{0xE4,0xDC,0x00,0x00,}}, {0x6EE1,2,{0xC2,0xFA,0x00,0x00,}}, {0x6EE2,2,{0xE4,0xDE,0x00,0x00,}}, {0x6EE3,2,{0x9C,0xF7,0x00,0x00,}}, {0x6EE4,2,{0xC2,0xCB,0x00,0x00,}}, {0x6EE5,2,{0xC0,0xC4,0x00,0x00,}}, {0x6EE6,2,{0xC2,0xD0,0x00,0x00,}}, {0x6EE7,2,{0x9C,0xF8,0x00,0x00,}}, {0x6EE8,2,{0xB1,0xF5,0x00,0x00,}}, {0x6EE9,2,{0xCC,0xB2,0x00,0x00,}}, {0x6EEA,2,{0x9C,0xF9,0x00,0x00,}}, {0x6EEB,2,{0x9C,0xFA,0x00,0x00,}}, {0x6EEC,2,{0x9C,0xFB,0x00,0x00,}}, {0x6EED,2,{0x9C,0xFC,0x00,0x00,}}, {0x6EEE,2,{0x9C,0xFD,0x00,0x00,}}, {0x6EEF,2,{0x9C,0xFE,0x00,0x00,}}, {0x6EF0,2,{0x9D,0x40,0x00,0x00,}}, {0x6EF1,2,{0x9D,0x41,0x00,0x00,}}, {0x6EF2,2,{0x9D,0x42,0x00,0x00,}}, {0x6EF3,2,{0x9D,0x43,0x00,0x00,}}, {0x6EF4,2,{0xB5,0xCE,0x00,0x00,}}, {0x6EF5,2,{0x9D,0x44,0x00,0x00,}}, {0x6EF6,2,{0x9D,0x45,0x00,0x00,}}, {0x6EF7,2,{0x9D,0x46,0x00,0x00,}}, {0x6EF8,2,{0x9D,0x47,0x00,0x00,}}, {0x6EF9,2,{0xE4,0xEF,0x00,0x00,}}, {0x6EFA,2,{0x9D,0x48,0x00,0x00,}}, {0x6EFB,2,{0x9D,0x49,0x00,0x00,}}, {0x6EFC,2,{0x9D,0x4A,0x00,0x00,}}, {0x6EFD,2,{0x9D,0x4B,0x00,0x00,}}, {0x6EFE,2,{0x9D,0x4C,0x00,0x00,}}, {0x6EFF,2,{0x9D,0x4D,0x00,0x00,}}, {0x6F00,2,{0x9D,0x4E,0x00,0x00,}}, {0x6F01,2,{0x9D,0x4F,0x00,0x00,}}, {0x6F02,2,{0xC6,0xAF,0x00,0x00,}}, {0x6F03,2,{0x9D,0x50,0x00,0x00,}}, {0x6F04,2,{0x9D,0x51,0x00,0x00,}}, {0x6F05,2,{0x9D,0x52,0x00,0x00,}}, {0x6F06,2,{0xC6,0xE1,0x00,0x00,}}, {0x6F07,2,{0x9D,0x53,0x00,0x00,}}, {0x6F08,2,{0x9D,0x54,0x00,0x00,}}, {0x6F09,2,{0xE4,0xF5,0x00,0x00,}}, {0x6F0A,2,{0x9D,0x55,0x00,0x00,}}, {0x6F0B,2,{0x9D,0x56,0x00,0x00,}}, {0x6F0C,2,{0x9D,0x57,0x00,0x00,}}, {0x6F0D,2,{0x9D,0x58,0x00,0x00,}}, {0x6F0E,2,{0x9D,0x59,0x00,0x00,}}, {0x6F0F,2,{0xC2,0xA9,0x00,0x00,}}, {0x6F10,2,{0x9D,0x5A,0x00,0x00,}}, {0x6F11,2,{0x9D,0x5B,0x00,0x00,}}, {0x6F12,2,{0x9D,0x5C,0x00,0x00,}}, {0x6F13,2,{0xC0,0xEC,0x00,0x00,}}, {0x6F14,2,{0xD1,0xDD,0x00,0x00,}}, {0x6F15,2,{0xE4,0xEE,0x00,0x00,}}, {0x6F16,2,{0x9D,0x5D,0x00,0x00,}}, {0x6F17,2,{0x9D,0x5E,0x00,0x00,}}, {0x6F18,2,{0x9D,0x5F,0x00,0x00,}}, {0x6F19,2,{0x9D,0x60,0x00,0x00,}}, {0x6F1A,2,{0x9D,0x61,0x00,0x00,}}, {0x6F1B,2,{0x9D,0x62,0x00,0x00,}}, {0x6F1C,2,{0x9D,0x63,0x00,0x00,}}, {0x6F1D,2,{0x9D,0x64,0x00,0x00,}}, {0x6F1E,2,{0x9D,0x65,0x00,0x00,}}, {0x6F1F,2,{0x9D,0x66,0x00,0x00,}}, {0x6F20,2,{0xC4,0xAE,0x00,0x00,}}, {0x6F21,2,{0x9D,0x67,0x00,0x00,}}, {0x6F22,2,{0x9D,0x68,0x00,0x00,}}, {0x6F23,2,{0x9D,0x69,0x00,0x00,}}, {0x6F24,2,{0xE4,0xED,0x00,0x00,}}, {0x6F25,2,{0x9D,0x6A,0x00,0x00,}}, {0x6F26,2,{0x9D,0x6B,0x00,0x00,}}, {0x6F27,2,{0x9D,0x6C,0x00,0x00,}}, {0x6F28,2,{0x9D,0x6D,0x00,0x00,}}, {0x6F29,2,{0xE4,0xF6,0x00,0x00,}}, {0x6F2A,2,{0xE4,0xF4,0x00,0x00,}}, {0x6F2B,2,{0xC2,0xFE,0x00,0x00,}}, {0x6F2C,2,{0x9D,0x6E,0x00,0x00,}}, {0x6F2D,2,{0xE4,0xDD,0x00,0x00,}}, {0x6F2E,2,{0x9D,0x6F,0x00,0x00,}}, {0x6F2F,2,{0xE4,0xF0,0x00,0x00,}}, {0x6F30,2,{0x9D,0x70,0x00,0x00,}}, {0x6F31,2,{0xCA,0xFE,0x00,0x00,}}, {0x6F32,2,{0x9D,0x71,0x00,0x00,}}, {0x6F33,2,{0xD5,0xC4,0x00,0x00,}}, {0x6F34,2,{0x9D,0x72,0x00,0x00,}}, {0x6F35,2,{0x9D,0x73,0x00,0x00,}}, {0x6F36,2,{0xE4,0xF1,0x00,0x00,}}, {0x6F37,2,{0x9D,0x74,0x00,0x00,}}, {0x6F38,2,{0x9D,0x75,0x00,0x00,}}, {0x6F39,2,{0x9D,0x76,0x00,0x00,}}, {0x6F3A,2,{0x9D,0x77,0x00,0x00,}}, {0x6F3B,2,{0x9D,0x78,0x00,0x00,}}, {0x6F3C,2,{0x9D,0x79,0x00,0x00,}}, {0x6F3D,2,{0x9D,0x7A,0x00,0x00,}}, {0x6F3E,2,{0xD1,0xFA,0x00,0x00,}}, {0x6F3F,2,{0x9D,0x7B,0x00,0x00,}}, {0x6F40,2,{0x9D,0x7C,0x00,0x00,}}, {0x6F41,2,{0x9D,0x7D,0x00,0x00,}}, {0x6F42,2,{0x9D,0x7E,0x00,0x00,}}, {0x6F43,2,{0x9D,0x80,0x00,0x00,}}, {0x6F44,2,{0x9D,0x81,0x00,0x00,}}, {0x6F45,2,{0x9D,0x82,0x00,0x00,}}, {0x6F46,2,{0xE4,0xEB,0x00,0x00,}}, {0x6F47,2,{0xE4,0xEC,0x00,0x00,}}, {0x6F48,2,{0x9D,0x83,0x00,0x00,}}, {0x6F49,2,{0x9D,0x84,0x00,0x00,}}, {0x6F4A,2,{0x9D,0x85,0x00,0x00,}}, {0x6F4B,2,{0xE4,0xF2,0x00,0x00,}}, {0x6F4C,2,{0x9D,0x86,0x00,0x00,}}, {0x6F4D,2,{0xCE,0xAB,0x00,0x00,}}, {0x6F4E,2,{0x9D,0x87,0x00,0x00,}}, {0x6F4F,2,{0x9D,0x88,0x00,0x00,}}, {0x6F50,2,{0x9D,0x89,0x00,0x00,}}, {0x6F51,2,{0x9D,0x8A,0x00,0x00,}}, {0x6F52,2,{0x9D,0x8B,0x00,0x00,}}, {0x6F53,2,{0x9D,0x8C,0x00,0x00,}}, {0x6F54,2,{0x9D,0x8D,0x00,0x00,}}, {0x6F55,2,{0x9D,0x8E,0x00,0x00,}}, {0x6F56,2,{0x9D,0x8F,0x00,0x00,}}, {0x6F57,2,{0x9D,0x90,0x00,0x00,}}, {0x6F58,2,{0xC5,0xCB,0x00,0x00,}}, {0x6F59,2,{0x9D,0x91,0x00,0x00,}}, {0x6F5A,2,{0x9D,0x92,0x00,0x00,}}, {0x6F5B,2,{0x9D,0x93,0x00,0x00,}}, {0x6F5C,2,{0xC7,0xB1,0x00,0x00,}}, {0x6F5D,2,{0x9D,0x94,0x00,0x00,}}, {0x6F5E,2,{0xC2,0xBA,0x00,0x00,}}, {0x6F5F,2,{0x9D,0x95,0x00,0x00,}}, {0x6F60,2,{0x9D,0x96,0x00,0x00,}}, {0x6F61,2,{0x9D,0x97,0x00,0x00,}}, {0x6F62,2,{0xE4,0xEA,0x00,0x00,}}, {0x6F63,2,{0x9D,0x98,0x00,0x00,}}, {0x6F64,2,{0x9D,0x99,0x00,0x00,}}, {0x6F65,2,{0x9D,0x9A,0x00,0x00,}}, {0x6F66,2,{0xC1,0xCA,0x00,0x00,}}, {0x6F67,2,{0x9D,0x9B,0x00,0x00,}}, {0x6F68,2,{0x9D,0x9C,0x00,0x00,}}, {0x6F69,2,{0x9D,0x9D,0x00,0x00,}}, {0x6F6A,2,{0x9D,0x9E,0x00,0x00,}}, {0x6F6B,2,{0x9D,0x9F,0x00,0x00,}}, {0x6F6C,2,{0x9D,0xA0,0x00,0x00,}}, {0x6F6D,2,{0xCC,0xB6,0x00,0x00,}}, {0x6F6E,2,{0xB3,0xB1,0x00,0x00,}}, {0x6F6F,2,{0x9D,0xA1,0x00,0x00,}}, {0x6F70,2,{0x9D,0xA2,0x00,0x00,}}, {0x6F71,2,{0x9D,0xA3,0x00,0x00,}}, {0x6F72,2,{0xE4,0xFB,0x00,0x00,}}, {0x6F73,2,{0x9D,0xA4,0x00,0x00,}}, {0x6F74,2,{0xE4,0xF3,0x00,0x00,}}, {0x6F75,2,{0x9D,0xA5,0x00,0x00,}}, {0x6F76,2,{0x9D,0xA6,0x00,0x00,}}, {0x6F77,2,{0x9D,0xA7,0x00,0x00,}}, {0x6F78,2,{0xE4,0xFA,0x00,0x00,}}, {0x6F79,2,{0x9D,0xA8,0x00,0x00,}}, {0x6F7A,2,{0xE4,0xFD,0x00,0x00,}}, {0x6F7B,2,{0x9D,0xA9,0x00,0x00,}}, {0x6F7C,2,{0xE4,0xFC,0x00,0x00,}}, {0x6F7D,2,{0x9D,0xAA,0x00,0x00,}}, {0x6F7E,2,{0x9D,0xAB,0x00,0x00,}}, {0x6F7F,2,{0x9D,0xAC,0x00,0x00,}}, {0x6F80,2,{0x9D,0xAD,0x00,0x00,}}, {0x6F81,2,{0x9D,0xAE,0x00,0x00,}}, {0x6F82,2,{0x9D,0xAF,0x00,0x00,}}, {0x6F83,2,{0x9D,0xB0,0x00,0x00,}}, {0x6F84,2,{0xB3,0xCE,0x00,0x00,}}, {0x6F85,2,{0x9D,0xB1,0x00,0x00,}}, {0x6F86,2,{0x9D,0xB2,0x00,0x00,}}, {0x6F87,2,{0x9D,0xB3,0x00,0x00,}}, {0x6F88,2,{0xB3,0xBA,0x00,0x00,}}, {0x6F89,2,{0xE4,0xF7,0x00,0x00,}}, {0x6F8A,2,{0x9D,0xB4,0x00,0x00,}}, {0x6F8B,2,{0x9D,0xB5,0x00,0x00,}}, {0x6F8C,2,{0xE4,0xF9,0x00,0x00,}}, {0x6F8D,2,{0xE4,0xF8,0x00,0x00,}}, {0x6F8E,2,{0xC5,0xEC,0x00,0x00,}}, {0x6F8F,2,{0x9D,0xB6,0x00,0x00,}}, {0x6F90,2,{0x9D,0xB7,0x00,0x00,}}, {0x6F91,2,{0x9D,0xB8,0x00,0x00,}}, {0x6F92,2,{0x9D,0xB9,0x00,0x00,}}, {0x6F93,2,{0x9D,0xBA,0x00,0x00,}}, {0x6F94,2,{0x9D,0xBB,0x00,0x00,}}, {0x6F95,2,{0x9D,0xBC,0x00,0x00,}}, {0x6F96,2,{0x9D,0xBD,0x00,0x00,}}, {0x6F97,2,{0x9D,0xBE,0x00,0x00,}}, {0x6F98,2,{0x9D,0xBF,0x00,0x00,}}, {0x6F99,2,{0x9D,0xC0,0x00,0x00,}}, {0x6F9A,2,{0x9D,0xC1,0x00,0x00,}}, {0x6F9B,2,{0x9D,0xC2,0x00,0x00,}}, {0x6F9C,2,{0xC0,0xBD,0x00,0x00,}}, {0x6F9D,2,{0x9D,0xC3,0x00,0x00,}}, {0x6F9E,2,{0x9D,0xC4,0x00,0x00,}}, {0x6F9F,2,{0x9D,0xC5,0x00,0x00,}}, {0x6FA0,2,{0x9D,0xC6,0x00,0x00,}}, {0x6FA1,2,{0xD4,0xE8,0x00,0x00,}}, {0x6FA2,2,{0x9D,0xC7,0x00,0x00,}}, {0x6FA3,2,{0x9D,0xC8,0x00,0x00,}}, {0x6FA4,2,{0x9D,0xC9,0x00,0x00,}}, {0x6FA5,2,{0x9D,0xCA,0x00,0x00,}}, {0x6FA6,2,{0x9D,0xCB,0x00,0x00,}}, {0x6FA7,2,{0xE5,0xA2,0x00,0x00,}}, {0x6FA8,2,{0x9D,0xCC,0x00,0x00,}}, {0x6FA9,2,{0x9D,0xCD,0x00,0x00,}}, {0x6FAA,2,{0x9D,0xCE,0x00,0x00,}}, {0x6FAB,2,{0x9D,0xCF,0x00,0x00,}}, {0x6FAC,2,{0x9D,0xD0,0x00,0x00,}}, {0x6FAD,2,{0x9D,0xD1,0x00,0x00,}}, {0x6FAE,2,{0x9D,0xD2,0x00,0x00,}}, {0x6FAF,2,{0x9D,0xD3,0x00,0x00,}}, {0x6FB0,2,{0x9D,0xD4,0x00,0x00,}}, {0x6FB1,2,{0x9D,0xD5,0x00,0x00,}}, {0x6FB2,2,{0x9D,0xD6,0x00,0x00,}}, {0x6FB3,2,{0xB0,0xC4,0x00,0x00,}}, {0x6FB4,2,{0x9D,0xD7,0x00,0x00,}}, {0x6FB5,2,{0x9D,0xD8,0x00,0x00,}}, {0x6FB6,2,{0xE5,0xA4,0x00,0x00,}}, {0x6FB7,2,{0x9D,0xD9,0x00,0x00,}}, {0x6FB8,2,{0x9D,0xDA,0x00,0x00,}}, {0x6FB9,2,{0xE5,0xA3,0x00,0x00,}}, {0x6FBA,2,{0x9D,0xDB,0x00,0x00,}}, {0x6FBB,2,{0x9D,0xDC,0x00,0x00,}}, {0x6FBC,2,{0x9D,0xDD,0x00,0x00,}}, {0x6FBD,2,{0x9D,0xDE,0x00,0x00,}}, {0x6FBE,2,{0x9D,0xDF,0x00,0x00,}}, {0x6FBF,2,{0x9D,0xE0,0x00,0x00,}}, {0x6FC0,2,{0xBC,0xA4,0x00,0x00,}}, {0x6FC1,2,{0x9D,0xE1,0x00,0x00,}}, {0x6FC2,2,{0xE5,0xA5,0x00,0x00,}}, {0x6FC3,2,{0x9D,0xE2,0x00,0x00,}}, {0x6FC4,2,{0x9D,0xE3,0x00,0x00,}}, {0x6FC5,2,{0x9D,0xE4,0x00,0x00,}}, {0x6FC6,2,{0x9D,0xE5,0x00,0x00,}}, {0x6FC7,2,{0x9D,0xE6,0x00,0x00,}}, {0x6FC8,2,{0x9D,0xE7,0x00,0x00,}}, {0x6FC9,2,{0xE5,0xA1,0x00,0x00,}}, {0x6FCA,2,{0x9D,0xE8,0x00,0x00,}}, {0x6FCB,2,{0x9D,0xE9,0x00,0x00,}}, {0x6FCC,2,{0x9D,0xEA,0x00,0x00,}}, {0x6FCD,2,{0x9D,0xEB,0x00,0x00,}}, {0x6FCE,2,{0x9D,0xEC,0x00,0x00,}}, {0x6FCF,2,{0x9D,0xED,0x00,0x00,}}, {0x6FD0,2,{0x9D,0xEE,0x00,0x00,}}, {0x6FD1,2,{0xE4,0xFE,0x00,0x00,}}, {0x6FD2,2,{0xB1,0xF4,0x00,0x00,}}, {0x6FD3,2,{0x9D,0xEF,0x00,0x00,}}, {0x6FD4,2,{0x9D,0xF0,0x00,0x00,}}, {0x6FD5,2,{0x9D,0xF1,0x00,0x00,}}, {0x6FD6,2,{0x9D,0xF2,0x00,0x00,}}, {0x6FD7,2,{0x9D,0xF3,0x00,0x00,}}, {0x6FD8,2,{0x9D,0xF4,0x00,0x00,}}, {0x6FD9,2,{0x9D,0xF5,0x00,0x00,}}, {0x6FDA,2,{0x9D,0xF6,0x00,0x00,}}, {0x6FDB,2,{0x9D,0xF7,0x00,0x00,}}, {0x6FDC,2,{0x9D,0xF8,0x00,0x00,}}, {0x6FDD,2,{0x9D,0xF9,0x00,0x00,}}, {0x6FDE,2,{0xE5,0xA8,0x00,0x00,}}, {0x6FDF,2,{0x9D,0xFA,0x00,0x00,}}, {0x6FE0,2,{0xE5,0xA9,0x00,0x00,}}, {0x6FE1,2,{0xE5,0xA6,0x00,0x00,}}, {0x6FE2,2,{0x9D,0xFB,0x00,0x00,}}, {0x6FE3,2,{0x9D,0xFC,0x00,0x00,}}, {0x6FE4,2,{0x9D,0xFD,0x00,0x00,}}, {0x6FE5,2,{0x9D,0xFE,0x00,0x00,}}, {0x6FE6,2,{0x9E,0x40,0x00,0x00,}}, {0x6FE7,2,{0x9E,0x41,0x00,0x00,}}, {0x6FE8,2,{0x9E,0x42,0x00,0x00,}}, {0x6FE9,2,{0x9E,0x43,0x00,0x00,}}, {0x6FEA,2,{0x9E,0x44,0x00,0x00,}}, {0x6FEB,2,{0x9E,0x45,0x00,0x00,}}, {0x6FEC,2,{0x9E,0x46,0x00,0x00,}}, {0x6FED,2,{0x9E,0x47,0x00,0x00,}}, {0x6FEE,2,{0xE5,0xA7,0x00,0x00,}}, {0x6FEF,2,{0xE5,0xAA,0x00,0x00,}}, {0x6FF0,2,{0x9E,0x48,0x00,0x00,}}, {0x6FF1,2,{0x9E,0x49,0x00,0x00,}}, {0x6FF2,2,{0x9E,0x4A,0x00,0x00,}}, {0x6FF3,2,{0x9E,0x4B,0x00,0x00,}}, {0x6FF4,2,{0x9E,0x4C,0x00,0x00,}}, {0x6FF5,2,{0x9E,0x4D,0x00,0x00,}}, {0x6FF6,2,{0x9E,0x4E,0x00,0x00,}}, {0x6FF7,2,{0x9E,0x4F,0x00,0x00,}}, {0x6FF8,2,{0x9E,0x50,0x00,0x00,}}, {0x6FF9,2,{0x9E,0x51,0x00,0x00,}}, {0x6FFA,2,{0x9E,0x52,0x00,0x00,}}, {0x6FFB,2,{0x9E,0x53,0x00,0x00,}}, {0x6FFC,2,{0x9E,0x54,0x00,0x00,}}, {0x6FFD,2,{0x9E,0x55,0x00,0x00,}}, {0x6FFE,2,{0x9E,0x56,0x00,0x00,}}, {0x6FFF,2,{0x9E,0x57,0x00,0x00,}}, {0x7000,2,{0x9E,0x58,0x00,0x00,}}, {0x7001,2,{0x9E,0x59,0x00,0x00,}}, {0x7002,2,{0x9E,0x5A,0x00,0x00,}}, {0x7003,2,{0x9E,0x5B,0x00,0x00,}}, {0x7004,2,{0x9E,0x5C,0x00,0x00,}}, {0x7005,2,{0x9E,0x5D,0x00,0x00,}}, {0x7006,2,{0x9E,0x5E,0x00,0x00,}}, {0x7007,2,{0x9E,0x5F,0x00,0x00,}}, {0x7008,2,{0x9E,0x60,0x00,0x00,}}, {0x7009,2,{0x9E,0x61,0x00,0x00,}}, {0x700A,2,{0x9E,0x62,0x00,0x00,}}, {0x700B,2,{0x9E,0x63,0x00,0x00,}}, {0x700C,2,{0x9E,0x64,0x00,0x00,}}, {0x700D,2,{0x9E,0x65,0x00,0x00,}}, {0x700E,2,{0x9E,0x66,0x00,0x00,}}, {0x700F,2,{0x9E,0x67,0x00,0x00,}}, {0x7010,2,{0x9E,0x68,0x00,0x00,}}, {0x7011,2,{0xC6,0xD9,0x00,0x00,}}, {0x7012,2,{0x9E,0x69,0x00,0x00,}}, {0x7013,2,{0x9E,0x6A,0x00,0x00,}}, {0x7014,2,{0x9E,0x6B,0x00,0x00,}}, {0x7015,2,{0x9E,0x6C,0x00,0x00,}}, {0x7016,2,{0x9E,0x6D,0x00,0x00,}}, {0x7017,2,{0x9E,0x6E,0x00,0x00,}}, {0x7018,2,{0x9E,0x6F,0x00,0x00,}}, {0x7019,2,{0x9E,0x70,0x00,0x00,}}, {0x701A,2,{0xE5,0xAB,0x00,0x00,}}, {0x701B,2,{0xE5,0xAD,0x00,0x00,}}, {0x701C,2,{0x9E,0x71,0x00,0x00,}}, {0x701D,2,{0x9E,0x72,0x00,0x00,}}, {0x701E,2,{0x9E,0x73,0x00,0x00,}}, {0x701F,2,{0x9E,0x74,0x00,0x00,}}, {0x7020,2,{0x9E,0x75,0x00,0x00,}}, {0x7021,2,{0x9E,0x76,0x00,0x00,}}, {0x7022,2,{0x9E,0x77,0x00,0x00,}}, {0x7023,2,{0xE5,0xAC,0x00,0x00,}}, {0x7024,2,{0x9E,0x78,0x00,0x00,}}, {0x7025,2,{0x9E,0x79,0x00,0x00,}}, {0x7026,2,{0x9E,0x7A,0x00,0x00,}}, {0x7027,2,{0x9E,0x7B,0x00,0x00,}}, {0x7028,2,{0x9E,0x7C,0x00,0x00,}}, {0x7029,2,{0x9E,0x7D,0x00,0x00,}}, {0x702A,2,{0x9E,0x7E,0x00,0x00,}}, {0x702B,2,{0x9E,0x80,0x00,0x00,}}, {0x702C,2,{0x9E,0x81,0x00,0x00,}}, {0x702D,2,{0x9E,0x82,0x00,0x00,}}, {0x702E,2,{0x9E,0x83,0x00,0x00,}}, {0x702F,2,{0x9E,0x84,0x00,0x00,}}, {0x7030,2,{0x9E,0x85,0x00,0x00,}}, {0x7031,2,{0x9E,0x86,0x00,0x00,}}, {0x7032,2,{0x9E,0x87,0x00,0x00,}}, {0x7033,2,{0x9E,0x88,0x00,0x00,}}, {0x7034,2,{0x9E,0x89,0x00,0x00,}}, {0x7035,2,{0xE5,0xAF,0x00,0x00,}}, {0x7036,2,{0x9E,0x8A,0x00,0x00,}}, {0x7037,2,{0x9E,0x8B,0x00,0x00,}}, {0x7038,2,{0x9E,0x8C,0x00,0x00,}}, {0x7039,2,{0xE5,0xAE,0x00,0x00,}}, {0x703A,2,{0x9E,0x8D,0x00,0x00,}}, {0x703B,2,{0x9E,0x8E,0x00,0x00,}}, {0x703C,2,{0x9E,0x8F,0x00,0x00,}}, {0x703D,2,{0x9E,0x90,0x00,0x00,}}, {0x703E,2,{0x9E,0x91,0x00,0x00,}}, {0x703F,2,{0x9E,0x92,0x00,0x00,}}, {0x7040,2,{0x9E,0x93,0x00,0x00,}}, {0x7041,2,{0x9E,0x94,0x00,0x00,}}, {0x7042,2,{0x9E,0x95,0x00,0x00,}}, {0x7043,2,{0x9E,0x96,0x00,0x00,}}, {0x7044,2,{0x9E,0x97,0x00,0x00,}}, {0x7045,2,{0x9E,0x98,0x00,0x00,}}, {0x7046,2,{0x9E,0x99,0x00,0x00,}}, {0x7047,2,{0x9E,0x9A,0x00,0x00,}}, {0x7048,2,{0x9E,0x9B,0x00,0x00,}}, {0x7049,2,{0x9E,0x9C,0x00,0x00,}}, {0x704A,2,{0x9E,0x9D,0x00,0x00,}}, {0x704B,2,{0x9E,0x9E,0x00,0x00,}}, {0x704C,2,{0xB9,0xE0,0x00,0x00,}}, {0x704D,2,{0x9E,0x9F,0x00,0x00,}}, {0x704E,2,{0x9E,0xA0,0x00,0x00,}}, {0x704F,2,{0xE5,0xB0,0x00,0x00,}}, {0x7050,2,{0x9E,0xA1,0x00,0x00,}}, {0x7051,2,{0x9E,0xA2,0x00,0x00,}}, {0x7052,2,{0x9E,0xA3,0x00,0x00,}}, {0x7053,2,{0x9E,0xA4,0x00,0x00,}}, {0x7054,2,{0x9E,0xA5,0x00,0x00,}}, {0x7055,2,{0x9E,0xA6,0x00,0x00,}}, {0x7056,2,{0x9E,0xA7,0x00,0x00,}}, {0x7057,2,{0x9E,0xA8,0x00,0x00,}}, {0x7058,2,{0x9E,0xA9,0x00,0x00,}}, {0x7059,2,{0x9E,0xAA,0x00,0x00,}}, {0x705A,2,{0x9E,0xAB,0x00,0x00,}}, {0x705B,2,{0x9E,0xAC,0x00,0x00,}}, {0x705C,2,{0x9E,0xAD,0x00,0x00,}}, {0x705D,2,{0x9E,0xAE,0x00,0x00,}}, {0x705E,2,{0xE5,0xB1,0x00,0x00,}}, {0x705F,2,{0x9E,0xAF,0x00,0x00,}}, {0x7060,2,{0x9E,0xB0,0x00,0x00,}}, {0x7061,2,{0x9E,0xB1,0x00,0x00,}}, {0x7062,2,{0x9E,0xB2,0x00,0x00,}}, {0x7063,2,{0x9E,0xB3,0x00,0x00,}}, {0x7064,2,{0x9E,0xB4,0x00,0x00,}}, {0x7065,2,{0x9E,0xB5,0x00,0x00,}}, {0x7066,2,{0x9E,0xB6,0x00,0x00,}}, {0x7067,2,{0x9E,0xB7,0x00,0x00,}}, {0x7068,2,{0x9E,0xB8,0x00,0x00,}}, {0x7069,2,{0x9E,0xB9,0x00,0x00,}}, {0x706A,2,{0x9E,0xBA,0x00,0x00,}}, {0x706B,2,{0xBB,0xF0,0x00,0x00,}}, {0x706C,2,{0xEC,0xE1,0x00,0x00,}}, {0x706D,2,{0xC3,0xF0,0x00,0x00,}}, {0x706E,2,{0x9E,0xBB,0x00,0x00,}}, {0x706F,2,{0xB5,0xC6,0x00,0x00,}}, {0x7070,2,{0xBB,0xD2,0x00,0x00,}}, {0x7071,2,{0x9E,0xBC,0x00,0x00,}}, {0x7072,2,{0x9E,0xBD,0x00,0x00,}}, {0x7073,2,{0x9E,0xBE,0x00,0x00,}}, {0x7074,2,{0x9E,0xBF,0x00,0x00,}}, {0x7075,2,{0xC1,0xE9,0x00,0x00,}}, {0x7076,2,{0xD4,0xEE,0x00,0x00,}}, {0x7077,2,{0x9E,0xC0,0x00,0x00,}}, {0x7078,2,{0xBE,0xC4,0x00,0x00,}}, {0x7079,2,{0x9E,0xC1,0x00,0x00,}}, {0x707A,2,{0x9E,0xC2,0x00,0x00,}}, {0x707B,2,{0x9E,0xC3,0x00,0x00,}}, {0x707C,2,{0xD7,0xC6,0x00,0x00,}}, {0x707D,2,{0x9E,0xC4,0x00,0x00,}}, {0x707E,2,{0xD4,0xD6,0x00,0x00,}}, {0x707F,2,{0xB2,0xD3,0x00,0x00,}}, {0x7080,2,{0xEC,0xBE,0x00,0x00,}}, {0x7081,2,{0x9E,0xC5,0x00,0x00,}}, {0x7082,2,{0x9E,0xC6,0x00,0x00,}}, {0x7083,2,{0x9E,0xC7,0x00,0x00,}}, {0x7084,2,{0x9E,0xC8,0x00,0x00,}}, {0x7085,2,{0xEA,0xC1,0x00,0x00,}}, {0x7086,2,{0x9E,0xC9,0x00,0x00,}}, {0x7087,2,{0x9E,0xCA,0x00,0x00,}}, {0x7088,2,{0x9E,0xCB,0x00,0x00,}}, {0x7089,2,{0xC2,0xAF,0x00,0x00,}}, {0x708A,2,{0xB4,0xB6,0x00,0x00,}}, {0x708B,2,{0x9E,0xCC,0x00,0x00,}}, {0x708C,2,{0x9E,0xCD,0x00,0x00,}}, {0x708D,2,{0x9E,0xCE,0x00,0x00,}}, {0x708E,2,{0xD1,0xD7,0x00,0x00,}}, {0x708F,2,{0x9E,0xCF,0x00,0x00,}}, {0x7090,2,{0x9E,0xD0,0x00,0x00,}}, {0x7091,2,{0x9E,0xD1,0x00,0x00,}}, {0x7092,2,{0xB3,0xB4,0x00,0x00,}}, {0x7093,2,{0x9E,0xD2,0x00,0x00,}}, {0x7094,2,{0xC8,0xB2,0x00,0x00,}}, {0x7095,2,{0xBF,0xBB,0x00,0x00,}}, {0x7096,2,{0xEC,0xC0,0x00,0x00,}}, {0x7097,2,{0x9E,0xD3,0x00,0x00,}}, {0x7098,2,{0x9E,0xD4,0x00,0x00,}}, {0x7099,2,{0xD6,0xCB,0x00,0x00,}}, {0x709A,2,{0x9E,0xD5,0x00,0x00,}}, {0x709B,2,{0x9E,0xD6,0x00,0x00,}}, {0x709C,2,{0xEC,0xBF,0x00,0x00,}}, {0x709D,2,{0xEC,0xC1,0x00,0x00,}}, {0x709E,2,{0x9E,0xD7,0x00,0x00,}}, {0x709F,2,{0x9E,0xD8,0x00,0x00,}}, {0x70A0,2,{0x9E,0xD9,0x00,0x00,}}, {0x70A1,2,{0x9E,0xDA,0x00,0x00,}}, {0x70A2,2,{0x9E,0xDB,0x00,0x00,}}, {0x70A3,2,{0x9E,0xDC,0x00,0x00,}}, {0x70A4,2,{0x9E,0xDD,0x00,0x00,}}, {0x70A5,2,{0x9E,0xDE,0x00,0x00,}}, {0x70A6,2,{0x9E,0xDF,0x00,0x00,}}, {0x70A7,2,{0x9E,0xE0,0x00,0x00,}}, {0x70A8,2,{0x9E,0xE1,0x00,0x00,}}, {0x70A9,2,{0x9E,0xE2,0x00,0x00,}}, {0x70AA,2,{0x9E,0xE3,0x00,0x00,}}, {0x70AB,2,{0xEC,0xC5,0x00,0x00,}}, {0x70AC,2,{0xBE,0xE6,0x00,0x00,}}, {0x70AD,2,{0xCC,0xBF,0x00,0x00,}}, {0x70AE,2,{0xC5,0xDA,0x00,0x00,}}, {0x70AF,2,{0xBE,0xBC,0x00,0x00,}}, {0x70B0,2,{0x9E,0xE4,0x00,0x00,}}, {0x70B1,2,{0xEC,0xC6,0x00,0x00,}}, {0x70B2,2,{0x9E,0xE5,0x00,0x00,}}, {0x70B3,2,{0xB1,0xFE,0x00,0x00,}}, {0x70B4,2,{0x9E,0xE6,0x00,0x00,}}, {0x70B5,2,{0x9E,0xE7,0x00,0x00,}}, {0x70B6,2,{0x9E,0xE8,0x00,0x00,}}, {0x70B7,2,{0xEC,0xC4,0x00,0x00,}}, {0x70B8,2,{0xD5,0xA8,0x00,0x00,}}, {0x70B9,2,{0xB5,0xE3,0x00,0x00,}}, {0x70BA,2,{0x9E,0xE9,0x00,0x00,}}, {0x70BB,2,{0xEC,0xC2,0x00,0x00,}}, {0x70BC,2,{0xC1,0xB6,0x00,0x00,}}, {0x70BD,2,{0xB3,0xE3,0x00,0x00,}}, {0x70BE,2,{0x9E,0xEA,0x00,0x00,}}, {0x70BF,2,{0x9E,0xEB,0x00,0x00,}}, {0x70C0,2,{0xEC,0xC3,0x00,0x00,}}, {0x70C1,2,{0xCB,0xB8,0x00,0x00,}}, {0x70C2,2,{0xC0,0xC3,0x00,0x00,}}, {0x70C3,2,{0xCC,0xFE,0x00,0x00,}}, {0x70C4,2,{0x9E,0xEC,0x00,0x00,}}, {0x70C5,2,{0x9E,0xED,0x00,0x00,}}, {0x70C6,2,{0x9E,0xEE,0x00,0x00,}}, {0x70C7,2,{0x9E,0xEF,0x00,0x00,}}, {0x70C8,2,{0xC1,0xD2,0x00,0x00,}}, {0x70C9,2,{0x9E,0xF0,0x00,0x00,}}, {0x70CA,2,{0xEC,0xC8,0x00,0x00,}}, {0x70CB,2,{0x9E,0xF1,0x00,0x00,}}, {0x70CC,2,{0x9E,0xF2,0x00,0x00,}}, {0x70CD,2,{0x9E,0xF3,0x00,0x00,}}, {0x70CE,2,{0x9E,0xF4,0x00,0x00,}}, {0x70CF,2,{0x9E,0xF5,0x00,0x00,}}, {0x70D0,2,{0x9E,0xF6,0x00,0x00,}}, {0x70D1,2,{0x9E,0xF7,0x00,0x00,}}, {0x70D2,2,{0x9E,0xF8,0x00,0x00,}}, {0x70D3,2,{0x9E,0xF9,0x00,0x00,}}, {0x70D4,2,{0x9E,0xFA,0x00,0x00,}}, {0x70D5,2,{0x9E,0xFB,0x00,0x00,}}, {0x70D6,2,{0x9E,0xFC,0x00,0x00,}}, {0x70D7,2,{0x9E,0xFD,0x00,0x00,}}, {0x70D8,2,{0xBA,0xE6,0x00,0x00,}}, {0x70D9,2,{0xC0,0xD3,0x00,0x00,}}, {0x70DA,2,{0x9E,0xFE,0x00,0x00,}}, {0x70DB,2,{0xD6,0xF2,0x00,0x00,}}, {0x70DC,2,{0x9F,0x40,0x00,0x00,}}, {0x70DD,2,{0x9F,0x41,0x00,0x00,}}, {0x70DE,2,{0x9F,0x42,0x00,0x00,}}, {0x70DF,2,{0xD1,0xCC,0x00,0x00,}}, {0x70E0,2,{0x9F,0x43,0x00,0x00,}}, {0x70E1,2,{0x9F,0x44,0x00,0x00,}}, {0x70E2,2,{0x9F,0x45,0x00,0x00,}}, {0x70E3,2,{0x9F,0x46,0x00,0x00,}}, {0x70E4,2,{0xBF,0xBE,0x00,0x00,}}, {0x70E5,2,{0x9F,0x47,0x00,0x00,}}, {0x70E6,2,{0xB7,0xB3,0x00,0x00,}}, {0x70E7,2,{0xC9,0xD5,0x00,0x00,}}, {0x70E8,2,{0xEC,0xC7,0x00,0x00,}}, {0x70E9,2,{0xBB,0xE2,0x00,0x00,}}, {0x70EA,2,{0x9F,0x48,0x00,0x00,}}, {0x70EB,2,{0xCC,0xCC,0x00,0x00,}}, {0x70EC,2,{0xBD,0xFD,0x00,0x00,}}, {0x70ED,2,{0xC8,0xC8,0x00,0x00,}}, {0x70EE,2,{0x9F,0x49,0x00,0x00,}}, {0x70EF,2,{0xCF,0xA9,0x00,0x00,}}, {0x70F0,2,{0x9F,0x4A,0x00,0x00,}}, {0x70F1,2,{0x9F,0x4B,0x00,0x00,}}, {0x70F2,2,{0x9F,0x4C,0x00,0x00,}}, {0x70F3,2,{0x9F,0x4D,0x00,0x00,}}, {0x70F4,2,{0x9F,0x4E,0x00,0x00,}}, {0x70F5,2,{0x9F,0x4F,0x00,0x00,}}, {0x70F6,2,{0x9F,0x50,0x00,0x00,}}, {0x70F7,2,{0xCD,0xE9,0x00,0x00,}}, {0x70F8,2,{0x9F,0x51,0x00,0x00,}}, {0x70F9,2,{0xC5,0xEB,0x00,0x00,}}, {0x70FA,2,{0x9F,0x52,0x00,0x00,}}, {0x70FB,2,{0x9F,0x53,0x00,0x00,}}, {0x70FC,2,{0x9F,0x54,0x00,0x00,}}, {0x70FD,2,{0xB7,0xE9,0x00,0x00,}}, {0x70FE,2,{0x9F,0x55,0x00,0x00,}}, {0x70FF,2,{0x9F,0x56,0x00,0x00,}}, {0x7100,2,{0x9F,0x57,0x00,0x00,}}, {0x7101,2,{0x9F,0x58,0x00,0x00,}}, {0x7102,2,{0x9F,0x59,0x00,0x00,}}, {0x7103,2,{0x9F,0x5A,0x00,0x00,}}, {0x7104,2,{0x9F,0x5B,0x00,0x00,}}, {0x7105,2,{0x9F,0x5C,0x00,0x00,}}, {0x7106,2,{0x9F,0x5D,0x00,0x00,}}, {0x7107,2,{0x9F,0x5E,0x00,0x00,}}, {0x7108,2,{0x9F,0x5F,0x00,0x00,}}, {0x7109,2,{0xD1,0xC9,0x00,0x00,}}, {0x710A,2,{0xBA,0xB8,0x00,0x00,}}, {0x710B,2,{0x9F,0x60,0x00,0x00,}}, {0x710C,2,{0x9F,0x61,0x00,0x00,}}, {0x710D,2,{0x9F,0x62,0x00,0x00,}}, {0x710E,2,{0x9F,0x63,0x00,0x00,}}, {0x710F,2,{0x9F,0x64,0x00,0x00,}}, {0x7110,2,{0xEC,0xC9,0x00,0x00,}}, {0x7111,2,{0x9F,0x65,0x00,0x00,}}, {0x7112,2,{0x9F,0x66,0x00,0x00,}}, {0x7113,2,{0xEC,0xCA,0x00,0x00,}}, {0x7114,2,{0x9F,0x67,0x00,0x00,}}, {0x7115,2,{0xBB,0xC0,0x00,0x00,}}, {0x7116,2,{0xEC,0xCB,0x00,0x00,}}, {0x7117,2,{0x9F,0x68,0x00,0x00,}}, {0x7118,2,{0xEC,0xE2,0x00,0x00,}}, {0x7119,2,{0xB1,0xBA,0x00,0x00,}}, {0x711A,2,{0xB7,0xD9,0x00,0x00,}}, {0x711B,2,{0x9F,0x69,0x00,0x00,}}, {0x711C,2,{0x9F,0x6A,0x00,0x00,}}, {0x711D,2,{0x9F,0x6B,0x00,0x00,}}, {0x711E,2,{0x9F,0x6C,0x00,0x00,}}, {0x711F,2,{0x9F,0x6D,0x00,0x00,}}, {0x7120,2,{0x9F,0x6E,0x00,0x00,}}, {0x7121,2,{0x9F,0x6F,0x00,0x00,}}, {0x7122,2,{0x9F,0x70,0x00,0x00,}}, {0x7123,2,{0x9F,0x71,0x00,0x00,}}, {0x7124,2,{0x9F,0x72,0x00,0x00,}}, {0x7125,2,{0x9F,0x73,0x00,0x00,}}, {0x7126,2,{0xBD,0xB9,0x00,0x00,}}, {0x7127,2,{0x9F,0x74,0x00,0x00,}}, {0x7128,2,{0x9F,0x75,0x00,0x00,}}, {0x7129,2,{0x9F,0x76,0x00,0x00,}}, {0x712A,2,{0x9F,0x77,0x00,0x00,}}, {0x712B,2,{0x9F,0x78,0x00,0x00,}}, {0x712C,2,{0x9F,0x79,0x00,0x00,}}, {0x712D,2,{0x9F,0x7A,0x00,0x00,}}, {0x712E,2,{0x9F,0x7B,0x00,0x00,}}, {0x712F,2,{0xEC,0xCC,0x00,0x00,}}, {0x7130,2,{0xD1,0xE6,0x00,0x00,}}, {0x7131,2,{0xEC,0xCD,0x00,0x00,}}, {0x7132,2,{0x9F,0x7C,0x00,0x00,}}, {0x7133,2,{0x9F,0x7D,0x00,0x00,}}, {0x7134,2,{0x9F,0x7E,0x00,0x00,}}, {0x7135,2,{0x9F,0x80,0x00,0x00,}}, {0x7136,2,{0xC8,0xBB,0x00,0x00,}}, {0x7137,2,{0x9F,0x81,0x00,0x00,}}, {0x7138,2,{0x9F,0x82,0x00,0x00,}}, {0x7139,2,{0x9F,0x83,0x00,0x00,}}, {0x713A,2,{0x9F,0x84,0x00,0x00,}}, {0x713B,2,{0x9F,0x85,0x00,0x00,}}, {0x713C,2,{0x9F,0x86,0x00,0x00,}}, {0x713D,2,{0x9F,0x87,0x00,0x00,}}, {0x713E,2,{0x9F,0x88,0x00,0x00,}}, {0x713F,2,{0x9F,0x89,0x00,0x00,}}, {0x7140,2,{0x9F,0x8A,0x00,0x00,}}, {0x7141,2,{0x9F,0x8B,0x00,0x00,}}, {0x7142,2,{0x9F,0x8C,0x00,0x00,}}, {0x7143,2,{0x9F,0x8D,0x00,0x00,}}, {0x7144,2,{0x9F,0x8E,0x00,0x00,}}, {0x7145,2,{0xEC,0xD1,0x00,0x00,}}, {0x7146,2,{0x9F,0x8F,0x00,0x00,}}, {0x7147,2,{0x9F,0x90,0x00,0x00,}}, {0x7148,2,{0x9F,0x91,0x00,0x00,}}, {0x7149,2,{0x9F,0x92,0x00,0x00,}}, {0x714A,2,{0xEC,0xD3,0x00,0x00,}}, {0x714B,2,{0x9F,0x93,0x00,0x00,}}, {0x714C,2,{0xBB,0xCD,0x00,0x00,}}, {0x714D,2,{0x9F,0x94,0x00,0x00,}}, {0x714E,2,{0xBC,0xE5,0x00,0x00,}}, {0x714F,2,{0x9F,0x95,0x00,0x00,}}, {0x7150,2,{0x9F,0x96,0x00,0x00,}}, {0x7151,2,{0x9F,0x97,0x00,0x00,}}, {0x7152,2,{0x9F,0x98,0x00,0x00,}}, {0x7153,2,{0x9F,0x99,0x00,0x00,}}, {0x7154,2,{0x9F,0x9A,0x00,0x00,}}, {0x7155,2,{0x9F,0x9B,0x00,0x00,}}, {0x7156,2,{0x9F,0x9C,0x00,0x00,}}, {0x7157,2,{0x9F,0x9D,0x00,0x00,}}, {0x7158,2,{0x9F,0x9E,0x00,0x00,}}, {0x7159,2,{0x9F,0x9F,0x00,0x00,}}, {0x715A,2,{0x9F,0xA0,0x00,0x00,}}, {0x715B,2,{0x9F,0xA1,0x00,0x00,}}, {0x715C,2,{0xEC,0xCF,0x00,0x00,}}, {0x715D,2,{0x9F,0xA2,0x00,0x00,}}, {0x715E,2,{0xC9,0xB7,0x00,0x00,}}, {0x715F,2,{0x9F,0xA3,0x00,0x00,}}, {0x7160,2,{0x9F,0xA4,0x00,0x00,}}, {0x7161,2,{0x9F,0xA5,0x00,0x00,}}, {0x7162,2,{0x9F,0xA6,0x00,0x00,}}, {0x7163,2,{0x9F,0xA7,0x00,0x00,}}, {0x7164,2,{0xC3,0xBA,0x00,0x00,}}, {0x7165,2,{0x9F,0xA8,0x00,0x00,}}, {0x7166,2,{0xEC,0xE3,0x00,0x00,}}, {0x7167,2,{0xD5,0xD5,0x00,0x00,}}, {0x7168,2,{0xEC,0xD0,0x00,0x00,}}, {0x7169,2,{0x9F,0xA9,0x00,0x00,}}, {0x716A,2,{0x9F,0xAA,0x00,0x00,}}, {0x716B,2,{0x9F,0xAB,0x00,0x00,}}, {0x716C,2,{0x9F,0xAC,0x00,0x00,}}, {0x716D,2,{0x9F,0xAD,0x00,0x00,}}, {0x716E,2,{0xD6,0xF3,0x00,0x00,}}, {0x716F,2,{0x9F,0xAE,0x00,0x00,}}, {0x7170,2,{0x9F,0xAF,0x00,0x00,}}, {0x7171,2,{0x9F,0xB0,0x00,0x00,}}, {0x7172,2,{0xEC,0xD2,0x00,0x00,}}, {0x7173,2,{0xEC,0xCE,0x00,0x00,}}, {0x7174,2,{0x9F,0xB1,0x00,0x00,}}, {0x7175,2,{0x9F,0xB2,0x00,0x00,}}, {0x7176,2,{0x9F,0xB3,0x00,0x00,}}, {0x7177,2,{0x9F,0xB4,0x00,0x00,}}, {0x7178,2,{0xEC,0xD4,0x00,0x00,}}, {0x7179,2,{0x9F,0xB5,0x00,0x00,}}, {0x717A,2,{0xEC,0xD5,0x00,0x00,}}, {0x717B,2,{0x9F,0xB6,0x00,0x00,}}, {0x717C,2,{0x9F,0xB7,0x00,0x00,}}, {0x717D,2,{0xC9,0xBF,0x00,0x00,}}, {0x717E,2,{0x9F,0xB8,0x00,0x00,}}, {0x717F,2,{0x9F,0xB9,0x00,0x00,}}, {0x7180,2,{0x9F,0xBA,0x00,0x00,}}, {0x7181,2,{0x9F,0xBB,0x00,0x00,}}, {0x7182,2,{0x9F,0xBC,0x00,0x00,}}, {0x7183,2,{0x9F,0xBD,0x00,0x00,}}, {0x7184,2,{0xCF,0xA8,0x00,0x00,}}, {0x7185,2,{0x9F,0xBE,0x00,0x00,}}, {0x7186,2,{0x9F,0xBF,0x00,0x00,}}, {0x7187,2,{0x9F,0xC0,0x00,0x00,}}, {0x7188,2,{0x9F,0xC1,0x00,0x00,}}, {0x7189,2,{0x9F,0xC2,0x00,0x00,}}, {0x718A,2,{0xD0,0xDC,0x00,0x00,}}, {0x718B,2,{0x9F,0xC3,0x00,0x00,}}, {0x718C,2,{0x9F,0xC4,0x00,0x00,}}, {0x718D,2,{0x9F,0xC5,0x00,0x00,}}, {0x718E,2,{0x9F,0xC6,0x00,0x00,}}, {0x718F,2,{0xD1,0xAC,0x00,0x00,}}, {0x7190,2,{0x9F,0xC7,0x00,0x00,}}, {0x7191,2,{0x9F,0xC8,0x00,0x00,}}, {0x7192,2,{0x9F,0xC9,0x00,0x00,}}, {0x7193,2,{0x9F,0xCA,0x00,0x00,}}, {0x7194,2,{0xC8,0xDB,0x00,0x00,}}, {0x7195,2,{0x9F,0xCB,0x00,0x00,}}, {0x7196,2,{0x9F,0xCC,0x00,0x00,}}, {0x7197,2,{0x9F,0xCD,0x00,0x00,}}, {0x7198,2,{0xEC,0xD6,0x00,0x00,}}, {0x7199,2,{0xCE,0xF5,0x00,0x00,}}, {0x719A,2,{0x9F,0xCE,0x00,0x00,}}, {0x719B,2,{0x9F,0xCF,0x00,0x00,}}, {0x719C,2,{0x9F,0xD0,0x00,0x00,}}, {0x719D,2,{0x9F,0xD1,0x00,0x00,}}, {0x719E,2,{0x9F,0xD2,0x00,0x00,}}, {0x719F,2,{0xCA,0xEC,0x00,0x00,}}, {0x71A0,2,{0xEC,0xDA,0x00,0x00,}}, {0x71A1,2,{0x9F,0xD3,0x00,0x00,}}, {0x71A2,2,{0x9F,0xD4,0x00,0x00,}}, {0x71A3,2,{0x9F,0xD5,0x00,0x00,}}, {0x71A4,2,{0x9F,0xD6,0x00,0x00,}}, {0x71A5,2,{0x9F,0xD7,0x00,0x00,}}, {0x71A6,2,{0x9F,0xD8,0x00,0x00,}}, {0x71A7,2,{0x9F,0xD9,0x00,0x00,}}, {0x71A8,2,{0xEC,0xD9,0x00,0x00,}}, {0x71A9,2,{0x9F,0xDA,0x00,0x00,}}, {0x71AA,2,{0x9F,0xDB,0x00,0x00,}}, {0x71AB,2,{0x9F,0xDC,0x00,0x00,}}, {0x71AC,2,{0xB0,0xBE,0x00,0x00,}}, {0x71AD,2,{0x9F,0xDD,0x00,0x00,}}, {0x71AE,2,{0x9F,0xDE,0x00,0x00,}}, {0x71AF,2,{0x9F,0xDF,0x00,0x00,}}, {0x71B0,2,{0x9F,0xE0,0x00,0x00,}}, {0x71B1,2,{0x9F,0xE1,0x00,0x00,}}, {0x71B2,2,{0x9F,0xE2,0x00,0x00,}}, {0x71B3,2,{0xEC,0xD7,0x00,0x00,}}, {0x71B4,2,{0x9F,0xE3,0x00,0x00,}}, {0x71B5,2,{0xEC,0xD8,0x00,0x00,}}, {0x71B6,2,{0x9F,0xE4,0x00,0x00,}}, {0x71B7,2,{0x9F,0xE5,0x00,0x00,}}, {0x71B8,2,{0x9F,0xE6,0x00,0x00,}}, {0x71B9,2,{0xEC,0xE4,0x00,0x00,}}, {0x71BA,2,{0x9F,0xE7,0x00,0x00,}}, {0x71BB,2,{0x9F,0xE8,0x00,0x00,}}, {0x71BC,2,{0x9F,0xE9,0x00,0x00,}}, {0x71BD,2,{0x9F,0xEA,0x00,0x00,}}, {0x71BE,2,{0x9F,0xEB,0x00,0x00,}}, {0x71BF,2,{0x9F,0xEC,0x00,0x00,}}, {0x71C0,2,{0x9F,0xED,0x00,0x00,}}, {0x71C1,2,{0x9F,0xEE,0x00,0x00,}}, {0x71C2,2,{0x9F,0xEF,0x00,0x00,}}, {0x71C3,2,{0xC8,0xBC,0x00,0x00,}}, {0x71C4,2,{0x9F,0xF0,0x00,0x00,}}, {0x71C5,2,{0x9F,0xF1,0x00,0x00,}}, {0x71C6,2,{0x9F,0xF2,0x00,0x00,}}, {0x71C7,2,{0x9F,0xF3,0x00,0x00,}}, {0x71C8,2,{0x9F,0xF4,0x00,0x00,}}, {0x71C9,2,{0x9F,0xF5,0x00,0x00,}}, {0x71CA,2,{0x9F,0xF6,0x00,0x00,}}, {0x71CB,2,{0x9F,0xF7,0x00,0x00,}}, {0x71CC,2,{0x9F,0xF8,0x00,0x00,}}, {0x71CD,2,{0x9F,0xF9,0x00,0x00,}}, {0x71CE,2,{0xC1,0xC7,0x00,0x00,}}, {0x71CF,2,{0x9F,0xFA,0x00,0x00,}}, {0x71D0,2,{0x9F,0xFB,0x00,0x00,}}, {0x71D1,2,{0x9F,0xFC,0x00,0x00,}}, {0x71D2,2,{0x9F,0xFD,0x00,0x00,}}, {0x71D3,2,{0x9F,0xFE,0x00,0x00,}}, {0x71D4,2,{0xEC,0xDC,0x00,0x00,}}, {0x71D5,2,{0xD1,0xE0,0x00,0x00,}}, {0x71D6,2,{0xA0,0x40,0x00,0x00,}}, {0x71D7,2,{0xA0,0x41,0x00,0x00,}}, {0x71D8,2,{0xA0,0x42,0x00,0x00,}}, {0x71D9,2,{0xA0,0x43,0x00,0x00,}}, {0x71DA,2,{0xA0,0x44,0x00,0x00,}}, {0x71DB,2,{0xA0,0x45,0x00,0x00,}}, {0x71DC,2,{0xA0,0x46,0x00,0x00,}}, {0x71DD,2,{0xA0,0x47,0x00,0x00,}}, {0x71DE,2,{0xA0,0x48,0x00,0x00,}}, {0x71DF,2,{0xA0,0x49,0x00,0x00,}}, {0x71E0,2,{0xEC,0xDB,0x00,0x00,}}, {0x71E1,2,{0xA0,0x4A,0x00,0x00,}}, {0x71E2,2,{0xA0,0x4B,0x00,0x00,}}, {0x71E3,2,{0xA0,0x4C,0x00,0x00,}}, {0x71E4,2,{0xA0,0x4D,0x00,0x00,}}, {0x71E5,2,{0xD4,0xEF,0x00,0x00,}}, {0x71E6,2,{0xA0,0x4E,0x00,0x00,}}, {0x71E7,2,{0xEC,0xDD,0x00,0x00,}}, {0x71E8,2,{0xA0,0x4F,0x00,0x00,}}, {0x71E9,2,{0xA0,0x50,0x00,0x00,}}, {0x71EA,2,{0xA0,0x51,0x00,0x00,}}, {0x71EB,2,{0xA0,0x52,0x00,0x00,}}, {0x71EC,2,{0xA0,0x53,0x00,0x00,}}, {0x71ED,2,{0xA0,0x54,0x00,0x00,}}, {0x71EE,2,{0xDB,0xC6,0x00,0x00,}}, {0x71EF,2,{0xA0,0x55,0x00,0x00,}}, {0x71F0,2,{0xA0,0x56,0x00,0x00,}}, {0x71F1,2,{0xA0,0x57,0x00,0x00,}}, {0x71F2,2,{0xA0,0x58,0x00,0x00,}}, {0x71F3,2,{0xA0,0x59,0x00,0x00,}}, {0x71F4,2,{0xA0,0x5A,0x00,0x00,}}, {0x71F5,2,{0xA0,0x5B,0x00,0x00,}}, {0x71F6,2,{0xA0,0x5C,0x00,0x00,}}, {0x71F7,2,{0xA0,0x5D,0x00,0x00,}}, {0x71F8,2,{0xA0,0x5E,0x00,0x00,}}, {0x71F9,2,{0xEC,0xDE,0x00,0x00,}}, {0x71FA,2,{0xA0,0x5F,0x00,0x00,}}, {0x71FB,2,{0xA0,0x60,0x00,0x00,}}, {0x71FC,2,{0xA0,0x61,0x00,0x00,}}, {0x71FD,2,{0xA0,0x62,0x00,0x00,}}, {0x71FE,2,{0xA0,0x63,0x00,0x00,}}, {0x71FF,2,{0xA0,0x64,0x00,0x00,}}, {0x7200,2,{0xA0,0x65,0x00,0x00,}}, {0x7201,2,{0xA0,0x66,0x00,0x00,}}, {0x7202,2,{0xA0,0x67,0x00,0x00,}}, {0x7203,2,{0xA0,0x68,0x00,0x00,}}, {0x7204,2,{0xA0,0x69,0x00,0x00,}}, {0x7205,2,{0xA0,0x6A,0x00,0x00,}}, {0x7206,2,{0xB1,0xAC,0x00,0x00,}}, {0x7207,2,{0xA0,0x6B,0x00,0x00,}}, {0x7208,2,{0xA0,0x6C,0x00,0x00,}}, {0x7209,2,{0xA0,0x6D,0x00,0x00,}}, {0x720A,2,{0xA0,0x6E,0x00,0x00,}}, {0x720B,2,{0xA0,0x6F,0x00,0x00,}}, {0x720C,2,{0xA0,0x70,0x00,0x00,}}, {0x720D,2,{0xA0,0x71,0x00,0x00,}}, {0x720E,2,{0xA0,0x72,0x00,0x00,}}, {0x720F,2,{0xA0,0x73,0x00,0x00,}}, {0x7210,2,{0xA0,0x74,0x00,0x00,}}, {0x7211,2,{0xA0,0x75,0x00,0x00,}}, {0x7212,2,{0xA0,0x76,0x00,0x00,}}, {0x7213,2,{0xA0,0x77,0x00,0x00,}}, {0x7214,2,{0xA0,0x78,0x00,0x00,}}, {0x7215,2,{0xA0,0x79,0x00,0x00,}}, {0x7216,2,{0xA0,0x7A,0x00,0x00,}}, {0x7217,2,{0xA0,0x7B,0x00,0x00,}}, {0x7218,2,{0xA0,0x7C,0x00,0x00,}}, {0x7219,2,{0xA0,0x7D,0x00,0x00,}}, {0x721A,2,{0xA0,0x7E,0x00,0x00,}}, {0x721B,2,{0xA0,0x80,0x00,0x00,}}, {0x721C,2,{0xA0,0x81,0x00,0x00,}}, {0x721D,2,{0xEC,0xDF,0x00,0x00,}}, {0x721E,2,{0xA0,0x82,0x00,0x00,}}, {0x721F,2,{0xA0,0x83,0x00,0x00,}}, {0x7220,2,{0xA0,0x84,0x00,0x00,}}, {0x7221,2,{0xA0,0x85,0x00,0x00,}}, {0x7222,2,{0xA0,0x86,0x00,0x00,}}, {0x7223,2,{0xA0,0x87,0x00,0x00,}}, {0x7224,2,{0xA0,0x88,0x00,0x00,}}, {0x7225,2,{0xA0,0x89,0x00,0x00,}}, {0x7226,2,{0xA0,0x8A,0x00,0x00,}}, {0x7227,2,{0xA0,0x8B,0x00,0x00,}}, {0x7228,2,{0xEC,0xE0,0x00,0x00,}}, {0x7229,2,{0xA0,0x8C,0x00,0x00,}}, {0x722A,2,{0xD7,0xA6,0x00,0x00,}}, {0x722B,2,{0xA0,0x8D,0x00,0x00,}}, {0x722C,2,{0xC5,0xC0,0x00,0x00,}}, {0x722D,2,{0xA0,0x8E,0x00,0x00,}}, {0x722E,2,{0xA0,0x8F,0x00,0x00,}}, {0x722F,2,{0xA0,0x90,0x00,0x00,}}, {0x7230,2,{0xEB,0xBC,0x00,0x00,}}, {0x7231,2,{0xB0,0xAE,0x00,0x00,}}, {0x7232,2,{0xA0,0x91,0x00,0x00,}}, {0x7233,2,{0xA0,0x92,0x00,0x00,}}, {0x7234,2,{0xA0,0x93,0x00,0x00,}}, {0x7235,2,{0xBE,0xF4,0x00,0x00,}}, {0x7236,2,{0xB8,0xB8,0x00,0x00,}}, {0x7237,2,{0xD2,0xAF,0x00,0x00,}}, {0x7238,2,{0xB0,0xD6,0x00,0x00,}}, {0x7239,2,{0xB5,0xF9,0x00,0x00,}}, {0x723A,2,{0xA0,0x94,0x00,0x00,}}, {0x723B,2,{0xD8,0xB3,0x00,0x00,}}, {0x723C,2,{0xA0,0x95,0x00,0x00,}}, {0x723D,2,{0xCB,0xAC,0x00,0x00,}}, {0x723E,2,{0xA0,0x96,0x00,0x00,}}, {0x723F,2,{0xE3,0xDD,0x00,0x00,}}, {0x7240,2,{0xA0,0x97,0x00,0x00,}}, {0x7241,2,{0xA0,0x98,0x00,0x00,}}, {0x7242,2,{0xA0,0x99,0x00,0x00,}}, {0x7243,2,{0xA0,0x9A,0x00,0x00,}}, {0x7244,2,{0xA0,0x9B,0x00,0x00,}}, {0x7245,2,{0xA0,0x9C,0x00,0x00,}}, {0x7246,2,{0xA0,0x9D,0x00,0x00,}}, {0x7247,2,{0xC6,0xAC,0x00,0x00,}}, {0x7248,2,{0xB0,0xE6,0x00,0x00,}}, {0x7249,2,{0xA0,0x9E,0x00,0x00,}}, {0x724A,2,{0xA0,0x9F,0x00,0x00,}}, {0x724B,2,{0xA0,0xA0,0x00,0x00,}}, {0x724C,2,{0xC5,0xC6,0x00,0x00,}}, {0x724D,2,{0xEB,0xB9,0x00,0x00,}}, {0x724E,2,{0xA0,0xA1,0x00,0x00,}}, {0x724F,2,{0xA0,0xA2,0x00,0x00,}}, {0x7250,2,{0xA0,0xA3,0x00,0x00,}}, {0x7251,2,{0xA0,0xA4,0x00,0x00,}}, {0x7252,2,{0xEB,0xBA,0x00,0x00,}}, {0x7253,2,{0xA0,0xA5,0x00,0x00,}}, {0x7254,2,{0xA0,0xA6,0x00,0x00,}}, {0x7255,2,{0xA0,0xA7,0x00,0x00,}}, {0x7256,2,{0xEB,0xBB,0x00,0x00,}}, {0x7257,2,{0xA0,0xA8,0x00,0x00,}}, {0x7258,2,{0xA0,0xA9,0x00,0x00,}}, {0x7259,2,{0xD1,0xC0,0x00,0x00,}}, {0x725A,2,{0xA0,0xAA,0x00,0x00,}}, {0x725B,2,{0xC5,0xA3,0x00,0x00,}}, {0x725C,2,{0xA0,0xAB,0x00,0x00,}}, {0x725D,2,{0xEA,0xF2,0x00,0x00,}}, {0x725E,2,{0xA0,0xAC,0x00,0x00,}}, {0x725F,2,{0xC4,0xB2,0x00,0x00,}}, {0x7260,2,{0xA0,0xAD,0x00,0x00,}}, {0x7261,2,{0xC4,0xB5,0x00,0x00,}}, {0x7262,2,{0xC0,0xCE,0x00,0x00,}}, {0x7263,2,{0xA0,0xAE,0x00,0x00,}}, {0x7264,2,{0xA0,0xAF,0x00,0x00,}}, {0x7265,2,{0xA0,0xB0,0x00,0x00,}}, {0x7266,2,{0xEA,0xF3,0x00,0x00,}}, {0x7267,2,{0xC4,0xC1,0x00,0x00,}}, {0x7268,2,{0xA0,0xB1,0x00,0x00,}}, {0x7269,2,{0xCE,0xEF,0x00,0x00,}}, {0x726A,2,{0xA0,0xB2,0x00,0x00,}}, {0x726B,2,{0xA0,0xB3,0x00,0x00,}}, {0x726C,2,{0xA0,0xB4,0x00,0x00,}}, {0x726D,2,{0xA0,0xB5,0x00,0x00,}}, {0x726E,2,{0xEA,0xF0,0x00,0x00,}}, {0x726F,2,{0xEA,0xF4,0x00,0x00,}}, {0x7270,2,{0xA0,0xB6,0x00,0x00,}}, {0x7271,2,{0xA0,0xB7,0x00,0x00,}}, {0x7272,2,{0xC9,0xFC,0x00,0x00,}}, {0x7273,2,{0xA0,0xB8,0x00,0x00,}}, {0x7274,2,{0xA0,0xB9,0x00,0x00,}}, {0x7275,2,{0xC7,0xA3,0x00,0x00,}}, {0x7276,2,{0xA0,0xBA,0x00,0x00,}}, {0x7277,2,{0xA0,0xBB,0x00,0x00,}}, {0x7278,2,{0xA0,0xBC,0x00,0x00,}}, {0x7279,2,{0xCC,0xD8,0x00,0x00,}}, {0x727A,2,{0xCE,0xFE,0x00,0x00,}}, {0x727B,2,{0xA0,0xBD,0x00,0x00,}}, {0x727C,2,{0xA0,0xBE,0x00,0x00,}}, {0x727D,2,{0xA0,0xBF,0x00,0x00,}}, {0x727E,2,{0xEA,0xF5,0x00,0x00,}}, {0x727F,2,{0xEA,0xF6,0x00,0x00,}}, {0x7280,2,{0xCF,0xAC,0x00,0x00,}}, {0x7281,2,{0xC0,0xE7,0x00,0x00,}}, {0x7282,2,{0xA0,0xC0,0x00,0x00,}}, {0x7283,2,{0xA0,0xC1,0x00,0x00,}}, {0x7284,2,{0xEA,0xF7,0x00,0x00,}}, {0x7285,2,{0xA0,0xC2,0x00,0x00,}}, {0x7286,2,{0xA0,0xC3,0x00,0x00,}}, {0x7287,2,{0xA0,0xC4,0x00,0x00,}}, {0x7288,2,{0xA0,0xC5,0x00,0x00,}}, {0x7289,2,{0xA0,0xC6,0x00,0x00,}}, {0x728A,2,{0xB6,0xBF,0x00,0x00,}}, {0x728B,2,{0xEA,0xF8,0x00,0x00,}}, {0x728C,2,{0xA0,0xC7,0x00,0x00,}}, {0x728D,2,{0xEA,0xF9,0x00,0x00,}}, {0x728E,2,{0xA0,0xC8,0x00,0x00,}}, {0x728F,2,{0xEA,0xFA,0x00,0x00,}}, {0x7290,2,{0xA0,0xC9,0x00,0x00,}}, {0x7291,2,{0xA0,0xCA,0x00,0x00,}}, {0x7292,2,{0xEA,0xFB,0x00,0x00,}}, {0x7293,2,{0xA0,0xCB,0x00,0x00,}}, {0x7294,2,{0xA0,0xCC,0x00,0x00,}}, {0x7295,2,{0xA0,0xCD,0x00,0x00,}}, {0x7296,2,{0xA0,0xCE,0x00,0x00,}}, {0x7297,2,{0xA0,0xCF,0x00,0x00,}}, {0x7298,2,{0xA0,0xD0,0x00,0x00,}}, {0x7299,2,{0xA0,0xD1,0x00,0x00,}}, {0x729A,2,{0xA0,0xD2,0x00,0x00,}}, {0x729B,2,{0xA0,0xD3,0x00,0x00,}}, {0x729C,2,{0xA0,0xD4,0x00,0x00,}}, {0x729D,2,{0xA0,0xD5,0x00,0x00,}}, {0x729E,2,{0xA0,0xD6,0x00,0x00,}}, {0x729F,2,{0xEA,0xF1,0x00,0x00,}}, {0x72A0,2,{0xA0,0xD7,0x00,0x00,}}, {0x72A1,2,{0xA0,0xD8,0x00,0x00,}}, {0x72A2,2,{0xA0,0xD9,0x00,0x00,}}, {0x72A3,2,{0xA0,0xDA,0x00,0x00,}}, {0x72A4,2,{0xA0,0xDB,0x00,0x00,}}, {0x72A5,2,{0xA0,0xDC,0x00,0x00,}}, {0x72A6,2,{0xA0,0xDD,0x00,0x00,}}, {0x72A7,2,{0xA0,0xDE,0x00,0x00,}}, {0x72A8,2,{0xA0,0xDF,0x00,0x00,}}, {0x72A9,2,{0xA0,0xE0,0x00,0x00,}}, {0x72AA,2,{0xA0,0xE1,0x00,0x00,}}, {0x72AB,2,{0xA0,0xE2,0x00,0x00,}}, {0x72AC,2,{0xC8,0xAE,0x00,0x00,}}, {0x72AD,2,{0xE1,0xEB,0x00,0x00,}}, {0x72AE,2,{0xA0,0xE3,0x00,0x00,}}, {0x72AF,2,{0xB7,0xB8,0x00,0x00,}}, {0x72B0,2,{0xE1,0xEC,0x00,0x00,}}, {0x72B1,2,{0xA0,0xE4,0x00,0x00,}}, {0x72B2,2,{0xA0,0xE5,0x00,0x00,}}, {0x72B3,2,{0xA0,0xE6,0x00,0x00,}}, {0x72B4,2,{0xE1,0xED,0x00,0x00,}}, {0x72B5,2,{0xA0,0xE7,0x00,0x00,}}, {0x72B6,2,{0xD7,0xB4,0x00,0x00,}}, {0x72B7,2,{0xE1,0xEE,0x00,0x00,}}, {0x72B8,2,{0xE1,0xEF,0x00,0x00,}}, {0x72B9,2,{0xD3,0xCC,0x00,0x00,}}, {0x72BA,2,{0xA0,0xE8,0x00,0x00,}}, {0x72BB,2,{0xA0,0xE9,0x00,0x00,}}, {0x72BC,2,{0xA0,0xEA,0x00,0x00,}}, {0x72BD,2,{0xA0,0xEB,0x00,0x00,}}, {0x72BE,2,{0xA0,0xEC,0x00,0x00,}}, {0x72BF,2,{0xA0,0xED,0x00,0x00,}}, {0x72C0,2,{0xA0,0xEE,0x00,0x00,}}, {0x72C1,2,{0xE1,0xF1,0x00,0x00,}}, {0x72C2,2,{0xBF,0xF1,0x00,0x00,}}, {0x72C3,2,{0xE1,0xF0,0x00,0x00,}}, {0x72C4,2,{0xB5,0xD2,0x00,0x00,}}, {0x72C5,2,{0xA0,0xEF,0x00,0x00,}}, {0x72C6,2,{0xA0,0xF0,0x00,0x00,}}, {0x72C7,2,{0xA0,0xF1,0x00,0x00,}}, {0x72C8,2,{0xB1,0xB7,0x00,0x00,}}, {0x72C9,2,{0xA0,0xF2,0x00,0x00,}}, {0x72CA,2,{0xA0,0xF3,0x00,0x00,}}, {0x72CB,2,{0xA0,0xF4,0x00,0x00,}}, {0x72CC,2,{0xA0,0xF5,0x00,0x00,}}, {0x72CD,2,{0xE1,0xF3,0x00,0x00,}}, {0x72CE,2,{0xE1,0xF2,0x00,0x00,}}, {0x72CF,2,{0xA0,0xF6,0x00,0x00,}}, {0x72D0,2,{0xBA,0xFC,0x00,0x00,}}, {0x72D1,2,{0xA0,0xF7,0x00,0x00,}}, {0x72D2,2,{0xE1,0xF4,0x00,0x00,}}, {0x72D3,2,{0xA0,0xF8,0x00,0x00,}}, {0x72D4,2,{0xA0,0xF9,0x00,0x00,}}, {0x72D5,2,{0xA0,0xFA,0x00,0x00,}}, {0x72D6,2,{0xA0,0xFB,0x00,0x00,}}, {0x72D7,2,{0xB9,0xB7,0x00,0x00,}}, {0x72D8,2,{0xA0,0xFC,0x00,0x00,}}, {0x72D9,2,{0xBE,0xD1,0x00,0x00,}}, {0x72DA,2,{0xA0,0xFD,0x00,0x00,}}, {0x72DB,2,{0xA0,0xFE,0x00,0x00,}}, {0x72DC,2,{0xAA,0x40,0x00,0x00,}}, {0x72DD,2,{0xAA,0x41,0x00,0x00,}}, {0x72DE,2,{0xC4,0xFC,0x00,0x00,}}, {0x72DF,2,{0xAA,0x42,0x00,0x00,}}, {0x72E0,2,{0xBA,0xDD,0x00,0x00,}}, {0x72E1,2,{0xBD,0xC6,0x00,0x00,}}, {0x72E2,2,{0xAA,0x43,0x00,0x00,}}, {0x72E3,2,{0xAA,0x44,0x00,0x00,}}, {0x72E4,2,{0xAA,0x45,0x00,0x00,}}, {0x72E5,2,{0xAA,0x46,0x00,0x00,}}, {0x72E6,2,{0xAA,0x47,0x00,0x00,}}, {0x72E7,2,{0xAA,0x48,0x00,0x00,}}, {0x72E8,2,{0xE1,0xF5,0x00,0x00,}}, {0x72E9,2,{0xE1,0xF7,0x00,0x00,}}, {0x72EA,2,{0xAA,0x49,0x00,0x00,}}, {0x72EB,2,{0xAA,0x4A,0x00,0x00,}}, {0x72EC,2,{0xB6,0xC0,0x00,0x00,}}, {0x72ED,2,{0xCF,0xC1,0x00,0x00,}}, {0x72EE,2,{0xCA,0xA8,0x00,0x00,}}, {0x72EF,2,{0xE1,0xF6,0x00,0x00,}}, {0x72F0,2,{0xD5,0xF8,0x00,0x00,}}, {0x72F1,2,{0xD3,0xFC,0x00,0x00,}}, {0x72F2,2,{0xE1,0xF8,0x00,0x00,}}, {0x72F3,2,{0xE1,0xFC,0x00,0x00,}}, {0x72F4,2,{0xE1,0xF9,0x00,0x00,}}, {0x72F5,2,{0xAA,0x4B,0x00,0x00,}}, {0x72F6,2,{0xAA,0x4C,0x00,0x00,}}, {0x72F7,2,{0xE1,0xFA,0x00,0x00,}}, {0x72F8,2,{0xC0,0xEA,0x00,0x00,}}, {0x72F9,2,{0xAA,0x4D,0x00,0x00,}}, {0x72FA,2,{0xE1,0xFE,0x00,0x00,}}, {0x72FB,2,{0xE2,0xA1,0x00,0x00,}}, {0x72FC,2,{0xC0,0xC7,0x00,0x00,}}, {0x72FD,2,{0xAA,0x4E,0x00,0x00,}}, {0x72FE,2,{0xAA,0x4F,0x00,0x00,}}, {0x72FF,2,{0xAA,0x50,0x00,0x00,}}, {0x7300,2,{0xAA,0x51,0x00,0x00,}}, {0x7301,2,{0xE1,0xFB,0x00,0x00,}}, {0x7302,2,{0xAA,0x52,0x00,0x00,}}, {0x7303,2,{0xE1,0xFD,0x00,0x00,}}, {0x7304,2,{0xAA,0x53,0x00,0x00,}}, {0x7305,2,{0xAA,0x54,0x00,0x00,}}, {0x7306,2,{0xAA,0x55,0x00,0x00,}}, {0x7307,2,{0xAA,0x56,0x00,0x00,}}, {0x7308,2,{0xAA,0x57,0x00,0x00,}}, {0x7309,2,{0xAA,0x58,0x00,0x00,}}, {0x730A,2,{0xE2,0xA5,0x00,0x00,}}, {0x730B,2,{0xAA,0x59,0x00,0x00,}}, {0x730C,2,{0xAA,0x5A,0x00,0x00,}}, {0x730D,2,{0xAA,0x5B,0x00,0x00,}}, {0x730E,2,{0xC1,0xD4,0x00,0x00,}}, {0x730F,2,{0xAA,0x5C,0x00,0x00,}}, {0x7310,2,{0xAA,0x5D,0x00,0x00,}}, {0x7311,2,{0xAA,0x5E,0x00,0x00,}}, {0x7312,2,{0xAA,0x5F,0x00,0x00,}}, {0x7313,2,{0xE2,0xA3,0x00,0x00,}}, {0x7314,2,{0xAA,0x60,0x00,0x00,}}, {0x7315,2,{0xE2,0xA8,0x00,0x00,}}, {0x7316,2,{0xB2,0xFE,0x00,0x00,}}, {0x7317,2,{0xE2,0xA2,0x00,0x00,}}, {0x7318,2,{0xAA,0x61,0x00,0x00,}}, {0x7319,2,{0xAA,0x62,0x00,0x00,}}, {0x731A,2,{0xAA,0x63,0x00,0x00,}}, {0x731B,2,{0xC3,0xCD,0x00,0x00,}}, {0x731C,2,{0xB2,0xC2,0x00,0x00,}}, {0x731D,2,{0xE2,0xA7,0x00,0x00,}}, {0x731E,2,{0xE2,0xA6,0x00,0x00,}}, {0x731F,2,{0xAA,0x64,0x00,0x00,}}, {0x7320,2,{0xAA,0x65,0x00,0x00,}}, {0x7321,2,{0xE2,0xA4,0x00,0x00,}}, {0x7322,2,{0xE2,0xA9,0x00,0x00,}}, {0x7323,2,{0xAA,0x66,0x00,0x00,}}, {0x7324,2,{0xAA,0x67,0x00,0x00,}}, {0x7325,2,{0xE2,0xAB,0x00,0x00,}}, {0x7326,2,{0xAA,0x68,0x00,0x00,}}, {0x7327,2,{0xAA,0x69,0x00,0x00,}}, {0x7328,2,{0xAA,0x6A,0x00,0x00,}}, {0x7329,2,{0xD0,0xC9,0x00,0x00,}}, {0x732A,2,{0xD6,0xED,0x00,0x00,}}, {0x732B,2,{0xC3,0xA8,0x00,0x00,}}, {0x732C,2,{0xE2,0xAC,0x00,0x00,}}, {0x732D,2,{0xAA,0x6B,0x00,0x00,}}, {0x732E,2,{0xCF,0xD7,0x00,0x00,}}, {0x732F,2,{0xAA,0x6C,0x00,0x00,}}, {0x7330,2,{0xAA,0x6D,0x00,0x00,}}, {0x7331,2,{0xE2,0xAE,0x00,0x00,}}, {0x7332,2,{0xAA,0x6E,0x00,0x00,}}, {0x7333,2,{0xAA,0x6F,0x00,0x00,}}, {0x7334,2,{0xBA,0xEF,0x00,0x00,}}, {0x7335,2,{0xAA,0x70,0x00,0x00,}}, {0x7336,2,{0xAA,0x71,0x00,0x00,}}, {0x7337,2,{0xE9,0xE0,0x00,0x00,}}, {0x7338,2,{0xE2,0xAD,0x00,0x00,}}, {0x7339,2,{0xE2,0xAA,0x00,0x00,}}, {0x733A,2,{0xAA,0x72,0x00,0x00,}}, {0x733B,2,{0xAA,0x73,0x00,0x00,}}, {0x733C,2,{0xAA,0x74,0x00,0x00,}}, {0x733D,2,{0xAA,0x75,0x00,0x00,}}, {0x733E,2,{0xBB,0xAB,0x00,0x00,}}, {0x733F,2,{0xD4,0xB3,0x00,0x00,}}, {0x7340,2,{0xAA,0x76,0x00,0x00,}}, {0x7341,2,{0xAA,0x77,0x00,0x00,}}, {0x7342,2,{0xAA,0x78,0x00,0x00,}}, {0x7343,2,{0xAA,0x79,0x00,0x00,}}, {0x7344,2,{0xAA,0x7A,0x00,0x00,}}, {0x7345,2,{0xAA,0x7B,0x00,0x00,}}, {0x7346,2,{0xAA,0x7C,0x00,0x00,}}, {0x7347,2,{0xAA,0x7D,0x00,0x00,}}, {0x7348,2,{0xAA,0x7E,0x00,0x00,}}, {0x7349,2,{0xAA,0x80,0x00,0x00,}}, {0x734A,2,{0xAA,0x81,0x00,0x00,}}, {0x734B,2,{0xAA,0x82,0x00,0x00,}}, {0x734C,2,{0xAA,0x83,0x00,0x00,}}, {0x734D,2,{0xE2,0xB0,0x00,0x00,}}, {0x734E,2,{0xAA,0x84,0x00,0x00,}}, {0x734F,2,{0xAA,0x85,0x00,0x00,}}, {0x7350,2,{0xE2,0xAF,0x00,0x00,}}, {0x7351,2,{0xAA,0x86,0x00,0x00,}}, {0x7352,2,{0xE9,0xE1,0x00,0x00,}}, {0x7353,2,{0xAA,0x87,0x00,0x00,}}, {0x7354,2,{0xAA,0x88,0x00,0x00,}}, {0x7355,2,{0xAA,0x89,0x00,0x00,}}, {0x7356,2,{0xAA,0x8A,0x00,0x00,}}, {0x7357,2,{0xE2,0xB1,0x00,0x00,}}, {0x7358,2,{0xAA,0x8B,0x00,0x00,}}, {0x7359,2,{0xAA,0x8C,0x00,0x00,}}, {0x735A,2,{0xAA,0x8D,0x00,0x00,}}, {0x735B,2,{0xAA,0x8E,0x00,0x00,}}, {0x735C,2,{0xAA,0x8F,0x00,0x00,}}, {0x735D,2,{0xAA,0x90,0x00,0x00,}}, {0x735E,2,{0xAA,0x91,0x00,0x00,}}, {0x735F,2,{0xAA,0x92,0x00,0x00,}}, {0x7360,2,{0xE2,0xB2,0x00,0x00,}}, {0x7361,2,{0xAA,0x93,0x00,0x00,}}, {0x7362,2,{0xAA,0x94,0x00,0x00,}}, {0x7363,2,{0xAA,0x95,0x00,0x00,}}, {0x7364,2,{0xAA,0x96,0x00,0x00,}}, {0x7365,2,{0xAA,0x97,0x00,0x00,}}, {0x7366,2,{0xAA,0x98,0x00,0x00,}}, {0x7367,2,{0xAA,0x99,0x00,0x00,}}, {0x7368,2,{0xAA,0x9A,0x00,0x00,}}, {0x7369,2,{0xAA,0x9B,0x00,0x00,}}, {0x736A,2,{0xAA,0x9C,0x00,0x00,}}, {0x736B,2,{0xAA,0x9D,0x00,0x00,}}, {0x736C,2,{0xE2,0xB3,0x00,0x00,}}, {0x736D,2,{0xCC,0xA1,0x00,0x00,}}, {0x736E,2,{0xAA,0x9E,0x00,0x00,}}, {0x736F,2,{0xE2,0xB4,0x00,0x00,}}, {0x7370,2,{0xAA,0x9F,0x00,0x00,}}, {0x7371,2,{0xAA,0xA0,0x00,0x00,}}, {0x7372,2,{0xAB,0x40,0x00,0x00,}}, {0x7373,2,{0xAB,0x41,0x00,0x00,}}, {0x7374,2,{0xAB,0x42,0x00,0x00,}}, {0x7375,2,{0xAB,0x43,0x00,0x00,}}, {0x7376,2,{0xAB,0x44,0x00,0x00,}}, {0x7377,2,{0xAB,0x45,0x00,0x00,}}, {0x7378,2,{0xAB,0x46,0x00,0x00,}}, {0x7379,2,{0xAB,0x47,0x00,0x00,}}, {0x737A,2,{0xAB,0x48,0x00,0x00,}}, {0x737B,2,{0xAB,0x49,0x00,0x00,}}, {0x737C,2,{0xAB,0x4A,0x00,0x00,}}, {0x737D,2,{0xAB,0x4B,0x00,0x00,}}, {0x737E,2,{0xE2,0xB5,0x00,0x00,}}, {0x737F,2,{0xAB,0x4C,0x00,0x00,}}, {0x7380,2,{0xAB,0x4D,0x00,0x00,}}, {0x7381,2,{0xAB,0x4E,0x00,0x00,}}, {0x7382,2,{0xAB,0x4F,0x00,0x00,}}, {0x7383,2,{0xAB,0x50,0x00,0x00,}}, {0x7384,2,{0xD0,0xFE,0x00,0x00,}}, {0x7385,2,{0xAB,0x51,0x00,0x00,}}, {0x7386,2,{0xAB,0x52,0x00,0x00,}}, {0x7387,2,{0xC2,0xCA,0x00,0x00,}}, {0x7388,2,{0xAB,0x53,0x00,0x00,}}, {0x7389,2,{0xD3,0xF1,0x00,0x00,}}, {0x738A,2,{0xAB,0x54,0x00,0x00,}}, {0x738B,2,{0xCD,0xF5,0x00,0x00,}}, {0x738C,2,{0xAB,0x55,0x00,0x00,}}, {0x738D,2,{0xAB,0x56,0x00,0x00,}}, {0x738E,2,{0xE7,0xE0,0x00,0x00,}}, {0x738F,2,{0xAB,0x57,0x00,0x00,}}, {0x7390,2,{0xAB,0x58,0x00,0x00,}}, {0x7391,2,{0xE7,0xE1,0x00,0x00,}}, {0x7392,2,{0xAB,0x59,0x00,0x00,}}, {0x7393,2,{0xAB,0x5A,0x00,0x00,}}, {0x7394,2,{0xAB,0x5B,0x00,0x00,}}, {0x7395,2,{0xAB,0x5C,0x00,0x00,}}, {0x7396,2,{0xBE,0xC1,0x00,0x00,}}, {0x7397,2,{0xAB,0x5D,0x00,0x00,}}, {0x7398,2,{0xAB,0x5E,0x00,0x00,}}, {0x7399,2,{0xAB,0x5F,0x00,0x00,}}, {0x739A,2,{0xAB,0x60,0x00,0x00,}}, {0x739B,2,{0xC2,0xEA,0x00,0x00,}}, {0x739C,2,{0xAB,0x61,0x00,0x00,}}, {0x739D,2,{0xAB,0x62,0x00,0x00,}}, {0x739E,2,{0xAB,0x63,0x00,0x00,}}, {0x739F,2,{0xE7,0xE4,0x00,0x00,}}, {0x73A0,2,{0xAB,0x64,0x00,0x00,}}, {0x73A1,2,{0xAB,0x65,0x00,0x00,}}, {0x73A2,2,{0xE7,0xE3,0x00,0x00,}}, {0x73A3,2,{0xAB,0x66,0x00,0x00,}}, {0x73A4,2,{0xAB,0x67,0x00,0x00,}}, {0x73A5,2,{0xAB,0x68,0x00,0x00,}}, {0x73A6,2,{0xAB,0x69,0x00,0x00,}}, {0x73A7,2,{0xAB,0x6A,0x00,0x00,}}, {0x73A8,2,{0xAB,0x6B,0x00,0x00,}}, {0x73A9,2,{0xCD,0xE6,0x00,0x00,}}, {0x73AA,2,{0xAB,0x6C,0x00,0x00,}}, {0x73AB,2,{0xC3,0xB5,0x00,0x00,}}, {0x73AC,2,{0xAB,0x6D,0x00,0x00,}}, {0x73AD,2,{0xAB,0x6E,0x00,0x00,}}, {0x73AE,2,{0xE7,0xE2,0x00,0x00,}}, {0x73AF,2,{0xBB,0xB7,0x00,0x00,}}, {0x73B0,2,{0xCF,0xD6,0x00,0x00,}}, {0x73B1,2,{0xAB,0x6F,0x00,0x00,}}, {0x73B2,2,{0xC1,0xE1,0x00,0x00,}}, {0x73B3,2,{0xE7,0xE9,0x00,0x00,}}, {0x73B4,2,{0xAB,0x70,0x00,0x00,}}, {0x73B5,2,{0xAB,0x71,0x00,0x00,}}, {0x73B6,2,{0xAB,0x72,0x00,0x00,}}, {0x73B7,2,{0xE7,0xE8,0x00,0x00,}}, {0x73B8,2,{0xAB,0x73,0x00,0x00,}}, {0x73B9,2,{0xAB,0x74,0x00,0x00,}}, {0x73BA,2,{0xE7,0xF4,0x00,0x00,}}, {0x73BB,2,{0xB2,0xA3,0x00,0x00,}}, {0x73BC,2,{0xAB,0x75,0x00,0x00,}}, {0x73BD,2,{0xAB,0x76,0x00,0x00,}}, {0x73BE,2,{0xAB,0x77,0x00,0x00,}}, {0x73BF,2,{0xAB,0x78,0x00,0x00,}}, {0x73C0,2,{0xE7,0xEA,0x00,0x00,}}, {0x73C1,2,{0xAB,0x79,0x00,0x00,}}, {0x73C2,2,{0xE7,0xE6,0x00,0x00,}}, {0x73C3,2,{0xAB,0x7A,0x00,0x00,}}, {0x73C4,2,{0xAB,0x7B,0x00,0x00,}}, {0x73C5,2,{0xAB,0x7C,0x00,0x00,}}, {0x73C6,2,{0xAB,0x7D,0x00,0x00,}}, {0x73C7,2,{0xAB,0x7E,0x00,0x00,}}, {0x73C8,2,{0xE7,0xEC,0x00,0x00,}}, {0x73C9,2,{0xE7,0xEB,0x00,0x00,}}, {0x73CA,2,{0xC9,0xBA,0x00,0x00,}}, {0x73CB,2,{0xAB,0x80,0x00,0x00,}}, {0x73CC,2,{0xAB,0x81,0x00,0x00,}}, {0x73CD,2,{0xD5,0xE4,0x00,0x00,}}, {0x73CE,2,{0xAB,0x82,0x00,0x00,}}, {0x73CF,2,{0xE7,0xE5,0x00,0x00,}}, {0x73D0,2,{0xB7,0xA9,0x00,0x00,}}, {0x73D1,2,{0xE7,0xE7,0x00,0x00,}}, {0x73D2,2,{0xAB,0x83,0x00,0x00,}}, {0x73D3,2,{0xAB,0x84,0x00,0x00,}}, {0x73D4,2,{0xAB,0x85,0x00,0x00,}}, {0x73D5,2,{0xAB,0x86,0x00,0x00,}}, {0x73D6,2,{0xAB,0x87,0x00,0x00,}}, {0x73D7,2,{0xAB,0x88,0x00,0x00,}}, {0x73D8,2,{0xAB,0x89,0x00,0x00,}}, {0x73D9,2,{0xE7,0xEE,0x00,0x00,}}, {0x73DA,2,{0xAB,0x8A,0x00,0x00,}}, {0x73DB,2,{0xAB,0x8B,0x00,0x00,}}, {0x73DC,2,{0xAB,0x8C,0x00,0x00,}}, {0x73DD,2,{0xAB,0x8D,0x00,0x00,}}, {0x73DE,2,{0xE7,0xF3,0x00,0x00,}}, {0x73DF,2,{0xAB,0x8E,0x00,0x00,}}, {0x73E0,2,{0xD6,0xE9,0x00,0x00,}}, {0x73E1,2,{0xAB,0x8F,0x00,0x00,}}, {0x73E2,2,{0xAB,0x90,0x00,0x00,}}, {0x73E3,2,{0xAB,0x91,0x00,0x00,}}, {0x73E4,2,{0xAB,0x92,0x00,0x00,}}, {0x73E5,2,{0xE7,0xED,0x00,0x00,}}, {0x73E6,2,{0xAB,0x93,0x00,0x00,}}, {0x73E7,2,{0xE7,0xF2,0x00,0x00,}}, {0x73E8,2,{0xAB,0x94,0x00,0x00,}}, {0x73E9,2,{0xE7,0xF1,0x00,0x00,}}, {0x73EA,2,{0xAB,0x95,0x00,0x00,}}, {0x73EB,2,{0xAB,0x96,0x00,0x00,}}, {0x73EC,2,{0xAB,0x97,0x00,0x00,}}, {0x73ED,2,{0xB0,0xE0,0x00,0x00,}}, {0x73EE,2,{0xAB,0x98,0x00,0x00,}}, {0x73EF,2,{0xAB,0x99,0x00,0x00,}}, {0x73F0,2,{0xAB,0x9A,0x00,0x00,}}, {0x73F1,2,{0xAB,0x9B,0x00,0x00,}}, {0x73F2,2,{0xE7,0xF5,0x00,0x00,}}, {0x73F3,2,{0xAB,0x9C,0x00,0x00,}}, {0x73F4,2,{0xAB,0x9D,0x00,0x00,}}, {0x73F5,2,{0xAB,0x9E,0x00,0x00,}}, {0x73F6,2,{0xAB,0x9F,0x00,0x00,}}, {0x73F7,2,{0xAB,0xA0,0x00,0x00,}}, {0x73F8,2,{0xAC,0x40,0x00,0x00,}}, {0x73F9,2,{0xAC,0x41,0x00,0x00,}}, {0x73FA,2,{0xAC,0x42,0x00,0x00,}}, {0x73FB,2,{0xAC,0x43,0x00,0x00,}}, {0x73FC,2,{0xAC,0x44,0x00,0x00,}}, {0x73FD,2,{0xAC,0x45,0x00,0x00,}}, {0x73FE,2,{0xAC,0x46,0x00,0x00,}}, {0x73FF,2,{0xAC,0x47,0x00,0x00,}}, {0x7400,2,{0xAC,0x48,0x00,0x00,}}, {0x7401,2,{0xAC,0x49,0x00,0x00,}}, {0x7402,2,{0xAC,0x4A,0x00,0x00,}}, {0x7403,2,{0xC7,0xF2,0x00,0x00,}}, {0x7404,2,{0xAC,0x4B,0x00,0x00,}}, {0x7405,2,{0xC0,0xC5,0x00,0x00,}}, {0x7406,2,{0xC0,0xED,0x00,0x00,}}, {0x7407,2,{0xAC,0x4C,0x00,0x00,}}, {0x7408,2,{0xAC,0x4D,0x00,0x00,}}, {0x7409,2,{0xC1,0xF0,0x00,0x00,}}, {0x740A,2,{0xE7,0xF0,0x00,0x00,}}, {0x740B,2,{0xAC,0x4E,0x00,0x00,}}, {0x740C,2,{0xAC,0x4F,0x00,0x00,}}, {0x740D,2,{0xAC,0x50,0x00,0x00,}}, {0x740E,2,{0xAC,0x51,0x00,0x00,}}, {0x740F,2,{0xE7,0xF6,0x00,0x00,}}, {0x7410,2,{0xCB,0xF6,0x00,0x00,}}, {0x7411,2,{0xAC,0x52,0x00,0x00,}}, {0x7412,2,{0xAC,0x53,0x00,0x00,}}, {0x7413,2,{0xAC,0x54,0x00,0x00,}}, {0x7414,2,{0xAC,0x55,0x00,0x00,}}, {0x7415,2,{0xAC,0x56,0x00,0x00,}}, {0x7416,2,{0xAC,0x57,0x00,0x00,}}, {0x7417,2,{0xAC,0x58,0x00,0x00,}}, {0x7418,2,{0xAC,0x59,0x00,0x00,}}, {0x7419,2,{0xAC,0x5A,0x00,0x00,}}, {0x741A,2,{0xE8,0xA2,0x00,0x00,}}, {0x741B,2,{0xE8,0xA1,0x00,0x00,}}, {0x741C,2,{0xAC,0x5B,0x00,0x00,}}, {0x741D,2,{0xAC,0x5C,0x00,0x00,}}, {0x741E,2,{0xAC,0x5D,0x00,0x00,}}, {0x741F,2,{0xAC,0x5E,0x00,0x00,}}, {0x7420,2,{0xAC,0x5F,0x00,0x00,}}, {0x7421,2,{0xAC,0x60,0x00,0x00,}}, {0x7422,2,{0xD7,0xC1,0x00,0x00,}}, {0x7423,2,{0xAC,0x61,0x00,0x00,}}, {0x7424,2,{0xAC,0x62,0x00,0x00,}}, {0x7425,2,{0xE7,0xFA,0x00,0x00,}}, {0x7426,2,{0xE7,0xF9,0x00,0x00,}}, {0x7427,2,{0xAC,0x63,0x00,0x00,}}, {0x7428,2,{0xE7,0xFB,0x00,0x00,}}, {0x7429,2,{0xAC,0x64,0x00,0x00,}}, {0x742A,2,{0xE7,0xF7,0x00,0x00,}}, {0x742B,2,{0xAC,0x65,0x00,0x00,}}, {0x742C,2,{0xE7,0xFE,0x00,0x00,}}, {0x742D,2,{0xAC,0x66,0x00,0x00,}}, {0x742E,2,{0xE7,0xFD,0x00,0x00,}}, {0x742F,2,{0xAC,0x67,0x00,0x00,}}, {0x7430,2,{0xE7,0xFC,0x00,0x00,}}, {0x7431,2,{0xAC,0x68,0x00,0x00,}}, {0x7432,2,{0xAC,0x69,0x00,0x00,}}, {0x7433,2,{0xC1,0xD5,0x00,0x00,}}, {0x7434,2,{0xC7,0xD9,0x00,0x00,}}, {0x7435,2,{0xC5,0xFD,0x00,0x00,}}, {0x7436,2,{0xC5,0xC3,0x00,0x00,}}, {0x7437,2,{0xAC,0x6A,0x00,0x00,}}, {0x7438,2,{0xAC,0x6B,0x00,0x00,}}, {0x7439,2,{0xAC,0x6C,0x00,0x00,}}, {0x743A,2,{0xAC,0x6D,0x00,0x00,}}, {0x743B,2,{0xAC,0x6E,0x00,0x00,}}, {0x743C,2,{0xC7,0xED,0x00,0x00,}}, {0x743D,2,{0xAC,0x6F,0x00,0x00,}}, {0x743E,2,{0xAC,0x70,0x00,0x00,}}, {0x743F,2,{0xAC,0x71,0x00,0x00,}}, {0x7440,2,{0xAC,0x72,0x00,0x00,}}, {0x7441,2,{0xE8,0xA3,0x00,0x00,}}, {0x7442,2,{0xAC,0x73,0x00,0x00,}}, {0x7443,2,{0xAC,0x74,0x00,0x00,}}, {0x7444,2,{0xAC,0x75,0x00,0x00,}}, {0x7445,2,{0xAC,0x76,0x00,0x00,}}, {0x7446,2,{0xAC,0x77,0x00,0x00,}}, {0x7447,2,{0xAC,0x78,0x00,0x00,}}, {0x7448,2,{0xAC,0x79,0x00,0x00,}}, {0x7449,2,{0xAC,0x7A,0x00,0x00,}}, {0x744A,2,{0xAC,0x7B,0x00,0x00,}}, {0x744B,2,{0xAC,0x7C,0x00,0x00,}}, {0x744C,2,{0xAC,0x7D,0x00,0x00,}}, {0x744D,2,{0xAC,0x7E,0x00,0x00,}}, {0x744E,2,{0xAC,0x80,0x00,0x00,}}, {0x744F,2,{0xAC,0x81,0x00,0x00,}}, {0x7450,2,{0xAC,0x82,0x00,0x00,}}, {0x7451,2,{0xAC,0x83,0x00,0x00,}}, {0x7452,2,{0xAC,0x84,0x00,0x00,}}, {0x7453,2,{0xAC,0x85,0x00,0x00,}}, {0x7454,2,{0xAC,0x86,0x00,0x00,}}, {0x7455,2,{0xE8,0xA6,0x00,0x00,}}, {0x7456,2,{0xAC,0x87,0x00,0x00,}}, {0x7457,2,{0xE8,0xA5,0x00,0x00,}}, {0x7458,2,{0xAC,0x88,0x00,0x00,}}, {0x7459,2,{0xE8,0xA7,0x00,0x00,}}, {0x745A,2,{0xBA,0xF7,0x00,0x00,}}, {0x745B,2,{0xE7,0xF8,0x00,0x00,}}, {0x745C,2,{0xE8,0xA4,0x00,0x00,}}, {0x745D,2,{0xAC,0x89,0x00,0x00,}}, {0x745E,2,{0xC8,0xF0,0x00,0x00,}}, {0x745F,2,{0xC9,0xAA,0x00,0x00,}}, {0x7460,2,{0xAC,0x8A,0x00,0x00,}}, {0x7461,2,{0xAC,0x8B,0x00,0x00,}}, {0x7462,2,{0xAC,0x8C,0x00,0x00,}}, {0x7463,2,{0xAC,0x8D,0x00,0x00,}}, {0x7464,2,{0xAC,0x8E,0x00,0x00,}}, {0x7465,2,{0xAC,0x8F,0x00,0x00,}}, {0x7466,2,{0xAC,0x90,0x00,0x00,}}, {0x7467,2,{0xAC,0x91,0x00,0x00,}}, {0x7468,2,{0xAC,0x92,0x00,0x00,}}, {0x7469,2,{0xAC,0x93,0x00,0x00,}}, {0x746A,2,{0xAC,0x94,0x00,0x00,}}, {0x746B,2,{0xAC,0x95,0x00,0x00,}}, {0x746C,2,{0xAC,0x96,0x00,0x00,}}, {0x746D,2,{0xE8,0xA9,0x00,0x00,}}, {0x746E,2,{0xAC,0x97,0x00,0x00,}}, {0x746F,2,{0xAC,0x98,0x00,0x00,}}, {0x7470,2,{0xB9,0xE5,0x00,0x00,}}, {0x7471,2,{0xAC,0x99,0x00,0x00,}}, {0x7472,2,{0xAC,0x9A,0x00,0x00,}}, {0x7473,2,{0xAC,0x9B,0x00,0x00,}}, {0x7474,2,{0xAC,0x9C,0x00,0x00,}}, {0x7475,2,{0xAC,0x9D,0x00,0x00,}}, {0x7476,2,{0xD1,0xFE,0x00,0x00,}}, {0x7477,2,{0xE8,0xA8,0x00,0x00,}}, {0x7478,2,{0xAC,0x9E,0x00,0x00,}}, {0x7479,2,{0xAC,0x9F,0x00,0x00,}}, {0x747A,2,{0xAC,0xA0,0x00,0x00,}}, {0x747B,2,{0xAD,0x40,0x00,0x00,}}, {0x747C,2,{0xAD,0x41,0x00,0x00,}}, {0x747D,2,{0xAD,0x42,0x00,0x00,}}, {0x747E,2,{0xE8,0xAA,0x00,0x00,}}, {0x747F,2,{0xAD,0x43,0x00,0x00,}}, {0x7480,2,{0xE8,0xAD,0x00,0x00,}}, {0x7481,2,{0xE8,0xAE,0x00,0x00,}}, {0x7482,2,{0xAD,0x44,0x00,0x00,}}, {0x7483,2,{0xC1,0xA7,0x00,0x00,}}, {0x7484,2,{0xAD,0x45,0x00,0x00,}}, {0x7485,2,{0xAD,0x46,0x00,0x00,}}, {0x7486,2,{0xAD,0x47,0x00,0x00,}}, {0x7487,2,{0xE8,0xAF,0x00,0x00,}}, {0x7488,2,{0xAD,0x48,0x00,0x00,}}, {0x7489,2,{0xAD,0x49,0x00,0x00,}}, {0x748A,2,{0xAD,0x4A,0x00,0x00,}}, {0x748B,2,{0xE8,0xB0,0x00,0x00,}}, {0x748C,2,{0xAD,0x4B,0x00,0x00,}}, {0x748D,2,{0xAD,0x4C,0x00,0x00,}}, {0x748E,2,{0xE8,0xAC,0x00,0x00,}}, {0x748F,2,{0xAD,0x4D,0x00,0x00,}}, {0x7490,2,{0xE8,0xB4,0x00,0x00,}}, {0x7491,2,{0xAD,0x4E,0x00,0x00,}}, {0x7492,2,{0xAD,0x4F,0x00,0x00,}}, {0x7493,2,{0xAD,0x50,0x00,0x00,}}, {0x7494,2,{0xAD,0x51,0x00,0x00,}}, {0x7495,2,{0xAD,0x52,0x00,0x00,}}, {0x7496,2,{0xAD,0x53,0x00,0x00,}}, {0x7497,2,{0xAD,0x54,0x00,0x00,}}, {0x7498,2,{0xAD,0x55,0x00,0x00,}}, {0x7499,2,{0xAD,0x56,0x00,0x00,}}, {0x749A,2,{0xAD,0x57,0x00,0x00,}}, {0x749B,2,{0xAD,0x58,0x00,0x00,}}, {0x749C,2,{0xE8,0xAB,0x00,0x00,}}, {0x749D,2,{0xAD,0x59,0x00,0x00,}}, {0x749E,2,{0xE8,0xB1,0x00,0x00,}}, {0x749F,2,{0xAD,0x5A,0x00,0x00,}}, {0x74A0,2,{0xAD,0x5B,0x00,0x00,}}, {0x74A1,2,{0xAD,0x5C,0x00,0x00,}}, {0x74A2,2,{0xAD,0x5D,0x00,0x00,}}, {0x74A3,2,{0xAD,0x5E,0x00,0x00,}}, {0x74A4,2,{0xAD,0x5F,0x00,0x00,}}, {0x74A5,2,{0xAD,0x60,0x00,0x00,}}, {0x74A6,2,{0xAD,0x61,0x00,0x00,}}, {0x74A7,2,{0xE8,0xB5,0x00,0x00,}}, {0x74A8,2,{0xE8,0xB2,0x00,0x00,}}, {0x74A9,2,{0xE8,0xB3,0x00,0x00,}}, {0x74AA,2,{0xAD,0x62,0x00,0x00,}}, {0x74AB,2,{0xAD,0x63,0x00,0x00,}}, {0x74AC,2,{0xAD,0x64,0x00,0x00,}}, {0x74AD,2,{0xAD,0x65,0x00,0x00,}}, {0x74AE,2,{0xAD,0x66,0x00,0x00,}}, {0x74AF,2,{0xAD,0x67,0x00,0x00,}}, {0x74B0,2,{0xAD,0x68,0x00,0x00,}}, {0x74B1,2,{0xAD,0x69,0x00,0x00,}}, {0x74B2,2,{0xAD,0x6A,0x00,0x00,}}, {0x74B3,2,{0xAD,0x6B,0x00,0x00,}}, {0x74B4,2,{0xAD,0x6C,0x00,0x00,}}, {0x74B5,2,{0xAD,0x6D,0x00,0x00,}}, {0x74B6,2,{0xAD,0x6E,0x00,0x00,}}, {0x74B7,2,{0xAD,0x6F,0x00,0x00,}}, {0x74B8,2,{0xAD,0x70,0x00,0x00,}}, {0x74B9,2,{0xAD,0x71,0x00,0x00,}}, {0x74BA,2,{0xE8,0xB7,0x00,0x00,}}, {0x74BB,2,{0xAD,0x72,0x00,0x00,}}, {0x74BC,2,{0xAD,0x73,0x00,0x00,}}, {0x74BD,2,{0xAD,0x74,0x00,0x00,}}, {0x74BE,2,{0xAD,0x75,0x00,0x00,}}, {0x74BF,2,{0xAD,0x76,0x00,0x00,}}, {0x74C0,2,{0xAD,0x77,0x00,0x00,}}, {0x74C1,2,{0xAD,0x78,0x00,0x00,}}, {0x74C2,2,{0xAD,0x79,0x00,0x00,}}, {0x74C3,2,{0xAD,0x7A,0x00,0x00,}}, {0x74C4,2,{0xAD,0x7B,0x00,0x00,}}, {0x74C5,2,{0xAD,0x7C,0x00,0x00,}}, {0x74C6,2,{0xAD,0x7D,0x00,0x00,}}, {0x74C7,2,{0xAD,0x7E,0x00,0x00,}}, {0x74C8,2,{0xAD,0x80,0x00,0x00,}}, {0x74C9,2,{0xAD,0x81,0x00,0x00,}}, {0x74CA,2,{0xAD,0x82,0x00,0x00,}}, {0x74CB,2,{0xAD,0x83,0x00,0x00,}}, {0x74CC,2,{0xAD,0x84,0x00,0x00,}}, {0x74CD,2,{0xAD,0x85,0x00,0x00,}}, {0x74CE,2,{0xAD,0x86,0x00,0x00,}}, {0x74CF,2,{0xAD,0x87,0x00,0x00,}}, {0x74D0,2,{0xAD,0x88,0x00,0x00,}}, {0x74D1,2,{0xAD,0x89,0x00,0x00,}}, {0x74D2,2,{0xE8,0xB6,0x00,0x00,}}, {0x74D3,2,{0xAD,0x8A,0x00,0x00,}}, {0x74D4,2,{0xAD,0x8B,0x00,0x00,}}, {0x74D5,2,{0xAD,0x8C,0x00,0x00,}}, {0x74D6,2,{0xAD,0x8D,0x00,0x00,}}, {0x74D7,2,{0xAD,0x8E,0x00,0x00,}}, {0x74D8,2,{0xAD,0x8F,0x00,0x00,}}, {0x74D9,2,{0xAD,0x90,0x00,0x00,}}, {0x74DA,2,{0xAD,0x91,0x00,0x00,}}, {0x74DB,2,{0xAD,0x92,0x00,0x00,}}, {0x74DC,2,{0xB9,0xCF,0x00,0x00,}}, {0x74DD,2,{0xAD,0x93,0x00,0x00,}}, {0x74DE,2,{0xF0,0xAC,0x00,0x00,}}, {0x74DF,2,{0xAD,0x94,0x00,0x00,}}, {0x74E0,2,{0xF0,0xAD,0x00,0x00,}}, {0x74E1,2,{0xAD,0x95,0x00,0x00,}}, {0x74E2,2,{0xC6,0xB0,0x00,0x00,}}, {0x74E3,2,{0xB0,0xEA,0x00,0x00,}}, {0x74E4,2,{0xC8,0xBF,0x00,0x00,}}, {0x74E5,2,{0xAD,0x96,0x00,0x00,}}, {0x74E6,2,{0xCD,0xDF,0x00,0x00,}}, {0x74E7,2,{0xAD,0x97,0x00,0x00,}}, {0x74E8,2,{0xAD,0x98,0x00,0x00,}}, {0x74E9,2,{0xAD,0x99,0x00,0x00,}}, {0x74EA,2,{0xAD,0x9A,0x00,0x00,}}, {0x74EB,2,{0xAD,0x9B,0x00,0x00,}}, {0x74EC,2,{0xAD,0x9C,0x00,0x00,}}, {0x74ED,2,{0xAD,0x9D,0x00,0x00,}}, {0x74EE,2,{0xCE,0xCD,0x00,0x00,}}, {0x74EF,2,{0xEA,0xB1,0x00,0x00,}}, {0x74F0,2,{0xAD,0x9E,0x00,0x00,}}, {0x74F1,2,{0xAD,0x9F,0x00,0x00,}}, {0x74F2,2,{0xAD,0xA0,0x00,0x00,}}, {0x74F3,2,{0xAE,0x40,0x00,0x00,}}, {0x74F4,2,{0xEA,0xB2,0x00,0x00,}}, {0x74F5,2,{0xAE,0x41,0x00,0x00,}}, {0x74F6,2,{0xC6,0xBF,0x00,0x00,}}, {0x74F7,2,{0xB4,0xC9,0x00,0x00,}}, {0x74F8,2,{0xAE,0x42,0x00,0x00,}}, {0x74F9,2,{0xAE,0x43,0x00,0x00,}}, {0x74FA,2,{0xAE,0x44,0x00,0x00,}}, {0x74FB,2,{0xAE,0x45,0x00,0x00,}}, {0x74FC,2,{0xAE,0x46,0x00,0x00,}}, {0x74FD,2,{0xAE,0x47,0x00,0x00,}}, {0x74FE,2,{0xAE,0x48,0x00,0x00,}}, {0x74FF,2,{0xEA,0xB3,0x00,0x00,}}, {0x7500,2,{0xAE,0x49,0x00,0x00,}}, {0x7501,2,{0xAE,0x4A,0x00,0x00,}}, {0x7502,2,{0xAE,0x4B,0x00,0x00,}}, {0x7503,2,{0xAE,0x4C,0x00,0x00,}}, {0x7504,2,{0xD5,0xE7,0x00,0x00,}}, {0x7505,2,{0xAE,0x4D,0x00,0x00,}}, {0x7506,2,{0xAE,0x4E,0x00,0x00,}}, {0x7507,2,{0xAE,0x4F,0x00,0x00,}}, {0x7508,2,{0xAE,0x50,0x00,0x00,}}, {0x7509,2,{0xAE,0x51,0x00,0x00,}}, {0x750A,2,{0xAE,0x52,0x00,0x00,}}, {0x750B,2,{0xAE,0x53,0x00,0x00,}}, {0x750C,2,{0xAE,0x54,0x00,0x00,}}, {0x750D,2,{0xDD,0xF9,0x00,0x00,}}, {0x750E,2,{0xAE,0x55,0x00,0x00,}}, {0x750F,2,{0xEA,0xB4,0x00,0x00,}}, {0x7510,2,{0xAE,0x56,0x00,0x00,}}, {0x7511,2,{0xEA,0xB5,0x00,0x00,}}, {0x7512,2,{0xAE,0x57,0x00,0x00,}}, {0x7513,2,{0xEA,0xB6,0x00,0x00,}}, {0x7514,2,{0xAE,0x58,0x00,0x00,}}, {0x7515,2,{0xAE,0x59,0x00,0x00,}}, {0x7516,2,{0xAE,0x5A,0x00,0x00,}}, {0x7517,2,{0xAE,0x5B,0x00,0x00,}}, {0x7518,2,{0xB8,0xCA,0x00,0x00,}}, {0x7519,2,{0xDF,0xB0,0x00,0x00,}}, {0x751A,2,{0xC9,0xF5,0x00,0x00,}}, {0x751B,2,{0xAE,0x5C,0x00,0x00,}}, {0x751C,2,{0xCC,0xF0,0x00,0x00,}}, {0x751D,2,{0xAE,0x5D,0x00,0x00,}}, {0x751E,2,{0xAE,0x5E,0x00,0x00,}}, {0x751F,2,{0xC9,0xFA,0x00,0x00,}}, {0x7520,2,{0xAE,0x5F,0x00,0x00,}}, {0x7521,2,{0xAE,0x60,0x00,0x00,}}, {0x7522,2,{0xAE,0x61,0x00,0x00,}}, {0x7523,2,{0xAE,0x62,0x00,0x00,}}, {0x7524,2,{0xAE,0x63,0x00,0x00,}}, {0x7525,2,{0xC9,0xFB,0x00,0x00,}}, {0x7526,2,{0xAE,0x64,0x00,0x00,}}, {0x7527,2,{0xAE,0x65,0x00,0x00,}}, {0x7528,2,{0xD3,0xC3,0x00,0x00,}}, {0x7529,2,{0xCB,0xA6,0x00,0x00,}}, {0x752A,2,{0xAE,0x66,0x00,0x00,}}, {0x752B,2,{0xB8,0xA6,0x00,0x00,}}, {0x752C,2,{0xF0,0xAE,0x00,0x00,}}, {0x752D,2,{0xB1,0xC2,0x00,0x00,}}, {0x752E,2,{0xAE,0x67,0x00,0x00,}}, {0x752F,2,{0xE5,0xB8,0x00,0x00,}}, {0x7530,2,{0xCC,0xEF,0x00,0x00,}}, {0x7531,2,{0xD3,0xC9,0x00,0x00,}}, {0x7532,2,{0xBC,0xD7,0x00,0x00,}}, {0x7533,2,{0xC9,0xEA,0x00,0x00,}}, {0x7534,2,{0xAE,0x68,0x00,0x00,}}, {0x7535,2,{0xB5,0xE7,0x00,0x00,}}, {0x7536,2,{0xAE,0x69,0x00,0x00,}}, {0x7537,2,{0xC4,0xD0,0x00,0x00,}}, {0x7538,2,{0xB5,0xE9,0x00,0x00,}}, {0x7539,2,{0xAE,0x6A,0x00,0x00,}}, {0x753A,2,{0xEE,0xAE,0x00,0x00,}}, {0x753B,2,{0xBB,0xAD,0x00,0x00,}}, {0x753C,2,{0xAE,0x6B,0x00,0x00,}}, {0x753D,2,{0xAE,0x6C,0x00,0x00,}}, {0x753E,2,{0xE7,0xDE,0x00,0x00,}}, {0x753F,2,{0xAE,0x6D,0x00,0x00,}}, {0x7540,2,{0xEE,0xAF,0x00,0x00,}}, {0x7541,2,{0xAE,0x6E,0x00,0x00,}}, {0x7542,2,{0xAE,0x6F,0x00,0x00,}}, {0x7543,2,{0xAE,0x70,0x00,0x00,}}, {0x7544,2,{0xAE,0x71,0x00,0x00,}}, {0x7545,2,{0xB3,0xA9,0x00,0x00,}}, {0x7546,2,{0xAE,0x72,0x00,0x00,}}, {0x7547,2,{0xAE,0x73,0x00,0x00,}}, {0x7548,2,{0xEE,0xB2,0x00,0x00,}}, {0x7549,2,{0xAE,0x74,0x00,0x00,}}, {0x754A,2,{0xAE,0x75,0x00,0x00,}}, {0x754B,2,{0xEE,0xB1,0x00,0x00,}}, {0x754C,2,{0xBD,0xE7,0x00,0x00,}}, {0x754D,2,{0xAE,0x76,0x00,0x00,}}, {0x754E,2,{0xEE,0xB0,0x00,0x00,}}, {0x754F,2,{0xCE,0xB7,0x00,0x00,}}, {0x7550,2,{0xAE,0x77,0x00,0x00,}}, {0x7551,2,{0xAE,0x78,0x00,0x00,}}, {0x7552,2,{0xAE,0x79,0x00,0x00,}}, {0x7553,2,{0xAE,0x7A,0x00,0x00,}}, {0x7554,2,{0xC5,0xCF,0x00,0x00,}}, {0x7555,2,{0xAE,0x7B,0x00,0x00,}}, {0x7556,2,{0xAE,0x7C,0x00,0x00,}}, {0x7557,2,{0xAE,0x7D,0x00,0x00,}}, {0x7558,2,{0xAE,0x7E,0x00,0x00,}}, {0x7559,2,{0xC1,0xF4,0x00,0x00,}}, {0x755A,2,{0xDB,0xCE,0x00,0x00,}}, {0x755B,2,{0xEE,0xB3,0x00,0x00,}}, {0x755C,2,{0xD0,0xF3,0x00,0x00,}}, {0x755D,2,{0xAE,0x80,0x00,0x00,}}, {0x755E,2,{0xAE,0x81,0x00,0x00,}}, {0x755F,2,{0xAE,0x82,0x00,0x00,}}, {0x7560,2,{0xAE,0x83,0x00,0x00,}}, {0x7561,2,{0xAE,0x84,0x00,0x00,}}, {0x7562,2,{0xAE,0x85,0x00,0x00,}}, {0x7563,2,{0xAE,0x86,0x00,0x00,}}, {0x7564,2,{0xAE,0x87,0x00,0x00,}}, {0x7565,2,{0xC2,0xD4,0x00,0x00,}}, {0x7566,2,{0xC6,0xE8,0x00,0x00,}}, {0x7567,2,{0xAE,0x88,0x00,0x00,}}, {0x7568,2,{0xAE,0x89,0x00,0x00,}}, {0x7569,2,{0xAE,0x8A,0x00,0x00,}}, {0x756A,2,{0xB7,0xAC,0x00,0x00,}}, {0x756B,2,{0xAE,0x8B,0x00,0x00,}}, {0x756C,2,{0xAE,0x8C,0x00,0x00,}}, {0x756D,2,{0xAE,0x8D,0x00,0x00,}}, {0x756E,2,{0xAE,0x8E,0x00,0x00,}}, {0x756F,2,{0xAE,0x8F,0x00,0x00,}}, {0x7570,2,{0xAE,0x90,0x00,0x00,}}, {0x7571,2,{0xAE,0x91,0x00,0x00,}}, {0x7572,2,{0xEE,0xB4,0x00,0x00,}}, {0x7573,2,{0xAE,0x92,0x00,0x00,}}, {0x7574,2,{0xB3,0xEB,0x00,0x00,}}, {0x7575,2,{0xAE,0x93,0x00,0x00,}}, {0x7576,2,{0xAE,0x94,0x00,0x00,}}, {0x7577,2,{0xAE,0x95,0x00,0x00,}}, {0x7578,2,{0xBB,0xFB,0x00,0x00,}}, {0x7579,2,{0xEE,0xB5,0x00,0x00,}}, {0x757A,2,{0xAE,0x96,0x00,0x00,}}, {0x757B,2,{0xAE,0x97,0x00,0x00,}}, {0x757C,2,{0xAE,0x98,0x00,0x00,}}, {0x757D,2,{0xAE,0x99,0x00,0x00,}}, {0x757E,2,{0xAE,0x9A,0x00,0x00,}}, {0x757F,2,{0xE7,0xDC,0x00,0x00,}}, {0x7580,2,{0xAE,0x9B,0x00,0x00,}}, {0x7581,2,{0xAE,0x9C,0x00,0x00,}}, {0x7582,2,{0xAE,0x9D,0x00,0x00,}}, {0x7583,2,{0xEE,0xB6,0x00,0x00,}}, {0x7584,2,{0xAE,0x9E,0x00,0x00,}}, {0x7585,2,{0xAE,0x9F,0x00,0x00,}}, {0x7586,2,{0xBD,0xAE,0x00,0x00,}}, {0x7587,2,{0xAE,0xA0,0x00,0x00,}}, {0x7588,2,{0xAF,0x40,0x00,0x00,}}, {0x7589,2,{0xAF,0x41,0x00,0x00,}}, {0x758A,2,{0xAF,0x42,0x00,0x00,}}, {0x758B,2,{0xF1,0xE2,0x00,0x00,}}, {0x758C,2,{0xAF,0x43,0x00,0x00,}}, {0x758D,2,{0xAF,0x44,0x00,0x00,}}, {0x758E,2,{0xAF,0x45,0x00,0x00,}}, {0x758F,2,{0xCA,0xE8,0x00,0x00,}}, {0x7590,2,{0xAF,0x46,0x00,0x00,}}, {0x7591,2,{0xD2,0xC9,0x00,0x00,}}, {0x7592,2,{0xF0,0xDA,0x00,0x00,}}, {0x7593,2,{0xAF,0x47,0x00,0x00,}}, {0x7594,2,{0xF0,0xDB,0x00,0x00,}}, {0x7595,2,{0xAF,0x48,0x00,0x00,}}, {0x7596,2,{0xF0,0xDC,0x00,0x00,}}, {0x7597,2,{0xC1,0xC6,0x00,0x00,}}, {0x7598,2,{0xAF,0x49,0x00,0x00,}}, {0x7599,2,{0xB8,0xED,0x00,0x00,}}, {0x759A,2,{0xBE,0xCE,0x00,0x00,}}, {0x759B,2,{0xAF,0x4A,0x00,0x00,}}, {0x759C,2,{0xAF,0x4B,0x00,0x00,}}, {0x759D,2,{0xF0,0xDE,0x00,0x00,}}, {0x759E,2,{0xAF,0x4C,0x00,0x00,}}, {0x759F,2,{0xC5,0xB1,0x00,0x00,}}, {0x75A0,2,{0xF0,0xDD,0x00,0x00,}}, {0x75A1,2,{0xD1,0xF1,0x00,0x00,}}, {0x75A2,2,{0xAF,0x4D,0x00,0x00,}}, {0x75A3,2,{0xF0,0xE0,0x00,0x00,}}, {0x75A4,2,{0xB0,0xCC,0x00,0x00,}}, {0x75A5,2,{0xBD,0xEA,0x00,0x00,}}, {0x75A6,2,{0xAF,0x4E,0x00,0x00,}}, {0x75A7,2,{0xAF,0x4F,0x00,0x00,}}, {0x75A8,2,{0xAF,0x50,0x00,0x00,}}, {0x75A9,2,{0xAF,0x51,0x00,0x00,}}, {0x75AA,2,{0xAF,0x52,0x00,0x00,}}, {0x75AB,2,{0xD2,0xDF,0x00,0x00,}}, {0x75AC,2,{0xF0,0xDF,0x00,0x00,}}, {0x75AD,2,{0xAF,0x53,0x00,0x00,}}, {0x75AE,2,{0xB4,0xAF,0x00,0x00,}}, {0x75AF,2,{0xB7,0xE8,0x00,0x00,}}, {0x75B0,2,{0xF0,0xE6,0x00,0x00,}}, {0x75B1,2,{0xF0,0xE5,0x00,0x00,}}, {0x75B2,2,{0xC6,0xA3,0x00,0x00,}}, {0x75B3,2,{0xF0,0xE1,0x00,0x00,}}, {0x75B4,2,{0xF0,0xE2,0x00,0x00,}}, {0x75B5,2,{0xB4,0xC3,0x00,0x00,}}, {0x75B6,2,{0xAF,0x54,0x00,0x00,}}, {0x75B7,2,{0xAF,0x55,0x00,0x00,}}, {0x75B8,2,{0xF0,0xE3,0x00,0x00,}}, {0x75B9,2,{0xD5,0xEE,0x00,0x00,}}, {0x75BA,2,{0xAF,0x56,0x00,0x00,}}, {0x75BB,2,{0xAF,0x57,0x00,0x00,}}, {0x75BC,2,{0xCC,0xDB,0x00,0x00,}}, {0x75BD,2,{0xBE,0xD2,0x00,0x00,}}, {0x75BE,2,{0xBC,0xB2,0x00,0x00,}}, {0x75BF,2,{0xAF,0x58,0x00,0x00,}}, {0x75C0,2,{0xAF,0x59,0x00,0x00,}}, {0x75C1,2,{0xAF,0x5A,0x00,0x00,}}, {0x75C2,2,{0xF0,0xE8,0x00,0x00,}}, {0x75C3,2,{0xF0,0xE7,0x00,0x00,}}, {0x75C4,2,{0xF0,0xE4,0x00,0x00,}}, {0x75C5,2,{0xB2,0xA1,0x00,0x00,}}, {0x75C6,2,{0xAF,0x5B,0x00,0x00,}}, {0x75C7,2,{0xD6,0xA2,0x00,0x00,}}, {0x75C8,2,{0xD3,0xB8,0x00,0x00,}}, {0x75C9,2,{0xBE,0xB7,0x00,0x00,}}, {0x75CA,2,{0xC8,0xAC,0x00,0x00,}}, {0x75CB,2,{0xAF,0x5C,0x00,0x00,}}, {0x75CC,2,{0xAF,0x5D,0x00,0x00,}}, {0x75CD,2,{0xF0,0xEA,0x00,0x00,}}, {0x75CE,2,{0xAF,0x5E,0x00,0x00,}}, {0x75CF,2,{0xAF,0x5F,0x00,0x00,}}, {0x75D0,2,{0xAF,0x60,0x00,0x00,}}, {0x75D1,2,{0xAF,0x61,0x00,0x00,}}, {0x75D2,2,{0xD1,0xF7,0x00,0x00,}}, {0x75D3,2,{0xAF,0x62,0x00,0x00,}}, {0x75D4,2,{0xD6,0xCC,0x00,0x00,}}, {0x75D5,2,{0xBA,0xDB,0x00,0x00,}}, {0x75D6,2,{0xF0,0xE9,0x00,0x00,}}, {0x75D7,2,{0xAF,0x63,0x00,0x00,}}, {0x75D8,2,{0xB6,0xBB,0x00,0x00,}}, {0x75D9,2,{0xAF,0x64,0x00,0x00,}}, {0x75DA,2,{0xAF,0x65,0x00,0x00,}}, {0x75DB,2,{0xCD,0xB4,0x00,0x00,}}, {0x75DC,2,{0xAF,0x66,0x00,0x00,}}, {0x75DD,2,{0xAF,0x67,0x00,0x00,}}, {0x75DE,2,{0xC6,0xA6,0x00,0x00,}}, {0x75DF,2,{0xAF,0x68,0x00,0x00,}}, {0x75E0,2,{0xAF,0x69,0x00,0x00,}}, {0x75E1,2,{0xAF,0x6A,0x00,0x00,}}, {0x75E2,2,{0xC1,0xA1,0x00,0x00,}}, {0x75E3,2,{0xF0,0xEB,0x00,0x00,}}, {0x75E4,2,{0xF0,0xEE,0x00,0x00,}}, {0x75E5,2,{0xAF,0x6B,0x00,0x00,}}, {0x75E6,2,{0xF0,0xED,0x00,0x00,}}, {0x75E7,2,{0xF0,0xF0,0x00,0x00,}}, {0x75E8,2,{0xF0,0xEC,0x00,0x00,}}, {0x75E9,2,{0xAF,0x6C,0x00,0x00,}}, {0x75EA,2,{0xBB,0xBE,0x00,0x00,}}, {0x75EB,2,{0xF0,0xEF,0x00,0x00,}}, {0x75EC,2,{0xAF,0x6D,0x00,0x00,}}, {0x75ED,2,{0xAF,0x6E,0x00,0x00,}}, {0x75EE,2,{0xAF,0x6F,0x00,0x00,}}, {0x75EF,2,{0xAF,0x70,0x00,0x00,}}, {0x75F0,2,{0xCC,0xB5,0x00,0x00,}}, {0x75F1,2,{0xF0,0xF2,0x00,0x00,}}, {0x75F2,2,{0xAF,0x71,0x00,0x00,}}, {0x75F3,2,{0xAF,0x72,0x00,0x00,}}, {0x75F4,2,{0xB3,0xD5,0x00,0x00,}}, {0x75F5,2,{0xAF,0x73,0x00,0x00,}}, {0x75F6,2,{0xAF,0x74,0x00,0x00,}}, {0x75F7,2,{0xAF,0x75,0x00,0x00,}}, {0x75F8,2,{0xAF,0x76,0x00,0x00,}}, {0x75F9,2,{0xB1,0xD4,0x00,0x00,}}, {0x75FA,2,{0xAF,0x77,0x00,0x00,}}, {0x75FB,2,{0xAF,0x78,0x00,0x00,}}, {0x75FC,2,{0xF0,0xF3,0x00,0x00,}}, {0x75FD,2,{0xAF,0x79,0x00,0x00,}}, {0x75FE,2,{0xAF,0x7A,0x00,0x00,}}, {0x75FF,2,{0xF0,0xF4,0x00,0x00,}}, {0x7600,2,{0xF0,0xF6,0x00,0x00,}}, {0x7601,2,{0xB4,0xE1,0x00,0x00,}}, {0x7602,2,{0xAF,0x7B,0x00,0x00,}}, {0x7603,2,{0xF0,0xF1,0x00,0x00,}}, {0x7604,2,{0xAF,0x7C,0x00,0x00,}}, {0x7605,2,{0xF0,0xF7,0x00,0x00,}}, {0x7606,2,{0xAF,0x7D,0x00,0x00,}}, {0x7607,2,{0xAF,0x7E,0x00,0x00,}}, {0x7608,2,{0xAF,0x80,0x00,0x00,}}, {0x7609,2,{0xAF,0x81,0x00,0x00,}}, {0x760A,2,{0xF0,0xFA,0x00,0x00,}}, {0x760B,2,{0xAF,0x82,0x00,0x00,}}, {0x760C,2,{0xF0,0xF8,0x00,0x00,}}, {0x760D,2,{0xAF,0x83,0x00,0x00,}}, {0x760E,2,{0xAF,0x84,0x00,0x00,}}, {0x760F,2,{0xAF,0x85,0x00,0x00,}}, {0x7610,2,{0xF0,0xF5,0x00,0x00,}}, {0x7611,2,{0xAF,0x86,0x00,0x00,}}, {0x7612,2,{0xAF,0x87,0x00,0x00,}}, {0x7613,2,{0xAF,0x88,0x00,0x00,}}, {0x7614,2,{0xAF,0x89,0x00,0x00,}}, {0x7615,2,{0xF0,0xFD,0x00,0x00,}}, {0x7616,2,{0xAF,0x8A,0x00,0x00,}}, {0x7617,2,{0xF0,0xF9,0x00,0x00,}}, {0x7618,2,{0xF0,0xFC,0x00,0x00,}}, {0x7619,2,{0xF0,0xFE,0x00,0x00,}}, {0x761A,2,{0xAF,0x8B,0x00,0x00,}}, {0x761B,2,{0xF1,0xA1,0x00,0x00,}}, {0x761C,2,{0xAF,0x8C,0x00,0x00,}}, {0x761D,2,{0xAF,0x8D,0x00,0x00,}}, {0x761E,2,{0xAF,0x8E,0x00,0x00,}}, {0x761F,2,{0xCE,0xC1,0x00,0x00,}}, {0x7620,2,{0xF1,0xA4,0x00,0x00,}}, {0x7621,2,{0xAF,0x8F,0x00,0x00,}}, {0x7622,2,{0xF1,0xA3,0x00,0x00,}}, {0x7623,2,{0xAF,0x90,0x00,0x00,}}, {0x7624,2,{0xC1,0xF6,0x00,0x00,}}, {0x7625,2,{0xF0,0xFB,0x00,0x00,}}, {0x7626,2,{0xCA,0xDD,0x00,0x00,}}, {0x7627,2,{0xAF,0x91,0x00,0x00,}}, {0x7628,2,{0xAF,0x92,0x00,0x00,}}, {0x7629,2,{0xB4,0xF1,0x00,0x00,}}, {0x762A,2,{0xB1,0xF1,0x00,0x00,}}, {0x762B,2,{0xCC,0xB1,0x00,0x00,}}, {0x762C,2,{0xAF,0x93,0x00,0x00,}}, {0x762D,2,{0xF1,0xA6,0x00,0x00,}}, {0x762E,2,{0xAF,0x94,0x00,0x00,}}, {0x762F,2,{0xAF,0x95,0x00,0x00,}}, {0x7630,2,{0xF1,0xA7,0x00,0x00,}}, {0x7631,2,{0xAF,0x96,0x00,0x00,}}, {0x7632,2,{0xAF,0x97,0x00,0x00,}}, {0x7633,2,{0xF1,0xAC,0x00,0x00,}}, {0x7634,2,{0xD5,0xCE,0x00,0x00,}}, {0x7635,2,{0xF1,0xA9,0x00,0x00,}}, {0x7636,2,{0xAF,0x98,0x00,0x00,}}, {0x7637,2,{0xAF,0x99,0x00,0x00,}}, {0x7638,2,{0xC8,0xB3,0x00,0x00,}}, {0x7639,2,{0xAF,0x9A,0x00,0x00,}}, {0x763A,2,{0xAF,0x9B,0x00,0x00,}}, {0x763B,2,{0xAF,0x9C,0x00,0x00,}}, {0x763C,2,{0xF1,0xA2,0x00,0x00,}}, {0x763D,2,{0xAF,0x9D,0x00,0x00,}}, {0x763E,2,{0xF1,0xAB,0x00,0x00,}}, {0x763F,2,{0xF1,0xA8,0x00,0x00,}}, {0x7640,2,{0xF1,0xA5,0x00,0x00,}}, {0x7641,2,{0xAF,0x9E,0x00,0x00,}}, {0x7642,2,{0xAF,0x9F,0x00,0x00,}}, {0x7643,2,{0xF1,0xAA,0x00,0x00,}}, {0x7644,2,{0xAF,0xA0,0x00,0x00,}}, {0x7645,2,{0xB0,0x40,0x00,0x00,}}, {0x7646,2,{0xB0,0x41,0x00,0x00,}}, {0x7647,2,{0xB0,0x42,0x00,0x00,}}, {0x7648,2,{0xB0,0x43,0x00,0x00,}}, {0x7649,2,{0xB0,0x44,0x00,0x00,}}, {0x764A,2,{0xB0,0x45,0x00,0x00,}}, {0x764B,2,{0xB0,0x46,0x00,0x00,}}, {0x764C,2,{0xB0,0xA9,0x00,0x00,}}, {0x764D,2,{0xF1,0xAD,0x00,0x00,}}, {0x764E,2,{0xB0,0x47,0x00,0x00,}}, {0x764F,2,{0xB0,0x48,0x00,0x00,}}, {0x7650,2,{0xB0,0x49,0x00,0x00,}}, {0x7651,2,{0xB0,0x4A,0x00,0x00,}}, {0x7652,2,{0xB0,0x4B,0x00,0x00,}}, {0x7653,2,{0xB0,0x4C,0x00,0x00,}}, {0x7654,2,{0xF1,0xAF,0x00,0x00,}}, {0x7655,2,{0xB0,0x4D,0x00,0x00,}}, {0x7656,2,{0xF1,0xB1,0x00,0x00,}}, {0x7657,2,{0xB0,0x4E,0x00,0x00,}}, {0x7658,2,{0xB0,0x4F,0x00,0x00,}}, {0x7659,2,{0xB0,0x50,0x00,0x00,}}, {0x765A,2,{0xB0,0x51,0x00,0x00,}}, {0x765B,2,{0xB0,0x52,0x00,0x00,}}, {0x765C,2,{0xF1,0xB0,0x00,0x00,}}, {0x765D,2,{0xB0,0x53,0x00,0x00,}}, {0x765E,2,{0xF1,0xAE,0x00,0x00,}}, {0x765F,2,{0xB0,0x54,0x00,0x00,}}, {0x7660,2,{0xB0,0x55,0x00,0x00,}}, {0x7661,2,{0xB0,0x56,0x00,0x00,}}, {0x7662,2,{0xB0,0x57,0x00,0x00,}}, {0x7663,2,{0xD1,0xA2,0x00,0x00,}}, {0x7664,2,{0xB0,0x58,0x00,0x00,}}, {0x7665,2,{0xB0,0x59,0x00,0x00,}}, {0x7666,2,{0xB0,0x5A,0x00,0x00,}}, {0x7667,2,{0xB0,0x5B,0x00,0x00,}}, {0x7668,2,{0xB0,0x5C,0x00,0x00,}}, {0x7669,2,{0xB0,0x5D,0x00,0x00,}}, {0x766A,2,{0xB0,0x5E,0x00,0x00,}}, {0x766B,2,{0xF1,0xB2,0x00,0x00,}}, {0x766C,2,{0xB0,0x5F,0x00,0x00,}}, {0x766D,2,{0xB0,0x60,0x00,0x00,}}, {0x766E,2,{0xB0,0x61,0x00,0x00,}}, {0x766F,2,{0xF1,0xB3,0x00,0x00,}}, {0x7670,2,{0xB0,0x62,0x00,0x00,}}, {0x7671,2,{0xB0,0x63,0x00,0x00,}}, {0x7672,2,{0xB0,0x64,0x00,0x00,}}, {0x7673,2,{0xB0,0x65,0x00,0x00,}}, {0x7674,2,{0xB0,0x66,0x00,0x00,}}, {0x7675,2,{0xB0,0x67,0x00,0x00,}}, {0x7676,2,{0xB0,0x68,0x00,0x00,}}, {0x7677,2,{0xB0,0x69,0x00,0x00,}}, {0x7678,2,{0xB9,0xEF,0x00,0x00,}}, {0x7679,2,{0xB0,0x6A,0x00,0x00,}}, {0x767A,2,{0xB0,0x6B,0x00,0x00,}}, {0x767B,2,{0xB5,0xC7,0x00,0x00,}}, {0x767C,2,{0xB0,0x6C,0x00,0x00,}}, {0x767D,2,{0xB0,0xD7,0x00,0x00,}}, {0x767E,2,{0xB0,0xD9,0x00,0x00,}}, {0x767F,2,{0xB0,0x6D,0x00,0x00,}}, {0x7680,2,{0xB0,0x6E,0x00,0x00,}}, {0x7681,2,{0xB0,0x6F,0x00,0x00,}}, {0x7682,2,{0xD4,0xED,0x00,0x00,}}, {0x7683,2,{0xB0,0x70,0x00,0x00,}}, {0x7684,2,{0xB5,0xC4,0x00,0x00,}}, {0x7685,2,{0xB0,0x71,0x00,0x00,}}, {0x7686,2,{0xBD,0xD4,0x00,0x00,}}, {0x7687,2,{0xBB,0xCA,0x00,0x00,}}, {0x7688,2,{0xF0,0xA7,0x00,0x00,}}, {0x7689,2,{0xB0,0x72,0x00,0x00,}}, {0x768A,2,{0xB0,0x73,0x00,0x00,}}, {0x768B,2,{0xB8,0xDE,0x00,0x00,}}, {0x768C,2,{0xB0,0x74,0x00,0x00,}}, {0x768D,2,{0xB0,0x75,0x00,0x00,}}, {0x768E,2,{0xF0,0xA8,0x00,0x00,}}, {0x768F,2,{0xB0,0x76,0x00,0x00,}}, {0x7690,2,{0xB0,0x77,0x00,0x00,}}, {0x7691,2,{0xB0,0xA8,0x00,0x00,}}, {0x7692,2,{0xB0,0x78,0x00,0x00,}}, {0x7693,2,{0xF0,0xA9,0x00,0x00,}}, {0x7694,2,{0xB0,0x79,0x00,0x00,}}, {0x7695,2,{0xB0,0x7A,0x00,0x00,}}, {0x7696,2,{0xCD,0xEE,0x00,0x00,}}, {0x7697,2,{0xB0,0x7B,0x00,0x00,}}, {0x7698,2,{0xB0,0x7C,0x00,0x00,}}, {0x7699,2,{0xF0,0xAA,0x00,0x00,}}, {0x769A,2,{0xB0,0x7D,0x00,0x00,}}, {0x769B,2,{0xB0,0x7E,0x00,0x00,}}, {0x769C,2,{0xB0,0x80,0x00,0x00,}}, {0x769D,2,{0xB0,0x81,0x00,0x00,}}, {0x769E,2,{0xB0,0x82,0x00,0x00,}}, {0x769F,2,{0xB0,0x83,0x00,0x00,}}, {0x76A0,2,{0xB0,0x84,0x00,0x00,}}, {0x76A1,2,{0xB0,0x85,0x00,0x00,}}, {0x76A2,2,{0xB0,0x86,0x00,0x00,}}, {0x76A3,2,{0xB0,0x87,0x00,0x00,}}, {0x76A4,2,{0xF0,0xAB,0x00,0x00,}}, {0x76A5,2,{0xB0,0x88,0x00,0x00,}}, {0x76A6,2,{0xB0,0x89,0x00,0x00,}}, {0x76A7,2,{0xB0,0x8A,0x00,0x00,}}, {0x76A8,2,{0xB0,0x8B,0x00,0x00,}}, {0x76A9,2,{0xB0,0x8C,0x00,0x00,}}, {0x76AA,2,{0xB0,0x8D,0x00,0x00,}}, {0x76AB,2,{0xB0,0x8E,0x00,0x00,}}, {0x76AC,2,{0xB0,0x8F,0x00,0x00,}}, {0x76AD,2,{0xB0,0x90,0x00,0x00,}}, {0x76AE,2,{0xC6,0xA4,0x00,0x00,}}, {0x76AF,2,{0xB0,0x91,0x00,0x00,}}, {0x76B0,2,{0xB0,0x92,0x00,0x00,}}, {0x76B1,2,{0xD6,0xE5,0x00,0x00,}}, {0x76B2,2,{0xF1,0xE4,0x00,0x00,}}, {0x76B3,2,{0xB0,0x93,0x00,0x00,}}, {0x76B4,2,{0xF1,0xE5,0x00,0x00,}}, {0x76B5,2,{0xB0,0x94,0x00,0x00,}}, {0x76B6,2,{0xB0,0x95,0x00,0x00,}}, {0x76B7,2,{0xB0,0x96,0x00,0x00,}}, {0x76B8,2,{0xB0,0x97,0x00,0x00,}}, {0x76B9,2,{0xB0,0x98,0x00,0x00,}}, {0x76BA,2,{0xB0,0x99,0x00,0x00,}}, {0x76BB,2,{0xB0,0x9A,0x00,0x00,}}, {0x76BC,2,{0xB0,0x9B,0x00,0x00,}}, {0x76BD,2,{0xB0,0x9C,0x00,0x00,}}, {0x76BE,2,{0xB0,0x9D,0x00,0x00,}}, {0x76BF,2,{0xC3,0xF3,0x00,0x00,}}, {0x76C0,2,{0xB0,0x9E,0x00,0x00,}}, {0x76C1,2,{0xB0,0x9F,0x00,0x00,}}, {0x76C2,2,{0xD3,0xDB,0x00,0x00,}}, {0x76C3,2,{0xB0,0xA0,0x00,0x00,}}, {0x76C4,2,{0xB1,0x40,0x00,0x00,}}, {0x76C5,2,{0xD6,0xD1,0x00,0x00,}}, {0x76C6,2,{0xC5,0xE8,0x00,0x00,}}, {0x76C7,2,{0xB1,0x41,0x00,0x00,}}, {0x76C8,2,{0xD3,0xAF,0x00,0x00,}}, {0x76C9,2,{0xB1,0x42,0x00,0x00,}}, {0x76CA,2,{0xD2,0xE6,0x00,0x00,}}, {0x76CB,2,{0xB1,0x43,0x00,0x00,}}, {0x76CC,2,{0xB1,0x44,0x00,0x00,}}, {0x76CD,2,{0xEE,0xC1,0x00,0x00,}}, {0x76CE,2,{0xB0,0xBB,0x00,0x00,}}, {0x76CF,2,{0xD5,0xB5,0x00,0x00,}}, {0x76D0,2,{0xD1,0xCE,0x00,0x00,}}, {0x76D1,2,{0xBC,0xE0,0x00,0x00,}}, {0x76D2,2,{0xBA,0xD0,0x00,0x00,}}, {0x76D3,2,{0xB1,0x45,0x00,0x00,}}, {0x76D4,2,{0xBF,0xF8,0x00,0x00,}}, {0x76D5,2,{0xB1,0x46,0x00,0x00,}}, {0x76D6,2,{0xB8,0xC7,0x00,0x00,}}, {0x76D7,2,{0xB5,0xC1,0x00,0x00,}}, {0x76D8,2,{0xC5,0xCC,0x00,0x00,}}, {0x76D9,2,{0xB1,0x47,0x00,0x00,}}, {0x76DA,2,{0xB1,0x48,0x00,0x00,}}, {0x76DB,2,{0xCA,0xA2,0x00,0x00,}}, {0x76DC,2,{0xB1,0x49,0x00,0x00,}}, {0x76DD,2,{0xB1,0x4A,0x00,0x00,}}, {0x76DE,2,{0xB1,0x4B,0x00,0x00,}}, {0x76DF,2,{0xC3,0xCB,0x00,0x00,}}, {0x76E0,2,{0xB1,0x4C,0x00,0x00,}}, {0x76E1,2,{0xB1,0x4D,0x00,0x00,}}, {0x76E2,2,{0xB1,0x4E,0x00,0x00,}}, {0x76E3,2,{0xB1,0x4F,0x00,0x00,}}, {0x76E4,2,{0xB1,0x50,0x00,0x00,}}, {0x76E5,2,{0xEE,0xC2,0x00,0x00,}}, {0x76E6,2,{0xB1,0x51,0x00,0x00,}}, {0x76E7,2,{0xB1,0x52,0x00,0x00,}}, {0x76E8,2,{0xB1,0x53,0x00,0x00,}}, {0x76E9,2,{0xB1,0x54,0x00,0x00,}}, {0x76EA,2,{0xB1,0x55,0x00,0x00,}}, {0x76EB,2,{0xB1,0x56,0x00,0x00,}}, {0x76EC,2,{0xB1,0x57,0x00,0x00,}}, {0x76ED,2,{0xB1,0x58,0x00,0x00,}}, {0x76EE,2,{0xC4,0xBF,0x00,0x00,}}, {0x76EF,2,{0xB6,0xA2,0x00,0x00,}}, {0x76F0,2,{0xB1,0x59,0x00,0x00,}}, {0x76F1,2,{0xED,0xEC,0x00,0x00,}}, {0x76F2,2,{0xC3,0xA4,0x00,0x00,}}, {0x76F3,2,{0xB1,0x5A,0x00,0x00,}}, {0x76F4,2,{0xD6,0xB1,0x00,0x00,}}, {0x76F5,2,{0xB1,0x5B,0x00,0x00,}}, {0x76F6,2,{0xB1,0x5C,0x00,0x00,}}, {0x76F7,2,{0xB1,0x5D,0x00,0x00,}}, {0x76F8,2,{0xCF,0xE0,0x00,0x00,}}, {0x76F9,2,{0xED,0xEF,0x00,0x00,}}, {0x76FA,2,{0xB1,0x5E,0x00,0x00,}}, {0x76FB,2,{0xB1,0x5F,0x00,0x00,}}, {0x76FC,2,{0xC5,0xCE,0x00,0x00,}}, {0x76FD,2,{0xB1,0x60,0x00,0x00,}}, {0x76FE,2,{0xB6,0xDC,0x00,0x00,}}, {0x76FF,2,{0xB1,0x61,0x00,0x00,}}, {0x7700,2,{0xB1,0x62,0x00,0x00,}}, {0x7701,2,{0xCA,0xA1,0x00,0x00,}}, {0x7702,2,{0xB1,0x63,0x00,0x00,}}, {0x7703,2,{0xB1,0x64,0x00,0x00,}}, {0x7704,2,{0xED,0xED,0x00,0x00,}}, {0x7705,2,{0xB1,0x65,0x00,0x00,}}, {0x7706,2,{0xB1,0x66,0x00,0x00,}}, {0x7707,2,{0xED,0xF0,0x00,0x00,}}, {0x7708,2,{0xED,0xF1,0x00,0x00,}}, {0x7709,2,{0xC3,0xBC,0x00,0x00,}}, {0x770A,2,{0xB1,0x67,0x00,0x00,}}, {0x770B,2,{0xBF,0xB4,0x00,0x00,}}, {0x770C,2,{0xB1,0x68,0x00,0x00,}}, {0x770D,2,{0xED,0xEE,0x00,0x00,}}, {0x770E,2,{0xB1,0x69,0x00,0x00,}}, {0x770F,2,{0xB1,0x6A,0x00,0x00,}}, {0x7710,2,{0xB1,0x6B,0x00,0x00,}}, {0x7711,2,{0xB1,0x6C,0x00,0x00,}}, {0x7712,2,{0xB1,0x6D,0x00,0x00,}}, {0x7713,2,{0xB1,0x6E,0x00,0x00,}}, {0x7714,2,{0xB1,0x6F,0x00,0x00,}}, {0x7715,2,{0xB1,0x70,0x00,0x00,}}, {0x7716,2,{0xB1,0x71,0x00,0x00,}}, {0x7717,2,{0xB1,0x72,0x00,0x00,}}, {0x7718,2,{0xB1,0x73,0x00,0x00,}}, {0x7719,2,{0xED,0xF4,0x00,0x00,}}, {0x771A,2,{0xED,0xF2,0x00,0x00,}}, {0x771B,2,{0xB1,0x74,0x00,0x00,}}, {0x771C,2,{0xB1,0x75,0x00,0x00,}}, {0x771D,2,{0xB1,0x76,0x00,0x00,}}, {0x771E,2,{0xB1,0x77,0x00,0x00,}}, {0x771F,2,{0xD5,0xE6,0x00,0x00,}}, {0x7720,2,{0xC3,0xDF,0x00,0x00,}}, {0x7721,2,{0xB1,0x78,0x00,0x00,}}, {0x7722,2,{0xED,0xF3,0x00,0x00,}}, {0x7723,2,{0xB1,0x79,0x00,0x00,}}, {0x7724,2,{0xB1,0x7A,0x00,0x00,}}, {0x7725,2,{0xB1,0x7B,0x00,0x00,}}, {0x7726,2,{0xED,0xF6,0x00,0x00,}}, {0x7727,2,{0xB1,0x7C,0x00,0x00,}}, {0x7728,2,{0xD5,0xA3,0x00,0x00,}}, {0x7729,2,{0xD1,0xA3,0x00,0x00,}}, {0x772A,2,{0xB1,0x7D,0x00,0x00,}}, {0x772B,2,{0xB1,0x7E,0x00,0x00,}}, {0x772C,2,{0xB1,0x80,0x00,0x00,}}, {0x772D,2,{0xED,0xF5,0x00,0x00,}}, {0x772E,2,{0xB1,0x81,0x00,0x00,}}, {0x772F,2,{0xC3,0xD0,0x00,0x00,}}, {0x7730,2,{0xB1,0x82,0x00,0x00,}}, {0x7731,2,{0xB1,0x83,0x00,0x00,}}, {0x7732,2,{0xB1,0x84,0x00,0x00,}}, {0x7733,2,{0xB1,0x85,0x00,0x00,}}, {0x7734,2,{0xB1,0x86,0x00,0x00,}}, {0x7735,2,{0xED,0xF7,0x00,0x00,}}, {0x7736,2,{0xBF,0xF4,0x00,0x00,}}, {0x7737,2,{0xBE,0xEC,0x00,0x00,}}, {0x7738,2,{0xED,0xF8,0x00,0x00,}}, {0x7739,2,{0xB1,0x87,0x00,0x00,}}, {0x773A,2,{0xCC,0xF7,0x00,0x00,}}, {0x773B,2,{0xB1,0x88,0x00,0x00,}}, {0x773C,2,{0xD1,0xDB,0x00,0x00,}}, {0x773D,2,{0xB1,0x89,0x00,0x00,}}, {0x773E,2,{0xB1,0x8A,0x00,0x00,}}, {0x773F,2,{0xB1,0x8B,0x00,0x00,}}, {0x7740,2,{0xD7,0xC5,0x00,0x00,}}, {0x7741,2,{0xD5,0xF6,0x00,0x00,}}, {0x7742,2,{0xB1,0x8C,0x00,0x00,}}, {0x7743,2,{0xED,0xFC,0x00,0x00,}}, {0x7744,2,{0xB1,0x8D,0x00,0x00,}}, {0x7745,2,{0xB1,0x8E,0x00,0x00,}}, {0x7746,2,{0xB1,0x8F,0x00,0x00,}}, {0x7747,2,{0xED,0xFB,0x00,0x00,}}, {0x7748,2,{0xB1,0x90,0x00,0x00,}}, {0x7749,2,{0xB1,0x91,0x00,0x00,}}, {0x774A,2,{0xB1,0x92,0x00,0x00,}}, {0x774B,2,{0xB1,0x93,0x00,0x00,}}, {0x774C,2,{0xB1,0x94,0x00,0x00,}}, {0x774D,2,{0xB1,0x95,0x00,0x00,}}, {0x774E,2,{0xB1,0x96,0x00,0x00,}}, {0x774F,2,{0xB1,0x97,0x00,0x00,}}, {0x7750,2,{0xED,0xF9,0x00,0x00,}}, {0x7751,2,{0xED,0xFA,0x00,0x00,}}, {0x7752,2,{0xB1,0x98,0x00,0x00,}}, {0x7753,2,{0xB1,0x99,0x00,0x00,}}, {0x7754,2,{0xB1,0x9A,0x00,0x00,}}, {0x7755,2,{0xB1,0x9B,0x00,0x00,}}, {0x7756,2,{0xB1,0x9C,0x00,0x00,}}, {0x7757,2,{0xB1,0x9D,0x00,0x00,}}, {0x7758,2,{0xB1,0x9E,0x00,0x00,}}, {0x7759,2,{0xB1,0x9F,0x00,0x00,}}, {0x775A,2,{0xED,0xFD,0x00,0x00,}}, {0x775B,2,{0xBE,0xA6,0x00,0x00,}}, {0x775C,2,{0xB1,0xA0,0x00,0x00,}}, {0x775D,2,{0xB2,0x40,0x00,0x00,}}, {0x775E,2,{0xB2,0x41,0x00,0x00,}}, {0x775F,2,{0xB2,0x42,0x00,0x00,}}, {0x7760,2,{0xB2,0x43,0x00,0x00,}}, {0x7761,2,{0xCB,0xAF,0x00,0x00,}}, {0x7762,2,{0xEE,0xA1,0x00,0x00,}}, {0x7763,2,{0xB6,0xBD,0x00,0x00,}}, {0x7764,2,{0xB2,0x44,0x00,0x00,}}, {0x7765,2,{0xEE,0xA2,0x00,0x00,}}, {0x7766,2,{0xC4,0xC0,0x00,0x00,}}, {0x7767,2,{0xB2,0x45,0x00,0x00,}}, {0x7768,2,{0xED,0xFE,0x00,0x00,}}, {0x7769,2,{0xB2,0x46,0x00,0x00,}}, {0x776A,2,{0xB2,0x47,0x00,0x00,}}, {0x776B,2,{0xBD,0xDE,0x00,0x00,}}, {0x776C,2,{0xB2,0xC7,0x00,0x00,}}, {0x776D,2,{0xB2,0x48,0x00,0x00,}}, {0x776E,2,{0xB2,0x49,0x00,0x00,}}, {0x776F,2,{0xB2,0x4A,0x00,0x00,}}, {0x7770,2,{0xB2,0x4B,0x00,0x00,}}, {0x7771,2,{0xB2,0x4C,0x00,0x00,}}, {0x7772,2,{0xB2,0x4D,0x00,0x00,}}, {0x7773,2,{0xB2,0x4E,0x00,0x00,}}, {0x7774,2,{0xB2,0x4F,0x00,0x00,}}, {0x7775,2,{0xB2,0x50,0x00,0x00,}}, {0x7776,2,{0xB2,0x51,0x00,0x00,}}, {0x7777,2,{0xB2,0x52,0x00,0x00,}}, {0x7778,2,{0xB2,0x53,0x00,0x00,}}, {0x7779,2,{0xB6,0xC3,0x00,0x00,}}, {0x777A,2,{0xB2,0x54,0x00,0x00,}}, {0x777B,2,{0xB2,0x55,0x00,0x00,}}, {0x777C,2,{0xB2,0x56,0x00,0x00,}}, {0x777D,2,{0xEE,0xA5,0x00,0x00,}}, {0x777E,2,{0xD8,0xBA,0x00,0x00,}}, {0x777F,2,{0xEE,0xA3,0x00,0x00,}}, {0x7780,2,{0xEE,0xA6,0x00,0x00,}}, {0x7781,2,{0xB2,0x57,0x00,0x00,}}, {0x7782,2,{0xB2,0x58,0x00,0x00,}}, {0x7783,2,{0xB2,0x59,0x00,0x00,}}, {0x7784,2,{0xC3,0xE9,0x00,0x00,}}, {0x7785,2,{0xB3,0xF2,0x00,0x00,}}, {0x7786,2,{0xB2,0x5A,0x00,0x00,}}, {0x7787,2,{0xB2,0x5B,0x00,0x00,}}, {0x7788,2,{0xB2,0x5C,0x00,0x00,}}, {0x7789,2,{0xB2,0x5D,0x00,0x00,}}, {0x778A,2,{0xB2,0x5E,0x00,0x00,}}, {0x778B,2,{0xB2,0x5F,0x00,0x00,}}, {0x778C,2,{0xEE,0xA7,0x00,0x00,}}, {0x778D,2,{0xEE,0xA4,0x00,0x00,}}, {0x778E,2,{0xCF,0xB9,0x00,0x00,}}, {0x778F,2,{0xB2,0x60,0x00,0x00,}}, {0x7790,2,{0xB2,0x61,0x00,0x00,}}, {0x7791,2,{0xEE,0xA8,0x00,0x00,}}, {0x7792,2,{0xC2,0xF7,0x00,0x00,}}, {0x7793,2,{0xB2,0x62,0x00,0x00,}}, {0x7794,2,{0xB2,0x63,0x00,0x00,}}, {0x7795,2,{0xB2,0x64,0x00,0x00,}}, {0x7796,2,{0xB2,0x65,0x00,0x00,}}, {0x7797,2,{0xB2,0x66,0x00,0x00,}}, {0x7798,2,{0xB2,0x67,0x00,0x00,}}, {0x7799,2,{0xB2,0x68,0x00,0x00,}}, {0x779A,2,{0xB2,0x69,0x00,0x00,}}, {0x779B,2,{0xB2,0x6A,0x00,0x00,}}, {0x779C,2,{0xB2,0x6B,0x00,0x00,}}, {0x779D,2,{0xB2,0x6C,0x00,0x00,}}, {0x779E,2,{0xB2,0x6D,0x00,0x00,}}, {0x779F,2,{0xEE,0xA9,0x00,0x00,}}, {0x77A0,2,{0xEE,0xAA,0x00,0x00,}}, {0x77A1,2,{0xB2,0x6E,0x00,0x00,}}, {0x77A2,2,{0xDE,0xAB,0x00,0x00,}}, {0x77A3,2,{0xB2,0x6F,0x00,0x00,}}, {0x77A4,2,{0xB2,0x70,0x00,0x00,}}, {0x77A5,2,{0xC6,0xB3,0x00,0x00,}}, {0x77A6,2,{0xB2,0x71,0x00,0x00,}}, {0x77A7,2,{0xC7,0xC6,0x00,0x00,}}, {0x77A8,2,{0xB2,0x72,0x00,0x00,}}, {0x77A9,2,{0xD6,0xF5,0x00,0x00,}}, {0x77AA,2,{0xB5,0xC9,0x00,0x00,}}, {0x77AB,2,{0xB2,0x73,0x00,0x00,}}, {0x77AC,2,{0xCB,0xB2,0x00,0x00,}}, {0x77AD,2,{0xB2,0x74,0x00,0x00,}}, {0x77AE,2,{0xB2,0x75,0x00,0x00,}}, {0x77AF,2,{0xB2,0x76,0x00,0x00,}}, {0x77B0,2,{0xEE,0xAB,0x00,0x00,}}, {0x77B1,2,{0xB2,0x77,0x00,0x00,}}, {0x77B2,2,{0xB2,0x78,0x00,0x00,}}, {0x77B3,2,{0xCD,0xAB,0x00,0x00,}}, {0x77B4,2,{0xB2,0x79,0x00,0x00,}}, {0x77B5,2,{0xEE,0xAC,0x00,0x00,}}, {0x77B6,2,{0xB2,0x7A,0x00,0x00,}}, {0x77B7,2,{0xB2,0x7B,0x00,0x00,}}, {0x77B8,2,{0xB2,0x7C,0x00,0x00,}}, {0x77B9,2,{0xB2,0x7D,0x00,0x00,}}, {0x77BA,2,{0xB2,0x7E,0x00,0x00,}}, {0x77BB,2,{0xD5,0xB0,0x00,0x00,}}, {0x77BC,2,{0xB2,0x80,0x00,0x00,}}, {0x77BD,2,{0xEE,0xAD,0x00,0x00,}}, {0x77BE,2,{0xB2,0x81,0x00,0x00,}}, {0x77BF,2,{0xF6,0xC4,0x00,0x00,}}, {0x77C0,2,{0xB2,0x82,0x00,0x00,}}, {0x77C1,2,{0xB2,0x83,0x00,0x00,}}, {0x77C2,2,{0xB2,0x84,0x00,0x00,}}, {0x77C3,2,{0xB2,0x85,0x00,0x00,}}, {0x77C4,2,{0xB2,0x86,0x00,0x00,}}, {0x77C5,2,{0xB2,0x87,0x00,0x00,}}, {0x77C6,2,{0xB2,0x88,0x00,0x00,}}, {0x77C7,2,{0xB2,0x89,0x00,0x00,}}, {0x77C8,2,{0xB2,0x8A,0x00,0x00,}}, {0x77C9,2,{0xB2,0x8B,0x00,0x00,}}, {0x77CA,2,{0xB2,0x8C,0x00,0x00,}}, {0x77CB,2,{0xB2,0x8D,0x00,0x00,}}, {0x77CC,2,{0xB2,0x8E,0x00,0x00,}}, {0x77CD,2,{0xDB,0xC7,0x00,0x00,}}, {0x77CE,2,{0xB2,0x8F,0x00,0x00,}}, {0x77CF,2,{0xB2,0x90,0x00,0x00,}}, {0x77D0,2,{0xB2,0x91,0x00,0x00,}}, {0x77D1,2,{0xB2,0x92,0x00,0x00,}}, {0x77D2,2,{0xB2,0x93,0x00,0x00,}}, {0x77D3,2,{0xB2,0x94,0x00,0x00,}}, {0x77D4,2,{0xB2,0x95,0x00,0x00,}}, {0x77D5,2,{0xB2,0x96,0x00,0x00,}}, {0x77D6,2,{0xB2,0x97,0x00,0x00,}}, {0x77D7,2,{0xB4,0xA3,0x00,0x00,}}, {0x77D8,2,{0xB2,0x98,0x00,0x00,}}, {0x77D9,2,{0xB2,0x99,0x00,0x00,}}, {0x77DA,2,{0xB2,0x9A,0x00,0x00,}}, {0x77DB,2,{0xC3,0xAC,0x00,0x00,}}, {0x77DC,2,{0xF1,0xE6,0x00,0x00,}}, {0x77DD,2,{0xB2,0x9B,0x00,0x00,}}, {0x77DE,2,{0xB2,0x9C,0x00,0x00,}}, {0x77DF,2,{0xB2,0x9D,0x00,0x00,}}, {0x77E0,2,{0xB2,0x9E,0x00,0x00,}}, {0x77E1,2,{0xB2,0x9F,0x00,0x00,}}, {0x77E2,2,{0xCA,0xB8,0x00,0x00,}}, {0x77E3,2,{0xD2,0xD3,0x00,0x00,}}, {0x77E4,2,{0xB2,0xA0,0x00,0x00,}}, {0x77E5,2,{0xD6,0xAA,0x00,0x00,}}, {0x77E6,2,{0xB3,0x40,0x00,0x00,}}, {0x77E7,2,{0xEF,0xF2,0x00,0x00,}}, {0x77E8,2,{0xB3,0x41,0x00,0x00,}}, {0x77E9,2,{0xBE,0xD8,0x00,0x00,}}, {0x77EA,2,{0xB3,0x42,0x00,0x00,}}, {0x77EB,2,{0xBD,0xC3,0x00,0x00,}}, {0x77EC,2,{0xEF,0xF3,0x00,0x00,}}, {0x77ED,2,{0xB6,0xCC,0x00,0x00,}}, {0x77EE,2,{0xB0,0xAB,0x00,0x00,}}, {0x77EF,2,{0xB3,0x43,0x00,0x00,}}, {0x77F0,2,{0xB3,0x44,0x00,0x00,}}, {0x77F1,2,{0xB3,0x45,0x00,0x00,}}, {0x77F2,2,{0xB3,0x46,0x00,0x00,}}, {0x77F3,2,{0xCA,0xAF,0x00,0x00,}}, {0x77F4,2,{0xB3,0x47,0x00,0x00,}}, {0x77F5,2,{0xB3,0x48,0x00,0x00,}}, {0x77F6,2,{0xED,0xB6,0x00,0x00,}}, {0x77F7,2,{0xB3,0x49,0x00,0x00,}}, {0x77F8,2,{0xED,0xB7,0x00,0x00,}}, {0x77F9,2,{0xB3,0x4A,0x00,0x00,}}, {0x77FA,2,{0xB3,0x4B,0x00,0x00,}}, {0x77FB,2,{0xB3,0x4C,0x00,0x00,}}, {0x77FC,2,{0xB3,0x4D,0x00,0x00,}}, {0x77FD,2,{0xCE,0xF9,0x00,0x00,}}, {0x77FE,2,{0xB7,0xAF,0x00,0x00,}}, {0x77FF,2,{0xBF,0xF3,0x00,0x00,}}, {0x7800,2,{0xED,0xB8,0x00,0x00,}}, {0x7801,2,{0xC2,0xEB,0x00,0x00,}}, {0x7802,2,{0xC9,0xB0,0x00,0x00,}}, {0x7803,2,{0xB3,0x4E,0x00,0x00,}}, {0x7804,2,{0xB3,0x4F,0x00,0x00,}}, {0x7805,2,{0xB3,0x50,0x00,0x00,}}, {0x7806,2,{0xB3,0x51,0x00,0x00,}}, {0x7807,2,{0xB3,0x52,0x00,0x00,}}, {0x7808,2,{0xB3,0x53,0x00,0x00,}}, {0x7809,2,{0xED,0xB9,0x00,0x00,}}, {0x780A,2,{0xB3,0x54,0x00,0x00,}}, {0x780B,2,{0xB3,0x55,0x00,0x00,}}, {0x780C,2,{0xC6,0xF6,0x00,0x00,}}, {0x780D,2,{0xBF,0xB3,0x00,0x00,}}, {0x780E,2,{0xB3,0x56,0x00,0x00,}}, {0x780F,2,{0xB3,0x57,0x00,0x00,}}, {0x7810,2,{0xB3,0x58,0x00,0x00,}}, {0x7811,2,{0xED,0xBC,0x00,0x00,}}, {0x7812,2,{0xC5,0xF8,0x00,0x00,}}, {0x7813,2,{0xB3,0x59,0x00,0x00,}}, {0x7814,2,{0xD1,0xD0,0x00,0x00,}}, {0x7815,2,{0xB3,0x5A,0x00,0x00,}}, {0x7816,2,{0xD7,0xA9,0x00,0x00,}}, {0x7817,2,{0xED,0xBA,0x00,0x00,}}, {0x7818,2,{0xED,0xBB,0x00,0x00,}}, {0x7819,2,{0xB3,0x5B,0x00,0x00,}}, {0x781A,2,{0xD1,0xE2,0x00,0x00,}}, {0x781B,2,{0xB3,0x5C,0x00,0x00,}}, {0x781C,2,{0xED,0xBF,0x00,0x00,}}, {0x781D,2,{0xED,0xC0,0x00,0x00,}}, {0x781E,2,{0xB3,0x5D,0x00,0x00,}}, {0x781F,2,{0xED,0xC4,0x00,0x00,}}, {0x7820,2,{0xB3,0x5E,0x00,0x00,}}, {0x7821,2,{0xB3,0x5F,0x00,0x00,}}, {0x7822,2,{0xB3,0x60,0x00,0x00,}}, {0x7823,2,{0xED,0xC8,0x00,0x00,}}, {0x7824,2,{0xB3,0x61,0x00,0x00,}}, {0x7825,2,{0xED,0xC6,0x00,0x00,}}, {0x7826,2,{0xED,0xCE,0x00,0x00,}}, {0x7827,2,{0xD5,0xE8,0x00,0x00,}}, {0x7828,2,{0xB3,0x62,0x00,0x00,}}, {0x7829,2,{0xED,0xC9,0x00,0x00,}}, {0x782A,2,{0xB3,0x63,0x00,0x00,}}, {0x782B,2,{0xB3,0x64,0x00,0x00,}}, {0x782C,2,{0xED,0xC7,0x00,0x00,}}, {0x782D,2,{0xED,0xBE,0x00,0x00,}}, {0x782E,2,{0xB3,0x65,0x00,0x00,}}, {0x782F,2,{0xB3,0x66,0x00,0x00,}}, {0x7830,2,{0xC5,0xE9,0x00,0x00,}}, {0x7831,2,{0xB3,0x67,0x00,0x00,}}, {0x7832,2,{0xB3,0x68,0x00,0x00,}}, {0x7833,2,{0xB3,0x69,0x00,0x00,}}, {0x7834,2,{0xC6,0xC6,0x00,0x00,}}, {0x7835,2,{0xB3,0x6A,0x00,0x00,}}, {0x7836,2,{0xB3,0x6B,0x00,0x00,}}, {0x7837,2,{0xC9,0xE9,0x00,0x00,}}, {0x7838,2,{0xD4,0xD2,0x00,0x00,}}, {0x7839,2,{0xED,0xC1,0x00,0x00,}}, {0x783A,2,{0xED,0xC2,0x00,0x00,}}, {0x783B,2,{0xED,0xC3,0x00,0x00,}}, {0x783C,2,{0xED,0xC5,0x00,0x00,}}, {0x783D,2,{0xB3,0x6C,0x00,0x00,}}, {0x783E,2,{0xC0,0xF9,0x00,0x00,}}, {0x783F,2,{0xB3,0x6D,0x00,0x00,}}, {0x7840,2,{0xB4,0xA1,0x00,0x00,}}, {0x7841,2,{0xB3,0x6E,0x00,0x00,}}, {0x7842,2,{0xB3,0x6F,0x00,0x00,}}, {0x7843,2,{0xB3,0x70,0x00,0x00,}}, {0x7844,2,{0xB3,0x71,0x00,0x00,}}, {0x7845,2,{0xB9,0xE8,0x00,0x00,}}, {0x7846,2,{0xB3,0x72,0x00,0x00,}}, {0x7847,2,{0xED,0xD0,0x00,0x00,}}, {0x7848,2,{0xB3,0x73,0x00,0x00,}}, {0x7849,2,{0xB3,0x74,0x00,0x00,}}, {0x784A,2,{0xB3,0x75,0x00,0x00,}}, {0x784B,2,{0xB3,0x76,0x00,0x00,}}, {0x784C,2,{0xED,0xD1,0x00,0x00,}}, {0x784D,2,{0xB3,0x77,0x00,0x00,}}, {0x784E,2,{0xED,0xCA,0x00,0x00,}}, {0x784F,2,{0xB3,0x78,0x00,0x00,}}, {0x7850,2,{0xED,0xCF,0x00,0x00,}}, {0x7851,2,{0xB3,0x79,0x00,0x00,}}, {0x7852,2,{0xCE,0xF8,0x00,0x00,}}, {0x7853,2,{0xB3,0x7A,0x00,0x00,}}, {0x7854,2,{0xB3,0x7B,0x00,0x00,}}, {0x7855,2,{0xCB,0xB6,0x00,0x00,}}, {0x7856,2,{0xED,0xCC,0x00,0x00,}}, {0x7857,2,{0xED,0xCD,0x00,0x00,}}, {0x7858,2,{0xB3,0x7C,0x00,0x00,}}, {0x7859,2,{0xB3,0x7D,0x00,0x00,}}, {0x785A,2,{0xB3,0x7E,0x00,0x00,}}, {0x785B,2,{0xB3,0x80,0x00,0x00,}}, {0x785C,2,{0xB3,0x81,0x00,0x00,}}, {0x785D,2,{0xCF,0xF5,0x00,0x00,}}, {0x785E,2,{0xB3,0x82,0x00,0x00,}}, {0x785F,2,{0xB3,0x83,0x00,0x00,}}, {0x7860,2,{0xB3,0x84,0x00,0x00,}}, {0x7861,2,{0xB3,0x85,0x00,0x00,}}, {0x7862,2,{0xB3,0x86,0x00,0x00,}}, {0x7863,2,{0xB3,0x87,0x00,0x00,}}, {0x7864,2,{0xB3,0x88,0x00,0x00,}}, {0x7865,2,{0xB3,0x89,0x00,0x00,}}, {0x7866,2,{0xB3,0x8A,0x00,0x00,}}, {0x7867,2,{0xB3,0x8B,0x00,0x00,}}, {0x7868,2,{0xB3,0x8C,0x00,0x00,}}, {0x7869,2,{0xB3,0x8D,0x00,0x00,}}, {0x786A,2,{0xED,0xD2,0x00,0x00,}}, {0x786B,2,{0xC1,0xF2,0x00,0x00,}}, {0x786C,2,{0xD3,0xB2,0x00,0x00,}}, {0x786D,2,{0xED,0xCB,0x00,0x00,}}, {0x786E,2,{0xC8,0xB7,0x00,0x00,}}, {0x786F,2,{0xB3,0x8E,0x00,0x00,}}, {0x7870,2,{0xB3,0x8F,0x00,0x00,}}, {0x7871,2,{0xB3,0x90,0x00,0x00,}}, {0x7872,2,{0xB3,0x91,0x00,0x00,}}, {0x7873,2,{0xB3,0x92,0x00,0x00,}}, {0x7874,2,{0xB3,0x93,0x00,0x00,}}, {0x7875,2,{0xB3,0x94,0x00,0x00,}}, {0x7876,2,{0xB3,0x95,0x00,0x00,}}, {0x7877,2,{0xBC,0xEF,0x00,0x00,}}, {0x7878,2,{0xB3,0x96,0x00,0x00,}}, {0x7879,2,{0xB3,0x97,0x00,0x00,}}, {0x787A,2,{0xB3,0x98,0x00,0x00,}}, {0x787B,2,{0xB3,0x99,0x00,0x00,}}, {0x787C,2,{0xC5,0xF0,0x00,0x00,}}, {0x787D,2,{0xB3,0x9A,0x00,0x00,}}, {0x787E,2,{0xB3,0x9B,0x00,0x00,}}, {0x787F,2,{0xB3,0x9C,0x00,0x00,}}, {0x7880,2,{0xB3,0x9D,0x00,0x00,}}, {0x7881,2,{0xB3,0x9E,0x00,0x00,}}, {0x7882,2,{0xB3,0x9F,0x00,0x00,}}, {0x7883,2,{0xB3,0xA0,0x00,0x00,}}, {0x7884,2,{0xB4,0x40,0x00,0x00,}}, {0x7885,2,{0xB4,0x41,0x00,0x00,}}, {0x7886,2,{0xB4,0x42,0x00,0x00,}}, {0x7887,2,{0xED,0xD6,0x00,0x00,}}, {0x7888,2,{0xB4,0x43,0x00,0x00,}}, {0x7889,2,{0xB5,0xEF,0x00,0x00,}}, {0x788A,2,{0xB4,0x44,0x00,0x00,}}, {0x788B,2,{0xB4,0x45,0x00,0x00,}}, {0x788C,2,{0xC2,0xB5,0x00,0x00,}}, {0x788D,2,{0xB0,0xAD,0x00,0x00,}}, {0x788E,2,{0xCB,0xE9,0x00,0x00,}}, {0x788F,2,{0xB4,0x46,0x00,0x00,}}, {0x7890,2,{0xB4,0x47,0x00,0x00,}}, {0x7891,2,{0xB1,0xAE,0x00,0x00,}}, {0x7892,2,{0xB4,0x48,0x00,0x00,}}, {0x7893,2,{0xED,0xD4,0x00,0x00,}}, {0x7894,2,{0xB4,0x49,0x00,0x00,}}, {0x7895,2,{0xB4,0x4A,0x00,0x00,}}, {0x7896,2,{0xB4,0x4B,0x00,0x00,}}, {0x7897,2,{0xCD,0xEB,0x00,0x00,}}, {0x7898,2,{0xB5,0xE2,0x00,0x00,}}, {0x7899,2,{0xB4,0x4C,0x00,0x00,}}, {0x789A,2,{0xED,0xD5,0x00,0x00,}}, {0x789B,2,{0xED,0xD3,0x00,0x00,}}, {0x789C,2,{0xED,0xD7,0x00,0x00,}}, {0x789D,2,{0xB4,0x4D,0x00,0x00,}}, {0x789E,2,{0xB4,0x4E,0x00,0x00,}}, {0x789F,2,{0xB5,0xFA,0x00,0x00,}}, {0x78A0,2,{0xB4,0x4F,0x00,0x00,}}, {0x78A1,2,{0xED,0xD8,0x00,0x00,}}, {0x78A2,2,{0xB4,0x50,0x00,0x00,}}, {0x78A3,2,{0xED,0xD9,0x00,0x00,}}, {0x78A4,2,{0xB4,0x51,0x00,0x00,}}, {0x78A5,2,{0xED,0xDC,0x00,0x00,}}, {0x78A6,2,{0xB4,0x52,0x00,0x00,}}, {0x78A7,2,{0xB1,0xCC,0x00,0x00,}}, {0x78A8,2,{0xB4,0x53,0x00,0x00,}}, {0x78A9,2,{0xB4,0x54,0x00,0x00,}}, {0x78AA,2,{0xB4,0x55,0x00,0x00,}}, {0x78AB,2,{0xB4,0x56,0x00,0x00,}}, {0x78AC,2,{0xB4,0x57,0x00,0x00,}}, {0x78AD,2,{0xB4,0x58,0x00,0x00,}}, {0x78AE,2,{0xB4,0x59,0x00,0x00,}}, {0x78AF,2,{0xB4,0x5A,0x00,0x00,}}, {0x78B0,2,{0xC5,0xF6,0x00,0x00,}}, {0x78B1,2,{0xBC,0xEE,0x00,0x00,}}, {0x78B2,2,{0xED,0xDA,0x00,0x00,}}, {0x78B3,2,{0xCC,0xBC,0x00,0x00,}}, {0x78B4,2,{0xB2,0xEA,0x00,0x00,}}, {0x78B5,2,{0xB4,0x5B,0x00,0x00,}}, {0x78B6,2,{0xB4,0x5C,0x00,0x00,}}, {0x78B7,2,{0xB4,0x5D,0x00,0x00,}}, {0x78B8,2,{0xB4,0x5E,0x00,0x00,}}, {0x78B9,2,{0xED,0xDB,0x00,0x00,}}, {0x78BA,2,{0xB4,0x5F,0x00,0x00,}}, {0x78BB,2,{0xB4,0x60,0x00,0x00,}}, {0x78BC,2,{0xB4,0x61,0x00,0x00,}}, {0x78BD,2,{0xB4,0x62,0x00,0x00,}}, {0x78BE,2,{0xC4,0xEB,0x00,0x00,}}, {0x78BF,2,{0xB4,0x63,0x00,0x00,}}, {0x78C0,2,{0xB4,0x64,0x00,0x00,}}, {0x78C1,2,{0xB4,0xC5,0x00,0x00,}}, {0x78C2,2,{0xB4,0x65,0x00,0x00,}}, {0x78C3,2,{0xB4,0x66,0x00,0x00,}}, {0x78C4,2,{0xB4,0x67,0x00,0x00,}}, {0x78C5,2,{0xB0,0xF5,0x00,0x00,}}, {0x78C6,2,{0xB4,0x68,0x00,0x00,}}, {0x78C7,2,{0xB4,0x69,0x00,0x00,}}, {0x78C8,2,{0xB4,0x6A,0x00,0x00,}}, {0x78C9,2,{0xED,0xDF,0x00,0x00,}}, {0x78CA,2,{0xC0,0xDA,0x00,0x00,}}, {0x78CB,2,{0xB4,0xE8,0x00,0x00,}}, {0x78CC,2,{0xB4,0x6B,0x00,0x00,}}, {0x78CD,2,{0xB4,0x6C,0x00,0x00,}}, {0x78CE,2,{0xB4,0x6D,0x00,0x00,}}, {0x78CF,2,{0xB4,0x6E,0x00,0x00,}}, {0x78D0,2,{0xC5,0xCD,0x00,0x00,}}, {0x78D1,2,{0xB4,0x6F,0x00,0x00,}}, {0x78D2,2,{0xB4,0x70,0x00,0x00,}}, {0x78D3,2,{0xB4,0x71,0x00,0x00,}}, {0x78D4,2,{0xED,0xDD,0x00,0x00,}}, {0x78D5,2,{0xBF,0xC4,0x00,0x00,}}, {0x78D6,2,{0xB4,0x72,0x00,0x00,}}, {0x78D7,2,{0xB4,0x73,0x00,0x00,}}, {0x78D8,2,{0xB4,0x74,0x00,0x00,}}, {0x78D9,2,{0xED,0xDE,0x00,0x00,}}, {0x78DA,2,{0xB4,0x75,0x00,0x00,}}, {0x78DB,2,{0xB4,0x76,0x00,0x00,}}, {0x78DC,2,{0xB4,0x77,0x00,0x00,}}, {0x78DD,2,{0xB4,0x78,0x00,0x00,}}, {0x78DE,2,{0xB4,0x79,0x00,0x00,}}, {0x78DF,2,{0xB4,0x7A,0x00,0x00,}}, {0x78E0,2,{0xB4,0x7B,0x00,0x00,}}, {0x78E1,2,{0xB4,0x7C,0x00,0x00,}}, {0x78E2,2,{0xB4,0x7D,0x00,0x00,}}, {0x78E3,2,{0xB4,0x7E,0x00,0x00,}}, {0x78E4,2,{0xB4,0x80,0x00,0x00,}}, {0x78E5,2,{0xB4,0x81,0x00,0x00,}}, {0x78E6,2,{0xB4,0x82,0x00,0x00,}}, {0x78E7,2,{0xB4,0x83,0x00,0x00,}}, {0x78E8,2,{0xC4,0xA5,0x00,0x00,}}, {0x78E9,2,{0xB4,0x84,0x00,0x00,}}, {0x78EA,2,{0xB4,0x85,0x00,0x00,}}, {0x78EB,2,{0xB4,0x86,0x00,0x00,}}, {0x78EC,2,{0xED,0xE0,0x00,0x00,}}, {0x78ED,2,{0xB4,0x87,0x00,0x00,}}, {0x78EE,2,{0xB4,0x88,0x00,0x00,}}, {0x78EF,2,{0xB4,0x89,0x00,0x00,}}, {0x78F0,2,{0xB4,0x8A,0x00,0x00,}}, {0x78F1,2,{0xB4,0x8B,0x00,0x00,}}, {0x78F2,2,{0xED,0xE1,0x00,0x00,}}, {0x78F3,2,{0xB4,0x8C,0x00,0x00,}}, {0x78F4,2,{0xED,0xE3,0x00,0x00,}}, {0x78F5,2,{0xB4,0x8D,0x00,0x00,}}, {0x78F6,2,{0xB4,0x8E,0x00,0x00,}}, {0x78F7,2,{0xC1,0xD7,0x00,0x00,}}, {0x78F8,2,{0xB4,0x8F,0x00,0x00,}}, {0x78F9,2,{0xB4,0x90,0x00,0x00,}}, {0x78FA,2,{0xBB,0xC7,0x00,0x00,}}, {0x78FB,2,{0xB4,0x91,0x00,0x00,}}, {0x78FC,2,{0xB4,0x92,0x00,0x00,}}, {0x78FD,2,{0xB4,0x93,0x00,0x00,}}, {0x78FE,2,{0xB4,0x94,0x00,0x00,}}, {0x78FF,2,{0xB4,0x95,0x00,0x00,}}, {0x7900,2,{0xB4,0x96,0x00,0x00,}}, {0x7901,2,{0xBD,0xB8,0x00,0x00,}}, {0x7902,2,{0xB4,0x97,0x00,0x00,}}, {0x7903,2,{0xB4,0x98,0x00,0x00,}}, {0x7904,2,{0xB4,0x99,0x00,0x00,}}, {0x7905,2,{0xED,0xE2,0x00,0x00,}}, {0x7906,2,{0xB4,0x9A,0x00,0x00,}}, {0x7907,2,{0xB4,0x9B,0x00,0x00,}}, {0x7908,2,{0xB4,0x9C,0x00,0x00,}}, {0x7909,2,{0xB4,0x9D,0x00,0x00,}}, {0x790A,2,{0xB4,0x9E,0x00,0x00,}}, {0x790B,2,{0xB4,0x9F,0x00,0x00,}}, {0x790C,2,{0xB4,0xA0,0x00,0x00,}}, {0x790D,2,{0xB5,0x40,0x00,0x00,}}, {0x790E,2,{0xB5,0x41,0x00,0x00,}}, {0x790F,2,{0xB5,0x42,0x00,0x00,}}, {0x7910,2,{0xB5,0x43,0x00,0x00,}}, {0x7911,2,{0xB5,0x44,0x00,0x00,}}, {0x7912,2,{0xB5,0x45,0x00,0x00,}}, {0x7913,2,{0xED,0xE4,0x00,0x00,}}, {0x7914,2,{0xB5,0x46,0x00,0x00,}}, {0x7915,2,{0xB5,0x47,0x00,0x00,}}, {0x7916,2,{0xB5,0x48,0x00,0x00,}}, {0x7917,2,{0xB5,0x49,0x00,0x00,}}, {0x7918,2,{0xB5,0x4A,0x00,0x00,}}, {0x7919,2,{0xB5,0x4B,0x00,0x00,}}, {0x791A,2,{0xB5,0x4C,0x00,0x00,}}, {0x791B,2,{0xB5,0x4D,0x00,0x00,}}, {0x791C,2,{0xB5,0x4E,0x00,0x00,}}, {0x791D,2,{0xB5,0x4F,0x00,0x00,}}, {0x791E,2,{0xED,0xE6,0x00,0x00,}}, {0x791F,2,{0xB5,0x50,0x00,0x00,}}, {0x7920,2,{0xB5,0x51,0x00,0x00,}}, {0x7921,2,{0xB5,0x52,0x00,0x00,}}, {0x7922,2,{0xB5,0x53,0x00,0x00,}}, {0x7923,2,{0xB5,0x54,0x00,0x00,}}, {0x7924,2,{0xED,0xE5,0x00,0x00,}}, {0x7925,2,{0xB5,0x55,0x00,0x00,}}, {0x7926,2,{0xB5,0x56,0x00,0x00,}}, {0x7927,2,{0xB5,0x57,0x00,0x00,}}, {0x7928,2,{0xB5,0x58,0x00,0x00,}}, {0x7929,2,{0xB5,0x59,0x00,0x00,}}, {0x792A,2,{0xB5,0x5A,0x00,0x00,}}, {0x792B,2,{0xB5,0x5B,0x00,0x00,}}, {0x792C,2,{0xB5,0x5C,0x00,0x00,}}, {0x792D,2,{0xB5,0x5D,0x00,0x00,}}, {0x792E,2,{0xB5,0x5E,0x00,0x00,}}, {0x792F,2,{0xB5,0x5F,0x00,0x00,}}, {0x7930,2,{0xB5,0x60,0x00,0x00,}}, {0x7931,2,{0xB5,0x61,0x00,0x00,}}, {0x7932,2,{0xB5,0x62,0x00,0x00,}}, {0x7933,2,{0xB5,0x63,0x00,0x00,}}, {0x7934,2,{0xED,0xE7,0x00,0x00,}}, {0x7935,2,{0xB5,0x64,0x00,0x00,}}, {0x7936,2,{0xB5,0x65,0x00,0x00,}}, {0x7937,2,{0xB5,0x66,0x00,0x00,}}, {0x7938,2,{0xB5,0x67,0x00,0x00,}}, {0x7939,2,{0xB5,0x68,0x00,0x00,}}, {0x793A,2,{0xCA,0xBE,0x00,0x00,}}, {0x793B,2,{0xEC,0xEA,0x00,0x00,}}, {0x793C,2,{0xC0,0xF1,0x00,0x00,}}, {0x793D,2,{0xB5,0x69,0x00,0x00,}}, {0x793E,2,{0xC9,0xE7,0x00,0x00,}}, {0x793F,2,{0xB5,0x6A,0x00,0x00,}}, {0x7940,2,{0xEC,0xEB,0x00,0x00,}}, {0x7941,2,{0xC6,0xEE,0x00,0x00,}}, {0x7942,2,{0xB5,0x6B,0x00,0x00,}}, {0x7943,2,{0xB5,0x6C,0x00,0x00,}}, {0x7944,2,{0xB5,0x6D,0x00,0x00,}}, {0x7945,2,{0xB5,0x6E,0x00,0x00,}}, {0x7946,2,{0xEC,0xEC,0x00,0x00,}}, {0x7947,2,{0xB5,0x6F,0x00,0x00,}}, {0x7948,2,{0xC6,0xED,0x00,0x00,}}, {0x7949,2,{0xEC,0xED,0x00,0x00,}}, {0x794A,2,{0xB5,0x70,0x00,0x00,}}, {0x794B,2,{0xB5,0x71,0x00,0x00,}}, {0x794C,2,{0xB5,0x72,0x00,0x00,}}, {0x794D,2,{0xB5,0x73,0x00,0x00,}}, {0x794E,2,{0xB5,0x74,0x00,0x00,}}, {0x794F,2,{0xB5,0x75,0x00,0x00,}}, {0x7950,2,{0xB5,0x76,0x00,0x00,}}, {0x7951,2,{0xB5,0x77,0x00,0x00,}}, {0x7952,2,{0xB5,0x78,0x00,0x00,}}, {0x7953,2,{0xEC,0xF0,0x00,0x00,}}, {0x7954,2,{0xB5,0x79,0x00,0x00,}}, {0x7955,2,{0xB5,0x7A,0x00,0x00,}}, {0x7956,2,{0xD7,0xE6,0x00,0x00,}}, {0x7957,2,{0xEC,0xF3,0x00,0x00,}}, {0x7958,2,{0xB5,0x7B,0x00,0x00,}}, {0x7959,2,{0xB5,0x7C,0x00,0x00,}}, {0x795A,2,{0xEC,0xF1,0x00,0x00,}}, {0x795B,2,{0xEC,0xEE,0x00,0x00,}}, {0x795C,2,{0xEC,0xEF,0x00,0x00,}}, {0x795D,2,{0xD7,0xA3,0x00,0x00,}}, {0x795E,2,{0xC9,0xF1,0x00,0x00,}}, {0x795F,2,{0xCB,0xEE,0x00,0x00,}}, {0x7960,2,{0xEC,0xF4,0x00,0x00,}}, {0x7961,2,{0xB5,0x7D,0x00,0x00,}}, {0x7962,2,{0xEC,0xF2,0x00,0x00,}}, {0x7963,2,{0xB5,0x7E,0x00,0x00,}}, {0x7964,2,{0xB5,0x80,0x00,0x00,}}, {0x7965,2,{0xCF,0xE9,0x00,0x00,}}, {0x7966,2,{0xB5,0x81,0x00,0x00,}}, {0x7967,2,{0xEC,0xF6,0x00,0x00,}}, {0x7968,2,{0xC6,0xB1,0x00,0x00,}}, {0x7969,2,{0xB5,0x82,0x00,0x00,}}, {0x796A,2,{0xB5,0x83,0x00,0x00,}}, {0x796B,2,{0xB5,0x84,0x00,0x00,}}, {0x796C,2,{0xB5,0x85,0x00,0x00,}}, {0x796D,2,{0xBC,0xC0,0x00,0x00,}}, {0x796E,2,{0xB5,0x86,0x00,0x00,}}, {0x796F,2,{0xEC,0xF5,0x00,0x00,}}, {0x7970,2,{0xB5,0x87,0x00,0x00,}}, {0x7971,2,{0xB5,0x88,0x00,0x00,}}, {0x7972,2,{0xB5,0x89,0x00,0x00,}}, {0x7973,2,{0xB5,0x8A,0x00,0x00,}}, {0x7974,2,{0xB5,0x8B,0x00,0x00,}}, {0x7975,2,{0xB5,0x8C,0x00,0x00,}}, {0x7976,2,{0xB5,0x8D,0x00,0x00,}}, {0x7977,2,{0xB5,0xBB,0x00,0x00,}}, {0x7978,2,{0xBB,0xF6,0x00,0x00,}}, {0x7979,2,{0xB5,0x8E,0x00,0x00,}}, {0x797A,2,{0xEC,0xF7,0x00,0x00,}}, {0x797B,2,{0xB5,0x8F,0x00,0x00,}}, {0x797C,2,{0xB5,0x90,0x00,0x00,}}, {0x797D,2,{0xB5,0x91,0x00,0x00,}}, {0x797E,2,{0xB5,0x92,0x00,0x00,}}, {0x797F,2,{0xB5,0x93,0x00,0x00,}}, {0x7980,2,{0xD9,0xF7,0x00,0x00,}}, {0x7981,2,{0xBD,0xFB,0x00,0x00,}}, {0x7982,2,{0xB5,0x94,0x00,0x00,}}, {0x7983,2,{0xB5,0x95,0x00,0x00,}}, {0x7984,2,{0xC2,0xBB,0x00,0x00,}}, {0x7985,2,{0xEC,0xF8,0x00,0x00,}}, {0x7986,2,{0xB5,0x96,0x00,0x00,}}, {0x7987,2,{0xB5,0x97,0x00,0x00,}}, {0x7988,2,{0xB5,0x98,0x00,0x00,}}, {0x7989,2,{0xB5,0x99,0x00,0x00,}}, {0x798A,2,{0xEC,0xF9,0x00,0x00,}}, {0x798B,2,{0xB5,0x9A,0x00,0x00,}}, {0x798C,2,{0xB5,0x9B,0x00,0x00,}}, {0x798D,2,{0xB5,0x9C,0x00,0x00,}}, {0x798E,2,{0xB5,0x9D,0x00,0x00,}}, {0x798F,2,{0xB8,0xA3,0x00,0x00,}}, {0x7990,2,{0xB5,0x9E,0x00,0x00,}}, {0x7991,2,{0xB5,0x9F,0x00,0x00,}}, {0x7992,2,{0xB5,0xA0,0x00,0x00,}}, {0x7993,2,{0xB6,0x40,0x00,0x00,}}, {0x7994,2,{0xB6,0x41,0x00,0x00,}}, {0x7995,2,{0xB6,0x42,0x00,0x00,}}, {0x7996,2,{0xB6,0x43,0x00,0x00,}}, {0x7997,2,{0xB6,0x44,0x00,0x00,}}, {0x7998,2,{0xB6,0x45,0x00,0x00,}}, {0x7999,2,{0xB6,0x46,0x00,0x00,}}, {0x799A,2,{0xEC,0xFA,0x00,0x00,}}, {0x799B,2,{0xB6,0x47,0x00,0x00,}}, {0x799C,2,{0xB6,0x48,0x00,0x00,}}, {0x799D,2,{0xB6,0x49,0x00,0x00,}}, {0x799E,2,{0xB6,0x4A,0x00,0x00,}}, {0x799F,2,{0xB6,0x4B,0x00,0x00,}}, {0x79A0,2,{0xB6,0x4C,0x00,0x00,}}, {0x79A1,2,{0xB6,0x4D,0x00,0x00,}}, {0x79A2,2,{0xB6,0x4E,0x00,0x00,}}, {0x79A3,2,{0xB6,0x4F,0x00,0x00,}}, {0x79A4,2,{0xB6,0x50,0x00,0x00,}}, {0x79A5,2,{0xB6,0x51,0x00,0x00,}}, {0x79A6,2,{0xB6,0x52,0x00,0x00,}}, {0x79A7,2,{0xEC,0xFB,0x00,0x00,}}, {0x79A8,2,{0xB6,0x53,0x00,0x00,}}, {0x79A9,2,{0xB6,0x54,0x00,0x00,}}, {0x79AA,2,{0xB6,0x55,0x00,0x00,}}, {0x79AB,2,{0xB6,0x56,0x00,0x00,}}, {0x79AC,2,{0xB6,0x57,0x00,0x00,}}, {0x79AD,2,{0xB6,0x58,0x00,0x00,}}, {0x79AE,2,{0xB6,0x59,0x00,0x00,}}, {0x79AF,2,{0xB6,0x5A,0x00,0x00,}}, {0x79B0,2,{0xB6,0x5B,0x00,0x00,}}, {0x79B1,2,{0xB6,0x5C,0x00,0x00,}}, {0x79B2,2,{0xB6,0x5D,0x00,0x00,}}, {0x79B3,2,{0xEC,0xFC,0x00,0x00,}}, {0x79B4,2,{0xB6,0x5E,0x00,0x00,}}, {0x79B5,2,{0xB6,0x5F,0x00,0x00,}}, {0x79B6,2,{0xB6,0x60,0x00,0x00,}}, {0x79B7,2,{0xB6,0x61,0x00,0x00,}}, {0x79B8,2,{0xB6,0x62,0x00,0x00,}}, {0x79B9,2,{0xD3,0xED,0x00,0x00,}}, {0x79BA,2,{0xD8,0xAE,0x00,0x00,}}, {0x79BB,2,{0xC0,0xEB,0x00,0x00,}}, {0x79BC,2,{0xB6,0x63,0x00,0x00,}}, {0x79BD,2,{0xC7,0xDD,0x00,0x00,}}, {0x79BE,2,{0xBA,0xCC,0x00,0x00,}}, {0x79BF,2,{0xB6,0x64,0x00,0x00,}}, {0x79C0,2,{0xD0,0xE3,0x00,0x00,}}, {0x79C1,2,{0xCB,0xBD,0x00,0x00,}}, {0x79C2,2,{0xB6,0x65,0x00,0x00,}}, {0x79C3,2,{0xCD,0xBA,0x00,0x00,}}, {0x79C4,2,{0xB6,0x66,0x00,0x00,}}, {0x79C5,2,{0xB6,0x67,0x00,0x00,}}, {0x79C6,2,{0xB8,0xD1,0x00,0x00,}}, {0x79C7,2,{0xB6,0x68,0x00,0x00,}}, {0x79C8,2,{0xB6,0x69,0x00,0x00,}}, {0x79C9,2,{0xB1,0xFC,0x00,0x00,}}, {0x79CA,2,{0xB6,0x6A,0x00,0x00,}}, {0x79CB,2,{0xC7,0xEF,0x00,0x00,}}, {0x79CC,2,{0xB6,0x6B,0x00,0x00,}}, {0x79CD,2,{0xD6,0xD6,0x00,0x00,}}, {0x79CE,2,{0xB6,0x6C,0x00,0x00,}}, {0x79CF,2,{0xB6,0x6D,0x00,0x00,}}, {0x79D0,2,{0xB6,0x6E,0x00,0x00,}}, {0x79D1,2,{0xBF,0xC6,0x00,0x00,}}, {0x79D2,2,{0xC3,0xEB,0x00,0x00,}}, {0x79D3,2,{0xB6,0x6F,0x00,0x00,}}, {0x79D4,2,{0xB6,0x70,0x00,0x00,}}, {0x79D5,2,{0xEF,0xF5,0x00,0x00,}}, {0x79D6,2,{0xB6,0x71,0x00,0x00,}}, {0x79D7,2,{0xB6,0x72,0x00,0x00,}}, {0x79D8,2,{0xC3,0xD8,0x00,0x00,}}, {0x79D9,2,{0xB6,0x73,0x00,0x00,}}, {0x79DA,2,{0xB6,0x74,0x00,0x00,}}, {0x79DB,2,{0xB6,0x75,0x00,0x00,}}, {0x79DC,2,{0xB6,0x76,0x00,0x00,}}, {0x79DD,2,{0xB6,0x77,0x00,0x00,}}, {0x79DE,2,{0xB6,0x78,0x00,0x00,}}, {0x79DF,2,{0xD7,0xE2,0x00,0x00,}}, {0x79E0,2,{0xB6,0x79,0x00,0x00,}}, {0x79E1,2,{0xB6,0x7A,0x00,0x00,}}, {0x79E2,2,{0xB6,0x7B,0x00,0x00,}}, {0x79E3,2,{0xEF,0xF7,0x00,0x00,}}, {0x79E4,2,{0xB3,0xD3,0x00,0x00,}}, {0x79E5,2,{0xB6,0x7C,0x00,0x00,}}, {0x79E6,2,{0xC7,0xD8,0x00,0x00,}}, {0x79E7,2,{0xD1,0xED,0x00,0x00,}}, {0x79E8,2,{0xB6,0x7D,0x00,0x00,}}, {0x79E9,2,{0xD6,0xC8,0x00,0x00,}}, {0x79EA,2,{0xB6,0x7E,0x00,0x00,}}, {0x79EB,2,{0xEF,0xF8,0x00,0x00,}}, {0x79EC,2,{0xB6,0x80,0x00,0x00,}}, {0x79ED,2,{0xEF,0xF6,0x00,0x00,}}, {0x79EE,2,{0xB6,0x81,0x00,0x00,}}, {0x79EF,2,{0xBB,0xFD,0x00,0x00,}}, {0x79F0,2,{0xB3,0xC6,0x00,0x00,}}, {0x79F1,2,{0xB6,0x82,0x00,0x00,}}, {0x79F2,2,{0xB6,0x83,0x00,0x00,}}, {0x79F3,2,{0xB6,0x84,0x00,0x00,}}, {0x79F4,2,{0xB6,0x85,0x00,0x00,}}, {0x79F5,2,{0xB6,0x86,0x00,0x00,}}, {0x79F6,2,{0xB6,0x87,0x00,0x00,}}, {0x79F7,2,{0xB6,0x88,0x00,0x00,}}, {0x79F8,2,{0xBD,0xD5,0x00,0x00,}}, {0x79F9,2,{0xB6,0x89,0x00,0x00,}}, {0x79FA,2,{0xB6,0x8A,0x00,0x00,}}, {0x79FB,2,{0xD2,0xC6,0x00,0x00,}}, {0x79FC,2,{0xB6,0x8B,0x00,0x00,}}, {0x79FD,2,{0xBB,0xE0,0x00,0x00,}}, {0x79FE,2,{0xB6,0x8C,0x00,0x00,}}, {0x79FF,2,{0xB6,0x8D,0x00,0x00,}}, {0x7A00,2,{0xCF,0xA1,0x00,0x00,}}, {0x7A01,2,{0xB6,0x8E,0x00,0x00,}}, {0x7A02,2,{0xEF,0xFC,0x00,0x00,}}, {0x7A03,2,{0xEF,0xFB,0x00,0x00,}}, {0x7A04,2,{0xB6,0x8F,0x00,0x00,}}, {0x7A05,2,{0xB6,0x90,0x00,0x00,}}, {0x7A06,2,{0xEF,0xF9,0x00,0x00,}}, {0x7A07,2,{0xB6,0x91,0x00,0x00,}}, {0x7A08,2,{0xB6,0x92,0x00,0x00,}}, {0x7A09,2,{0xB6,0x93,0x00,0x00,}}, {0x7A0A,2,{0xB6,0x94,0x00,0x00,}}, {0x7A0B,2,{0xB3,0xCC,0x00,0x00,}}, {0x7A0C,2,{0xB6,0x95,0x00,0x00,}}, {0x7A0D,2,{0xC9,0xD4,0x00,0x00,}}, {0x7A0E,2,{0xCB,0xB0,0x00,0x00,}}, {0x7A0F,2,{0xB6,0x96,0x00,0x00,}}, {0x7A10,2,{0xB6,0x97,0x00,0x00,}}, {0x7A11,2,{0xB6,0x98,0x00,0x00,}}, {0x7A12,2,{0xB6,0x99,0x00,0x00,}}, {0x7A13,2,{0xB6,0x9A,0x00,0x00,}}, {0x7A14,2,{0xEF,0xFE,0x00,0x00,}}, {0x7A15,2,{0xB6,0x9B,0x00,0x00,}}, {0x7A16,2,{0xB6,0x9C,0x00,0x00,}}, {0x7A17,2,{0xB0,0xDE,0x00,0x00,}}, {0x7A18,2,{0xB6,0x9D,0x00,0x00,}}, {0x7A19,2,{0xB6,0x9E,0x00,0x00,}}, {0x7A1A,2,{0xD6,0xC9,0x00,0x00,}}, {0x7A1B,2,{0xB6,0x9F,0x00,0x00,}}, {0x7A1C,2,{0xB6,0xA0,0x00,0x00,}}, {0x7A1D,2,{0xB7,0x40,0x00,0x00,}}, {0x7A1E,2,{0xEF,0xFD,0x00,0x00,}}, {0x7A1F,2,{0xB7,0x41,0x00,0x00,}}, {0x7A20,2,{0xB3,0xED,0x00,0x00,}}, {0x7A21,2,{0xB7,0x42,0x00,0x00,}}, {0x7A22,2,{0xB7,0x43,0x00,0x00,}}, {0x7A23,2,{0xF6,0xD5,0x00,0x00,}}, {0x7A24,2,{0xB7,0x44,0x00,0x00,}}, {0x7A25,2,{0xB7,0x45,0x00,0x00,}}, {0x7A26,2,{0xB7,0x46,0x00,0x00,}}, {0x7A27,2,{0xB7,0x47,0x00,0x00,}}, {0x7A28,2,{0xB7,0x48,0x00,0x00,}}, {0x7A29,2,{0xB7,0x49,0x00,0x00,}}, {0x7A2A,2,{0xB7,0x4A,0x00,0x00,}}, {0x7A2B,2,{0xB7,0x4B,0x00,0x00,}}, {0x7A2C,2,{0xB7,0x4C,0x00,0x00,}}, {0x7A2D,2,{0xB7,0x4D,0x00,0x00,}}, {0x7A2E,2,{0xB7,0x4E,0x00,0x00,}}, {0x7A2F,2,{0xB7,0x4F,0x00,0x00,}}, {0x7A30,2,{0xB7,0x50,0x00,0x00,}}, {0x7A31,2,{0xB7,0x51,0x00,0x00,}}, {0x7A32,2,{0xB7,0x52,0x00,0x00,}}, {0x7A33,2,{0xCE,0xC8,0x00,0x00,}}, {0x7A34,2,{0xB7,0x53,0x00,0x00,}}, {0x7A35,2,{0xB7,0x54,0x00,0x00,}}, {0x7A36,2,{0xB7,0x55,0x00,0x00,}}, {0x7A37,2,{0xF0,0xA2,0x00,0x00,}}, {0x7A38,2,{0xB7,0x56,0x00,0x00,}}, {0x7A39,2,{0xF0,0xA1,0x00,0x00,}}, {0x7A3A,2,{0xB7,0x57,0x00,0x00,}}, {0x7A3B,2,{0xB5,0xBE,0x00,0x00,}}, {0x7A3C,2,{0xBC,0xDA,0x00,0x00,}}, {0x7A3D,2,{0xBB,0xFC,0x00,0x00,}}, {0x7A3E,2,{0xB7,0x58,0x00,0x00,}}, {0x7A3F,2,{0xB8,0xE5,0x00,0x00,}}, {0x7A40,2,{0xB7,0x59,0x00,0x00,}}, {0x7A41,2,{0xB7,0x5A,0x00,0x00,}}, {0x7A42,2,{0xB7,0x5B,0x00,0x00,}}, {0x7A43,2,{0xB7,0x5C,0x00,0x00,}}, {0x7A44,2,{0xB7,0x5D,0x00,0x00,}}, {0x7A45,2,{0xB7,0x5E,0x00,0x00,}}, {0x7A46,2,{0xC4,0xC2,0x00,0x00,}}, {0x7A47,2,{0xB7,0x5F,0x00,0x00,}}, {0x7A48,2,{0xB7,0x60,0x00,0x00,}}, {0x7A49,2,{0xB7,0x61,0x00,0x00,}}, {0x7A4A,2,{0xB7,0x62,0x00,0x00,}}, {0x7A4B,2,{0xB7,0x63,0x00,0x00,}}, {0x7A4C,2,{0xB7,0x64,0x00,0x00,}}, {0x7A4D,2,{0xB7,0x65,0x00,0x00,}}, {0x7A4E,2,{0xB7,0x66,0x00,0x00,}}, {0x7A4F,2,{0xB7,0x67,0x00,0x00,}}, {0x7A50,2,{0xB7,0x68,0x00,0x00,}}, {0x7A51,2,{0xF0,0xA3,0x00,0x00,}}, {0x7A52,2,{0xB7,0x69,0x00,0x00,}}, {0x7A53,2,{0xB7,0x6A,0x00,0x00,}}, {0x7A54,2,{0xB7,0x6B,0x00,0x00,}}, {0x7A55,2,{0xB7,0x6C,0x00,0x00,}}, {0x7A56,2,{0xB7,0x6D,0x00,0x00,}}, {0x7A57,2,{0xCB,0xEB,0x00,0x00,}}, {0x7A58,2,{0xB7,0x6E,0x00,0x00,}}, {0x7A59,2,{0xB7,0x6F,0x00,0x00,}}, {0x7A5A,2,{0xB7,0x70,0x00,0x00,}}, {0x7A5B,2,{0xB7,0x71,0x00,0x00,}}, {0x7A5C,2,{0xB7,0x72,0x00,0x00,}}, {0x7A5D,2,{0xB7,0x73,0x00,0x00,}}, {0x7A5E,2,{0xB7,0x74,0x00,0x00,}}, {0x7A5F,2,{0xB7,0x75,0x00,0x00,}}, {0x7A60,2,{0xB7,0x76,0x00,0x00,}}, {0x7A61,2,{0xB7,0x77,0x00,0x00,}}, {0x7A62,2,{0xB7,0x78,0x00,0x00,}}, {0x7A63,2,{0xB7,0x79,0x00,0x00,}}, {0x7A64,2,{0xB7,0x7A,0x00,0x00,}}, {0x7A65,2,{0xB7,0x7B,0x00,0x00,}}, {0x7A66,2,{0xB7,0x7C,0x00,0x00,}}, {0x7A67,2,{0xB7,0x7D,0x00,0x00,}}, {0x7A68,2,{0xB7,0x7E,0x00,0x00,}}, {0x7A69,2,{0xB7,0x80,0x00,0x00,}}, {0x7A6A,2,{0xB7,0x81,0x00,0x00,}}, {0x7A6B,2,{0xB7,0x82,0x00,0x00,}}, {0x7A6C,2,{0xB7,0x83,0x00,0x00,}}, {0x7A6D,2,{0xB7,0x84,0x00,0x00,}}, {0x7A6E,2,{0xB7,0x85,0x00,0x00,}}, {0x7A6F,2,{0xB7,0x86,0x00,0x00,}}, {0x7A70,2,{0xF0,0xA6,0x00,0x00,}}, {0x7A71,2,{0xB7,0x87,0x00,0x00,}}, {0x7A72,2,{0xB7,0x88,0x00,0x00,}}, {0x7A73,2,{0xB7,0x89,0x00,0x00,}}, {0x7A74,2,{0xD1,0xA8,0x00,0x00,}}, {0x7A75,2,{0xB7,0x8A,0x00,0x00,}}, {0x7A76,2,{0xBE,0xBF,0x00,0x00,}}, {0x7A77,2,{0xC7,0xEE,0x00,0x00,}}, {0x7A78,2,{0xF1,0xB6,0x00,0x00,}}, {0x7A79,2,{0xF1,0xB7,0x00,0x00,}}, {0x7A7A,2,{0xBF,0xD5,0x00,0x00,}}, {0x7A7B,2,{0xB7,0x8B,0x00,0x00,}}, {0x7A7C,2,{0xB7,0x8C,0x00,0x00,}}, {0x7A7D,2,{0xB7,0x8D,0x00,0x00,}}, {0x7A7E,2,{0xB7,0x8E,0x00,0x00,}}, {0x7A7F,2,{0xB4,0xA9,0x00,0x00,}}, {0x7A80,2,{0xF1,0xB8,0x00,0x00,}}, {0x7A81,2,{0xCD,0xBB,0x00,0x00,}}, {0x7A82,2,{0xB7,0x8F,0x00,0x00,}}, {0x7A83,2,{0xC7,0xD4,0x00,0x00,}}, {0x7A84,2,{0xD5,0xAD,0x00,0x00,}}, {0x7A85,2,{0xB7,0x90,0x00,0x00,}}, {0x7A86,2,{0xF1,0xB9,0x00,0x00,}}, {0x7A87,2,{0xB7,0x91,0x00,0x00,}}, {0x7A88,2,{0xF1,0xBA,0x00,0x00,}}, {0x7A89,2,{0xB7,0x92,0x00,0x00,}}, {0x7A8A,2,{0xB7,0x93,0x00,0x00,}}, {0x7A8B,2,{0xB7,0x94,0x00,0x00,}}, {0x7A8C,2,{0xB7,0x95,0x00,0x00,}}, {0x7A8D,2,{0xC7,0xCF,0x00,0x00,}}, {0x7A8E,2,{0xB7,0x96,0x00,0x00,}}, {0x7A8F,2,{0xB7,0x97,0x00,0x00,}}, {0x7A90,2,{0xB7,0x98,0x00,0x00,}}, {0x7A91,2,{0xD2,0xA4,0x00,0x00,}}, {0x7A92,2,{0xD6,0xCF,0x00,0x00,}}, {0x7A93,2,{0xB7,0x99,0x00,0x00,}}, {0x7A94,2,{0xB7,0x9A,0x00,0x00,}}, {0x7A95,2,{0xF1,0xBB,0x00,0x00,}}, {0x7A96,2,{0xBD,0xD1,0x00,0x00,}}, {0x7A97,2,{0xB4,0xB0,0x00,0x00,}}, {0x7A98,2,{0xBE,0xBD,0x00,0x00,}}, {0x7A99,2,{0xB7,0x9B,0x00,0x00,}}, {0x7A9A,2,{0xB7,0x9C,0x00,0x00,}}, {0x7A9B,2,{0xB7,0x9D,0x00,0x00,}}, {0x7A9C,2,{0xB4,0xDC,0x00,0x00,}}, {0x7A9D,2,{0xCE,0xD1,0x00,0x00,}}, {0x7A9E,2,{0xB7,0x9E,0x00,0x00,}}, {0x7A9F,2,{0xBF,0xDF,0x00,0x00,}}, {0x7AA0,2,{0xF1,0xBD,0x00,0x00,}}, {0x7AA1,2,{0xB7,0x9F,0x00,0x00,}}, {0x7AA2,2,{0xB7,0xA0,0x00,0x00,}}, {0x7AA3,2,{0xB8,0x40,0x00,0x00,}}, {0x7AA4,2,{0xB8,0x41,0x00,0x00,}}, {0x7AA5,2,{0xBF,0xFA,0x00,0x00,}}, {0x7AA6,2,{0xF1,0xBC,0x00,0x00,}}, {0x7AA7,2,{0xB8,0x42,0x00,0x00,}}, {0x7AA8,2,{0xF1,0xBF,0x00,0x00,}}, {0x7AA9,2,{0xB8,0x43,0x00,0x00,}}, {0x7AAA,2,{0xB8,0x44,0x00,0x00,}}, {0x7AAB,2,{0xB8,0x45,0x00,0x00,}}, {0x7AAC,2,{0xF1,0xBE,0x00,0x00,}}, {0x7AAD,2,{0xF1,0xC0,0x00,0x00,}}, {0x7AAE,2,{0xB8,0x46,0x00,0x00,}}, {0x7AAF,2,{0xB8,0x47,0x00,0x00,}}, {0x7AB0,2,{0xB8,0x48,0x00,0x00,}}, {0x7AB1,2,{0xB8,0x49,0x00,0x00,}}, {0x7AB2,2,{0xB8,0x4A,0x00,0x00,}}, {0x7AB3,2,{0xF1,0xC1,0x00,0x00,}}, {0x7AB4,2,{0xB8,0x4B,0x00,0x00,}}, {0x7AB5,2,{0xB8,0x4C,0x00,0x00,}}, {0x7AB6,2,{0xB8,0x4D,0x00,0x00,}}, {0x7AB7,2,{0xB8,0x4E,0x00,0x00,}}, {0x7AB8,2,{0xB8,0x4F,0x00,0x00,}}, {0x7AB9,2,{0xB8,0x50,0x00,0x00,}}, {0x7ABA,2,{0xB8,0x51,0x00,0x00,}}, {0x7ABB,2,{0xB8,0x52,0x00,0x00,}}, {0x7ABC,2,{0xB8,0x53,0x00,0x00,}}, {0x7ABD,2,{0xB8,0x54,0x00,0x00,}}, {0x7ABE,2,{0xB8,0x55,0x00,0x00,}}, {0x7ABF,2,{0xC1,0xFE,0x00,0x00,}}, {0x7AC0,2,{0xB8,0x56,0x00,0x00,}}, {0x7AC1,2,{0xB8,0x57,0x00,0x00,}}, {0x7AC2,2,{0xB8,0x58,0x00,0x00,}}, {0x7AC3,2,{0xB8,0x59,0x00,0x00,}}, {0x7AC4,2,{0xB8,0x5A,0x00,0x00,}}, {0x7AC5,2,{0xB8,0x5B,0x00,0x00,}}, {0x7AC6,2,{0xB8,0x5C,0x00,0x00,}}, {0x7AC7,2,{0xB8,0x5D,0x00,0x00,}}, {0x7AC8,2,{0xB8,0x5E,0x00,0x00,}}, {0x7AC9,2,{0xB8,0x5F,0x00,0x00,}}, {0x7ACA,2,{0xB8,0x60,0x00,0x00,}}, {0x7ACB,2,{0xC1,0xA2,0x00,0x00,}}, {0x7ACC,2,{0xB8,0x61,0x00,0x00,}}, {0x7ACD,2,{0xB8,0x62,0x00,0x00,}}, {0x7ACE,2,{0xB8,0x63,0x00,0x00,}}, {0x7ACF,2,{0xB8,0x64,0x00,0x00,}}, {0x7AD0,2,{0xB8,0x65,0x00,0x00,}}, {0x7AD1,2,{0xB8,0x66,0x00,0x00,}}, {0x7AD2,2,{0xB8,0x67,0x00,0x00,}}, {0x7AD3,2,{0xB8,0x68,0x00,0x00,}}, {0x7AD4,2,{0xB8,0x69,0x00,0x00,}}, {0x7AD5,2,{0xB8,0x6A,0x00,0x00,}}, {0x7AD6,2,{0xCA,0xFA,0x00,0x00,}}, {0x7AD7,2,{0xB8,0x6B,0x00,0x00,}}, {0x7AD8,2,{0xB8,0x6C,0x00,0x00,}}, {0x7AD9,2,{0xD5,0xBE,0x00,0x00,}}, {0x7ADA,2,{0xB8,0x6D,0x00,0x00,}}, {0x7ADB,2,{0xB8,0x6E,0x00,0x00,}}, {0x7ADC,2,{0xB8,0x6F,0x00,0x00,}}, {0x7ADD,2,{0xB8,0x70,0x00,0x00,}}, {0x7ADE,2,{0xBE,0xBA,0x00,0x00,}}, {0x7ADF,2,{0xBE,0xB9,0x00,0x00,}}, {0x7AE0,2,{0xD5,0xC2,0x00,0x00,}}, {0x7AE1,2,{0xB8,0x71,0x00,0x00,}}, {0x7AE2,2,{0xB8,0x72,0x00,0x00,}}, {0x7AE3,2,{0xBF,0xA2,0x00,0x00,}}, {0x7AE4,2,{0xB8,0x73,0x00,0x00,}}, {0x7AE5,2,{0xCD,0xAF,0x00,0x00,}}, {0x7AE6,2,{0xF1,0xB5,0x00,0x00,}}, {0x7AE7,2,{0xB8,0x74,0x00,0x00,}}, {0x7AE8,2,{0xB8,0x75,0x00,0x00,}}, {0x7AE9,2,{0xB8,0x76,0x00,0x00,}}, {0x7AEA,2,{0xB8,0x77,0x00,0x00,}}, {0x7AEB,2,{0xB8,0x78,0x00,0x00,}}, {0x7AEC,2,{0xB8,0x79,0x00,0x00,}}, {0x7AED,2,{0xBD,0xDF,0x00,0x00,}}, {0x7AEE,2,{0xB8,0x7A,0x00,0x00,}}, {0x7AEF,2,{0xB6,0xCB,0x00,0x00,}}, {0x7AF0,2,{0xB8,0x7B,0x00,0x00,}}, {0x7AF1,2,{0xB8,0x7C,0x00,0x00,}}, {0x7AF2,2,{0xB8,0x7D,0x00,0x00,}}, {0x7AF3,2,{0xB8,0x7E,0x00,0x00,}}, {0x7AF4,2,{0xB8,0x80,0x00,0x00,}}, {0x7AF5,2,{0xB8,0x81,0x00,0x00,}}, {0x7AF6,2,{0xB8,0x82,0x00,0x00,}}, {0x7AF7,2,{0xB8,0x83,0x00,0x00,}}, {0x7AF8,2,{0xB8,0x84,0x00,0x00,}}, {0x7AF9,2,{0xD6,0xF1,0x00,0x00,}}, {0x7AFA,2,{0xF3,0xC3,0x00,0x00,}}, {0x7AFB,2,{0xB8,0x85,0x00,0x00,}}, {0x7AFC,2,{0xB8,0x86,0x00,0x00,}}, {0x7AFD,2,{0xF3,0xC4,0x00,0x00,}}, {0x7AFE,2,{0xB8,0x87,0x00,0x00,}}, {0x7AFF,2,{0xB8,0xCD,0x00,0x00,}}, {0x7B00,2,{0xB8,0x88,0x00,0x00,}}, {0x7B01,2,{0xB8,0x89,0x00,0x00,}}, {0x7B02,2,{0xB8,0x8A,0x00,0x00,}}, {0x7B03,2,{0xF3,0xC6,0x00,0x00,}}, {0x7B04,2,{0xF3,0xC7,0x00,0x00,}}, {0x7B05,2,{0xB8,0x8B,0x00,0x00,}}, {0x7B06,2,{0xB0,0xCA,0x00,0x00,}}, {0x7B07,2,{0xB8,0x8C,0x00,0x00,}}, {0x7B08,2,{0xF3,0xC5,0x00,0x00,}}, {0x7B09,2,{0xB8,0x8D,0x00,0x00,}}, {0x7B0A,2,{0xF3,0xC9,0x00,0x00,}}, {0x7B0B,2,{0xCB,0xF1,0x00,0x00,}}, {0x7B0C,2,{0xB8,0x8E,0x00,0x00,}}, {0x7B0D,2,{0xB8,0x8F,0x00,0x00,}}, {0x7B0E,2,{0xB8,0x90,0x00,0x00,}}, {0x7B0F,2,{0xF3,0xCB,0x00,0x00,}}, {0x7B10,2,{0xB8,0x91,0x00,0x00,}}, {0x7B11,2,{0xD0,0xA6,0x00,0x00,}}, {0x7B12,2,{0xB8,0x92,0x00,0x00,}}, {0x7B13,2,{0xB8,0x93,0x00,0x00,}}, {0x7B14,2,{0xB1,0xCA,0x00,0x00,}}, {0x7B15,2,{0xF3,0xC8,0x00,0x00,}}, {0x7B16,2,{0xB8,0x94,0x00,0x00,}}, {0x7B17,2,{0xB8,0x95,0x00,0x00,}}, {0x7B18,2,{0xB8,0x96,0x00,0x00,}}, {0x7B19,2,{0xF3,0xCF,0x00,0x00,}}, {0x7B1A,2,{0xB8,0x97,0x00,0x00,}}, {0x7B1B,2,{0xB5,0xD1,0x00,0x00,}}, {0x7B1C,2,{0xB8,0x98,0x00,0x00,}}, {0x7B1D,2,{0xB8,0x99,0x00,0x00,}}, {0x7B1E,2,{0xF3,0xD7,0x00,0x00,}}, {0x7B1F,2,{0xB8,0x9A,0x00,0x00,}}, {0x7B20,2,{0xF3,0xD2,0x00,0x00,}}, {0x7B21,2,{0xB8,0x9B,0x00,0x00,}}, {0x7B22,2,{0xB8,0x9C,0x00,0x00,}}, {0x7B23,2,{0xB8,0x9D,0x00,0x00,}}, {0x7B24,2,{0xF3,0xD4,0x00,0x00,}}, {0x7B25,2,{0xF3,0xD3,0x00,0x00,}}, {0x7B26,2,{0xB7,0xFB,0x00,0x00,}}, {0x7B27,2,{0xB8,0x9E,0x00,0x00,}}, {0x7B28,2,{0xB1,0xBF,0x00,0x00,}}, {0x7B29,2,{0xB8,0x9F,0x00,0x00,}}, {0x7B2A,2,{0xF3,0xCE,0x00,0x00,}}, {0x7B2B,2,{0xF3,0xCA,0x00,0x00,}}, {0x7B2C,2,{0xB5,0xDA,0x00,0x00,}}, {0x7B2D,2,{0xB8,0xA0,0x00,0x00,}}, {0x7B2E,2,{0xF3,0xD0,0x00,0x00,}}, {0x7B2F,2,{0xB9,0x40,0x00,0x00,}}, {0x7B30,2,{0xB9,0x41,0x00,0x00,}}, {0x7B31,2,{0xF3,0xD1,0x00,0x00,}}, {0x7B32,2,{0xB9,0x42,0x00,0x00,}}, {0x7B33,2,{0xF3,0xD5,0x00,0x00,}}, {0x7B34,2,{0xB9,0x43,0x00,0x00,}}, {0x7B35,2,{0xB9,0x44,0x00,0x00,}}, {0x7B36,2,{0xB9,0x45,0x00,0x00,}}, {0x7B37,2,{0xB9,0x46,0x00,0x00,}}, {0x7B38,2,{0xF3,0xCD,0x00,0x00,}}, {0x7B39,2,{0xB9,0x47,0x00,0x00,}}, {0x7B3A,2,{0xBC,0xE3,0x00,0x00,}}, {0x7B3B,2,{0xB9,0x48,0x00,0x00,}}, {0x7B3C,2,{0xC1,0xFD,0x00,0x00,}}, {0x7B3D,2,{0xB9,0x49,0x00,0x00,}}, {0x7B3E,2,{0xF3,0xD6,0x00,0x00,}}, {0x7B3F,2,{0xB9,0x4A,0x00,0x00,}}, {0x7B40,2,{0xB9,0x4B,0x00,0x00,}}, {0x7B41,2,{0xB9,0x4C,0x00,0x00,}}, {0x7B42,2,{0xB9,0x4D,0x00,0x00,}}, {0x7B43,2,{0xB9,0x4E,0x00,0x00,}}, {0x7B44,2,{0xB9,0x4F,0x00,0x00,}}, {0x7B45,2,{0xF3,0xDA,0x00,0x00,}}, {0x7B46,2,{0xB9,0x50,0x00,0x00,}}, {0x7B47,2,{0xF3,0xCC,0x00,0x00,}}, {0x7B48,2,{0xB9,0x51,0x00,0x00,}}, {0x7B49,2,{0xB5,0xC8,0x00,0x00,}}, {0x7B4A,2,{0xB9,0x52,0x00,0x00,}}, {0x7B4B,2,{0xBD,0xEE,0x00,0x00,}}, {0x7B4C,2,{0xF3,0xDC,0x00,0x00,}}, {0x7B4D,2,{0xB9,0x53,0x00,0x00,}}, {0x7B4E,2,{0xB9,0x54,0x00,0x00,}}, {0x7B4F,2,{0xB7,0xA4,0x00,0x00,}}, {0x7B50,2,{0xBF,0xF0,0x00,0x00,}}, {0x7B51,2,{0xD6,0xFE,0x00,0x00,}}, {0x7B52,2,{0xCD,0xB2,0x00,0x00,}}, {0x7B53,2,{0xB9,0x55,0x00,0x00,}}, {0x7B54,2,{0xB4,0xF0,0x00,0x00,}}, {0x7B55,2,{0xB9,0x56,0x00,0x00,}}, {0x7B56,2,{0xB2,0xDF,0x00,0x00,}}, {0x7B57,2,{0xB9,0x57,0x00,0x00,}}, {0x7B58,2,{0xF3,0xD8,0x00,0x00,}}, {0x7B59,2,{0xB9,0x58,0x00,0x00,}}, {0x7B5A,2,{0xF3,0xD9,0x00,0x00,}}, {0x7B5B,2,{0xC9,0xB8,0x00,0x00,}}, {0x7B5C,2,{0xB9,0x59,0x00,0x00,}}, {0x7B5D,2,{0xF3,0xDD,0x00,0x00,}}, {0x7B5E,2,{0xB9,0x5A,0x00,0x00,}}, {0x7B5F,2,{0xB9,0x5B,0x00,0x00,}}, {0x7B60,2,{0xF3,0xDE,0x00,0x00,}}, {0x7B61,2,{0xB9,0x5C,0x00,0x00,}}, {0x7B62,2,{0xF3,0xE1,0x00,0x00,}}, {0x7B63,2,{0xB9,0x5D,0x00,0x00,}}, {0x7B64,2,{0xB9,0x5E,0x00,0x00,}}, {0x7B65,2,{0xB9,0x5F,0x00,0x00,}}, {0x7B66,2,{0xB9,0x60,0x00,0x00,}}, {0x7B67,2,{0xB9,0x61,0x00,0x00,}}, {0x7B68,2,{0xB9,0x62,0x00,0x00,}}, {0x7B69,2,{0xB9,0x63,0x00,0x00,}}, {0x7B6A,2,{0xB9,0x64,0x00,0x00,}}, {0x7B6B,2,{0xB9,0x65,0x00,0x00,}}, {0x7B6C,2,{0xB9,0x66,0x00,0x00,}}, {0x7B6D,2,{0xB9,0x67,0x00,0x00,}}, {0x7B6E,2,{0xF3,0xDF,0x00,0x00,}}, {0x7B6F,2,{0xB9,0x68,0x00,0x00,}}, {0x7B70,2,{0xB9,0x69,0x00,0x00,}}, {0x7B71,2,{0xF3,0xE3,0x00,0x00,}}, {0x7B72,2,{0xF3,0xE2,0x00,0x00,}}, {0x7B73,2,{0xB9,0x6A,0x00,0x00,}}, {0x7B74,2,{0xB9,0x6B,0x00,0x00,}}, {0x7B75,2,{0xF3,0xDB,0x00,0x00,}}, {0x7B76,2,{0xB9,0x6C,0x00,0x00,}}, {0x7B77,2,{0xBF,0xEA,0x00,0x00,}}, {0x7B78,2,{0xB9,0x6D,0x00,0x00,}}, {0x7B79,2,{0xB3,0xEF,0x00,0x00,}}, {0x7B7A,2,{0xB9,0x6E,0x00,0x00,}}, {0x7B7B,2,{0xF3,0xE0,0x00,0x00,}}, {0x7B7C,2,{0xB9,0x6F,0x00,0x00,}}, {0x7B7D,2,{0xB9,0x70,0x00,0x00,}}, {0x7B7E,2,{0xC7,0xA9,0x00,0x00,}}, {0x7B7F,2,{0xB9,0x71,0x00,0x00,}}, {0x7B80,2,{0xBC,0xF2,0x00,0x00,}}, {0x7B81,2,{0xB9,0x72,0x00,0x00,}}, {0x7B82,2,{0xB9,0x73,0x00,0x00,}}, {0x7B83,2,{0xB9,0x74,0x00,0x00,}}, {0x7B84,2,{0xB9,0x75,0x00,0x00,}}, {0x7B85,2,{0xF3,0xEB,0x00,0x00,}}, {0x7B86,2,{0xB9,0x76,0x00,0x00,}}, {0x7B87,2,{0xB9,0x77,0x00,0x00,}}, {0x7B88,2,{0xB9,0x78,0x00,0x00,}}, {0x7B89,2,{0xB9,0x79,0x00,0x00,}}, {0x7B8A,2,{0xB9,0x7A,0x00,0x00,}}, {0x7B8B,2,{0xB9,0x7B,0x00,0x00,}}, {0x7B8C,2,{0xB9,0x7C,0x00,0x00,}}, {0x7B8D,2,{0xB9,0xBF,0x00,0x00,}}, {0x7B8E,2,{0xB9,0x7D,0x00,0x00,}}, {0x7B8F,2,{0xB9,0x7E,0x00,0x00,}}, {0x7B90,2,{0xF3,0xE4,0x00,0x00,}}, {0x7B91,2,{0xB9,0x80,0x00,0x00,}}, {0x7B92,2,{0xB9,0x81,0x00,0x00,}}, {0x7B93,2,{0xB9,0x82,0x00,0x00,}}, {0x7B94,2,{0xB2,0xAD,0x00,0x00,}}, {0x7B95,2,{0xBB,0xFE,0x00,0x00,}}, {0x7B96,2,{0xB9,0x83,0x00,0x00,}}, {0x7B97,2,{0xCB,0xE3,0x00,0x00,}}, {0x7B98,2,{0xB9,0x84,0x00,0x00,}}, {0x7B99,2,{0xB9,0x85,0x00,0x00,}}, {0x7B9A,2,{0xB9,0x86,0x00,0x00,}}, {0x7B9B,2,{0xB9,0x87,0x00,0x00,}}, {0x7B9C,2,{0xF3,0xED,0x00,0x00,}}, {0x7B9D,2,{0xF3,0xE9,0x00,0x00,}}, {0x7B9E,2,{0xB9,0x88,0x00,0x00,}}, {0x7B9F,2,{0xB9,0x89,0x00,0x00,}}, {0x7BA0,2,{0xB9,0x8A,0x00,0x00,}}, {0x7BA1,2,{0xB9,0xDC,0x00,0x00,}}, {0x7BA2,2,{0xF3,0xEE,0x00,0x00,}}, {0x7BA3,2,{0xB9,0x8B,0x00,0x00,}}, {0x7BA4,2,{0xB9,0x8C,0x00,0x00,}}, {0x7BA5,2,{0xB9,0x8D,0x00,0x00,}}, {0x7BA6,2,{0xF3,0xE5,0x00,0x00,}}, {0x7BA7,2,{0xF3,0xE6,0x00,0x00,}}, {0x7BA8,2,{0xF3,0xEA,0x00,0x00,}}, {0x7BA9,2,{0xC2,0xE1,0x00,0x00,}}, {0x7BAA,2,{0xF3,0xEC,0x00,0x00,}}, {0x7BAB,2,{0xF3,0xEF,0x00,0x00,}}, {0x7BAC,2,{0xF3,0xE8,0x00,0x00,}}, {0x7BAD,2,{0xBC,0xFD,0x00,0x00,}}, {0x7BAE,2,{0xB9,0x8E,0x00,0x00,}}, {0x7BAF,2,{0xB9,0x8F,0x00,0x00,}}, {0x7BB0,2,{0xB9,0x90,0x00,0x00,}}, {0x7BB1,2,{0xCF,0xE4,0x00,0x00,}}, {0x7BB2,2,{0xB9,0x91,0x00,0x00,}}, {0x7BB3,2,{0xB9,0x92,0x00,0x00,}}, {0x7BB4,2,{0xF3,0xF0,0x00,0x00,}}, {0x7BB5,2,{0xB9,0x93,0x00,0x00,}}, {0x7BB6,2,{0xB9,0x94,0x00,0x00,}}, {0x7BB7,2,{0xB9,0x95,0x00,0x00,}}, {0x7BB8,2,{0xF3,0xE7,0x00,0x00,}}, {0x7BB9,2,{0xB9,0x96,0x00,0x00,}}, {0x7BBA,2,{0xB9,0x97,0x00,0x00,}}, {0x7BBB,2,{0xB9,0x98,0x00,0x00,}}, {0x7BBC,2,{0xB9,0x99,0x00,0x00,}}, {0x7BBD,2,{0xB9,0x9A,0x00,0x00,}}, {0x7BBE,2,{0xB9,0x9B,0x00,0x00,}}, {0x7BBF,2,{0xB9,0x9C,0x00,0x00,}}, {0x7BC0,2,{0xB9,0x9D,0x00,0x00,}}, {0x7BC1,2,{0xF3,0xF2,0x00,0x00,}}, {0x7BC2,2,{0xB9,0x9E,0x00,0x00,}}, {0x7BC3,2,{0xB9,0x9F,0x00,0x00,}}, {0x7BC4,2,{0xB9,0xA0,0x00,0x00,}}, {0x7BC5,2,{0xBA,0x40,0x00,0x00,}}, {0x7BC6,2,{0xD7,0xAD,0x00,0x00,}}, {0x7BC7,2,{0xC6,0xAA,0x00,0x00,}}, {0x7BC8,2,{0xBA,0x41,0x00,0x00,}}, {0x7BC9,2,{0xBA,0x42,0x00,0x00,}}, {0x7BCA,2,{0xBA,0x43,0x00,0x00,}}, {0x7BCB,2,{0xBA,0x44,0x00,0x00,}}, {0x7BCC,2,{0xF3,0xF3,0x00,0x00,}}, {0x7BCD,2,{0xBA,0x45,0x00,0x00,}}, {0x7BCE,2,{0xBA,0x46,0x00,0x00,}}, {0x7BCF,2,{0xBA,0x47,0x00,0x00,}}, {0x7BD0,2,{0xBA,0x48,0x00,0x00,}}, {0x7BD1,2,{0xF3,0xF1,0x00,0x00,}}, {0x7BD2,2,{0xBA,0x49,0x00,0x00,}}, {0x7BD3,2,{0xC2,0xA8,0x00,0x00,}}, {0x7BD4,2,{0xBA,0x4A,0x00,0x00,}}, {0x7BD5,2,{0xBA,0x4B,0x00,0x00,}}, {0x7BD6,2,{0xBA,0x4C,0x00,0x00,}}, {0x7BD7,2,{0xBA,0x4D,0x00,0x00,}}, {0x7BD8,2,{0xBA,0x4E,0x00,0x00,}}, {0x7BD9,2,{0xB8,0xDD,0x00,0x00,}}, {0x7BDA,2,{0xF3,0xF5,0x00,0x00,}}, {0x7BDB,2,{0xBA,0x4F,0x00,0x00,}}, {0x7BDC,2,{0xBA,0x50,0x00,0x00,}}, {0x7BDD,2,{0xF3,0xF4,0x00,0x00,}}, {0x7BDE,2,{0xBA,0x51,0x00,0x00,}}, {0x7BDF,2,{0xBA,0x52,0x00,0x00,}}, {0x7BE0,2,{0xBA,0x53,0x00,0x00,}}, {0x7BE1,2,{0xB4,0xDB,0x00,0x00,}}, {0x7BE2,2,{0xBA,0x54,0x00,0x00,}}, {0x7BE3,2,{0xBA,0x55,0x00,0x00,}}, {0x7BE4,2,{0xBA,0x56,0x00,0x00,}}, {0x7BE5,2,{0xF3,0xF6,0x00,0x00,}}, {0x7BE6,2,{0xF3,0xF7,0x00,0x00,}}, {0x7BE7,2,{0xBA,0x57,0x00,0x00,}}, {0x7BE8,2,{0xBA,0x58,0x00,0x00,}}, {0x7BE9,2,{0xBA,0x59,0x00,0x00,}}, {0x7BEA,2,{0xF3,0xF8,0x00,0x00,}}, {0x7BEB,2,{0xBA,0x5A,0x00,0x00,}}, {0x7BEC,2,{0xBA,0x5B,0x00,0x00,}}, {0x7BED,2,{0xBA,0x5C,0x00,0x00,}}, {0x7BEE,2,{0xC0,0xBA,0x00,0x00,}}, {0x7BEF,2,{0xBA,0x5D,0x00,0x00,}}, {0x7BF0,2,{0xBA,0x5E,0x00,0x00,}}, {0x7BF1,2,{0xC0,0xE9,0x00,0x00,}}, {0x7BF2,2,{0xBA,0x5F,0x00,0x00,}}, {0x7BF3,2,{0xBA,0x60,0x00,0x00,}}, {0x7BF4,2,{0xBA,0x61,0x00,0x00,}}, {0x7BF5,2,{0xBA,0x62,0x00,0x00,}}, {0x7BF6,2,{0xBA,0x63,0x00,0x00,}}, {0x7BF7,2,{0xC5,0xF1,0x00,0x00,}}, {0x7BF8,2,{0xBA,0x64,0x00,0x00,}}, {0x7BF9,2,{0xBA,0x65,0x00,0x00,}}, {0x7BFA,2,{0xBA,0x66,0x00,0x00,}}, {0x7BFB,2,{0xBA,0x67,0x00,0x00,}}, {0x7BFC,2,{0xF3,0xFB,0x00,0x00,}}, {0x7BFD,2,{0xBA,0x68,0x00,0x00,}}, {0x7BFE,2,{0xF3,0xFA,0x00,0x00,}}, {0x7BFF,2,{0xBA,0x69,0x00,0x00,}}, {0x7C00,2,{0xBA,0x6A,0x00,0x00,}}, {0x7C01,2,{0xBA,0x6B,0x00,0x00,}}, {0x7C02,2,{0xBA,0x6C,0x00,0x00,}}, {0x7C03,2,{0xBA,0x6D,0x00,0x00,}}, {0x7C04,2,{0xBA,0x6E,0x00,0x00,}}, {0x7C05,2,{0xBA,0x6F,0x00,0x00,}}, {0x7C06,2,{0xBA,0x70,0x00,0x00,}}, {0x7C07,2,{0xB4,0xD8,0x00,0x00,}}, {0x7C08,2,{0xBA,0x71,0x00,0x00,}}, {0x7C09,2,{0xBA,0x72,0x00,0x00,}}, {0x7C0A,2,{0xBA,0x73,0x00,0x00,}}, {0x7C0B,2,{0xF3,0xFE,0x00,0x00,}}, {0x7C0C,2,{0xF3,0xF9,0x00,0x00,}}, {0x7C0D,2,{0xBA,0x74,0x00,0x00,}}, {0x7C0E,2,{0xBA,0x75,0x00,0x00,}}, {0x7C0F,2,{0xF3,0xFC,0x00,0x00,}}, {0x7C10,2,{0xBA,0x76,0x00,0x00,}}, {0x7C11,2,{0xBA,0x77,0x00,0x00,}}, {0x7C12,2,{0xBA,0x78,0x00,0x00,}}, {0x7C13,2,{0xBA,0x79,0x00,0x00,}}, {0x7C14,2,{0xBA,0x7A,0x00,0x00,}}, {0x7C15,2,{0xBA,0x7B,0x00,0x00,}}, {0x7C16,2,{0xF3,0xFD,0x00,0x00,}}, {0x7C17,2,{0xBA,0x7C,0x00,0x00,}}, {0x7C18,2,{0xBA,0x7D,0x00,0x00,}}, {0x7C19,2,{0xBA,0x7E,0x00,0x00,}}, {0x7C1A,2,{0xBA,0x80,0x00,0x00,}}, {0x7C1B,2,{0xBA,0x81,0x00,0x00,}}, {0x7C1C,2,{0xBA,0x82,0x00,0x00,}}, {0x7C1D,2,{0xBA,0x83,0x00,0x00,}}, {0x7C1E,2,{0xBA,0x84,0x00,0x00,}}, {0x7C1F,2,{0xF4,0xA1,0x00,0x00,}}, {0x7C20,2,{0xBA,0x85,0x00,0x00,}}, {0x7C21,2,{0xBA,0x86,0x00,0x00,}}, {0x7C22,2,{0xBA,0x87,0x00,0x00,}}, {0x7C23,2,{0xBA,0x88,0x00,0x00,}}, {0x7C24,2,{0xBA,0x89,0x00,0x00,}}, {0x7C25,2,{0xBA,0x8A,0x00,0x00,}}, {0x7C26,2,{0xF4,0xA3,0x00,0x00,}}, {0x7C27,2,{0xBB,0xC9,0x00,0x00,}}, {0x7C28,2,{0xBA,0x8B,0x00,0x00,}}, {0x7C29,2,{0xBA,0x8C,0x00,0x00,}}, {0x7C2A,2,{0xF4,0xA2,0x00,0x00,}}, {0x7C2B,2,{0xBA,0x8D,0x00,0x00,}}, {0x7C2C,2,{0xBA,0x8E,0x00,0x00,}}, {0x7C2D,2,{0xBA,0x8F,0x00,0x00,}}, {0x7C2E,2,{0xBA,0x90,0x00,0x00,}}, {0x7C2F,2,{0xBA,0x91,0x00,0x00,}}, {0x7C30,2,{0xBA,0x92,0x00,0x00,}}, {0x7C31,2,{0xBA,0x93,0x00,0x00,}}, {0x7C32,2,{0xBA,0x94,0x00,0x00,}}, {0x7C33,2,{0xBA,0x95,0x00,0x00,}}, {0x7C34,2,{0xBA,0x96,0x00,0x00,}}, {0x7C35,2,{0xBA,0x97,0x00,0x00,}}, {0x7C36,2,{0xBA,0x98,0x00,0x00,}}, {0x7C37,2,{0xBA,0x99,0x00,0x00,}}, {0x7C38,2,{0xF4,0xA4,0x00,0x00,}}, {0x7C39,2,{0xBA,0x9A,0x00,0x00,}}, {0x7C3A,2,{0xBA,0x9B,0x00,0x00,}}, {0x7C3B,2,{0xBA,0x9C,0x00,0x00,}}, {0x7C3C,2,{0xBA,0x9D,0x00,0x00,}}, {0x7C3D,2,{0xBA,0x9E,0x00,0x00,}}, {0x7C3E,2,{0xBA,0x9F,0x00,0x00,}}, {0x7C3F,2,{0xB2,0xBE,0x00,0x00,}}, {0x7C40,2,{0xF4,0xA6,0x00,0x00,}}, {0x7C41,2,{0xF4,0xA5,0x00,0x00,}}, {0x7C42,2,{0xBA,0xA0,0x00,0x00,}}, {0x7C43,2,{0xBB,0x40,0x00,0x00,}}, {0x7C44,2,{0xBB,0x41,0x00,0x00,}}, {0x7C45,2,{0xBB,0x42,0x00,0x00,}}, {0x7C46,2,{0xBB,0x43,0x00,0x00,}}, {0x7C47,2,{0xBB,0x44,0x00,0x00,}}, {0x7C48,2,{0xBB,0x45,0x00,0x00,}}, {0x7C49,2,{0xBB,0x46,0x00,0x00,}}, {0x7C4A,2,{0xBB,0x47,0x00,0x00,}}, {0x7C4B,2,{0xBB,0x48,0x00,0x00,}}, {0x7C4C,2,{0xBB,0x49,0x00,0x00,}}, {0x7C4D,2,{0xBC,0xAE,0x00,0x00,}}, {0x7C4E,2,{0xBB,0x4A,0x00,0x00,}}, {0x7C4F,2,{0xBB,0x4B,0x00,0x00,}}, {0x7C50,2,{0xBB,0x4C,0x00,0x00,}}, {0x7C51,2,{0xBB,0x4D,0x00,0x00,}}, {0x7C52,2,{0xBB,0x4E,0x00,0x00,}}, {0x7C53,2,{0xBB,0x4F,0x00,0x00,}}, {0x7C54,2,{0xBB,0x50,0x00,0x00,}}, {0x7C55,2,{0xBB,0x51,0x00,0x00,}}, {0x7C56,2,{0xBB,0x52,0x00,0x00,}}, {0x7C57,2,{0xBB,0x53,0x00,0x00,}}, {0x7C58,2,{0xBB,0x54,0x00,0x00,}}, {0x7C59,2,{0xBB,0x55,0x00,0x00,}}, {0x7C5A,2,{0xBB,0x56,0x00,0x00,}}, {0x7C5B,2,{0xBB,0x57,0x00,0x00,}}, {0x7C5C,2,{0xBB,0x58,0x00,0x00,}}, {0x7C5D,2,{0xBB,0x59,0x00,0x00,}}, {0x7C5E,2,{0xBB,0x5A,0x00,0x00,}}, {0x7C5F,2,{0xBB,0x5B,0x00,0x00,}}, {0x7C60,2,{0xBB,0x5C,0x00,0x00,}}, {0x7C61,2,{0xBB,0x5D,0x00,0x00,}}, {0x7C62,2,{0xBB,0x5E,0x00,0x00,}}, {0x7C63,2,{0xBB,0x5F,0x00,0x00,}}, {0x7C64,2,{0xBB,0x60,0x00,0x00,}}, {0x7C65,2,{0xBB,0x61,0x00,0x00,}}, {0x7C66,2,{0xBB,0x62,0x00,0x00,}}, {0x7C67,2,{0xBB,0x63,0x00,0x00,}}, {0x7C68,2,{0xBB,0x64,0x00,0x00,}}, {0x7C69,2,{0xBB,0x65,0x00,0x00,}}, {0x7C6A,2,{0xBB,0x66,0x00,0x00,}}, {0x7C6B,2,{0xBB,0x67,0x00,0x00,}}, {0x7C6C,2,{0xBB,0x68,0x00,0x00,}}, {0x7C6D,2,{0xBB,0x69,0x00,0x00,}}, {0x7C6E,2,{0xBB,0x6A,0x00,0x00,}}, {0x7C6F,2,{0xBB,0x6B,0x00,0x00,}}, {0x7C70,2,{0xBB,0x6C,0x00,0x00,}}, {0x7C71,2,{0xBB,0x6D,0x00,0x00,}}, {0x7C72,2,{0xBB,0x6E,0x00,0x00,}}, {0x7C73,2,{0xC3,0xD7,0x00,0x00,}}, {0x7C74,2,{0xD9,0xE1,0x00,0x00,}}, {0x7C75,2,{0xBB,0x6F,0x00,0x00,}}, {0x7C76,2,{0xBB,0x70,0x00,0x00,}}, {0x7C77,2,{0xBB,0x71,0x00,0x00,}}, {0x7C78,2,{0xBB,0x72,0x00,0x00,}}, {0x7C79,2,{0xBB,0x73,0x00,0x00,}}, {0x7C7A,2,{0xBB,0x74,0x00,0x00,}}, {0x7C7B,2,{0xC0,0xE0,0x00,0x00,}}, {0x7C7C,2,{0xF4,0xCC,0x00,0x00,}}, {0x7C7D,2,{0xD7,0xD1,0x00,0x00,}}, {0x7C7E,2,{0xBB,0x75,0x00,0x00,}}, {0x7C7F,2,{0xBB,0x76,0x00,0x00,}}, {0x7C80,2,{0xBB,0x77,0x00,0x00,}}, {0x7C81,2,{0xBB,0x78,0x00,0x00,}}, {0x7C82,2,{0xBB,0x79,0x00,0x00,}}, {0x7C83,2,{0xBB,0x7A,0x00,0x00,}}, {0x7C84,2,{0xBB,0x7B,0x00,0x00,}}, {0x7C85,2,{0xBB,0x7C,0x00,0x00,}}, {0x7C86,2,{0xBB,0x7D,0x00,0x00,}}, {0x7C87,2,{0xBB,0x7E,0x00,0x00,}}, {0x7C88,2,{0xBB,0x80,0x00,0x00,}}, {0x7C89,2,{0xB7,0xDB,0x00,0x00,}}, {0x7C8A,2,{0xBB,0x81,0x00,0x00,}}, {0x7C8B,2,{0xBB,0x82,0x00,0x00,}}, {0x7C8C,2,{0xBB,0x83,0x00,0x00,}}, {0x7C8D,2,{0xBB,0x84,0x00,0x00,}}, {0x7C8E,2,{0xBB,0x85,0x00,0x00,}}, {0x7C8F,2,{0xBB,0x86,0x00,0x00,}}, {0x7C90,2,{0xBB,0x87,0x00,0x00,}}, {0x7C91,2,{0xF4,0xCE,0x00,0x00,}}, {0x7C92,2,{0xC1,0xA3,0x00,0x00,}}, {0x7C93,2,{0xBB,0x88,0x00,0x00,}}, {0x7C94,2,{0xBB,0x89,0x00,0x00,}}, {0x7C95,2,{0xC6,0xC9,0x00,0x00,}}, {0x7C96,2,{0xBB,0x8A,0x00,0x00,}}, {0x7C97,2,{0xB4,0xD6,0x00,0x00,}}, {0x7C98,2,{0xD5,0xB3,0x00,0x00,}}, {0x7C99,2,{0xBB,0x8B,0x00,0x00,}}, {0x7C9A,2,{0xBB,0x8C,0x00,0x00,}}, {0x7C9B,2,{0xBB,0x8D,0x00,0x00,}}, {0x7C9C,2,{0xF4,0xD0,0x00,0x00,}}, {0x7C9D,2,{0xF4,0xCF,0x00,0x00,}}, {0x7C9E,2,{0xF4,0xD1,0x00,0x00,}}, {0x7C9F,2,{0xCB,0xDA,0x00,0x00,}}, {0x7CA0,2,{0xBB,0x8E,0x00,0x00,}}, {0x7CA1,2,{0xBB,0x8F,0x00,0x00,}}, {0x7CA2,2,{0xF4,0xD2,0x00,0x00,}}, {0x7CA3,2,{0xBB,0x90,0x00,0x00,}}, {0x7CA4,2,{0xD4,0xC1,0x00,0x00,}}, {0x7CA5,2,{0xD6,0xE0,0x00,0x00,}}, {0x7CA6,2,{0xBB,0x91,0x00,0x00,}}, {0x7CA7,2,{0xBB,0x92,0x00,0x00,}}, {0x7CA8,2,{0xBB,0x93,0x00,0x00,}}, {0x7CA9,2,{0xBB,0x94,0x00,0x00,}}, {0x7CAA,2,{0xB7,0xE0,0x00,0x00,}}, {0x7CAB,2,{0xBB,0x95,0x00,0x00,}}, {0x7CAC,2,{0xBB,0x96,0x00,0x00,}}, {0x7CAD,2,{0xBB,0x97,0x00,0x00,}}, {0x7CAE,2,{0xC1,0xB8,0x00,0x00,}}, {0x7CAF,2,{0xBB,0x98,0x00,0x00,}}, {0x7CB0,2,{0xBB,0x99,0x00,0x00,}}, {0x7CB1,2,{0xC1,0xBB,0x00,0x00,}}, {0x7CB2,2,{0xF4,0xD3,0x00,0x00,}}, {0x7CB3,2,{0xBE,0xAC,0x00,0x00,}}, {0x7CB4,2,{0xBB,0x9A,0x00,0x00,}}, {0x7CB5,2,{0xBB,0x9B,0x00,0x00,}}, {0x7CB6,2,{0xBB,0x9C,0x00,0x00,}}, {0x7CB7,2,{0xBB,0x9D,0x00,0x00,}}, {0x7CB8,2,{0xBB,0x9E,0x00,0x00,}}, {0x7CB9,2,{0xB4,0xE2,0x00,0x00,}}, {0x7CBA,2,{0xBB,0x9F,0x00,0x00,}}, {0x7CBB,2,{0xBB,0xA0,0x00,0x00,}}, {0x7CBC,2,{0xF4,0xD4,0x00,0x00,}}, {0x7CBD,2,{0xF4,0xD5,0x00,0x00,}}, {0x7CBE,2,{0xBE,0xAB,0x00,0x00,}}, {0x7CBF,2,{0xBC,0x40,0x00,0x00,}}, {0x7CC0,2,{0xBC,0x41,0x00,0x00,}}, {0x7CC1,2,{0xF4,0xD6,0x00,0x00,}}, {0x7CC2,2,{0xBC,0x42,0x00,0x00,}}, {0x7CC3,2,{0xBC,0x43,0x00,0x00,}}, {0x7CC4,2,{0xBC,0x44,0x00,0x00,}}, {0x7CC5,2,{0xF4,0xDB,0x00,0x00,}}, {0x7CC6,2,{0xBC,0x45,0x00,0x00,}}, {0x7CC7,2,{0xF4,0xD7,0x00,0x00,}}, {0x7CC8,2,{0xF4,0xDA,0x00,0x00,}}, {0x7CC9,2,{0xBC,0x46,0x00,0x00,}}, {0x7CCA,2,{0xBA,0xFD,0x00,0x00,}}, {0x7CCB,2,{0xBC,0x47,0x00,0x00,}}, {0x7CCC,2,{0xF4,0xD8,0x00,0x00,}}, {0x7CCD,2,{0xF4,0xD9,0x00,0x00,}}, {0x7CCE,2,{0xBC,0x48,0x00,0x00,}}, {0x7CCF,2,{0xBC,0x49,0x00,0x00,}}, {0x7CD0,2,{0xBC,0x4A,0x00,0x00,}}, {0x7CD1,2,{0xBC,0x4B,0x00,0x00,}}, {0x7CD2,2,{0xBC,0x4C,0x00,0x00,}}, {0x7CD3,2,{0xBC,0x4D,0x00,0x00,}}, {0x7CD4,2,{0xBC,0x4E,0x00,0x00,}}, {0x7CD5,2,{0xB8,0xE2,0x00,0x00,}}, {0x7CD6,2,{0xCC,0xC7,0x00,0x00,}}, {0x7CD7,2,{0xF4,0xDC,0x00,0x00,}}, {0x7CD8,2,{0xBC,0x4F,0x00,0x00,}}, {0x7CD9,2,{0xB2,0xDA,0x00,0x00,}}, {0x7CDA,2,{0xBC,0x50,0x00,0x00,}}, {0x7CDB,2,{0xBC,0x51,0x00,0x00,}}, {0x7CDC,2,{0xC3,0xD3,0x00,0x00,}}, {0x7CDD,2,{0xBC,0x52,0x00,0x00,}}, {0x7CDE,2,{0xBC,0x53,0x00,0x00,}}, {0x7CDF,2,{0xD4,0xE3,0x00,0x00,}}, {0x7CE0,2,{0xBF,0xB7,0x00,0x00,}}, {0x7CE1,2,{0xBC,0x54,0x00,0x00,}}, {0x7CE2,2,{0xBC,0x55,0x00,0x00,}}, {0x7CE3,2,{0xBC,0x56,0x00,0x00,}}, {0x7CE4,2,{0xBC,0x57,0x00,0x00,}}, {0x7CE5,2,{0xBC,0x58,0x00,0x00,}}, {0x7CE6,2,{0xBC,0x59,0x00,0x00,}}, {0x7CE7,2,{0xBC,0x5A,0x00,0x00,}}, {0x7CE8,2,{0xF4,0xDD,0x00,0x00,}}, {0x7CE9,2,{0xBC,0x5B,0x00,0x00,}}, {0x7CEA,2,{0xBC,0x5C,0x00,0x00,}}, {0x7CEB,2,{0xBC,0x5D,0x00,0x00,}}, {0x7CEC,2,{0xBC,0x5E,0x00,0x00,}}, {0x7CED,2,{0xBC,0x5F,0x00,0x00,}}, {0x7CEE,2,{0xBC,0x60,0x00,0x00,}}, {0x7CEF,2,{0xC5,0xB4,0x00,0x00,}}, {0x7CF0,2,{0xBC,0x61,0x00,0x00,}}, {0x7CF1,2,{0xBC,0x62,0x00,0x00,}}, {0x7CF2,2,{0xBC,0x63,0x00,0x00,}}, {0x7CF3,2,{0xBC,0x64,0x00,0x00,}}, {0x7CF4,2,{0xBC,0x65,0x00,0x00,}}, {0x7CF5,2,{0xBC,0x66,0x00,0x00,}}, {0x7CF6,2,{0xBC,0x67,0x00,0x00,}}, {0x7CF7,2,{0xBC,0x68,0x00,0x00,}}, {0x7CF8,2,{0xF4,0xE9,0x00,0x00,}}, {0x7CF9,2,{0xBC,0x69,0x00,0x00,}}, {0x7CFA,2,{0xBC,0x6A,0x00,0x00,}}, {0x7CFB,2,{0xCF,0xB5,0x00,0x00,}}, {0x7CFC,2,{0xBC,0x6B,0x00,0x00,}}, {0x7CFD,2,{0xBC,0x6C,0x00,0x00,}}, {0x7CFE,2,{0xBC,0x6D,0x00,0x00,}}, {0x7CFF,2,{0xBC,0x6E,0x00,0x00,}}, {0x7D00,2,{0xBC,0x6F,0x00,0x00,}}, {0x7D01,2,{0xBC,0x70,0x00,0x00,}}, {0x7D02,2,{0xBC,0x71,0x00,0x00,}}, {0x7D03,2,{0xBC,0x72,0x00,0x00,}}, {0x7D04,2,{0xBC,0x73,0x00,0x00,}}, {0x7D05,2,{0xBC,0x74,0x00,0x00,}}, {0x7D06,2,{0xBC,0x75,0x00,0x00,}}, {0x7D07,2,{0xBC,0x76,0x00,0x00,}}, {0x7D08,2,{0xBC,0x77,0x00,0x00,}}, {0x7D09,2,{0xBC,0x78,0x00,0x00,}}, {0x7D0A,2,{0xCE,0xC9,0x00,0x00,}}, {0x7D0B,2,{0xBC,0x79,0x00,0x00,}}, {0x7D0C,2,{0xBC,0x7A,0x00,0x00,}}, {0x7D0D,2,{0xBC,0x7B,0x00,0x00,}}, {0x7D0E,2,{0xBC,0x7C,0x00,0x00,}}, {0x7D0F,2,{0xBC,0x7D,0x00,0x00,}}, {0x7D10,2,{0xBC,0x7E,0x00,0x00,}}, {0x7D11,2,{0xBC,0x80,0x00,0x00,}}, {0x7D12,2,{0xBC,0x81,0x00,0x00,}}, {0x7D13,2,{0xBC,0x82,0x00,0x00,}}, {0x7D14,2,{0xBC,0x83,0x00,0x00,}}, {0x7D15,2,{0xBC,0x84,0x00,0x00,}}, {0x7D16,2,{0xBC,0x85,0x00,0x00,}}, {0x7D17,2,{0xBC,0x86,0x00,0x00,}}, {0x7D18,2,{0xBC,0x87,0x00,0x00,}}, {0x7D19,2,{0xBC,0x88,0x00,0x00,}}, {0x7D1A,2,{0xBC,0x89,0x00,0x00,}}, {0x7D1B,2,{0xBC,0x8A,0x00,0x00,}}, {0x7D1C,2,{0xBC,0x8B,0x00,0x00,}}, {0x7D1D,2,{0xBC,0x8C,0x00,0x00,}}, {0x7D1E,2,{0xBC,0x8D,0x00,0x00,}}, {0x7D1F,2,{0xBC,0x8E,0x00,0x00,}}, {0x7D20,2,{0xCB,0xD8,0x00,0x00,}}, {0x7D21,2,{0xBC,0x8F,0x00,0x00,}}, {0x7D22,2,{0xCB,0xF7,0x00,0x00,}}, {0x7D23,2,{0xBC,0x90,0x00,0x00,}}, {0x7D24,2,{0xBC,0x91,0x00,0x00,}}, {0x7D25,2,{0xBC,0x92,0x00,0x00,}}, {0x7D26,2,{0xBC,0x93,0x00,0x00,}}, {0x7D27,2,{0xBD,0xF4,0x00,0x00,}}, {0x7D28,2,{0xBC,0x94,0x00,0x00,}}, {0x7D29,2,{0xBC,0x95,0x00,0x00,}}, {0x7D2A,2,{0xBC,0x96,0x00,0x00,}}, {0x7D2B,2,{0xD7,0xCF,0x00,0x00,}}, {0x7D2C,2,{0xBC,0x97,0x00,0x00,}}, {0x7D2D,2,{0xBC,0x98,0x00,0x00,}}, {0x7D2E,2,{0xBC,0x99,0x00,0x00,}}, {0x7D2F,2,{0xC0,0xDB,0x00,0x00,}}, {0x7D30,2,{0xBC,0x9A,0x00,0x00,}}, {0x7D31,2,{0xBC,0x9B,0x00,0x00,}}, {0x7D32,2,{0xBC,0x9C,0x00,0x00,}}, {0x7D33,2,{0xBC,0x9D,0x00,0x00,}}, {0x7D34,2,{0xBC,0x9E,0x00,0x00,}}, {0x7D35,2,{0xBC,0x9F,0x00,0x00,}}, {0x7D36,2,{0xBC,0xA0,0x00,0x00,}}, {0x7D37,2,{0xBD,0x40,0x00,0x00,}}, {0x7D38,2,{0xBD,0x41,0x00,0x00,}}, {0x7D39,2,{0xBD,0x42,0x00,0x00,}}, {0x7D3A,2,{0xBD,0x43,0x00,0x00,}}, {0x7D3B,2,{0xBD,0x44,0x00,0x00,}}, {0x7D3C,2,{0xBD,0x45,0x00,0x00,}}, {0x7D3D,2,{0xBD,0x46,0x00,0x00,}}, {0x7D3E,2,{0xBD,0x47,0x00,0x00,}}, {0x7D3F,2,{0xBD,0x48,0x00,0x00,}}, {0x7D40,2,{0xBD,0x49,0x00,0x00,}}, {0x7D41,2,{0xBD,0x4A,0x00,0x00,}}, {0x7D42,2,{0xBD,0x4B,0x00,0x00,}}, {0x7D43,2,{0xBD,0x4C,0x00,0x00,}}, {0x7D44,2,{0xBD,0x4D,0x00,0x00,}}, {0x7D45,2,{0xBD,0x4E,0x00,0x00,}}, {0x7D46,2,{0xBD,0x4F,0x00,0x00,}}, {0x7D47,2,{0xBD,0x50,0x00,0x00,}}, {0x7D48,2,{0xBD,0x51,0x00,0x00,}}, {0x7D49,2,{0xBD,0x52,0x00,0x00,}}, {0x7D4A,2,{0xBD,0x53,0x00,0x00,}}, {0x7D4B,2,{0xBD,0x54,0x00,0x00,}}, {0x7D4C,2,{0xBD,0x55,0x00,0x00,}}, {0x7D4D,2,{0xBD,0x56,0x00,0x00,}}, {0x7D4E,2,{0xBD,0x57,0x00,0x00,}}, {0x7D4F,2,{0xBD,0x58,0x00,0x00,}}, {0x7D50,2,{0xBD,0x59,0x00,0x00,}}, {0x7D51,2,{0xBD,0x5A,0x00,0x00,}}, {0x7D52,2,{0xBD,0x5B,0x00,0x00,}}, {0x7D53,2,{0xBD,0x5C,0x00,0x00,}}, {0x7D54,2,{0xBD,0x5D,0x00,0x00,}}, {0x7D55,2,{0xBD,0x5E,0x00,0x00,}}, {0x7D56,2,{0xBD,0x5F,0x00,0x00,}}, {0x7D57,2,{0xBD,0x60,0x00,0x00,}}, {0x7D58,2,{0xBD,0x61,0x00,0x00,}}, {0x7D59,2,{0xBD,0x62,0x00,0x00,}}, {0x7D5A,2,{0xBD,0x63,0x00,0x00,}}, {0x7D5B,2,{0xBD,0x64,0x00,0x00,}}, {0x7D5C,2,{0xBD,0x65,0x00,0x00,}}, {0x7D5D,2,{0xBD,0x66,0x00,0x00,}}, {0x7D5E,2,{0xBD,0x67,0x00,0x00,}}, {0x7D5F,2,{0xBD,0x68,0x00,0x00,}}, {0x7D60,2,{0xBD,0x69,0x00,0x00,}}, {0x7D61,2,{0xBD,0x6A,0x00,0x00,}}, {0x7D62,2,{0xBD,0x6B,0x00,0x00,}}, {0x7D63,2,{0xBD,0x6C,0x00,0x00,}}, {0x7D64,2,{0xBD,0x6D,0x00,0x00,}}, {0x7D65,2,{0xBD,0x6E,0x00,0x00,}}, {0x7D66,2,{0xBD,0x6F,0x00,0x00,}}, {0x7D67,2,{0xBD,0x70,0x00,0x00,}}, {0x7D68,2,{0xBD,0x71,0x00,0x00,}}, {0x7D69,2,{0xBD,0x72,0x00,0x00,}}, {0x7D6A,2,{0xBD,0x73,0x00,0x00,}}, {0x7D6B,2,{0xBD,0x74,0x00,0x00,}}, {0x7D6C,2,{0xBD,0x75,0x00,0x00,}}, {0x7D6D,2,{0xBD,0x76,0x00,0x00,}}, {0x7D6E,2,{0xD0,0xF5,0x00,0x00,}}, {0x7D6F,2,{0xBD,0x77,0x00,0x00,}}, {0x7D70,2,{0xBD,0x78,0x00,0x00,}}, {0x7D71,2,{0xBD,0x79,0x00,0x00,}}, {0x7D72,2,{0xBD,0x7A,0x00,0x00,}}, {0x7D73,2,{0xBD,0x7B,0x00,0x00,}}, {0x7D74,2,{0xBD,0x7C,0x00,0x00,}}, {0x7D75,2,{0xBD,0x7D,0x00,0x00,}}, {0x7D76,2,{0xBD,0x7E,0x00,0x00,}}, {0x7D77,2,{0xF4,0xEA,0x00,0x00,}}, {0x7D78,2,{0xBD,0x80,0x00,0x00,}}, {0x7D79,2,{0xBD,0x81,0x00,0x00,}}, {0x7D7A,2,{0xBD,0x82,0x00,0x00,}}, {0x7D7B,2,{0xBD,0x83,0x00,0x00,}}, {0x7D7C,2,{0xBD,0x84,0x00,0x00,}}, {0x7D7D,2,{0xBD,0x85,0x00,0x00,}}, {0x7D7E,2,{0xBD,0x86,0x00,0x00,}}, {0x7D7F,2,{0xBD,0x87,0x00,0x00,}}, {0x7D80,2,{0xBD,0x88,0x00,0x00,}}, {0x7D81,2,{0xBD,0x89,0x00,0x00,}}, {0x7D82,2,{0xBD,0x8A,0x00,0x00,}}, {0x7D83,2,{0xBD,0x8B,0x00,0x00,}}, {0x7D84,2,{0xBD,0x8C,0x00,0x00,}}, {0x7D85,2,{0xBD,0x8D,0x00,0x00,}}, {0x7D86,2,{0xBD,0x8E,0x00,0x00,}}, {0x7D87,2,{0xBD,0x8F,0x00,0x00,}}, {0x7D88,2,{0xBD,0x90,0x00,0x00,}}, {0x7D89,2,{0xBD,0x91,0x00,0x00,}}, {0x7D8A,2,{0xBD,0x92,0x00,0x00,}}, {0x7D8B,2,{0xBD,0x93,0x00,0x00,}}, {0x7D8C,2,{0xBD,0x94,0x00,0x00,}}, {0x7D8D,2,{0xBD,0x95,0x00,0x00,}}, {0x7D8E,2,{0xBD,0x96,0x00,0x00,}}, {0x7D8F,2,{0xBD,0x97,0x00,0x00,}}, {0x7D90,2,{0xBD,0x98,0x00,0x00,}}, {0x7D91,2,{0xBD,0x99,0x00,0x00,}}, {0x7D92,2,{0xBD,0x9A,0x00,0x00,}}, {0x7D93,2,{0xBD,0x9B,0x00,0x00,}}, {0x7D94,2,{0xBD,0x9C,0x00,0x00,}}, {0x7D95,2,{0xBD,0x9D,0x00,0x00,}}, {0x7D96,2,{0xBD,0x9E,0x00,0x00,}}, {0x7D97,2,{0xBD,0x9F,0x00,0x00,}}, {0x7D98,2,{0xBD,0xA0,0x00,0x00,}}, {0x7D99,2,{0xBE,0x40,0x00,0x00,}}, {0x7D9A,2,{0xBE,0x41,0x00,0x00,}}, {0x7D9B,2,{0xBE,0x42,0x00,0x00,}}, {0x7D9C,2,{0xBE,0x43,0x00,0x00,}}, {0x7D9D,2,{0xBE,0x44,0x00,0x00,}}, {0x7D9E,2,{0xBE,0x45,0x00,0x00,}}, {0x7D9F,2,{0xBE,0x46,0x00,0x00,}}, {0x7DA0,2,{0xBE,0x47,0x00,0x00,}}, {0x7DA1,2,{0xBE,0x48,0x00,0x00,}}, {0x7DA2,2,{0xBE,0x49,0x00,0x00,}}, {0x7DA3,2,{0xBE,0x4A,0x00,0x00,}}, {0x7DA4,2,{0xBE,0x4B,0x00,0x00,}}, {0x7DA5,2,{0xBE,0x4C,0x00,0x00,}}, {0x7DA6,2,{0xF4,0xEB,0x00,0x00,}}, {0x7DA7,2,{0xBE,0x4D,0x00,0x00,}}, {0x7DA8,2,{0xBE,0x4E,0x00,0x00,}}, {0x7DA9,2,{0xBE,0x4F,0x00,0x00,}}, {0x7DAA,2,{0xBE,0x50,0x00,0x00,}}, {0x7DAB,2,{0xBE,0x51,0x00,0x00,}}, {0x7DAC,2,{0xBE,0x52,0x00,0x00,}}, {0x7DAD,2,{0xBE,0x53,0x00,0x00,}}, {0x7DAE,2,{0xF4,0xEC,0x00,0x00,}}, {0x7DAF,2,{0xBE,0x54,0x00,0x00,}}, {0x7DB0,2,{0xBE,0x55,0x00,0x00,}}, {0x7DB1,2,{0xBE,0x56,0x00,0x00,}}, {0x7DB2,2,{0xBE,0x57,0x00,0x00,}}, {0x7DB3,2,{0xBE,0x58,0x00,0x00,}}, {0x7DB4,2,{0xBE,0x59,0x00,0x00,}}, {0x7DB5,2,{0xBE,0x5A,0x00,0x00,}}, {0x7DB6,2,{0xBE,0x5B,0x00,0x00,}}, {0x7DB7,2,{0xBE,0x5C,0x00,0x00,}}, {0x7DB8,2,{0xBE,0x5D,0x00,0x00,}}, {0x7DB9,2,{0xBE,0x5E,0x00,0x00,}}, {0x7DBA,2,{0xBE,0x5F,0x00,0x00,}}, {0x7DBB,2,{0xBE,0x60,0x00,0x00,}}, {0x7DBC,2,{0xBE,0x61,0x00,0x00,}}, {0x7DBD,2,{0xBE,0x62,0x00,0x00,}}, {0x7DBE,2,{0xBE,0x63,0x00,0x00,}}, {0x7DBF,2,{0xBE,0x64,0x00,0x00,}}, {0x7DC0,2,{0xBE,0x65,0x00,0x00,}}, {0x7DC1,2,{0xBE,0x66,0x00,0x00,}}, {0x7DC2,2,{0xBE,0x67,0x00,0x00,}}, {0x7DC3,2,{0xBE,0x68,0x00,0x00,}}, {0x7DC4,2,{0xBE,0x69,0x00,0x00,}}, {0x7DC5,2,{0xBE,0x6A,0x00,0x00,}}, {0x7DC6,2,{0xBE,0x6B,0x00,0x00,}}, {0x7DC7,2,{0xBE,0x6C,0x00,0x00,}}, {0x7DC8,2,{0xBE,0x6D,0x00,0x00,}}, {0x7DC9,2,{0xBE,0x6E,0x00,0x00,}}, {0x7DCA,2,{0xBE,0x6F,0x00,0x00,}}, {0x7DCB,2,{0xBE,0x70,0x00,0x00,}}, {0x7DCC,2,{0xBE,0x71,0x00,0x00,}}, {0x7DCD,2,{0xBE,0x72,0x00,0x00,}}, {0x7DCE,2,{0xBE,0x73,0x00,0x00,}}, {0x7DCF,2,{0xBE,0x74,0x00,0x00,}}, {0x7DD0,2,{0xBE,0x75,0x00,0x00,}}, {0x7DD1,2,{0xBE,0x76,0x00,0x00,}}, {0x7DD2,2,{0xBE,0x77,0x00,0x00,}}, {0x7DD3,2,{0xBE,0x78,0x00,0x00,}}, {0x7DD4,2,{0xBE,0x79,0x00,0x00,}}, {0x7DD5,2,{0xBE,0x7A,0x00,0x00,}}, {0x7DD6,2,{0xBE,0x7B,0x00,0x00,}}, {0x7DD7,2,{0xBE,0x7C,0x00,0x00,}}, {0x7DD8,2,{0xBE,0x7D,0x00,0x00,}}, {0x7DD9,2,{0xBE,0x7E,0x00,0x00,}}, {0x7DDA,2,{0xBE,0x80,0x00,0x00,}}, {0x7DDB,2,{0xBE,0x81,0x00,0x00,}}, {0x7DDC,2,{0xBE,0x82,0x00,0x00,}}, {0x7DDD,2,{0xBE,0x83,0x00,0x00,}}, {0x7DDE,2,{0xBE,0x84,0x00,0x00,}}, {0x7DDF,2,{0xBE,0x85,0x00,0x00,}}, {0x7DE0,2,{0xBE,0x86,0x00,0x00,}}, {0x7DE1,2,{0xBE,0x87,0x00,0x00,}}, {0x7DE2,2,{0xBE,0x88,0x00,0x00,}}, {0x7DE3,2,{0xBE,0x89,0x00,0x00,}}, {0x7DE4,2,{0xBE,0x8A,0x00,0x00,}}, {0x7DE5,2,{0xBE,0x8B,0x00,0x00,}}, {0x7DE6,2,{0xBE,0x8C,0x00,0x00,}}, {0x7DE7,2,{0xBE,0x8D,0x00,0x00,}}, {0x7DE8,2,{0xBE,0x8E,0x00,0x00,}}, {0x7DE9,2,{0xBE,0x8F,0x00,0x00,}}, {0x7DEA,2,{0xBE,0x90,0x00,0x00,}}, {0x7DEB,2,{0xBE,0x91,0x00,0x00,}}, {0x7DEC,2,{0xBE,0x92,0x00,0x00,}}, {0x7DED,2,{0xBE,0x93,0x00,0x00,}}, {0x7DEE,2,{0xBE,0x94,0x00,0x00,}}, {0x7DEF,2,{0xBE,0x95,0x00,0x00,}}, {0x7DF0,2,{0xBE,0x96,0x00,0x00,}}, {0x7DF1,2,{0xBE,0x97,0x00,0x00,}}, {0x7DF2,2,{0xBE,0x98,0x00,0x00,}}, {0x7DF3,2,{0xBE,0x99,0x00,0x00,}}, {0x7DF4,2,{0xBE,0x9A,0x00,0x00,}}, {0x7DF5,2,{0xBE,0x9B,0x00,0x00,}}, {0x7DF6,2,{0xBE,0x9C,0x00,0x00,}}, {0x7DF7,2,{0xBE,0x9D,0x00,0x00,}}, {0x7DF8,2,{0xBE,0x9E,0x00,0x00,}}, {0x7DF9,2,{0xBE,0x9F,0x00,0x00,}}, {0x7DFA,2,{0xBE,0xA0,0x00,0x00,}}, {0x7DFB,2,{0xBF,0x40,0x00,0x00,}}, {0x7DFC,2,{0xBF,0x41,0x00,0x00,}}, {0x7DFD,2,{0xBF,0x42,0x00,0x00,}}, {0x7DFE,2,{0xBF,0x43,0x00,0x00,}}, {0x7DFF,2,{0xBF,0x44,0x00,0x00,}}, {0x7E00,2,{0xBF,0x45,0x00,0x00,}}, {0x7E01,2,{0xBF,0x46,0x00,0x00,}}, {0x7E02,2,{0xBF,0x47,0x00,0x00,}}, {0x7E03,2,{0xBF,0x48,0x00,0x00,}}, {0x7E04,2,{0xBF,0x49,0x00,0x00,}}, {0x7E05,2,{0xBF,0x4A,0x00,0x00,}}, {0x7E06,2,{0xBF,0x4B,0x00,0x00,}}, {0x7E07,2,{0xBF,0x4C,0x00,0x00,}}, {0x7E08,2,{0xBF,0x4D,0x00,0x00,}}, {0x7E09,2,{0xBF,0x4E,0x00,0x00,}}, {0x7E0A,2,{0xBF,0x4F,0x00,0x00,}}, {0x7E0B,2,{0xBF,0x50,0x00,0x00,}}, {0x7E0C,2,{0xBF,0x51,0x00,0x00,}}, {0x7E0D,2,{0xBF,0x52,0x00,0x00,}}, {0x7E0E,2,{0xBF,0x53,0x00,0x00,}}, {0x7E0F,2,{0xBF,0x54,0x00,0x00,}}, {0x7E10,2,{0xBF,0x55,0x00,0x00,}}, {0x7E11,2,{0xBF,0x56,0x00,0x00,}}, {0x7E12,2,{0xBF,0x57,0x00,0x00,}}, {0x7E13,2,{0xBF,0x58,0x00,0x00,}}, {0x7E14,2,{0xBF,0x59,0x00,0x00,}}, {0x7E15,2,{0xBF,0x5A,0x00,0x00,}}, {0x7E16,2,{0xBF,0x5B,0x00,0x00,}}, {0x7E17,2,{0xBF,0x5C,0x00,0x00,}}, {0x7E18,2,{0xBF,0x5D,0x00,0x00,}}, {0x7E19,2,{0xBF,0x5E,0x00,0x00,}}, {0x7E1A,2,{0xBF,0x5F,0x00,0x00,}}, {0x7E1B,2,{0xBF,0x60,0x00,0x00,}}, {0x7E1C,2,{0xBF,0x61,0x00,0x00,}}, {0x7E1D,2,{0xBF,0x62,0x00,0x00,}}, {0x7E1E,2,{0xBF,0x63,0x00,0x00,}}, {0x7E1F,2,{0xBF,0x64,0x00,0x00,}}, {0x7E20,2,{0xBF,0x65,0x00,0x00,}}, {0x7E21,2,{0xBF,0x66,0x00,0x00,}}, {0x7E22,2,{0xBF,0x67,0x00,0x00,}}, {0x7E23,2,{0xBF,0x68,0x00,0x00,}}, {0x7E24,2,{0xBF,0x69,0x00,0x00,}}, {0x7E25,2,{0xBF,0x6A,0x00,0x00,}}, {0x7E26,2,{0xBF,0x6B,0x00,0x00,}}, {0x7E27,2,{0xBF,0x6C,0x00,0x00,}}, {0x7E28,2,{0xBF,0x6D,0x00,0x00,}}, {0x7E29,2,{0xBF,0x6E,0x00,0x00,}}, {0x7E2A,2,{0xBF,0x6F,0x00,0x00,}}, {0x7E2B,2,{0xBF,0x70,0x00,0x00,}}, {0x7E2C,2,{0xBF,0x71,0x00,0x00,}}, {0x7E2D,2,{0xBF,0x72,0x00,0x00,}}, {0x7E2E,2,{0xBF,0x73,0x00,0x00,}}, {0x7E2F,2,{0xBF,0x74,0x00,0x00,}}, {0x7E30,2,{0xBF,0x75,0x00,0x00,}}, {0x7E31,2,{0xBF,0x76,0x00,0x00,}}, {0x7E32,2,{0xBF,0x77,0x00,0x00,}}, {0x7E33,2,{0xBF,0x78,0x00,0x00,}}, {0x7E34,2,{0xBF,0x79,0x00,0x00,}}, {0x7E35,2,{0xBF,0x7A,0x00,0x00,}}, {0x7E36,2,{0xBF,0x7B,0x00,0x00,}}, {0x7E37,2,{0xBF,0x7C,0x00,0x00,}}, {0x7E38,2,{0xBF,0x7D,0x00,0x00,}}, {0x7E39,2,{0xBF,0x7E,0x00,0x00,}}, {0x7E3A,2,{0xBF,0x80,0x00,0x00,}}, {0x7E3B,2,{0xF7,0xE3,0x00,0x00,}}, {0x7E3C,2,{0xBF,0x81,0x00,0x00,}}, {0x7E3D,2,{0xBF,0x82,0x00,0x00,}}, {0x7E3E,2,{0xBF,0x83,0x00,0x00,}}, {0x7E3F,2,{0xBF,0x84,0x00,0x00,}}, {0x7E40,2,{0xBF,0x85,0x00,0x00,}}, {0x7E41,2,{0xB7,0xB1,0x00,0x00,}}, {0x7E42,2,{0xBF,0x86,0x00,0x00,}}, {0x7E43,2,{0xBF,0x87,0x00,0x00,}}, {0x7E44,2,{0xBF,0x88,0x00,0x00,}}, {0x7E45,2,{0xBF,0x89,0x00,0x00,}}, {0x7E46,2,{0xBF,0x8A,0x00,0x00,}}, {0x7E47,2,{0xF4,0xED,0x00,0x00,}}, {0x7E48,2,{0xBF,0x8B,0x00,0x00,}}, {0x7E49,2,{0xBF,0x8C,0x00,0x00,}}, {0x7E4A,2,{0xBF,0x8D,0x00,0x00,}}, {0x7E4B,2,{0xBF,0x8E,0x00,0x00,}}, {0x7E4C,2,{0xBF,0x8F,0x00,0x00,}}, {0x7E4D,2,{0xBF,0x90,0x00,0x00,}}, {0x7E4E,2,{0xBF,0x91,0x00,0x00,}}, {0x7E4F,2,{0xBF,0x92,0x00,0x00,}}, {0x7E50,2,{0xBF,0x93,0x00,0x00,}}, {0x7E51,2,{0xBF,0x94,0x00,0x00,}}, {0x7E52,2,{0xBF,0x95,0x00,0x00,}}, {0x7E53,2,{0xBF,0x96,0x00,0x00,}}, {0x7E54,2,{0xBF,0x97,0x00,0x00,}}, {0x7E55,2,{0xBF,0x98,0x00,0x00,}}, {0x7E56,2,{0xBF,0x99,0x00,0x00,}}, {0x7E57,2,{0xBF,0x9A,0x00,0x00,}}, {0x7E58,2,{0xBF,0x9B,0x00,0x00,}}, {0x7E59,2,{0xBF,0x9C,0x00,0x00,}}, {0x7E5A,2,{0xBF,0x9D,0x00,0x00,}}, {0x7E5B,2,{0xBF,0x9E,0x00,0x00,}}, {0x7E5C,2,{0xBF,0x9F,0x00,0x00,}}, {0x7E5D,2,{0xBF,0xA0,0x00,0x00,}}, {0x7E5E,2,{0xC0,0x40,0x00,0x00,}}, {0x7E5F,2,{0xC0,0x41,0x00,0x00,}}, {0x7E60,2,{0xC0,0x42,0x00,0x00,}}, {0x7E61,2,{0xC0,0x43,0x00,0x00,}}, {0x7E62,2,{0xC0,0x44,0x00,0x00,}}, {0x7E63,2,{0xC0,0x45,0x00,0x00,}}, {0x7E64,2,{0xC0,0x46,0x00,0x00,}}, {0x7E65,2,{0xC0,0x47,0x00,0x00,}}, {0x7E66,2,{0xC0,0x48,0x00,0x00,}}, {0x7E67,2,{0xC0,0x49,0x00,0x00,}}, {0x7E68,2,{0xC0,0x4A,0x00,0x00,}}, {0x7E69,2,{0xC0,0x4B,0x00,0x00,}}, {0x7E6A,2,{0xC0,0x4C,0x00,0x00,}}, {0x7E6B,2,{0xC0,0x4D,0x00,0x00,}}, {0x7E6C,2,{0xC0,0x4E,0x00,0x00,}}, {0x7E6D,2,{0xC0,0x4F,0x00,0x00,}}, {0x7E6E,2,{0xC0,0x50,0x00,0x00,}}, {0x7E6F,2,{0xC0,0x51,0x00,0x00,}}, {0x7E70,2,{0xC0,0x52,0x00,0x00,}}, {0x7E71,2,{0xC0,0x53,0x00,0x00,}}, {0x7E72,2,{0xC0,0x54,0x00,0x00,}}, {0x7E73,2,{0xC0,0x55,0x00,0x00,}}, {0x7E74,2,{0xC0,0x56,0x00,0x00,}}, {0x7E75,2,{0xC0,0x57,0x00,0x00,}}, {0x7E76,2,{0xC0,0x58,0x00,0x00,}}, {0x7E77,2,{0xC0,0x59,0x00,0x00,}}, {0x7E78,2,{0xC0,0x5A,0x00,0x00,}}, {0x7E79,2,{0xC0,0x5B,0x00,0x00,}}, {0x7E7A,2,{0xC0,0x5C,0x00,0x00,}}, {0x7E7B,2,{0xC0,0x5D,0x00,0x00,}}, {0x7E7C,2,{0xC0,0x5E,0x00,0x00,}}, {0x7E7D,2,{0xC0,0x5F,0x00,0x00,}}, {0x7E7E,2,{0xC0,0x60,0x00,0x00,}}, {0x7E7F,2,{0xC0,0x61,0x00,0x00,}}, {0x7E80,2,{0xC0,0x62,0x00,0x00,}}, {0x7E81,2,{0xC0,0x63,0x00,0x00,}}, {0x7E82,2,{0xD7,0xEB,0x00,0x00,}}, {0x7E83,2,{0xC0,0x64,0x00,0x00,}}, {0x7E84,2,{0xC0,0x65,0x00,0x00,}}, {0x7E85,2,{0xC0,0x66,0x00,0x00,}}, {0x7E86,2,{0xC0,0x67,0x00,0x00,}}, {0x7E87,2,{0xC0,0x68,0x00,0x00,}}, {0x7E88,2,{0xC0,0x69,0x00,0x00,}}, {0x7E89,2,{0xC0,0x6A,0x00,0x00,}}, {0x7E8A,2,{0xC0,0x6B,0x00,0x00,}}, {0x7E8B,2,{0xC0,0x6C,0x00,0x00,}}, {0x7E8C,2,{0xC0,0x6D,0x00,0x00,}}, {0x7E8D,2,{0xC0,0x6E,0x00,0x00,}}, {0x7E8E,2,{0xC0,0x6F,0x00,0x00,}}, {0x7E8F,2,{0xC0,0x70,0x00,0x00,}}, {0x7E90,2,{0xC0,0x71,0x00,0x00,}}, {0x7E91,2,{0xC0,0x72,0x00,0x00,}}, {0x7E92,2,{0xC0,0x73,0x00,0x00,}}, {0x7E93,2,{0xC0,0x74,0x00,0x00,}}, {0x7E94,2,{0xC0,0x75,0x00,0x00,}}, {0x7E95,2,{0xC0,0x76,0x00,0x00,}}, {0x7E96,2,{0xC0,0x77,0x00,0x00,}}, {0x7E97,2,{0xC0,0x78,0x00,0x00,}}, {0x7E98,2,{0xC0,0x79,0x00,0x00,}}, {0x7E99,2,{0xC0,0x7A,0x00,0x00,}}, {0x7E9A,2,{0xC0,0x7B,0x00,0x00,}}, {0x7E9B,2,{0xF4,0xEE,0x00,0x00,}}, {0x7E9C,2,{0xC0,0x7C,0x00,0x00,}}, {0x7E9D,2,{0xC0,0x7D,0x00,0x00,}}, {0x7E9E,2,{0xC0,0x7E,0x00,0x00,}}, {0x7E9F,2,{0xE6,0xF9,0x00,0x00,}}, {0x7EA0,2,{0xBE,0xC0,0x00,0x00,}}, {0x7EA1,2,{0xE6,0xFA,0x00,0x00,}}, {0x7EA2,2,{0xBA,0xEC,0x00,0x00,}}, {0x7EA3,2,{0xE6,0xFB,0x00,0x00,}}, {0x7EA4,2,{0xCF,0xCB,0x00,0x00,}}, {0x7EA5,2,{0xE6,0xFC,0x00,0x00,}}, {0x7EA6,2,{0xD4,0xBC,0x00,0x00,}}, {0x7EA7,2,{0xBC,0xB6,0x00,0x00,}}, {0x7EA8,2,{0xE6,0xFD,0x00,0x00,}}, {0x7EA9,2,{0xE6,0xFE,0x00,0x00,}}, {0x7EAA,2,{0xBC,0xCD,0x00,0x00,}}, {0x7EAB,2,{0xC8,0xD2,0x00,0x00,}}, {0x7EAC,2,{0xCE,0xB3,0x00,0x00,}}, {0x7EAD,2,{0xE7,0xA1,0x00,0x00,}}, {0x7EAE,2,{0xC0,0x80,0x00,0x00,}}, {0x7EAF,2,{0xB4,0xBF,0x00,0x00,}}, {0x7EB0,2,{0xE7,0xA2,0x00,0x00,}}, {0x7EB1,2,{0xC9,0xB4,0x00,0x00,}}, {0x7EB2,2,{0xB8,0xD9,0x00,0x00,}}, {0x7EB3,2,{0xC4,0xC9,0x00,0x00,}}, {0x7EB4,2,{0xC0,0x81,0x00,0x00,}}, {0x7EB5,2,{0xD7,0xDD,0x00,0x00,}}, {0x7EB6,2,{0xC2,0xDA,0x00,0x00,}}, {0x7EB7,2,{0xB7,0xD7,0x00,0x00,}}, {0x7EB8,2,{0xD6,0xBD,0x00,0x00,}}, {0x7EB9,2,{0xCE,0xC6,0x00,0x00,}}, {0x7EBA,2,{0xB7,0xC4,0x00,0x00,}}, {0x7EBB,2,{0xC0,0x82,0x00,0x00,}}, {0x7EBC,2,{0xC0,0x83,0x00,0x00,}}, {0x7EBD,2,{0xC5,0xA6,0x00,0x00,}}, {0x7EBE,2,{0xE7,0xA3,0x00,0x00,}}, {0x7EBF,2,{0xCF,0xDF,0x00,0x00,}}, {0x7EC0,2,{0xE7,0xA4,0x00,0x00,}}, {0x7EC1,2,{0xE7,0xA5,0x00,0x00,}}, {0x7EC2,2,{0xE7,0xA6,0x00,0x00,}}, {0x7EC3,2,{0xC1,0xB7,0x00,0x00,}}, {0x7EC4,2,{0xD7,0xE9,0x00,0x00,}}, {0x7EC5,2,{0xC9,0xF0,0x00,0x00,}}, {0x7EC6,2,{0xCF,0xB8,0x00,0x00,}}, {0x7EC7,2,{0xD6,0xAF,0x00,0x00,}}, {0x7EC8,2,{0xD6,0xD5,0x00,0x00,}}, {0x7EC9,2,{0xE7,0xA7,0x00,0x00,}}, {0x7ECA,2,{0xB0,0xED,0x00,0x00,}}, {0x7ECB,2,{0xE7,0xA8,0x00,0x00,}}, {0x7ECC,2,{0xE7,0xA9,0x00,0x00,}}, {0x7ECD,2,{0xC9,0xDC,0x00,0x00,}}, {0x7ECE,2,{0xD2,0xEF,0x00,0x00,}}, {0x7ECF,2,{0xBE,0xAD,0x00,0x00,}}, {0x7ED0,2,{0xE7,0xAA,0x00,0x00,}}, {0x7ED1,2,{0xB0,0xF3,0x00,0x00,}}, {0x7ED2,2,{0xC8,0xDE,0x00,0x00,}}, {0x7ED3,2,{0xBD,0xE1,0x00,0x00,}}, {0x7ED4,2,{0xE7,0xAB,0x00,0x00,}}, {0x7ED5,2,{0xC8,0xC6,0x00,0x00,}}, {0x7ED6,2,{0xC0,0x84,0x00,0x00,}}, {0x7ED7,2,{0xE7,0xAC,0x00,0x00,}}, {0x7ED8,2,{0xBB,0xE6,0x00,0x00,}}, {0x7ED9,2,{0xB8,0xF8,0x00,0x00,}}, {0x7EDA,2,{0xD1,0xA4,0x00,0x00,}}, {0x7EDB,2,{0xE7,0xAD,0x00,0x00,}}, {0x7EDC,2,{0xC2,0xE7,0x00,0x00,}}, {0x7EDD,2,{0xBE,0xF8,0x00,0x00,}}, {0x7EDE,2,{0xBD,0xCA,0x00,0x00,}}, {0x7EDF,2,{0xCD,0xB3,0x00,0x00,}}, {0x7EE0,2,{0xE7,0xAE,0x00,0x00,}}, {0x7EE1,2,{0xE7,0xAF,0x00,0x00,}}, {0x7EE2,2,{0xBE,0xEE,0x00,0x00,}}, {0x7EE3,2,{0xD0,0xE5,0x00,0x00,}}, {0x7EE4,2,{0xC0,0x85,0x00,0x00,}}, {0x7EE5,2,{0xCB,0xE7,0x00,0x00,}}, {0x7EE6,2,{0xCC,0xD0,0x00,0x00,}}, {0x7EE7,2,{0xBC,0xCC,0x00,0x00,}}, {0x7EE8,2,{0xE7,0xB0,0x00,0x00,}}, {0x7EE9,2,{0xBC,0xA8,0x00,0x00,}}, {0x7EEA,2,{0xD0,0xF7,0x00,0x00,}}, {0x7EEB,2,{0xE7,0xB1,0x00,0x00,}}, {0x7EEC,2,{0xC0,0x86,0x00,0x00,}}, {0x7EED,2,{0xD0,0xF8,0x00,0x00,}}, {0x7EEE,2,{0xE7,0xB2,0x00,0x00,}}, {0x7EEF,2,{0xE7,0xB3,0x00,0x00,}}, {0x7EF0,2,{0xB4,0xC2,0x00,0x00,}}, {0x7EF1,2,{0xE7,0xB4,0x00,0x00,}}, {0x7EF2,2,{0xE7,0xB5,0x00,0x00,}}, {0x7EF3,2,{0xC9,0xFE,0x00,0x00,}}, {0x7EF4,2,{0xCE,0xAC,0x00,0x00,}}, {0x7EF5,2,{0xC3,0xE0,0x00,0x00,}}, {0x7EF6,2,{0xE7,0xB7,0x00,0x00,}}, {0x7EF7,2,{0xB1,0xC1,0x00,0x00,}}, {0x7EF8,2,{0xB3,0xF1,0x00,0x00,}}, {0x7EF9,2,{0xC0,0x87,0x00,0x00,}}, {0x7EFA,2,{0xE7,0xB8,0x00,0x00,}}, {0x7EFB,2,{0xE7,0xB9,0x00,0x00,}}, {0x7EFC,2,{0xD7,0xDB,0x00,0x00,}}, {0x7EFD,2,{0xD5,0xC0,0x00,0x00,}}, {0x7EFE,2,{0xE7,0xBA,0x00,0x00,}}, {0x7EFF,2,{0xC2,0xCC,0x00,0x00,}}, {0x7F00,2,{0xD7,0xBA,0x00,0x00,}}, {0x7F01,2,{0xE7,0xBB,0x00,0x00,}}, {0x7F02,2,{0xE7,0xBC,0x00,0x00,}}, {0x7F03,2,{0xE7,0xBD,0x00,0x00,}}, {0x7F04,2,{0xBC,0xEA,0x00,0x00,}}, {0x7F05,2,{0xC3,0xE5,0x00,0x00,}}, {0x7F06,2,{0xC0,0xC2,0x00,0x00,}}, {0x7F07,2,{0xE7,0xBE,0x00,0x00,}}, {0x7F08,2,{0xE7,0xBF,0x00,0x00,}}, {0x7F09,2,{0xBC,0xA9,0x00,0x00,}}, {0x7F0A,2,{0xC0,0x88,0x00,0x00,}}, {0x7F0B,2,{0xE7,0xC0,0x00,0x00,}}, {0x7F0C,2,{0xE7,0xC1,0x00,0x00,}}, {0x7F0D,2,{0xE7,0xB6,0x00,0x00,}}, {0x7F0E,2,{0xB6,0xD0,0x00,0x00,}}, {0x7F0F,2,{0xE7,0xC2,0x00,0x00,}}, {0x7F10,2,{0xC0,0x89,0x00,0x00,}}, {0x7F11,2,{0xE7,0xC3,0x00,0x00,}}, {0x7F12,2,{0xE7,0xC4,0x00,0x00,}}, {0x7F13,2,{0xBB,0xBA,0x00,0x00,}}, {0x7F14,2,{0xB5,0xDE,0x00,0x00,}}, {0x7F15,2,{0xC2,0xC6,0x00,0x00,}}, {0x7F16,2,{0xB1,0xE0,0x00,0x00,}}, {0x7F17,2,{0xE7,0xC5,0x00,0x00,}}, {0x7F18,2,{0xD4,0xB5,0x00,0x00,}}, {0x7F19,2,{0xE7,0xC6,0x00,0x00,}}, {0x7F1A,2,{0xB8,0xBF,0x00,0x00,}}, {0x7F1B,2,{0xE7,0xC8,0x00,0x00,}}, {0x7F1C,2,{0xE7,0xC7,0x00,0x00,}}, {0x7F1D,2,{0xB7,0xEC,0x00,0x00,}}, {0x7F1E,2,{0xC0,0x8A,0x00,0x00,}}, {0x7F1F,2,{0xE7,0xC9,0x00,0x00,}}, {0x7F20,2,{0xB2,0xF8,0x00,0x00,}}, {0x7F21,2,{0xE7,0xCA,0x00,0x00,}}, {0x7F22,2,{0xE7,0xCB,0x00,0x00,}}, {0x7F23,2,{0xE7,0xCC,0x00,0x00,}}, {0x7F24,2,{0xE7,0xCD,0x00,0x00,}}, {0x7F25,2,{0xE7,0xCE,0x00,0x00,}}, {0x7F26,2,{0xE7,0xCF,0x00,0x00,}}, {0x7F27,2,{0xE7,0xD0,0x00,0x00,}}, {0x7F28,2,{0xD3,0xA7,0x00,0x00,}}, {0x7F29,2,{0xCB,0xF5,0x00,0x00,}}, {0x7F2A,2,{0xE7,0xD1,0x00,0x00,}}, {0x7F2B,2,{0xE7,0xD2,0x00,0x00,}}, {0x7F2C,2,{0xE7,0xD3,0x00,0x00,}}, {0x7F2D,2,{0xE7,0xD4,0x00,0x00,}}, {0x7F2E,2,{0xC9,0xC9,0x00,0x00,}}, {0x7F2F,2,{0xE7,0xD5,0x00,0x00,}}, {0x7F30,2,{0xE7,0xD6,0x00,0x00,}}, {0x7F31,2,{0xE7,0xD7,0x00,0x00,}}, {0x7F32,2,{0xE7,0xD8,0x00,0x00,}}, {0x7F33,2,{0xE7,0xD9,0x00,0x00,}}, {0x7F34,2,{0xBD,0xC9,0x00,0x00,}}, {0x7F35,2,{0xE7,0xDA,0x00,0x00,}}, {0x7F36,2,{0xF3,0xBE,0x00,0x00,}}, {0x7F37,2,{0xC0,0x8B,0x00,0x00,}}, {0x7F38,2,{0xB8,0xD7,0x00,0x00,}}, {0x7F39,2,{0xC0,0x8C,0x00,0x00,}}, {0x7F3A,2,{0xC8,0xB1,0x00,0x00,}}, {0x7F3B,2,{0xC0,0x8D,0x00,0x00,}}, {0x7F3C,2,{0xC0,0x8E,0x00,0x00,}}, {0x7F3D,2,{0xC0,0x8F,0x00,0x00,}}, {0x7F3E,2,{0xC0,0x90,0x00,0x00,}}, {0x7F3F,2,{0xC0,0x91,0x00,0x00,}}, {0x7F40,2,{0xC0,0x92,0x00,0x00,}}, {0x7F41,2,{0xC0,0x93,0x00,0x00,}}, {0x7F42,2,{0xF3,0xBF,0x00,0x00,}}, {0x7F43,2,{0xC0,0x94,0x00,0x00,}}, {0x7F44,2,{0xF3,0xC0,0x00,0x00,}}, {0x7F45,2,{0xF3,0xC1,0x00,0x00,}}, {0x7F46,2,{0xC0,0x95,0x00,0x00,}}, {0x7F47,2,{0xC0,0x96,0x00,0x00,}}, {0x7F48,2,{0xC0,0x97,0x00,0x00,}}, {0x7F49,2,{0xC0,0x98,0x00,0x00,}}, {0x7F4A,2,{0xC0,0x99,0x00,0x00,}}, {0x7F4B,2,{0xC0,0x9A,0x00,0x00,}}, {0x7F4C,2,{0xC0,0x9B,0x00,0x00,}}, {0x7F4D,2,{0xC0,0x9C,0x00,0x00,}}, {0x7F4E,2,{0xC0,0x9D,0x00,0x00,}}, {0x7F4F,2,{0xC0,0x9E,0x00,0x00,}}, {0x7F50,2,{0xB9,0xDE,0x00,0x00,}}, {0x7F51,2,{0xCD,0xF8,0x00,0x00,}}, {0x7F52,2,{0xC0,0x9F,0x00,0x00,}}, {0x7F53,2,{0xC0,0xA0,0x00,0x00,}}, {0x7F54,2,{0xD8,0xE8,0x00,0x00,}}, {0x7F55,2,{0xBA,0xB1,0x00,0x00,}}, {0x7F56,2,{0xC1,0x40,0x00,0x00,}}, {0x7F57,2,{0xC2,0xDE,0x00,0x00,}}, {0x7F58,2,{0xEE,0xB7,0x00,0x00,}}, {0x7F59,2,{0xC1,0x41,0x00,0x00,}}, {0x7F5A,2,{0xB7,0xA3,0x00,0x00,}}, {0x7F5B,2,{0xC1,0x42,0x00,0x00,}}, {0x7F5C,2,{0xC1,0x43,0x00,0x00,}}, {0x7F5D,2,{0xC1,0x44,0x00,0x00,}}, {0x7F5E,2,{0xC1,0x45,0x00,0x00,}}, {0x7F5F,2,{0xEE,0xB9,0x00,0x00,}}, {0x7F60,2,{0xC1,0x46,0x00,0x00,}}, {0x7F61,2,{0xEE,0xB8,0x00,0x00,}}, {0x7F62,2,{0xB0,0xD5,0x00,0x00,}}, {0x7F63,2,{0xC1,0x47,0x00,0x00,}}, {0x7F64,2,{0xC1,0x48,0x00,0x00,}}, {0x7F65,2,{0xC1,0x49,0x00,0x00,}}, {0x7F66,2,{0xC1,0x4A,0x00,0x00,}}, {0x7F67,2,{0xC1,0x4B,0x00,0x00,}}, {0x7F68,2,{0xEE,0xBB,0x00,0x00,}}, {0x7F69,2,{0xD5,0xD6,0x00,0x00,}}, {0x7F6A,2,{0xD7,0xEF,0x00,0x00,}}, {0x7F6B,2,{0xC1,0x4C,0x00,0x00,}}, {0x7F6C,2,{0xC1,0x4D,0x00,0x00,}}, {0x7F6D,2,{0xC1,0x4E,0x00,0x00,}}, {0x7F6E,2,{0xD6,0xC3,0x00,0x00,}}, {0x7F6F,2,{0xC1,0x4F,0x00,0x00,}}, {0x7F70,2,{0xC1,0x50,0x00,0x00,}}, {0x7F71,2,{0xEE,0xBD,0x00,0x00,}}, {0x7F72,2,{0xCA,0xF0,0x00,0x00,}}, {0x7F73,2,{0xC1,0x51,0x00,0x00,}}, {0x7F74,2,{0xEE,0xBC,0x00,0x00,}}, {0x7F75,2,{0xC1,0x52,0x00,0x00,}}, {0x7F76,2,{0xC1,0x53,0x00,0x00,}}, {0x7F77,2,{0xC1,0x54,0x00,0x00,}}, {0x7F78,2,{0xC1,0x55,0x00,0x00,}}, {0x7F79,2,{0xEE,0xBE,0x00,0x00,}}, {0x7F7A,2,{0xC1,0x56,0x00,0x00,}}, {0x7F7B,2,{0xC1,0x57,0x00,0x00,}}, {0x7F7C,2,{0xC1,0x58,0x00,0x00,}}, {0x7F7D,2,{0xC1,0x59,0x00,0x00,}}, {0x7F7E,2,{0xEE,0xC0,0x00,0x00,}}, {0x7F7F,2,{0xC1,0x5A,0x00,0x00,}}, {0x7F80,2,{0xC1,0x5B,0x00,0x00,}}, {0x7F81,2,{0xEE,0xBF,0x00,0x00,}}, {0x7F82,2,{0xC1,0x5C,0x00,0x00,}}, {0x7F83,2,{0xC1,0x5D,0x00,0x00,}}, {0x7F84,2,{0xC1,0x5E,0x00,0x00,}}, {0x7F85,2,{0xC1,0x5F,0x00,0x00,}}, {0x7F86,2,{0xC1,0x60,0x00,0x00,}}, {0x7F87,2,{0xC1,0x61,0x00,0x00,}}, {0x7F88,2,{0xC1,0x62,0x00,0x00,}}, {0x7F89,2,{0xC1,0x63,0x00,0x00,}}, {0x7F8A,2,{0xD1,0xF2,0x00,0x00,}}, {0x7F8B,2,{0xC1,0x64,0x00,0x00,}}, {0x7F8C,2,{0xC7,0xBC,0x00,0x00,}}, {0x7F8D,2,{0xC1,0x65,0x00,0x00,}}, {0x7F8E,2,{0xC3,0xC0,0x00,0x00,}}, {0x7F8F,2,{0xC1,0x66,0x00,0x00,}}, {0x7F90,2,{0xC1,0x67,0x00,0x00,}}, {0x7F91,2,{0xC1,0x68,0x00,0x00,}}, {0x7F92,2,{0xC1,0x69,0x00,0x00,}}, {0x7F93,2,{0xC1,0x6A,0x00,0x00,}}, {0x7F94,2,{0xB8,0xE1,0x00,0x00,}}, {0x7F95,2,{0xC1,0x6B,0x00,0x00,}}, {0x7F96,2,{0xC1,0x6C,0x00,0x00,}}, {0x7F97,2,{0xC1,0x6D,0x00,0x00,}}, {0x7F98,2,{0xC1,0x6E,0x00,0x00,}}, {0x7F99,2,{0xC1,0x6F,0x00,0x00,}}, {0x7F9A,2,{0xC1,0xE7,0x00,0x00,}}, {0x7F9B,2,{0xC1,0x70,0x00,0x00,}}, {0x7F9C,2,{0xC1,0x71,0x00,0x00,}}, {0x7F9D,2,{0xF4,0xC6,0x00,0x00,}}, {0x7F9E,2,{0xD0,0xDF,0x00,0x00,}}, {0x7F9F,2,{0xF4,0xC7,0x00,0x00,}}, {0x7FA0,2,{0xC1,0x72,0x00,0x00,}}, {0x7FA1,2,{0xCF,0xDB,0x00,0x00,}}, {0x7FA2,2,{0xC1,0x73,0x00,0x00,}}, {0x7FA3,2,{0xC1,0x74,0x00,0x00,}}, {0x7FA4,2,{0xC8,0xBA,0x00,0x00,}}, {0x7FA5,2,{0xC1,0x75,0x00,0x00,}}, {0x7FA6,2,{0xC1,0x76,0x00,0x00,}}, {0x7FA7,2,{0xF4,0xC8,0x00,0x00,}}, {0x7FA8,2,{0xC1,0x77,0x00,0x00,}}, {0x7FA9,2,{0xC1,0x78,0x00,0x00,}}, {0x7FAA,2,{0xC1,0x79,0x00,0x00,}}, {0x7FAB,2,{0xC1,0x7A,0x00,0x00,}}, {0x7FAC,2,{0xC1,0x7B,0x00,0x00,}}, {0x7FAD,2,{0xC1,0x7C,0x00,0x00,}}, {0x7FAE,2,{0xC1,0x7D,0x00,0x00,}}, {0x7FAF,2,{0xF4,0xC9,0x00,0x00,}}, {0x7FB0,2,{0xF4,0xCA,0x00,0x00,}}, {0x7FB1,2,{0xC1,0x7E,0x00,0x00,}}, {0x7FB2,2,{0xF4,0xCB,0x00,0x00,}}, {0x7FB3,2,{0xC1,0x80,0x00,0x00,}}, {0x7FB4,2,{0xC1,0x81,0x00,0x00,}}, {0x7FB5,2,{0xC1,0x82,0x00,0x00,}}, {0x7FB6,2,{0xC1,0x83,0x00,0x00,}}, {0x7FB7,2,{0xC1,0x84,0x00,0x00,}}, {0x7FB8,2,{0xD9,0xFA,0x00,0x00,}}, {0x7FB9,2,{0xB8,0xFE,0x00,0x00,}}, {0x7FBA,2,{0xC1,0x85,0x00,0x00,}}, {0x7FBB,2,{0xC1,0x86,0x00,0x00,}}, {0x7FBC,2,{0xE5,0xF1,0x00,0x00,}}, {0x7FBD,2,{0xD3,0xF0,0x00,0x00,}}, {0x7FBE,2,{0xC1,0x87,0x00,0x00,}}, {0x7FBF,2,{0xF4,0xE0,0x00,0x00,}}, {0x7FC0,2,{0xC1,0x88,0x00,0x00,}}, {0x7FC1,2,{0xCE,0xCC,0x00,0x00,}}, {0x7FC2,2,{0xC1,0x89,0x00,0x00,}}, {0x7FC3,2,{0xC1,0x8A,0x00,0x00,}}, {0x7FC4,2,{0xC1,0x8B,0x00,0x00,}}, {0x7FC5,2,{0xB3,0xE1,0x00,0x00,}}, {0x7FC6,2,{0xC1,0x8C,0x00,0x00,}}, {0x7FC7,2,{0xC1,0x8D,0x00,0x00,}}, {0x7FC8,2,{0xC1,0x8E,0x00,0x00,}}, {0x7FC9,2,{0xC1,0x8F,0x00,0x00,}}, {0x7FCA,2,{0xF1,0xB4,0x00,0x00,}}, {0x7FCB,2,{0xC1,0x90,0x00,0x00,}}, {0x7FCC,2,{0xD2,0xEE,0x00,0x00,}}, {0x7FCD,2,{0xC1,0x91,0x00,0x00,}}, {0x7FCE,2,{0xF4,0xE1,0x00,0x00,}}, {0x7FCF,2,{0xC1,0x92,0x00,0x00,}}, {0x7FD0,2,{0xC1,0x93,0x00,0x00,}}, {0x7FD1,2,{0xC1,0x94,0x00,0x00,}}, {0x7FD2,2,{0xC1,0x95,0x00,0x00,}}, {0x7FD3,2,{0xC1,0x96,0x00,0x00,}}, {0x7FD4,2,{0xCF,0xE8,0x00,0x00,}}, {0x7FD5,2,{0xF4,0xE2,0x00,0x00,}}, {0x7FD6,2,{0xC1,0x97,0x00,0x00,}}, {0x7FD7,2,{0xC1,0x98,0x00,0x00,}}, {0x7FD8,2,{0xC7,0xCC,0x00,0x00,}}, {0x7FD9,2,{0xC1,0x99,0x00,0x00,}}, {0x7FDA,2,{0xC1,0x9A,0x00,0x00,}}, {0x7FDB,2,{0xC1,0x9B,0x00,0x00,}}, {0x7FDC,2,{0xC1,0x9C,0x00,0x00,}}, {0x7FDD,2,{0xC1,0x9D,0x00,0x00,}}, {0x7FDE,2,{0xC1,0x9E,0x00,0x00,}}, {0x7FDF,2,{0xB5,0xD4,0x00,0x00,}}, {0x7FE0,2,{0xB4,0xE4,0x00,0x00,}}, {0x7FE1,2,{0xF4,0xE4,0x00,0x00,}}, {0x7FE2,2,{0xC1,0x9F,0x00,0x00,}}, {0x7FE3,2,{0xC1,0xA0,0x00,0x00,}}, {0x7FE4,2,{0xC2,0x40,0x00,0x00,}}, {0x7FE5,2,{0xF4,0xE3,0x00,0x00,}}, {0x7FE6,2,{0xF4,0xE5,0x00,0x00,}}, {0x7FE7,2,{0xC2,0x41,0x00,0x00,}}, {0x7FE8,2,{0xC2,0x42,0x00,0x00,}}, {0x7FE9,2,{0xF4,0xE6,0x00,0x00,}}, {0x7FEA,2,{0xC2,0x43,0x00,0x00,}}, {0x7FEB,2,{0xC2,0x44,0x00,0x00,}}, {0x7FEC,2,{0xC2,0x45,0x00,0x00,}}, {0x7FED,2,{0xC2,0x46,0x00,0x00,}}, {0x7FEE,2,{0xF4,0xE7,0x00,0x00,}}, {0x7FEF,2,{0xC2,0x47,0x00,0x00,}}, {0x7FF0,2,{0xBA,0xB2,0x00,0x00,}}, {0x7FF1,2,{0xB0,0xBF,0x00,0x00,}}, {0x7FF2,2,{0xC2,0x48,0x00,0x00,}}, {0x7FF3,2,{0xF4,0xE8,0x00,0x00,}}, {0x7FF4,2,{0xC2,0x49,0x00,0x00,}}, {0x7FF5,2,{0xC2,0x4A,0x00,0x00,}}, {0x7FF6,2,{0xC2,0x4B,0x00,0x00,}}, {0x7FF7,2,{0xC2,0x4C,0x00,0x00,}}, {0x7FF8,2,{0xC2,0x4D,0x00,0x00,}}, {0x7FF9,2,{0xC2,0x4E,0x00,0x00,}}, {0x7FFA,2,{0xC2,0x4F,0x00,0x00,}}, {0x7FFB,2,{0xB7,0xAD,0x00,0x00,}}, {0x7FFC,2,{0xD2,0xED,0x00,0x00,}}, {0x7FFD,2,{0xC2,0x50,0x00,0x00,}}, {0x7FFE,2,{0xC2,0x51,0x00,0x00,}}, {0x7FFF,2,{0xC2,0x52,0x00,0x00,}}, {0x8000,2,{0xD2,0xAB,0x00,0x00,}}, {0x8001,2,{0xC0,0xCF,0x00,0x00,}}, {0x8002,2,{0xC2,0x53,0x00,0x00,}}, {0x8003,2,{0xBF,0xBC,0x00,0x00,}}, {0x8004,2,{0xEB,0xA3,0x00,0x00,}}, {0x8005,2,{0xD5,0xDF,0x00,0x00,}}, {0x8006,2,{0xEA,0xC8,0x00,0x00,}}, {0x8007,2,{0xC2,0x54,0x00,0x00,}}, {0x8008,2,{0xC2,0x55,0x00,0x00,}}, {0x8009,2,{0xC2,0x56,0x00,0x00,}}, {0x800A,2,{0xC2,0x57,0x00,0x00,}}, {0x800B,2,{0xF1,0xF3,0x00,0x00,}}, {0x800C,2,{0xB6,0xF8,0x00,0x00,}}, {0x800D,2,{0xCB,0xA3,0x00,0x00,}}, {0x800E,2,{0xC2,0x58,0x00,0x00,}}, {0x800F,2,{0xC2,0x59,0x00,0x00,}}, {0x8010,2,{0xC4,0xCD,0x00,0x00,}}, {0x8011,2,{0xC2,0x5A,0x00,0x00,}}, {0x8012,2,{0xF1,0xE7,0x00,0x00,}}, {0x8013,2,{0xC2,0x5B,0x00,0x00,}}, {0x8014,2,{0xF1,0xE8,0x00,0x00,}}, {0x8015,2,{0xB8,0xFB,0x00,0x00,}}, {0x8016,2,{0xF1,0xE9,0x00,0x00,}}, {0x8017,2,{0xBA,0xC4,0x00,0x00,}}, {0x8018,2,{0xD4,0xC5,0x00,0x00,}}, {0x8019,2,{0xB0,0xD2,0x00,0x00,}}, {0x801A,2,{0xC2,0x5C,0x00,0x00,}}, {0x801B,2,{0xC2,0x5D,0x00,0x00,}}, {0x801C,2,{0xF1,0xEA,0x00,0x00,}}, {0x801D,2,{0xC2,0x5E,0x00,0x00,}}, {0x801E,2,{0xC2,0x5F,0x00,0x00,}}, {0x801F,2,{0xC2,0x60,0x00,0x00,}}, {0x8020,2,{0xF1,0xEB,0x00,0x00,}}, {0x8021,2,{0xC2,0x61,0x00,0x00,}}, {0x8022,2,{0xF1,0xEC,0x00,0x00,}}, {0x8023,2,{0xC2,0x62,0x00,0x00,}}, {0x8024,2,{0xC2,0x63,0x00,0x00,}}, {0x8025,2,{0xF1,0xED,0x00,0x00,}}, {0x8026,2,{0xF1,0xEE,0x00,0x00,}}, {0x8027,2,{0xF1,0xEF,0x00,0x00,}}, {0x8028,2,{0xF1,0xF1,0x00,0x00,}}, {0x8029,2,{0xF1,0xF0,0x00,0x00,}}, {0x802A,2,{0xC5,0xD5,0x00,0x00,}}, {0x802B,2,{0xC2,0x64,0x00,0x00,}}, {0x802C,2,{0xC2,0x65,0x00,0x00,}}, {0x802D,2,{0xC2,0x66,0x00,0x00,}}, {0x802E,2,{0xC2,0x67,0x00,0x00,}}, {0x802F,2,{0xC2,0x68,0x00,0x00,}}, {0x8030,2,{0xC2,0x69,0x00,0x00,}}, {0x8031,2,{0xF1,0xF2,0x00,0x00,}}, {0x8032,2,{0xC2,0x6A,0x00,0x00,}}, {0x8033,2,{0xB6,0xFA,0x00,0x00,}}, {0x8034,2,{0xC2,0x6B,0x00,0x00,}}, {0x8035,2,{0xF1,0xF4,0x00,0x00,}}, {0x8036,2,{0xD2,0xAE,0x00,0x00,}}, {0x8037,2,{0xDE,0xC7,0x00,0x00,}}, {0x8038,2,{0xCB,0xCA,0x00,0x00,}}, {0x8039,2,{0xC2,0x6C,0x00,0x00,}}, {0x803A,2,{0xC2,0x6D,0x00,0x00,}}, {0x803B,2,{0xB3,0xDC,0x00,0x00,}}, {0x803C,2,{0xC2,0x6E,0x00,0x00,}}, {0x803D,2,{0xB5,0xA2,0x00,0x00,}}, {0x803E,2,{0xC2,0x6F,0x00,0x00,}}, {0x803F,2,{0xB9,0xA2,0x00,0x00,}}, {0x8040,2,{0xC2,0x70,0x00,0x00,}}, {0x8041,2,{0xC2,0x71,0x00,0x00,}}, {0x8042,2,{0xC4,0xF4,0x00,0x00,}}, {0x8043,2,{0xF1,0xF5,0x00,0x00,}}, {0x8044,2,{0xC2,0x72,0x00,0x00,}}, {0x8045,2,{0xC2,0x73,0x00,0x00,}}, {0x8046,2,{0xF1,0xF6,0x00,0x00,}}, {0x8047,2,{0xC2,0x74,0x00,0x00,}}, {0x8048,2,{0xC2,0x75,0x00,0x00,}}, {0x8049,2,{0xC2,0x76,0x00,0x00,}}, {0x804A,2,{0xC1,0xC4,0x00,0x00,}}, {0x804B,2,{0xC1,0xFB,0x00,0x00,}}, {0x804C,2,{0xD6,0xB0,0x00,0x00,}}, {0x804D,2,{0xF1,0xF7,0x00,0x00,}}, {0x804E,2,{0xC2,0x77,0x00,0x00,}}, {0x804F,2,{0xC2,0x78,0x00,0x00,}}, {0x8050,2,{0xC2,0x79,0x00,0x00,}}, {0x8051,2,{0xC2,0x7A,0x00,0x00,}}, {0x8052,2,{0xF1,0xF8,0x00,0x00,}}, {0x8053,2,{0xC2,0x7B,0x00,0x00,}}, {0x8054,2,{0xC1,0xAA,0x00,0x00,}}, {0x8055,2,{0xC2,0x7C,0x00,0x00,}}, {0x8056,2,{0xC2,0x7D,0x00,0x00,}}, {0x8057,2,{0xC2,0x7E,0x00,0x00,}}, {0x8058,2,{0xC6,0xB8,0x00,0x00,}}, {0x8059,2,{0xC2,0x80,0x00,0x00,}}, {0x805A,2,{0xBE,0xDB,0x00,0x00,}}, {0x805B,2,{0xC2,0x81,0x00,0x00,}}, {0x805C,2,{0xC2,0x82,0x00,0x00,}}, {0x805D,2,{0xC2,0x83,0x00,0x00,}}, {0x805E,2,{0xC2,0x84,0x00,0x00,}}, {0x805F,2,{0xC2,0x85,0x00,0x00,}}, {0x8060,2,{0xC2,0x86,0x00,0x00,}}, {0x8061,2,{0xC2,0x87,0x00,0x00,}}, {0x8062,2,{0xC2,0x88,0x00,0x00,}}, {0x8063,2,{0xC2,0x89,0x00,0x00,}}, {0x8064,2,{0xC2,0x8A,0x00,0x00,}}, {0x8065,2,{0xC2,0x8B,0x00,0x00,}}, {0x8066,2,{0xC2,0x8C,0x00,0x00,}}, {0x8067,2,{0xC2,0x8D,0x00,0x00,}}, {0x8068,2,{0xC2,0x8E,0x00,0x00,}}, {0x8069,2,{0xF1,0xF9,0x00,0x00,}}, {0x806A,2,{0xB4,0xCF,0x00,0x00,}}, {0x806B,2,{0xC2,0x8F,0x00,0x00,}}, {0x806C,2,{0xC2,0x90,0x00,0x00,}}, {0x806D,2,{0xC2,0x91,0x00,0x00,}}, {0x806E,2,{0xC2,0x92,0x00,0x00,}}, {0x806F,2,{0xC2,0x93,0x00,0x00,}}, {0x8070,2,{0xC2,0x94,0x00,0x00,}}, {0x8071,2,{0xF1,0xFA,0x00,0x00,}}, {0x8072,2,{0xC2,0x95,0x00,0x00,}}, {0x8073,2,{0xC2,0x96,0x00,0x00,}}, {0x8074,2,{0xC2,0x97,0x00,0x00,}}, {0x8075,2,{0xC2,0x98,0x00,0x00,}}, {0x8076,2,{0xC2,0x99,0x00,0x00,}}, {0x8077,2,{0xC2,0x9A,0x00,0x00,}}, {0x8078,2,{0xC2,0x9B,0x00,0x00,}}, {0x8079,2,{0xC2,0x9C,0x00,0x00,}}, {0x807A,2,{0xC2,0x9D,0x00,0x00,}}, {0x807B,2,{0xC2,0x9E,0x00,0x00,}}, {0x807C,2,{0xC2,0x9F,0x00,0x00,}}, {0x807D,2,{0xC2,0xA0,0x00,0x00,}}, {0x807E,2,{0xC3,0x40,0x00,0x00,}}, {0x807F,2,{0xED,0xB2,0x00,0x00,}}, {0x8080,2,{0xED,0xB1,0x00,0x00,}}, {0x8081,2,{0xC3,0x41,0x00,0x00,}}, {0x8082,2,{0xC3,0x42,0x00,0x00,}}, {0x8083,2,{0xCB,0xE0,0x00,0x00,}}, {0x8084,2,{0xD2,0xDE,0x00,0x00,}}, {0x8085,2,{0xC3,0x43,0x00,0x00,}}, {0x8086,2,{0xCB,0xC1,0x00,0x00,}}, {0x8087,2,{0xD5,0xD8,0x00,0x00,}}, {0x8088,2,{0xC3,0x44,0x00,0x00,}}, {0x8089,2,{0xC8,0xE2,0x00,0x00,}}, {0x808A,2,{0xC3,0x45,0x00,0x00,}}, {0x808B,2,{0xC0,0xDF,0x00,0x00,}}, {0x808C,2,{0xBC,0xA1,0x00,0x00,}}, {0x808D,2,{0xC3,0x46,0x00,0x00,}}, {0x808E,2,{0xC3,0x47,0x00,0x00,}}, {0x808F,2,{0xC3,0x48,0x00,0x00,}}, {0x8090,2,{0xC3,0x49,0x00,0x00,}}, {0x8091,2,{0xC3,0x4A,0x00,0x00,}}, {0x8092,2,{0xC3,0x4B,0x00,0x00,}}, {0x8093,2,{0xEB,0xC1,0x00,0x00,}}, {0x8094,2,{0xC3,0x4C,0x00,0x00,}}, {0x8095,2,{0xC3,0x4D,0x00,0x00,}}, {0x8096,2,{0xD0,0xA4,0x00,0x00,}}, {0x8097,2,{0xC3,0x4E,0x00,0x00,}}, {0x8098,2,{0xD6,0xE2,0x00,0x00,}}, {0x8099,2,{0xC3,0x4F,0x00,0x00,}}, {0x809A,2,{0xB6,0xC7,0x00,0x00,}}, {0x809B,2,{0xB8,0xD8,0x00,0x00,}}, {0x809C,2,{0xEB,0xC0,0x00,0x00,}}, {0x809D,2,{0xB8,0xCE,0x00,0x00,}}, {0x809E,2,{0xC3,0x50,0x00,0x00,}}, {0x809F,2,{0xEB,0xBF,0x00,0x00,}}, {0x80A0,2,{0xB3,0xA6,0x00,0x00,}}, {0x80A1,2,{0xB9,0xC9,0x00,0x00,}}, {0x80A2,2,{0xD6,0xAB,0x00,0x00,}}, {0x80A3,2,{0xC3,0x51,0x00,0x00,}}, {0x80A4,2,{0xB7,0xF4,0x00,0x00,}}, {0x80A5,2,{0xB7,0xCA,0x00,0x00,}}, {0x80A6,2,{0xC3,0x52,0x00,0x00,}}, {0x80A7,2,{0xC3,0x53,0x00,0x00,}}, {0x80A8,2,{0xC3,0x54,0x00,0x00,}}, {0x80A9,2,{0xBC,0xE7,0x00,0x00,}}, {0x80AA,2,{0xB7,0xBE,0x00,0x00,}}, {0x80AB,2,{0xEB,0xC6,0x00,0x00,}}, {0x80AC,2,{0xC3,0x55,0x00,0x00,}}, {0x80AD,2,{0xEB,0xC7,0x00,0x00,}}, {0x80AE,2,{0xB0,0xB9,0x00,0x00,}}, {0x80AF,2,{0xBF,0xCF,0x00,0x00,}}, {0x80B0,2,{0xC3,0x56,0x00,0x00,}}, {0x80B1,2,{0xEB,0xC5,0x00,0x00,}}, {0x80B2,2,{0xD3,0xFD,0x00,0x00,}}, {0x80B3,2,{0xC3,0x57,0x00,0x00,}}, {0x80B4,2,{0xEB,0xC8,0x00,0x00,}}, {0x80B5,2,{0xC3,0x58,0x00,0x00,}}, {0x80B6,2,{0xC3,0x59,0x00,0x00,}}, {0x80B7,2,{0xEB,0xC9,0x00,0x00,}}, {0x80B8,2,{0xC3,0x5A,0x00,0x00,}}, {0x80B9,2,{0xC3,0x5B,0x00,0x00,}}, {0x80BA,2,{0xB7,0xCE,0x00,0x00,}}, {0x80BB,2,{0xC3,0x5C,0x00,0x00,}}, {0x80BC,2,{0xEB,0xC2,0x00,0x00,}}, {0x80BD,2,{0xEB,0xC4,0x00,0x00,}}, {0x80BE,2,{0xC9,0xF6,0x00,0x00,}}, {0x80BF,2,{0xD6,0xD7,0x00,0x00,}}, {0x80C0,2,{0xD5,0xCD,0x00,0x00,}}, {0x80C1,2,{0xD0,0xB2,0x00,0x00,}}, {0x80C2,2,{0xEB,0xCF,0x00,0x00,}}, {0x80C3,2,{0xCE,0xB8,0x00,0x00,}}, {0x80C4,2,{0xEB,0xD0,0x00,0x00,}}, {0x80C5,2,{0xC3,0x5D,0x00,0x00,}}, {0x80C6,2,{0xB5,0xA8,0x00,0x00,}}, {0x80C7,2,{0xC3,0x5E,0x00,0x00,}}, {0x80C8,2,{0xC3,0x5F,0x00,0x00,}}, {0x80C9,2,{0xC3,0x60,0x00,0x00,}}, {0x80CA,2,{0xC3,0x61,0x00,0x00,}}, {0x80CB,2,{0xC3,0x62,0x00,0x00,}}, {0x80CC,2,{0xB1,0xB3,0x00,0x00,}}, {0x80CD,2,{0xEB,0xD2,0x00,0x00,}}, {0x80CE,2,{0xCC,0xA5,0x00,0x00,}}, {0x80CF,2,{0xC3,0x63,0x00,0x00,}}, {0x80D0,2,{0xC3,0x64,0x00,0x00,}}, {0x80D1,2,{0xC3,0x65,0x00,0x00,}}, {0x80D2,2,{0xC3,0x66,0x00,0x00,}}, {0x80D3,2,{0xC3,0x67,0x00,0x00,}}, {0x80D4,2,{0xC3,0x68,0x00,0x00,}}, {0x80D5,2,{0xC3,0x69,0x00,0x00,}}, {0x80D6,2,{0xC5,0xD6,0x00,0x00,}}, {0x80D7,2,{0xEB,0xD3,0x00,0x00,}}, {0x80D8,2,{0xC3,0x6A,0x00,0x00,}}, {0x80D9,2,{0xEB,0xD1,0x00,0x00,}}, {0x80DA,2,{0xC5,0xDF,0x00,0x00,}}, {0x80DB,2,{0xEB,0xCE,0x00,0x00,}}, {0x80DC,2,{0xCA,0xA4,0x00,0x00,}}, {0x80DD,2,{0xEB,0xD5,0x00,0x00,}}, {0x80DE,2,{0xB0,0xFB,0x00,0x00,}}, {0x80DF,2,{0xC3,0x6B,0x00,0x00,}}, {0x80E0,2,{0xC3,0x6C,0x00,0x00,}}, {0x80E1,2,{0xBA,0xFA,0x00,0x00,}}, {0x80E2,2,{0xC3,0x6D,0x00,0x00,}}, {0x80E3,2,{0xC3,0x6E,0x00,0x00,}}, {0x80E4,2,{0xD8,0xB7,0x00,0x00,}}, {0x80E5,2,{0xF1,0xE3,0x00,0x00,}}, {0x80E6,2,{0xC3,0x6F,0x00,0x00,}}, {0x80E7,2,{0xEB,0xCA,0x00,0x00,}}, {0x80E8,2,{0xEB,0xCB,0x00,0x00,}}, {0x80E9,2,{0xEB,0xCC,0x00,0x00,}}, {0x80EA,2,{0xEB,0xCD,0x00,0x00,}}, {0x80EB,2,{0xEB,0xD6,0x00,0x00,}}, {0x80EC,2,{0xE6,0xC0,0x00,0x00,}}, {0x80ED,2,{0xEB,0xD9,0x00,0x00,}}, {0x80EE,2,{0xC3,0x70,0x00,0x00,}}, {0x80EF,2,{0xBF,0xE8,0x00,0x00,}}, {0x80F0,2,{0xD2,0xC8,0x00,0x00,}}, {0x80F1,2,{0xEB,0xD7,0x00,0x00,}}, {0x80F2,2,{0xEB,0xDC,0x00,0x00,}}, {0x80F3,2,{0xB8,0xEC,0x00,0x00,}}, {0x80F4,2,{0xEB,0xD8,0x00,0x00,}}, {0x80F5,2,{0xC3,0x71,0x00,0x00,}}, {0x80F6,2,{0xBD,0xBA,0x00,0x00,}}, {0x80F7,2,{0xC3,0x72,0x00,0x00,}}, {0x80F8,2,{0xD0,0xD8,0x00,0x00,}}, {0x80F9,2,{0xC3,0x73,0x00,0x00,}}, {0x80FA,2,{0xB0,0xB7,0x00,0x00,}}, {0x80FB,2,{0xC3,0x74,0x00,0x00,}}, {0x80FC,2,{0xEB,0xDD,0x00,0x00,}}, {0x80FD,2,{0xC4,0xDC,0x00,0x00,}}, {0x80FE,2,{0xC3,0x75,0x00,0x00,}}, {0x80FF,2,{0xC3,0x76,0x00,0x00,}}, {0x8100,2,{0xC3,0x77,0x00,0x00,}}, {0x8101,2,{0xC3,0x78,0x00,0x00,}}, {0x8102,2,{0xD6,0xAC,0x00,0x00,}}, {0x8103,2,{0xC3,0x79,0x00,0x00,}}, {0x8104,2,{0xC3,0x7A,0x00,0x00,}}, {0x8105,2,{0xC3,0x7B,0x00,0x00,}}, {0x8106,2,{0xB4,0xE0,0x00,0x00,}}, {0x8107,2,{0xC3,0x7C,0x00,0x00,}}, {0x8108,2,{0xC3,0x7D,0x00,0x00,}}, {0x8109,2,{0xC2,0xF6,0x00,0x00,}}, {0x810A,2,{0xBC,0xB9,0x00,0x00,}}, {0x810B,2,{0xC3,0x7E,0x00,0x00,}}, {0x810C,2,{0xC3,0x80,0x00,0x00,}}, {0x810D,2,{0xEB,0xDA,0x00,0x00,}}, {0x810E,2,{0xEB,0xDB,0x00,0x00,}}, {0x810F,2,{0xD4,0xE0,0x00,0x00,}}, {0x8110,2,{0xC6,0xEA,0x00,0x00,}}, {0x8111,2,{0xC4,0xD4,0x00,0x00,}}, {0x8112,2,{0xEB,0xDF,0x00,0x00,}}, {0x8113,2,{0xC5,0xA7,0x00,0x00,}}, {0x8114,2,{0xD9,0xF5,0x00,0x00,}}, {0x8115,2,{0xC3,0x81,0x00,0x00,}}, {0x8116,2,{0xB2,0xB1,0x00,0x00,}}, {0x8117,2,{0xC3,0x82,0x00,0x00,}}, {0x8118,2,{0xEB,0xE4,0x00,0x00,}}, {0x8119,2,{0xC3,0x83,0x00,0x00,}}, {0x811A,2,{0xBD,0xC5,0x00,0x00,}}, {0x811B,2,{0xC3,0x84,0x00,0x00,}}, {0x811C,2,{0xC3,0x85,0x00,0x00,}}, {0x811D,2,{0xC3,0x86,0x00,0x00,}}, {0x811E,2,{0xEB,0xE2,0x00,0x00,}}, {0x811F,2,{0xC3,0x87,0x00,0x00,}}, {0x8120,2,{0xC3,0x88,0x00,0x00,}}, {0x8121,2,{0xC3,0x89,0x00,0x00,}}, {0x8122,2,{0xC3,0x8A,0x00,0x00,}}, {0x8123,2,{0xC3,0x8B,0x00,0x00,}}, {0x8124,2,{0xC3,0x8C,0x00,0x00,}}, {0x8125,2,{0xC3,0x8D,0x00,0x00,}}, {0x8126,2,{0xC3,0x8E,0x00,0x00,}}, {0x8127,2,{0xC3,0x8F,0x00,0x00,}}, {0x8128,2,{0xC3,0x90,0x00,0x00,}}, {0x8129,2,{0xC3,0x91,0x00,0x00,}}, {0x812A,2,{0xC3,0x92,0x00,0x00,}}, {0x812B,2,{0xC3,0x93,0x00,0x00,}}, {0x812C,2,{0xEB,0xE3,0x00,0x00,}}, {0x812D,2,{0xC3,0x94,0x00,0x00,}}, {0x812E,2,{0xC3,0x95,0x00,0x00,}}, {0x812F,2,{0xB8,0xAC,0x00,0x00,}}, {0x8130,2,{0xC3,0x96,0x00,0x00,}}, {0x8131,2,{0xCD,0xD1,0x00,0x00,}}, {0x8132,2,{0xEB,0xE5,0x00,0x00,}}, {0x8133,2,{0xC3,0x97,0x00,0x00,}}, {0x8134,2,{0xC3,0x98,0x00,0x00,}}, {0x8135,2,{0xC3,0x99,0x00,0x00,}}, {0x8136,2,{0xEB,0xE1,0x00,0x00,}}, {0x8137,2,{0xC3,0x9A,0x00,0x00,}}, {0x8138,2,{0xC1,0xB3,0x00,0x00,}}, {0x8139,2,{0xC3,0x9B,0x00,0x00,}}, {0x813A,2,{0xC3,0x9C,0x00,0x00,}}, {0x813B,2,{0xC3,0x9D,0x00,0x00,}}, {0x813C,2,{0xC3,0x9E,0x00,0x00,}}, {0x813D,2,{0xC3,0x9F,0x00,0x00,}}, {0x813E,2,{0xC6,0xA2,0x00,0x00,}}, {0x813F,2,{0xC3,0xA0,0x00,0x00,}}, {0x8140,2,{0xC4,0x40,0x00,0x00,}}, {0x8141,2,{0xC4,0x41,0x00,0x00,}}, {0x8142,2,{0xC4,0x42,0x00,0x00,}}, {0x8143,2,{0xC4,0x43,0x00,0x00,}}, {0x8144,2,{0xC4,0x44,0x00,0x00,}}, {0x8145,2,{0xC4,0x45,0x00,0x00,}}, {0x8146,2,{0xCC,0xF3,0x00,0x00,}}, {0x8147,2,{0xC4,0x46,0x00,0x00,}}, {0x8148,2,{0xEB,0xE6,0x00,0x00,}}, {0x8149,2,{0xC4,0x47,0x00,0x00,}}, {0x814A,2,{0xC0,0xB0,0x00,0x00,}}, {0x814B,2,{0xD2,0xB8,0x00,0x00,}}, {0x814C,2,{0xEB,0xE7,0x00,0x00,}}, {0x814D,2,{0xC4,0x48,0x00,0x00,}}, {0x814E,2,{0xC4,0x49,0x00,0x00,}}, {0x814F,2,{0xC4,0x4A,0x00,0x00,}}, {0x8150,2,{0xB8,0xAF,0x00,0x00,}}, {0x8151,2,{0xB8,0xAD,0x00,0x00,}}, {0x8152,2,{0xC4,0x4B,0x00,0x00,}}, {0x8153,2,{0xEB,0xE8,0x00,0x00,}}, {0x8154,2,{0xC7,0xBB,0x00,0x00,}}, {0x8155,2,{0xCD,0xF3,0x00,0x00,}}, {0x8156,2,{0xC4,0x4C,0x00,0x00,}}, {0x8157,2,{0xC4,0x4D,0x00,0x00,}}, {0x8158,2,{0xC4,0x4E,0x00,0x00,}}, {0x8159,2,{0xEB,0xEA,0x00,0x00,}}, {0x815A,2,{0xEB,0xEB,0x00,0x00,}}, {0x815B,2,{0xC4,0x4F,0x00,0x00,}}, {0x815C,2,{0xC4,0x50,0x00,0x00,}}, {0x815D,2,{0xC4,0x51,0x00,0x00,}}, {0x815E,2,{0xC4,0x52,0x00,0x00,}}, {0x815F,2,{0xC4,0x53,0x00,0x00,}}, {0x8160,2,{0xEB,0xED,0x00,0x00,}}, {0x8161,2,{0xC4,0x54,0x00,0x00,}}, {0x8162,2,{0xC4,0x55,0x00,0x00,}}, {0x8163,2,{0xC4,0x56,0x00,0x00,}}, {0x8164,2,{0xC4,0x57,0x00,0x00,}}, {0x8165,2,{0xD0,0xC8,0x00,0x00,}}, {0x8166,2,{0xC4,0x58,0x00,0x00,}}, {0x8167,2,{0xEB,0xF2,0x00,0x00,}}, {0x8168,2,{0xC4,0x59,0x00,0x00,}}, {0x8169,2,{0xEB,0xEE,0x00,0x00,}}, {0x816A,2,{0xC4,0x5A,0x00,0x00,}}, {0x816B,2,{0xC4,0x5B,0x00,0x00,}}, {0x816C,2,{0xC4,0x5C,0x00,0x00,}}, {0x816D,2,{0xEB,0xF1,0x00,0x00,}}, {0x816E,2,{0xC8,0xF9,0x00,0x00,}}, {0x816F,2,{0xC4,0x5D,0x00,0x00,}}, {0x8170,2,{0xD1,0xFC,0x00,0x00,}}, {0x8171,2,{0xEB,0xEC,0x00,0x00,}}, {0x8172,2,{0xC4,0x5E,0x00,0x00,}}, {0x8173,2,{0xC4,0x5F,0x00,0x00,}}, {0x8174,2,{0xEB,0xE9,0x00,0x00,}}, {0x8175,2,{0xC4,0x60,0x00,0x00,}}, {0x8176,2,{0xC4,0x61,0x00,0x00,}}, {0x8177,2,{0xC4,0x62,0x00,0x00,}}, {0x8178,2,{0xC4,0x63,0x00,0x00,}}, {0x8179,2,{0xB8,0xB9,0x00,0x00,}}, {0x817A,2,{0xCF,0xD9,0x00,0x00,}}, {0x817B,2,{0xC4,0xE5,0x00,0x00,}}, {0x817C,2,{0xEB,0xEF,0x00,0x00,}}, {0x817D,2,{0xEB,0xF0,0x00,0x00,}}, {0x817E,2,{0xCC,0xDA,0x00,0x00,}}, {0x817F,2,{0xCD,0xC8,0x00,0x00,}}, {0x8180,2,{0xB0,0xF2,0x00,0x00,}}, {0x8181,2,{0xC4,0x64,0x00,0x00,}}, {0x8182,2,{0xEB,0xF6,0x00,0x00,}}, {0x8183,2,{0xC4,0x65,0x00,0x00,}}, {0x8184,2,{0xC4,0x66,0x00,0x00,}}, {0x8185,2,{0xC4,0x67,0x00,0x00,}}, {0x8186,2,{0xC4,0x68,0x00,0x00,}}, {0x8187,2,{0xC4,0x69,0x00,0x00,}}, {0x8188,2,{0xEB,0xF5,0x00,0x00,}}, {0x8189,2,{0xC4,0x6A,0x00,0x00,}}, {0x818A,2,{0xB2,0xB2,0x00,0x00,}}, {0x818B,2,{0xC4,0x6B,0x00,0x00,}}, {0x818C,2,{0xC4,0x6C,0x00,0x00,}}, {0x818D,2,{0xC4,0x6D,0x00,0x00,}}, {0x818E,2,{0xC4,0x6E,0x00,0x00,}}, {0x818F,2,{0xB8,0xE0,0x00,0x00,}}, {0x8190,2,{0xC4,0x6F,0x00,0x00,}}, {0x8191,2,{0xEB,0xF7,0x00,0x00,}}, {0x8192,2,{0xC4,0x70,0x00,0x00,}}, {0x8193,2,{0xC4,0x71,0x00,0x00,}}, {0x8194,2,{0xC4,0x72,0x00,0x00,}}, {0x8195,2,{0xC4,0x73,0x00,0x00,}}, {0x8196,2,{0xC4,0x74,0x00,0x00,}}, {0x8197,2,{0xC4,0x75,0x00,0x00,}}, {0x8198,2,{0xB1,0xEC,0x00,0x00,}}, {0x8199,2,{0xC4,0x76,0x00,0x00,}}, {0x819A,2,{0xC4,0x77,0x00,0x00,}}, {0x819B,2,{0xCC,0xC5,0x00,0x00,}}, {0x819C,2,{0xC4,0xA4,0x00,0x00,}}, {0x819D,2,{0xCF,0xA5,0x00,0x00,}}, {0x819E,2,{0xC4,0x78,0x00,0x00,}}, {0x819F,2,{0xC4,0x79,0x00,0x00,}}, {0x81A0,2,{0xC4,0x7A,0x00,0x00,}}, {0x81A1,2,{0xC4,0x7B,0x00,0x00,}}, {0x81A2,2,{0xC4,0x7C,0x00,0x00,}}, {0x81A3,2,{0xEB,0xF9,0x00,0x00,}}, {0x81A4,2,{0xC4,0x7D,0x00,0x00,}}, {0x81A5,2,{0xC4,0x7E,0x00,0x00,}}, {0x81A6,2,{0xEC,0xA2,0x00,0x00,}}, {0x81A7,2,{0xC4,0x80,0x00,0x00,}}, {0x81A8,2,{0xC5,0xF2,0x00,0x00,}}, {0x81A9,2,{0xC4,0x81,0x00,0x00,}}, {0x81AA,2,{0xEB,0xFA,0x00,0x00,}}, {0x81AB,2,{0xC4,0x82,0x00,0x00,}}, {0x81AC,2,{0xC4,0x83,0x00,0x00,}}, {0x81AD,2,{0xC4,0x84,0x00,0x00,}}, {0x81AE,2,{0xC4,0x85,0x00,0x00,}}, {0x81AF,2,{0xC4,0x86,0x00,0x00,}}, {0x81B0,2,{0xC4,0x87,0x00,0x00,}}, {0x81B1,2,{0xC4,0x88,0x00,0x00,}}, {0x81B2,2,{0xC4,0x89,0x00,0x00,}}, {0x81B3,2,{0xC9,0xC5,0x00,0x00,}}, {0x81B4,2,{0xC4,0x8A,0x00,0x00,}}, {0x81B5,2,{0xC4,0x8B,0x00,0x00,}}, {0x81B6,2,{0xC4,0x8C,0x00,0x00,}}, {0x81B7,2,{0xC4,0x8D,0x00,0x00,}}, {0x81B8,2,{0xC4,0x8E,0x00,0x00,}}, {0x81B9,2,{0xC4,0x8F,0x00,0x00,}}, {0x81BA,2,{0xE2,0xDF,0x00,0x00,}}, {0x81BB,2,{0xEB,0xFE,0x00,0x00,}}, {0x81BC,2,{0xC4,0x90,0x00,0x00,}}, {0x81BD,2,{0xC4,0x91,0x00,0x00,}}, {0x81BE,2,{0xC4,0x92,0x00,0x00,}}, {0x81BF,2,{0xC4,0x93,0x00,0x00,}}, {0x81C0,2,{0xCD,0xCE,0x00,0x00,}}, {0x81C1,2,{0xEC,0xA1,0x00,0x00,}}, {0x81C2,2,{0xB1,0xDB,0x00,0x00,}}, {0x81C3,2,{0xD3,0xB7,0x00,0x00,}}, {0x81C4,2,{0xC4,0x94,0x00,0x00,}}, {0x81C5,2,{0xC4,0x95,0x00,0x00,}}, {0x81C6,2,{0xD2,0xDC,0x00,0x00,}}, {0x81C7,2,{0xC4,0x96,0x00,0x00,}}, {0x81C8,2,{0xC4,0x97,0x00,0x00,}}, {0x81C9,2,{0xC4,0x98,0x00,0x00,}}, {0x81CA,2,{0xEB,0xFD,0x00,0x00,}}, {0x81CB,2,{0xC4,0x99,0x00,0x00,}}, {0x81CC,2,{0xEB,0xFB,0x00,0x00,}}, {0x81CD,2,{0xC4,0x9A,0x00,0x00,}}, {0x81CE,2,{0xC4,0x9B,0x00,0x00,}}, {0x81CF,2,{0xC4,0x9C,0x00,0x00,}}, {0x81D0,2,{0xC4,0x9D,0x00,0x00,}}, {0x81D1,2,{0xC4,0x9E,0x00,0x00,}}, {0x81D2,2,{0xC4,0x9F,0x00,0x00,}}, {0x81D3,2,{0xC4,0xA0,0x00,0x00,}}, {0x81D4,2,{0xC5,0x40,0x00,0x00,}}, {0x81D5,2,{0xC5,0x41,0x00,0x00,}}, {0x81D6,2,{0xC5,0x42,0x00,0x00,}}, {0x81D7,2,{0xC5,0x43,0x00,0x00,}}, {0x81D8,2,{0xC5,0x44,0x00,0x00,}}, {0x81D9,2,{0xC5,0x45,0x00,0x00,}}, {0x81DA,2,{0xC5,0x46,0x00,0x00,}}, {0x81DB,2,{0xC5,0x47,0x00,0x00,}}, {0x81DC,2,{0xC5,0x48,0x00,0x00,}}, {0x81DD,2,{0xC5,0x49,0x00,0x00,}}, {0x81DE,2,{0xC5,0x4A,0x00,0x00,}}, {0x81DF,2,{0xC5,0x4B,0x00,0x00,}}, {0x81E0,2,{0xC5,0x4C,0x00,0x00,}}, {0x81E1,2,{0xC5,0x4D,0x00,0x00,}}, {0x81E2,2,{0xC5,0x4E,0x00,0x00,}}, {0x81E3,2,{0xB3,0xBC,0x00,0x00,}}, {0x81E4,2,{0xC5,0x4F,0x00,0x00,}}, {0x81E5,2,{0xC5,0x50,0x00,0x00,}}, {0x81E6,2,{0xC5,0x51,0x00,0x00,}}, {0x81E7,2,{0xEA,0xB0,0x00,0x00,}}, {0x81E8,2,{0xC5,0x52,0x00,0x00,}}, {0x81E9,2,{0xC5,0x53,0x00,0x00,}}, {0x81EA,2,{0xD7,0xD4,0x00,0x00,}}, {0x81EB,2,{0xC5,0x54,0x00,0x00,}}, {0x81EC,2,{0xF4,0xAB,0x00,0x00,}}, {0x81ED,2,{0xB3,0xF4,0x00,0x00,}}, {0x81EE,2,{0xC5,0x55,0x00,0x00,}}, {0x81EF,2,{0xC5,0x56,0x00,0x00,}}, {0x81F0,2,{0xC5,0x57,0x00,0x00,}}, {0x81F1,2,{0xC5,0x58,0x00,0x00,}}, {0x81F2,2,{0xC5,0x59,0x00,0x00,}}, {0x81F3,2,{0xD6,0xC1,0x00,0x00,}}, {0x81F4,2,{0xD6,0xC2,0x00,0x00,}}, {0x81F5,2,{0xC5,0x5A,0x00,0x00,}}, {0x81F6,2,{0xC5,0x5B,0x00,0x00,}}, {0x81F7,2,{0xC5,0x5C,0x00,0x00,}}, {0x81F8,2,{0xC5,0x5D,0x00,0x00,}}, {0x81F9,2,{0xC5,0x5E,0x00,0x00,}}, {0x81FA,2,{0xC5,0x5F,0x00,0x00,}}, {0x81FB,2,{0xD5,0xE9,0x00,0x00,}}, {0x81FC,2,{0xBE,0xCA,0x00,0x00,}}, {0x81FD,2,{0xC5,0x60,0x00,0x00,}}, {0x81FE,2,{0xF4,0xA7,0x00,0x00,}}, {0x81FF,2,{0xC5,0x61,0x00,0x00,}}, {0x8200,2,{0xD2,0xA8,0x00,0x00,}}, {0x8201,2,{0xF4,0xA8,0x00,0x00,}}, {0x8202,2,{0xF4,0xA9,0x00,0x00,}}, {0x8203,2,{0xC5,0x62,0x00,0x00,}}, {0x8204,2,{0xF4,0xAA,0x00,0x00,}}, {0x8205,2,{0xBE,0xCB,0x00,0x00,}}, {0x8206,2,{0xD3,0xDF,0x00,0x00,}}, {0x8207,2,{0xC5,0x63,0x00,0x00,}}, {0x8208,2,{0xC5,0x64,0x00,0x00,}}, {0x8209,2,{0xC5,0x65,0x00,0x00,}}, {0x820A,2,{0xC5,0x66,0x00,0x00,}}, {0x820B,2,{0xC5,0x67,0x00,0x00,}}, {0x820C,2,{0xC9,0xE0,0x00,0x00,}}, {0x820D,2,{0xC9,0xE1,0x00,0x00,}}, {0x820E,2,{0xC5,0x68,0x00,0x00,}}, {0x820F,2,{0xC5,0x69,0x00,0x00,}}, {0x8210,2,{0xF3,0xC2,0x00,0x00,}}, {0x8211,2,{0xC5,0x6A,0x00,0x00,}}, {0x8212,2,{0xCA,0xE6,0x00,0x00,}}, {0x8213,2,{0xC5,0x6B,0x00,0x00,}}, {0x8214,2,{0xCC,0xF2,0x00,0x00,}}, {0x8215,2,{0xC5,0x6C,0x00,0x00,}}, {0x8216,2,{0xC5,0x6D,0x00,0x00,}}, {0x8217,2,{0xC5,0x6E,0x00,0x00,}}, {0x8218,2,{0xC5,0x6F,0x00,0x00,}}, {0x8219,2,{0xC5,0x70,0x00,0x00,}}, {0x821A,2,{0xC5,0x71,0x00,0x00,}}, {0x821B,2,{0xE2,0xB6,0x00,0x00,}}, {0x821C,2,{0xCB,0xB4,0x00,0x00,}}, {0x821D,2,{0xC5,0x72,0x00,0x00,}}, {0x821E,2,{0xCE,0xE8,0x00,0x00,}}, {0x821F,2,{0xD6,0xDB,0x00,0x00,}}, {0x8220,2,{0xC5,0x73,0x00,0x00,}}, {0x8221,2,{0xF4,0xAD,0x00,0x00,}}, {0x8222,2,{0xF4,0xAE,0x00,0x00,}}, {0x8223,2,{0xF4,0xAF,0x00,0x00,}}, {0x8224,2,{0xC5,0x74,0x00,0x00,}}, {0x8225,2,{0xC5,0x75,0x00,0x00,}}, {0x8226,2,{0xC5,0x76,0x00,0x00,}}, {0x8227,2,{0xC5,0x77,0x00,0x00,}}, {0x8228,2,{0xF4,0xB2,0x00,0x00,}}, {0x8229,2,{0xC5,0x78,0x00,0x00,}}, {0x822A,2,{0xBA,0xBD,0x00,0x00,}}, {0x822B,2,{0xF4,0xB3,0x00,0x00,}}, {0x822C,2,{0xB0,0xE3,0x00,0x00,}}, {0x822D,2,{0xF4,0xB0,0x00,0x00,}}, {0x822E,2,{0xC5,0x79,0x00,0x00,}}, {0x822F,2,{0xF4,0xB1,0x00,0x00,}}, {0x8230,2,{0xBD,0xA2,0x00,0x00,}}, {0x8231,2,{0xB2,0xD5,0x00,0x00,}}, {0x8232,2,{0xC5,0x7A,0x00,0x00,}}, {0x8233,2,{0xF4,0xB6,0x00,0x00,}}, {0x8234,2,{0xF4,0xB7,0x00,0x00,}}, {0x8235,2,{0xB6,0xE6,0x00,0x00,}}, {0x8236,2,{0xB2,0xB0,0x00,0x00,}}, {0x8237,2,{0xCF,0xCF,0x00,0x00,}}, {0x8238,2,{0xF4,0xB4,0x00,0x00,}}, {0x8239,2,{0xB4,0xAC,0x00,0x00,}}, {0x823A,2,{0xC5,0x7B,0x00,0x00,}}, {0x823B,2,{0xF4,0xB5,0x00,0x00,}}, {0x823C,2,{0xC5,0x7C,0x00,0x00,}}, {0x823D,2,{0xC5,0x7D,0x00,0x00,}}, {0x823E,2,{0xF4,0xB8,0x00,0x00,}}, {0x823F,2,{0xC5,0x7E,0x00,0x00,}}, {0x8240,2,{0xC5,0x80,0x00,0x00,}}, {0x8241,2,{0xC5,0x81,0x00,0x00,}}, {0x8242,2,{0xC5,0x82,0x00,0x00,}}, {0x8243,2,{0xC5,0x83,0x00,0x00,}}, {0x8244,2,{0xF4,0xB9,0x00,0x00,}}, {0x8245,2,{0xC5,0x84,0x00,0x00,}}, {0x8246,2,{0xC5,0x85,0x00,0x00,}}, {0x8247,2,{0xCD,0xA7,0x00,0x00,}}, {0x8248,2,{0xC5,0x86,0x00,0x00,}}, {0x8249,2,{0xF4,0xBA,0x00,0x00,}}, {0x824A,2,{0xC5,0x87,0x00,0x00,}}, {0x824B,2,{0xF4,0xBB,0x00,0x00,}}, {0x824C,2,{0xC5,0x88,0x00,0x00,}}, {0x824D,2,{0xC5,0x89,0x00,0x00,}}, {0x824E,2,{0xC5,0x8A,0x00,0x00,}}, {0x824F,2,{0xF4,0xBC,0x00,0x00,}}, {0x8250,2,{0xC5,0x8B,0x00,0x00,}}, {0x8251,2,{0xC5,0x8C,0x00,0x00,}}, {0x8252,2,{0xC5,0x8D,0x00,0x00,}}, {0x8253,2,{0xC5,0x8E,0x00,0x00,}}, {0x8254,2,{0xC5,0x8F,0x00,0x00,}}, {0x8255,2,{0xC5,0x90,0x00,0x00,}}, {0x8256,2,{0xC5,0x91,0x00,0x00,}}, {0x8257,2,{0xC5,0x92,0x00,0x00,}}, {0x8258,2,{0xCB,0xD2,0x00,0x00,}}, {0x8259,2,{0xC5,0x93,0x00,0x00,}}, {0x825A,2,{0xF4,0xBD,0x00,0x00,}}, {0x825B,2,{0xC5,0x94,0x00,0x00,}}, {0x825C,2,{0xC5,0x95,0x00,0x00,}}, {0x825D,2,{0xC5,0x96,0x00,0x00,}}, {0x825E,2,{0xC5,0x97,0x00,0x00,}}, {0x825F,2,{0xF4,0xBE,0x00,0x00,}}, {0x8260,2,{0xC5,0x98,0x00,0x00,}}, {0x8261,2,{0xC5,0x99,0x00,0x00,}}, {0x8262,2,{0xC5,0x9A,0x00,0x00,}}, {0x8263,2,{0xC5,0x9B,0x00,0x00,}}, {0x8264,2,{0xC5,0x9C,0x00,0x00,}}, {0x8265,2,{0xC5,0x9D,0x00,0x00,}}, {0x8266,2,{0xC5,0x9E,0x00,0x00,}}, {0x8267,2,{0xC5,0x9F,0x00,0x00,}}, {0x8268,2,{0xF4,0xBF,0x00,0x00,}}, {0x8269,2,{0xC5,0xA0,0x00,0x00,}}, {0x826A,2,{0xC6,0x40,0x00,0x00,}}, {0x826B,2,{0xC6,0x41,0x00,0x00,}}, {0x826C,2,{0xC6,0x42,0x00,0x00,}}, {0x826D,2,{0xC6,0x43,0x00,0x00,}}, {0x826E,2,{0xF4,0xDE,0x00,0x00,}}, {0x826F,2,{0xC1,0xBC,0x00,0x00,}}, {0x8270,2,{0xBC,0xE8,0x00,0x00,}}, {0x8271,2,{0xC6,0x44,0x00,0x00,}}, {0x8272,2,{0xC9,0xAB,0x00,0x00,}}, {0x8273,2,{0xD1,0xDE,0x00,0x00,}}, {0x8274,2,{0xE5,0xF5,0x00,0x00,}}, {0x8275,2,{0xC6,0x45,0x00,0x00,}}, {0x8276,2,{0xC6,0x46,0x00,0x00,}}, {0x8277,2,{0xC6,0x47,0x00,0x00,}}, {0x8278,2,{0xC6,0x48,0x00,0x00,}}, {0x8279,2,{0xDC,0xB3,0x00,0x00,}}, {0x827A,2,{0xD2,0xD5,0x00,0x00,}}, {0x827B,2,{0xC6,0x49,0x00,0x00,}}, {0x827C,2,{0xC6,0x4A,0x00,0x00,}}, {0x827D,2,{0xDC,0xB4,0x00,0x00,}}, {0x827E,2,{0xB0,0xAC,0x00,0x00,}}, {0x827F,2,{0xDC,0xB5,0x00,0x00,}}, {0x8280,2,{0xC6,0x4B,0x00,0x00,}}, {0x8281,2,{0xC6,0x4C,0x00,0x00,}}, {0x8282,2,{0xBD,0xDA,0x00,0x00,}}, {0x8283,2,{0xC6,0x4D,0x00,0x00,}}, {0x8284,2,{0xDC,0xB9,0x00,0x00,}}, {0x8285,2,{0xC6,0x4E,0x00,0x00,}}, {0x8286,2,{0xC6,0x4F,0x00,0x00,}}, {0x8287,2,{0xC6,0x50,0x00,0x00,}}, {0x8288,2,{0xD8,0xC2,0x00,0x00,}}, {0x8289,2,{0xC6,0x51,0x00,0x00,}}, {0x828A,2,{0xDC,0xB7,0x00,0x00,}}, {0x828B,2,{0xD3,0xF3,0x00,0x00,}}, {0x828C,2,{0xC6,0x52,0x00,0x00,}}, {0x828D,2,{0xC9,0xD6,0x00,0x00,}}, {0x828E,2,{0xDC,0xBA,0x00,0x00,}}, {0x828F,2,{0xDC,0xB6,0x00,0x00,}}, {0x8290,2,{0xC6,0x53,0x00,0x00,}}, {0x8291,2,{0xDC,0xBB,0x00,0x00,}}, {0x8292,2,{0xC3,0xA2,0x00,0x00,}}, {0x8293,2,{0xC6,0x54,0x00,0x00,}}, {0x8294,2,{0xC6,0x55,0x00,0x00,}}, {0x8295,2,{0xC6,0x56,0x00,0x00,}}, {0x8296,2,{0xC6,0x57,0x00,0x00,}}, {0x8297,2,{0xDC,0xBC,0x00,0x00,}}, {0x8298,2,{0xDC,0xC5,0x00,0x00,}}, {0x8299,2,{0xDC,0xBD,0x00,0x00,}}, {0x829A,2,{0xC6,0x58,0x00,0x00,}}, {0x829B,2,{0xC6,0x59,0x00,0x00,}}, {0x829C,2,{0xCE,0xDF,0x00,0x00,}}, {0x829D,2,{0xD6,0xA5,0x00,0x00,}}, {0x829E,2,{0xC6,0x5A,0x00,0x00,}}, {0x829F,2,{0xDC,0xCF,0x00,0x00,}}, {0x82A0,2,{0xC6,0x5B,0x00,0x00,}}, {0x82A1,2,{0xDC,0xCD,0x00,0x00,}}, {0x82A2,2,{0xC6,0x5C,0x00,0x00,}}, {0x82A3,2,{0xC6,0x5D,0x00,0x00,}}, {0x82A4,2,{0xDC,0xD2,0x00,0x00,}}, {0x82A5,2,{0xBD,0xE6,0x00,0x00,}}, {0x82A6,2,{0xC2,0xAB,0x00,0x00,}}, {0x82A7,2,{0xC6,0x5E,0x00,0x00,}}, {0x82A8,2,{0xDC,0xB8,0x00,0x00,}}, {0x82A9,2,{0xDC,0xCB,0x00,0x00,}}, {0x82AA,2,{0xDC,0xCE,0x00,0x00,}}, {0x82AB,2,{0xDC,0xBE,0x00,0x00,}}, {0x82AC,2,{0xB7,0xD2,0x00,0x00,}}, {0x82AD,2,{0xB0,0xC5,0x00,0x00,}}, {0x82AE,2,{0xDC,0xC7,0x00,0x00,}}, {0x82AF,2,{0xD0,0xBE,0x00,0x00,}}, {0x82B0,2,{0xDC,0xC1,0x00,0x00,}}, {0x82B1,2,{0xBB,0xA8,0x00,0x00,}}, {0x82B2,2,{0xC6,0x5F,0x00,0x00,}}, {0x82B3,2,{0xB7,0xBC,0x00,0x00,}}, {0x82B4,2,{0xDC,0xCC,0x00,0x00,}}, {0x82B5,2,{0xC6,0x60,0x00,0x00,}}, {0x82B6,2,{0xC6,0x61,0x00,0x00,}}, {0x82B7,2,{0xDC,0xC6,0x00,0x00,}}, {0x82B8,2,{0xDC,0xBF,0x00,0x00,}}, {0x82B9,2,{0xC7,0xDB,0x00,0x00,}}, {0x82BA,2,{0xC6,0x62,0x00,0x00,}}, {0x82BB,2,{0xC6,0x63,0x00,0x00,}}, {0x82BC,2,{0xC6,0x64,0x00,0x00,}}, {0x82BD,2,{0xD1,0xBF,0x00,0x00,}}, {0x82BE,2,{0xDC,0xC0,0x00,0x00,}}, {0x82BF,2,{0xC6,0x65,0x00,0x00,}}, {0x82C0,2,{0xC6,0x66,0x00,0x00,}}, {0x82C1,2,{0xDC,0xCA,0x00,0x00,}}, {0x82C2,2,{0xC6,0x67,0x00,0x00,}}, {0x82C3,2,{0xC6,0x68,0x00,0x00,}}, {0x82C4,2,{0xDC,0xD0,0x00,0x00,}}, {0x82C5,2,{0xC6,0x69,0x00,0x00,}}, {0x82C6,2,{0xC6,0x6A,0x00,0x00,}}, {0x82C7,2,{0xCE,0xAD,0x00,0x00,}}, {0x82C8,2,{0xDC,0xC2,0x00,0x00,}}, {0x82C9,2,{0xC6,0x6B,0x00,0x00,}}, {0x82CA,2,{0xDC,0xC3,0x00,0x00,}}, {0x82CB,2,{0xDC,0xC8,0x00,0x00,}}, {0x82CC,2,{0xDC,0xC9,0x00,0x00,}}, {0x82CD,2,{0xB2,0xD4,0x00,0x00,}}, {0x82CE,2,{0xDC,0xD1,0x00,0x00,}}, {0x82CF,2,{0xCB,0xD5,0x00,0x00,}}, {0x82D0,2,{0xC6,0x6C,0x00,0x00,}}, {0x82D1,2,{0xD4,0xB7,0x00,0x00,}}, {0x82D2,2,{0xDC,0xDB,0x00,0x00,}}, {0x82D3,2,{0xDC,0xDF,0x00,0x00,}}, {0x82D4,2,{0xCC,0xA6,0x00,0x00,}}, {0x82D5,2,{0xDC,0xE6,0x00,0x00,}}, {0x82D6,2,{0xC6,0x6D,0x00,0x00,}}, {0x82D7,2,{0xC3,0xE7,0x00,0x00,}}, {0x82D8,2,{0xDC,0xDC,0x00,0x00,}}, {0x82D9,2,{0xC6,0x6E,0x00,0x00,}}, {0x82DA,2,{0xC6,0x6F,0x00,0x00,}}, {0x82DB,2,{0xBF,0xC1,0x00,0x00,}}, {0x82DC,2,{0xDC,0xD9,0x00,0x00,}}, {0x82DD,2,{0xC6,0x70,0x00,0x00,}}, {0x82DE,2,{0xB0,0xFA,0x00,0x00,}}, {0x82DF,2,{0xB9,0xB6,0x00,0x00,}}, {0x82E0,2,{0xDC,0xE5,0x00,0x00,}}, {0x82E1,2,{0xDC,0xD3,0x00,0x00,}}, {0x82E2,2,{0xC6,0x71,0x00,0x00,}}, {0x82E3,2,{0xDC,0xC4,0x00,0x00,}}, {0x82E4,2,{0xDC,0xD6,0x00,0x00,}}, {0x82E5,2,{0xC8,0xF4,0x00,0x00,}}, {0x82E6,2,{0xBF,0xE0,0x00,0x00,}}, {0x82E7,2,{0xC6,0x72,0x00,0x00,}}, {0x82E8,2,{0xC6,0x73,0x00,0x00,}}, {0x82E9,2,{0xC6,0x74,0x00,0x00,}}, {0x82EA,2,{0xC6,0x75,0x00,0x00,}}, {0x82EB,2,{0xC9,0xBB,0x00,0x00,}}, {0x82EC,2,{0xC6,0x76,0x00,0x00,}}, {0x82ED,2,{0xC6,0x77,0x00,0x00,}}, {0x82EE,2,{0xC6,0x78,0x00,0x00,}}, {0x82EF,2,{0xB1,0xBD,0x00,0x00,}}, {0x82F0,2,{0xC6,0x79,0x00,0x00,}}, {0x82F1,2,{0xD3,0xA2,0x00,0x00,}}, {0x82F2,2,{0xC6,0x7A,0x00,0x00,}}, {0x82F3,2,{0xC6,0x7B,0x00,0x00,}}, {0x82F4,2,{0xDC,0xDA,0x00,0x00,}}, {0x82F5,2,{0xC6,0x7C,0x00,0x00,}}, {0x82F6,2,{0xC6,0x7D,0x00,0x00,}}, {0x82F7,2,{0xDC,0xD5,0x00,0x00,}}, {0x82F8,2,{0xC6,0x7E,0x00,0x00,}}, {0x82F9,2,{0xC6,0xBB,0x00,0x00,}}, {0x82FA,2,{0xC6,0x80,0x00,0x00,}}, {0x82FB,2,{0xDC,0xDE,0x00,0x00,}}, {0x82FC,2,{0xC6,0x81,0x00,0x00,}}, {0x82FD,2,{0xC6,0x82,0x00,0x00,}}, {0x82FE,2,{0xC6,0x83,0x00,0x00,}}, {0x82FF,2,{0xC6,0x84,0x00,0x00,}}, {0x8300,2,{0xC6,0x85,0x00,0x00,}}, {0x8301,2,{0xD7,0xC2,0x00,0x00,}}, {0x8302,2,{0xC3,0xAF,0x00,0x00,}}, {0x8303,2,{0xB7,0xB6,0x00,0x00,}}, {0x8304,2,{0xC7,0xD1,0x00,0x00,}}, {0x8305,2,{0xC3,0xA9,0x00,0x00,}}, {0x8306,2,{0xDC,0xE2,0x00,0x00,}}, {0x8307,2,{0xDC,0xD8,0x00,0x00,}}, {0x8308,2,{0xDC,0xEB,0x00,0x00,}}, {0x8309,2,{0xDC,0xD4,0x00,0x00,}}, {0x830A,2,{0xC6,0x86,0x00,0x00,}}, {0x830B,2,{0xC6,0x87,0x00,0x00,}}, {0x830C,2,{0xDC,0xDD,0x00,0x00,}}, {0x830D,2,{0xC6,0x88,0x00,0x00,}}, {0x830E,2,{0xBE,0xA5,0x00,0x00,}}, {0x830F,2,{0xDC,0xD7,0x00,0x00,}}, {0x8310,2,{0xC6,0x89,0x00,0x00,}}, {0x8311,2,{0xDC,0xE0,0x00,0x00,}}, {0x8312,2,{0xC6,0x8A,0x00,0x00,}}, {0x8313,2,{0xC6,0x8B,0x00,0x00,}}, {0x8314,2,{0xDC,0xE3,0x00,0x00,}}, {0x8315,2,{0xDC,0xE4,0x00,0x00,}}, {0x8316,2,{0xC6,0x8C,0x00,0x00,}}, {0x8317,2,{0xDC,0xF8,0x00,0x00,}}, {0x8318,2,{0xC6,0x8D,0x00,0x00,}}, {0x8319,2,{0xC6,0x8E,0x00,0x00,}}, {0x831A,2,{0xDC,0xE1,0x00,0x00,}}, {0x831B,2,{0xDD,0xA2,0x00,0x00,}}, {0x831C,2,{0xDC,0xE7,0x00,0x00,}}, {0x831D,2,{0xC6,0x8F,0x00,0x00,}}, {0x831E,2,{0xC6,0x90,0x00,0x00,}}, {0x831F,2,{0xC6,0x91,0x00,0x00,}}, {0x8320,2,{0xC6,0x92,0x00,0x00,}}, {0x8321,2,{0xC6,0x93,0x00,0x00,}}, {0x8322,2,{0xC6,0x94,0x00,0x00,}}, {0x8323,2,{0xC6,0x95,0x00,0x00,}}, {0x8324,2,{0xC6,0x96,0x00,0x00,}}, {0x8325,2,{0xC6,0x97,0x00,0x00,}}, {0x8326,2,{0xC6,0x98,0x00,0x00,}}, {0x8327,2,{0xBC,0xEB,0x00,0x00,}}, {0x8328,2,{0xB4,0xC4,0x00,0x00,}}, {0x8329,2,{0xC6,0x99,0x00,0x00,}}, {0x832A,2,{0xC6,0x9A,0x00,0x00,}}, {0x832B,2,{0xC3,0xA3,0x00,0x00,}}, {0x832C,2,{0xB2,0xE7,0x00,0x00,}}, {0x832D,2,{0xDC,0xFA,0x00,0x00,}}, {0x832E,2,{0xC6,0x9B,0x00,0x00,}}, {0x832F,2,{0xDC,0xF2,0x00,0x00,}}, {0x8330,2,{0xC6,0x9C,0x00,0x00,}}, {0x8331,2,{0xDC,0xEF,0x00,0x00,}}, {0x8332,2,{0xC6,0x9D,0x00,0x00,}}, {0x8333,2,{0xDC,0xFC,0x00,0x00,}}, {0x8334,2,{0xDC,0xEE,0x00,0x00,}}, {0x8335,2,{0xD2,0xF0,0x00,0x00,}}, {0x8336,2,{0xB2,0xE8,0x00,0x00,}}, {0x8337,2,{0xC6,0x9E,0x00,0x00,}}, {0x8338,2,{0xC8,0xD7,0x00,0x00,}}, {0x8339,2,{0xC8,0xE3,0x00,0x00,}}, {0x833A,2,{0xDC,0xFB,0x00,0x00,}}, {0x833B,2,{0xC6,0x9F,0x00,0x00,}}, {0x833C,2,{0xDC,0xED,0x00,0x00,}}, {0x833D,2,{0xC6,0xA0,0x00,0x00,}}, {0x833E,2,{0xC7,0x40,0x00,0x00,}}, {0x833F,2,{0xC7,0x41,0x00,0x00,}}, {0x8340,2,{0xDC,0xF7,0x00,0x00,}}, {0x8341,2,{0xC7,0x42,0x00,0x00,}}, {0x8342,2,{0xC7,0x43,0x00,0x00,}}, {0x8343,2,{0xDC,0xF5,0x00,0x00,}}, {0x8344,2,{0xC7,0x44,0x00,0x00,}}, {0x8345,2,{0xC7,0x45,0x00,0x00,}}, {0x8346,2,{0xBE,0xA3,0x00,0x00,}}, {0x8347,2,{0xDC,0xF4,0x00,0x00,}}, {0x8348,2,{0xC7,0x46,0x00,0x00,}}, {0x8349,2,{0xB2,0xDD,0x00,0x00,}}, {0x834A,2,{0xC7,0x47,0x00,0x00,}}, {0x834B,2,{0xC7,0x48,0x00,0x00,}}, {0x834C,2,{0xC7,0x49,0x00,0x00,}}, {0x834D,2,{0xC7,0x4A,0x00,0x00,}}, {0x834E,2,{0xC7,0x4B,0x00,0x00,}}, {0x834F,2,{0xDC,0xF3,0x00,0x00,}}, {0x8350,2,{0xBC,0xF6,0x00,0x00,}}, {0x8351,2,{0xDC,0xE8,0x00,0x00,}}, {0x8352,2,{0xBB,0xC4,0x00,0x00,}}, {0x8353,2,{0xC7,0x4C,0x00,0x00,}}, {0x8354,2,{0xC0,0xF3,0x00,0x00,}}, {0x8355,2,{0xC7,0x4D,0x00,0x00,}}, {0x8356,2,{0xC7,0x4E,0x00,0x00,}}, {0x8357,2,{0xC7,0x4F,0x00,0x00,}}, {0x8358,2,{0xC7,0x50,0x00,0x00,}}, {0x8359,2,{0xC7,0x51,0x00,0x00,}}, {0x835A,2,{0xBC,0xD4,0x00,0x00,}}, {0x835B,2,{0xDC,0xE9,0x00,0x00,}}, {0x835C,2,{0xDC,0xEA,0x00,0x00,}}, {0x835D,2,{0xC7,0x52,0x00,0x00,}}, {0x835E,2,{0xDC,0xF1,0x00,0x00,}}, {0x835F,2,{0xDC,0xF6,0x00,0x00,}}, {0x8360,2,{0xDC,0xF9,0x00,0x00,}}, {0x8361,2,{0xB5,0xB4,0x00,0x00,}}, {0x8362,2,{0xC7,0x53,0x00,0x00,}}, {0x8363,2,{0xC8,0xD9,0x00,0x00,}}, {0x8364,2,{0xBB,0xE7,0x00,0x00,}}, {0x8365,2,{0xDC,0xFE,0x00,0x00,}}, {0x8366,2,{0xDC,0xFD,0x00,0x00,}}, {0x8367,2,{0xD3,0xAB,0x00,0x00,}}, {0x8368,2,{0xDD,0xA1,0x00,0x00,}}, {0x8369,2,{0xDD,0xA3,0x00,0x00,}}, {0x836A,2,{0xDD,0xA5,0x00,0x00,}}, {0x836B,2,{0xD2,0xF1,0x00,0x00,}}, {0x836C,2,{0xDD,0xA4,0x00,0x00,}}, {0x836D,2,{0xDD,0xA6,0x00,0x00,}}, {0x836E,2,{0xDD,0xA7,0x00,0x00,}}, {0x836F,2,{0xD2,0xA9,0x00,0x00,}}, {0x8370,2,{0xC7,0x54,0x00,0x00,}}, {0x8371,2,{0xC7,0x55,0x00,0x00,}}, {0x8372,2,{0xC7,0x56,0x00,0x00,}}, {0x8373,2,{0xC7,0x57,0x00,0x00,}}, {0x8374,2,{0xC7,0x58,0x00,0x00,}}, {0x8375,2,{0xC7,0x59,0x00,0x00,}}, {0x8376,2,{0xC7,0x5A,0x00,0x00,}}, {0x8377,2,{0xBA,0xC9,0x00,0x00,}}, {0x8378,2,{0xDD,0xA9,0x00,0x00,}}, {0x8379,2,{0xC7,0x5B,0x00,0x00,}}, {0x837A,2,{0xC7,0x5C,0x00,0x00,}}, {0x837B,2,{0xDD,0xB6,0x00,0x00,}}, {0x837C,2,{0xDD,0xB1,0x00,0x00,}}, {0x837D,2,{0xDD,0xB4,0x00,0x00,}}, {0x837E,2,{0xC7,0x5D,0x00,0x00,}}, {0x837F,2,{0xC7,0x5E,0x00,0x00,}}, {0x8380,2,{0xC7,0x5F,0x00,0x00,}}, {0x8381,2,{0xC7,0x60,0x00,0x00,}}, {0x8382,2,{0xC7,0x61,0x00,0x00,}}, {0x8383,2,{0xC7,0x62,0x00,0x00,}}, {0x8384,2,{0xC7,0x63,0x00,0x00,}}, {0x8385,2,{0xDD,0xB0,0x00,0x00,}}, {0x8386,2,{0xC6,0xCE,0x00,0x00,}}, {0x8387,2,{0xC7,0x64,0x00,0x00,}}, {0x8388,2,{0xC7,0x65,0x00,0x00,}}, {0x8389,2,{0xC0,0xF2,0x00,0x00,}}, {0x838A,2,{0xC7,0x66,0x00,0x00,}}, {0x838B,2,{0xC7,0x67,0x00,0x00,}}, {0x838C,2,{0xC7,0x68,0x00,0x00,}}, {0x838D,2,{0xC7,0x69,0x00,0x00,}}, {0x838E,2,{0xC9,0xAF,0x00,0x00,}}, {0x838F,2,{0xC7,0x6A,0x00,0x00,}}, {0x8390,2,{0xC7,0x6B,0x00,0x00,}}, {0x8391,2,{0xC7,0x6C,0x00,0x00,}}, {0x8392,2,{0xDC,0xEC,0x00,0x00,}}, {0x8393,2,{0xDD,0xAE,0x00,0x00,}}, {0x8394,2,{0xC7,0x6D,0x00,0x00,}}, {0x8395,2,{0xC7,0x6E,0x00,0x00,}}, {0x8396,2,{0xC7,0x6F,0x00,0x00,}}, {0x8397,2,{0xC7,0x70,0x00,0x00,}}, {0x8398,2,{0xDD,0xB7,0x00,0x00,}}, {0x8399,2,{0xC7,0x71,0x00,0x00,}}, {0x839A,2,{0xC7,0x72,0x00,0x00,}}, {0x839B,2,{0xDC,0xF0,0x00,0x00,}}, {0x839C,2,{0xDD,0xAF,0x00,0x00,}}, {0x839D,2,{0xC7,0x73,0x00,0x00,}}, {0x839E,2,{0xDD,0xB8,0x00,0x00,}}, {0x839F,2,{0xC7,0x74,0x00,0x00,}}, {0x83A0,2,{0xDD,0xAC,0x00,0x00,}}, {0x83A1,2,{0xC7,0x75,0x00,0x00,}}, {0x83A2,2,{0xC7,0x76,0x00,0x00,}}, {0x83A3,2,{0xC7,0x77,0x00,0x00,}}, {0x83A4,2,{0xC7,0x78,0x00,0x00,}}, {0x83A5,2,{0xC7,0x79,0x00,0x00,}}, {0x83A6,2,{0xC7,0x7A,0x00,0x00,}}, {0x83A7,2,{0xC7,0x7B,0x00,0x00,}}, {0x83A8,2,{0xDD,0xB9,0x00,0x00,}}, {0x83A9,2,{0xDD,0xB3,0x00,0x00,}}, {0x83AA,2,{0xDD,0xAD,0x00,0x00,}}, {0x83AB,2,{0xC4,0xAA,0x00,0x00,}}, {0x83AC,2,{0xC7,0x7C,0x00,0x00,}}, {0x83AD,2,{0xC7,0x7D,0x00,0x00,}}, {0x83AE,2,{0xC7,0x7E,0x00,0x00,}}, {0x83AF,2,{0xC7,0x80,0x00,0x00,}}, {0x83B0,2,{0xDD,0xA8,0x00,0x00,}}, {0x83B1,2,{0xC0,0xB3,0x00,0x00,}}, {0x83B2,2,{0xC1,0xAB,0x00,0x00,}}, {0x83B3,2,{0xDD,0xAA,0x00,0x00,}}, {0x83B4,2,{0xDD,0xAB,0x00,0x00,}}, {0x83B5,2,{0xC7,0x81,0x00,0x00,}}, {0x83B6,2,{0xDD,0xB2,0x00,0x00,}}, {0x83B7,2,{0xBB,0xF1,0x00,0x00,}}, {0x83B8,2,{0xDD,0xB5,0x00,0x00,}}, {0x83B9,2,{0xD3,0xA8,0x00,0x00,}}, {0x83BA,2,{0xDD,0xBA,0x00,0x00,}}, {0x83BB,2,{0xC7,0x82,0x00,0x00,}}, {0x83BC,2,{0xDD,0xBB,0x00,0x00,}}, {0x83BD,2,{0xC3,0xA7,0x00,0x00,}}, {0x83BE,2,{0xC7,0x83,0x00,0x00,}}, {0x83BF,2,{0xC7,0x84,0x00,0x00,}}, {0x83C0,2,{0xDD,0xD2,0x00,0x00,}}, {0x83C1,2,{0xDD,0xBC,0x00,0x00,}}, {0x83C2,2,{0xC7,0x85,0x00,0x00,}}, {0x83C3,2,{0xC7,0x86,0x00,0x00,}}, {0x83C4,2,{0xC7,0x87,0x00,0x00,}}, {0x83C5,2,{0xDD,0xD1,0x00,0x00,}}, {0x83C6,2,{0xC7,0x88,0x00,0x00,}}, {0x83C7,2,{0xB9,0xBD,0x00,0x00,}}, {0x83C8,2,{0xC7,0x89,0x00,0x00,}}, {0x83C9,2,{0xC7,0x8A,0x00,0x00,}}, {0x83CA,2,{0xBE,0xD5,0x00,0x00,}}, {0x83CB,2,{0xC7,0x8B,0x00,0x00,}}, {0x83CC,2,{0xBE,0xFA,0x00,0x00,}}, {0x83CD,2,{0xC7,0x8C,0x00,0x00,}}, {0x83CE,2,{0xC7,0x8D,0x00,0x00,}}, {0x83CF,2,{0xBA,0xCA,0x00,0x00,}}, {0x83D0,2,{0xC7,0x8E,0x00,0x00,}}, {0x83D1,2,{0xC7,0x8F,0x00,0x00,}}, {0x83D2,2,{0xC7,0x90,0x00,0x00,}}, {0x83D3,2,{0xC7,0x91,0x00,0x00,}}, {0x83D4,2,{0xDD,0xCA,0x00,0x00,}}, {0x83D5,2,{0xC7,0x92,0x00,0x00,}}, {0x83D6,2,{0xDD,0xC5,0x00,0x00,}}, {0x83D7,2,{0xC7,0x93,0x00,0x00,}}, {0x83D8,2,{0xDD,0xBF,0x00,0x00,}}, {0x83D9,2,{0xC7,0x94,0x00,0x00,}}, {0x83DA,2,{0xC7,0x95,0x00,0x00,}}, {0x83DB,2,{0xC7,0x96,0x00,0x00,}}, {0x83DC,2,{0xB2,0xCB,0x00,0x00,}}, {0x83DD,2,{0xDD,0xC3,0x00,0x00,}}, {0x83DE,2,{0xC7,0x97,0x00,0x00,}}, {0x83DF,2,{0xDD,0xCB,0x00,0x00,}}, {0x83E0,2,{0xB2,0xA4,0x00,0x00,}}, {0x83E1,2,{0xDD,0xD5,0x00,0x00,}}, {0x83E2,2,{0xC7,0x98,0x00,0x00,}}, {0x83E3,2,{0xC7,0x99,0x00,0x00,}}, {0x83E4,2,{0xC7,0x9A,0x00,0x00,}}, {0x83E5,2,{0xDD,0xBE,0x00,0x00,}}, {0x83E6,2,{0xC7,0x9B,0x00,0x00,}}, {0x83E7,2,{0xC7,0x9C,0x00,0x00,}}, {0x83E8,2,{0xC7,0x9D,0x00,0x00,}}, {0x83E9,2,{0xC6,0xD0,0x00,0x00,}}, {0x83EA,2,{0xDD,0xD0,0x00,0x00,}}, {0x83EB,2,{0xC7,0x9E,0x00,0x00,}}, {0x83EC,2,{0xC7,0x9F,0x00,0x00,}}, {0x83ED,2,{0xC7,0xA0,0x00,0x00,}}, {0x83EE,2,{0xC8,0x40,0x00,0x00,}}, {0x83EF,2,{0xC8,0x41,0x00,0x00,}}, {0x83F0,2,{0xDD,0xD4,0x00,0x00,}}, {0x83F1,2,{0xC1,0xE2,0x00,0x00,}}, {0x83F2,2,{0xB7,0xC6,0x00,0x00,}}, {0x83F3,2,{0xC8,0x42,0x00,0x00,}}, {0x83F4,2,{0xC8,0x43,0x00,0x00,}}, {0x83F5,2,{0xC8,0x44,0x00,0x00,}}, {0x83F6,2,{0xC8,0x45,0x00,0x00,}}, {0x83F7,2,{0xC8,0x46,0x00,0x00,}}, {0x83F8,2,{0xDD,0xCE,0x00,0x00,}}, {0x83F9,2,{0xDD,0xCF,0x00,0x00,}}, {0x83FA,2,{0xC8,0x47,0x00,0x00,}}, {0x83FB,2,{0xC8,0x48,0x00,0x00,}}, {0x83FC,2,{0xC8,0x49,0x00,0x00,}}, {0x83FD,2,{0xDD,0xC4,0x00,0x00,}}, {0x83FE,2,{0xC8,0x4A,0x00,0x00,}}, {0x83FF,2,{0xC8,0x4B,0x00,0x00,}}, {0x8400,2,{0xC8,0x4C,0x00,0x00,}}, {0x8401,2,{0xDD,0xBD,0x00,0x00,}}, {0x8402,2,{0xC8,0x4D,0x00,0x00,}}, {0x8403,2,{0xDD,0xCD,0x00,0x00,}}, {0x8404,2,{0xCC,0xD1,0x00,0x00,}}, {0x8405,2,{0xC8,0x4E,0x00,0x00,}}, {0x8406,2,{0xDD,0xC9,0x00,0x00,}}, {0x8407,2,{0xC8,0x4F,0x00,0x00,}}, {0x8408,2,{0xC8,0x50,0x00,0x00,}}, {0x8409,2,{0xC8,0x51,0x00,0x00,}}, {0x840A,2,{0xC8,0x52,0x00,0x00,}}, {0x840B,2,{0xDD,0xC2,0x00,0x00,}}, {0x840C,2,{0xC3,0xC8,0x00,0x00,}}, {0x840D,2,{0xC6,0xBC,0x00,0x00,}}, {0x840E,2,{0xCE,0xAE,0x00,0x00,}}, {0x840F,2,{0xDD,0xCC,0x00,0x00,}}, {0x8410,2,{0xC8,0x53,0x00,0x00,}}, {0x8411,2,{0xDD,0xC8,0x00,0x00,}}, {0x8412,2,{0xC8,0x54,0x00,0x00,}}, {0x8413,2,{0xC8,0x55,0x00,0x00,}}, {0x8414,2,{0xC8,0x56,0x00,0x00,}}, {0x8415,2,{0xC8,0x57,0x00,0x00,}}, {0x8416,2,{0xC8,0x58,0x00,0x00,}}, {0x8417,2,{0xC8,0x59,0x00,0x00,}}, {0x8418,2,{0xDD,0xC1,0x00,0x00,}}, {0x8419,2,{0xC8,0x5A,0x00,0x00,}}, {0x841A,2,{0xC8,0x5B,0x00,0x00,}}, {0x841B,2,{0xC8,0x5C,0x00,0x00,}}, {0x841C,2,{0xDD,0xC6,0x00,0x00,}}, {0x841D,2,{0xC2,0xDC,0x00,0x00,}}, {0x841E,2,{0xC8,0x5D,0x00,0x00,}}, {0x841F,2,{0xC8,0x5E,0x00,0x00,}}, {0x8420,2,{0xC8,0x5F,0x00,0x00,}}, {0x8421,2,{0xC8,0x60,0x00,0x00,}}, {0x8422,2,{0xC8,0x61,0x00,0x00,}}, {0x8423,2,{0xC8,0x62,0x00,0x00,}}, {0x8424,2,{0xD3,0xA9,0x00,0x00,}}, {0x8425,2,{0xD3,0xAA,0x00,0x00,}}, {0x8426,2,{0xDD,0xD3,0x00,0x00,}}, {0x8427,2,{0xCF,0xF4,0x00,0x00,}}, {0x8428,2,{0xC8,0xF8,0x00,0x00,}}, {0x8429,2,{0xC8,0x63,0x00,0x00,}}, {0x842A,2,{0xC8,0x64,0x00,0x00,}}, {0x842B,2,{0xC8,0x65,0x00,0x00,}}, {0x842C,2,{0xC8,0x66,0x00,0x00,}}, {0x842D,2,{0xC8,0x67,0x00,0x00,}}, {0x842E,2,{0xC8,0x68,0x00,0x00,}}, {0x842F,2,{0xC8,0x69,0x00,0x00,}}, {0x8430,2,{0xC8,0x6A,0x00,0x00,}}, {0x8431,2,{0xDD,0xE6,0x00,0x00,}}, {0x8432,2,{0xC8,0x6B,0x00,0x00,}}, {0x8433,2,{0xC8,0x6C,0x00,0x00,}}, {0x8434,2,{0xC8,0x6D,0x00,0x00,}}, {0x8435,2,{0xC8,0x6E,0x00,0x00,}}, {0x8436,2,{0xC8,0x6F,0x00,0x00,}}, {0x8437,2,{0xC8,0x70,0x00,0x00,}}, {0x8438,2,{0xDD,0xC7,0x00,0x00,}}, {0x8439,2,{0xC8,0x71,0x00,0x00,}}, {0x843A,2,{0xC8,0x72,0x00,0x00,}}, {0x843B,2,{0xC8,0x73,0x00,0x00,}}, {0x843C,2,{0xDD,0xE0,0x00,0x00,}}, {0x843D,2,{0xC2,0xE4,0x00,0x00,}}, {0x843E,2,{0xC8,0x74,0x00,0x00,}}, {0x843F,2,{0xC8,0x75,0x00,0x00,}}, {0x8440,2,{0xC8,0x76,0x00,0x00,}}, {0x8441,2,{0xC8,0x77,0x00,0x00,}}, {0x8442,2,{0xC8,0x78,0x00,0x00,}}, {0x8443,2,{0xC8,0x79,0x00,0x00,}}, {0x8444,2,{0xC8,0x7A,0x00,0x00,}}, {0x8445,2,{0xC8,0x7B,0x00,0x00,}}, {0x8446,2,{0xDD,0xE1,0x00,0x00,}}, {0x8447,2,{0xC8,0x7C,0x00,0x00,}}, {0x8448,2,{0xC8,0x7D,0x00,0x00,}}, {0x8449,2,{0xC8,0x7E,0x00,0x00,}}, {0x844A,2,{0xC8,0x80,0x00,0x00,}}, {0x844B,2,{0xC8,0x81,0x00,0x00,}}, {0x844C,2,{0xC8,0x82,0x00,0x00,}}, {0x844D,2,{0xC8,0x83,0x00,0x00,}}, {0x844E,2,{0xC8,0x84,0x00,0x00,}}, {0x844F,2,{0xC8,0x85,0x00,0x00,}}, {0x8450,2,{0xC8,0x86,0x00,0x00,}}, {0x8451,2,{0xDD,0xD7,0x00,0x00,}}, {0x8452,2,{0xC8,0x87,0x00,0x00,}}, {0x8453,2,{0xC8,0x88,0x00,0x00,}}, {0x8454,2,{0xC8,0x89,0x00,0x00,}}, {0x8455,2,{0xC8,0x8A,0x00,0x00,}}, {0x8456,2,{0xC8,0x8B,0x00,0x00,}}, {0x8457,2,{0xD6,0xF8,0x00,0x00,}}, {0x8458,2,{0xC8,0x8C,0x00,0x00,}}, {0x8459,2,{0xDD,0xD9,0x00,0x00,}}, {0x845A,2,{0xDD,0xD8,0x00,0x00,}}, {0x845B,2,{0xB8,0xF0,0x00,0x00,}}, {0x845C,2,{0xDD,0xD6,0x00,0x00,}}, {0x845D,2,{0xC8,0x8D,0x00,0x00,}}, {0x845E,2,{0xC8,0x8E,0x00,0x00,}}, {0x845F,2,{0xC8,0x8F,0x00,0x00,}}, {0x8460,2,{0xC8,0x90,0x00,0x00,}}, {0x8461,2,{0xC6,0xCF,0x00,0x00,}}, {0x8462,2,{0xC8,0x91,0x00,0x00,}}, {0x8463,2,{0xB6,0xAD,0x00,0x00,}}, {0x8464,2,{0xC8,0x92,0x00,0x00,}}, {0x8465,2,{0xC8,0x93,0x00,0x00,}}, {0x8466,2,{0xC8,0x94,0x00,0x00,}}, {0x8467,2,{0xC8,0x95,0x00,0x00,}}, {0x8468,2,{0xC8,0x96,0x00,0x00,}}, {0x8469,2,{0xDD,0xE2,0x00,0x00,}}, {0x846A,2,{0xC8,0x97,0x00,0x00,}}, {0x846B,2,{0xBA,0xF9,0x00,0x00,}}, {0x846C,2,{0xD4,0xE1,0x00,0x00,}}, {0x846D,2,{0xDD,0xE7,0x00,0x00,}}, {0x846E,2,{0xC8,0x98,0x00,0x00,}}, {0x846F,2,{0xC8,0x99,0x00,0x00,}}, {0x8470,2,{0xC8,0x9A,0x00,0x00,}}, {0x8471,2,{0xB4,0xD0,0x00,0x00,}}, {0x8472,2,{0xC8,0x9B,0x00,0x00,}}, {0x8473,2,{0xDD,0xDA,0x00,0x00,}}, {0x8474,2,{0xC8,0x9C,0x00,0x00,}}, {0x8475,2,{0xBF,0xFB,0x00,0x00,}}, {0x8476,2,{0xDD,0xE3,0x00,0x00,}}, {0x8477,2,{0xC8,0x9D,0x00,0x00,}}, {0x8478,2,{0xDD,0xDF,0x00,0x00,}}, {0x8479,2,{0xC8,0x9E,0x00,0x00,}}, {0x847A,2,{0xDD,0xDD,0x00,0x00,}}, {0x847B,2,{0xC8,0x9F,0x00,0x00,}}, {0x847C,2,{0xC8,0xA0,0x00,0x00,}}, {0x847D,2,{0xC9,0x40,0x00,0x00,}}, {0x847E,2,{0xC9,0x41,0x00,0x00,}}, {0x847F,2,{0xC9,0x42,0x00,0x00,}}, {0x8480,2,{0xC9,0x43,0x00,0x00,}}, {0x8481,2,{0xC9,0x44,0x00,0x00,}}, {0x8482,2,{0xB5,0xD9,0x00,0x00,}}, {0x8483,2,{0xC9,0x45,0x00,0x00,}}, {0x8484,2,{0xC9,0x46,0x00,0x00,}}, {0x8485,2,{0xC9,0x47,0x00,0x00,}}, {0x8486,2,{0xC9,0x48,0x00,0x00,}}, {0x8487,2,{0xDD,0xDB,0x00,0x00,}}, {0x8488,2,{0xDD,0xDC,0x00,0x00,}}, {0x8489,2,{0xDD,0xDE,0x00,0x00,}}, {0x848A,2,{0xC9,0x49,0x00,0x00,}}, {0x848B,2,{0xBD,0xAF,0x00,0x00,}}, {0x848C,2,{0xDD,0xE4,0x00,0x00,}}, {0x848D,2,{0xC9,0x4A,0x00,0x00,}}, {0x848E,2,{0xDD,0xE5,0x00,0x00,}}, {0x848F,2,{0xC9,0x4B,0x00,0x00,}}, {0x8490,2,{0xC9,0x4C,0x00,0x00,}}, {0x8491,2,{0xC9,0x4D,0x00,0x00,}}, {0x8492,2,{0xC9,0x4E,0x00,0x00,}}, {0x8493,2,{0xC9,0x4F,0x00,0x00,}}, {0x8494,2,{0xC9,0x50,0x00,0x00,}}, {0x8495,2,{0xC9,0x51,0x00,0x00,}}, {0x8496,2,{0xC9,0x52,0x00,0x00,}}, {0x8497,2,{0xDD,0xF5,0x00,0x00,}}, {0x8498,2,{0xC9,0x53,0x00,0x00,}}, {0x8499,2,{0xC3,0xC9,0x00,0x00,}}, {0x849A,2,{0xC9,0x54,0x00,0x00,}}, {0x849B,2,{0xC9,0x55,0x00,0x00,}}, {0x849C,2,{0xCB,0xE2,0x00,0x00,}}, {0x849D,2,{0xC9,0x56,0x00,0x00,}}, {0x849E,2,{0xC9,0x57,0x00,0x00,}}, {0x849F,2,{0xC9,0x58,0x00,0x00,}}, {0x84A0,2,{0xC9,0x59,0x00,0x00,}}, {0x84A1,2,{0xDD,0xF2,0x00,0x00,}}, {0x84A2,2,{0xC9,0x5A,0x00,0x00,}}, {0x84A3,2,{0xC9,0x5B,0x00,0x00,}}, {0x84A4,2,{0xC9,0x5C,0x00,0x00,}}, {0x84A5,2,{0xC9,0x5D,0x00,0x00,}}, {0x84A6,2,{0xC9,0x5E,0x00,0x00,}}, {0x84A7,2,{0xC9,0x5F,0x00,0x00,}}, {0x84A8,2,{0xC9,0x60,0x00,0x00,}}, {0x84A9,2,{0xC9,0x61,0x00,0x00,}}, {0x84AA,2,{0xC9,0x62,0x00,0x00,}}, {0x84AB,2,{0xC9,0x63,0x00,0x00,}}, {0x84AC,2,{0xC9,0x64,0x00,0x00,}}, {0x84AD,2,{0xC9,0x65,0x00,0x00,}}, {0x84AE,2,{0xC9,0x66,0x00,0x00,}}, {0x84AF,2,{0xD8,0xE1,0x00,0x00,}}, {0x84B0,2,{0xC9,0x67,0x00,0x00,}}, {0x84B1,2,{0xC9,0x68,0x00,0x00,}}, {0x84B2,2,{0xC6,0xD1,0x00,0x00,}}, {0x84B3,2,{0xC9,0x69,0x00,0x00,}}, {0x84B4,2,{0xDD,0xF4,0x00,0x00,}}, {0x84B5,2,{0xC9,0x6A,0x00,0x00,}}, {0x84B6,2,{0xC9,0x6B,0x00,0x00,}}, {0x84B7,2,{0xC9,0x6C,0x00,0x00,}}, {0x84B8,2,{0xD5,0xF4,0x00,0x00,}}, {0x84B9,2,{0xDD,0xF3,0x00,0x00,}}, {0x84BA,2,{0xDD,0xF0,0x00,0x00,}}, {0x84BB,2,{0xC9,0x6D,0x00,0x00,}}, {0x84BC,2,{0xC9,0x6E,0x00,0x00,}}, {0x84BD,2,{0xDD,0xEC,0x00,0x00,}}, {0x84BE,2,{0xC9,0x6F,0x00,0x00,}}, {0x84BF,2,{0xDD,0xEF,0x00,0x00,}}, {0x84C0,2,{0xC9,0x70,0x00,0x00,}}, {0x84C1,2,{0xDD,0xE8,0x00,0x00,}}, {0x84C2,2,{0xC9,0x71,0x00,0x00,}}, {0x84C3,2,{0xC9,0x72,0x00,0x00,}}, {0x84C4,2,{0xD0,0xEE,0x00,0x00,}}, {0x84C5,2,{0xC9,0x73,0x00,0x00,}}, {0x84C6,2,{0xC9,0x74,0x00,0x00,}}, {0x84C7,2,{0xC9,0x75,0x00,0x00,}}, {0x84C8,2,{0xC9,0x76,0x00,0x00,}}, {0x84C9,2,{0xC8,0xD8,0x00,0x00,}}, {0x84CA,2,{0xDD,0xEE,0x00,0x00,}}, {0x84CB,2,{0xC9,0x77,0x00,0x00,}}, {0x84CC,2,{0xC9,0x78,0x00,0x00,}}, {0x84CD,2,{0xDD,0xE9,0x00,0x00,}}, {0x84CE,2,{0xC9,0x79,0x00,0x00,}}, {0x84CF,2,{0xC9,0x7A,0x00,0x00,}}, {0x84D0,2,{0xDD,0xEA,0x00,0x00,}}, {0x84D1,2,{0xCB,0xF2,0x00,0x00,}}, {0x84D2,2,{0xC9,0x7B,0x00,0x00,}}, {0x84D3,2,{0xDD,0xED,0x00,0x00,}}, {0x84D4,2,{0xC9,0x7C,0x00,0x00,}}, {0x84D5,2,{0xC9,0x7D,0x00,0x00,}}, {0x84D6,2,{0xB1,0xCD,0x00,0x00,}}, {0x84D7,2,{0xC9,0x7E,0x00,0x00,}}, {0x84D8,2,{0xC9,0x80,0x00,0x00,}}, {0x84D9,2,{0xC9,0x81,0x00,0x00,}}, {0x84DA,2,{0xC9,0x82,0x00,0x00,}}, {0x84DB,2,{0xC9,0x83,0x00,0x00,}}, {0x84DC,2,{0xC9,0x84,0x00,0x00,}}, {0x84DD,2,{0xC0,0xB6,0x00,0x00,}}, {0x84DE,2,{0xC9,0x85,0x00,0x00,}}, {0x84DF,2,{0xBC,0xBB,0x00,0x00,}}, {0x84E0,2,{0xDD,0xF1,0x00,0x00,}}, {0x84E1,2,{0xC9,0x86,0x00,0x00,}}, {0x84E2,2,{0xC9,0x87,0x00,0x00,}}, {0x84E3,2,{0xDD,0xF7,0x00,0x00,}}, {0x84E4,2,{0xC9,0x88,0x00,0x00,}}, {0x84E5,2,{0xDD,0xF6,0x00,0x00,}}, {0x84E6,2,{0xDD,0xEB,0x00,0x00,}}, {0x84E7,2,{0xC9,0x89,0x00,0x00,}}, {0x84E8,2,{0xC9,0x8A,0x00,0x00,}}, {0x84E9,2,{0xC9,0x8B,0x00,0x00,}}, {0x84EA,2,{0xC9,0x8C,0x00,0x00,}}, {0x84EB,2,{0xC9,0x8D,0x00,0x00,}}, {0x84EC,2,{0xC5,0xEE,0x00,0x00,}}, {0x84ED,2,{0xC9,0x8E,0x00,0x00,}}, {0x84EE,2,{0xC9,0x8F,0x00,0x00,}}, {0x84EF,2,{0xC9,0x90,0x00,0x00,}}, {0x84F0,2,{0xDD,0xFB,0x00,0x00,}}, {0x84F1,2,{0xC9,0x91,0x00,0x00,}}, {0x84F2,2,{0xC9,0x92,0x00,0x00,}}, {0x84F3,2,{0xC9,0x93,0x00,0x00,}}, {0x84F4,2,{0xC9,0x94,0x00,0x00,}}, {0x84F5,2,{0xC9,0x95,0x00,0x00,}}, {0x84F6,2,{0xC9,0x96,0x00,0x00,}}, {0x84F7,2,{0xC9,0x97,0x00,0x00,}}, {0x84F8,2,{0xC9,0x98,0x00,0x00,}}, {0x84F9,2,{0xC9,0x99,0x00,0x00,}}, {0x84FA,2,{0xC9,0x9A,0x00,0x00,}}, {0x84FB,2,{0xC9,0x9B,0x00,0x00,}}, {0x84FC,2,{0xDE,0xA4,0x00,0x00,}}, {0x84FD,2,{0xC9,0x9C,0x00,0x00,}}, {0x84FE,2,{0xC9,0x9D,0x00,0x00,}}, {0x84FF,2,{0xDE,0xA3,0x00,0x00,}}, {0x8500,2,{0xC9,0x9E,0x00,0x00,}}, {0x8501,2,{0xC9,0x9F,0x00,0x00,}}, {0x8502,2,{0xC9,0xA0,0x00,0x00,}}, {0x8503,2,{0xCA,0x40,0x00,0x00,}}, {0x8504,2,{0xCA,0x41,0x00,0x00,}}, {0x8505,2,{0xCA,0x42,0x00,0x00,}}, {0x8506,2,{0xCA,0x43,0x00,0x00,}}, {0x8507,2,{0xCA,0x44,0x00,0x00,}}, {0x8508,2,{0xCA,0x45,0x00,0x00,}}, {0x8509,2,{0xCA,0x46,0x00,0x00,}}, {0x850A,2,{0xCA,0x47,0x00,0x00,}}, {0x850B,2,{0xCA,0x48,0x00,0x00,}}, {0x850C,2,{0xDD,0xF8,0x00,0x00,}}, {0x850D,2,{0xCA,0x49,0x00,0x00,}}, {0x850E,2,{0xCA,0x4A,0x00,0x00,}}, {0x850F,2,{0xCA,0x4B,0x00,0x00,}}, {0x8510,2,{0xCA,0x4C,0x00,0x00,}}, {0x8511,2,{0xC3,0xEF,0x00,0x00,}}, {0x8512,2,{0xCA,0x4D,0x00,0x00,}}, {0x8513,2,{0xC2,0xFB,0x00,0x00,}}, {0x8514,2,{0xCA,0x4E,0x00,0x00,}}, {0x8515,2,{0xCA,0x4F,0x00,0x00,}}, {0x8516,2,{0xCA,0x50,0x00,0x00,}}, {0x8517,2,{0xD5,0xE1,0x00,0x00,}}, {0x8518,2,{0xCA,0x51,0x00,0x00,}}, {0x8519,2,{0xCA,0x52,0x00,0x00,}}, {0x851A,2,{0xCE,0xB5,0x00,0x00,}}, {0x851B,2,{0xCA,0x53,0x00,0x00,}}, {0x851C,2,{0xCA,0x54,0x00,0x00,}}, {0x851D,2,{0xCA,0x55,0x00,0x00,}}, {0x851E,2,{0xCA,0x56,0x00,0x00,}}, {0x851F,2,{0xDD,0xFD,0x00,0x00,}}, {0x8520,2,{0xCA,0x57,0x00,0x00,}}, {0x8521,2,{0xB2,0xCC,0x00,0x00,}}, {0x8522,2,{0xCA,0x58,0x00,0x00,}}, {0x8523,2,{0xCA,0x59,0x00,0x00,}}, {0x8524,2,{0xCA,0x5A,0x00,0x00,}}, {0x8525,2,{0xCA,0x5B,0x00,0x00,}}, {0x8526,2,{0xCA,0x5C,0x00,0x00,}}, {0x8527,2,{0xCA,0x5D,0x00,0x00,}}, {0x8528,2,{0xCA,0x5E,0x00,0x00,}}, {0x8529,2,{0xCA,0x5F,0x00,0x00,}}, {0x852A,2,{0xCA,0x60,0x00,0x00,}}, {0x852B,2,{0xC4,0xE8,0x00,0x00,}}, {0x852C,2,{0xCA,0xDF,0x00,0x00,}}, {0x852D,2,{0xCA,0x61,0x00,0x00,}}, {0x852E,2,{0xCA,0x62,0x00,0x00,}}, {0x852F,2,{0xCA,0x63,0x00,0x00,}}, {0x8530,2,{0xCA,0x64,0x00,0x00,}}, {0x8531,2,{0xCA,0x65,0x00,0x00,}}, {0x8532,2,{0xCA,0x66,0x00,0x00,}}, {0x8533,2,{0xCA,0x67,0x00,0x00,}}, {0x8534,2,{0xCA,0x68,0x00,0x00,}}, {0x8535,2,{0xCA,0x69,0x00,0x00,}}, {0x8536,2,{0xCA,0x6A,0x00,0x00,}}, {0x8537,2,{0xC7,0xBE,0x00,0x00,}}, {0x8538,2,{0xDD,0xFA,0x00,0x00,}}, {0x8539,2,{0xDD,0xFC,0x00,0x00,}}, {0x853A,2,{0xDD,0xFE,0x00,0x00,}}, {0x853B,2,{0xDE,0xA2,0x00,0x00,}}, {0x853C,2,{0xB0,0xAA,0x00,0x00,}}, {0x853D,2,{0xB1,0xCE,0x00,0x00,}}, {0x853E,2,{0xCA,0x6B,0x00,0x00,}}, {0x853F,2,{0xCA,0x6C,0x00,0x00,}}, {0x8540,2,{0xCA,0x6D,0x00,0x00,}}, {0x8541,2,{0xCA,0x6E,0x00,0x00,}}, {0x8542,2,{0xCA,0x6F,0x00,0x00,}}, {0x8543,2,{0xDE,0xAC,0x00,0x00,}}, {0x8544,2,{0xCA,0x70,0x00,0x00,}}, {0x8545,2,{0xCA,0x71,0x00,0x00,}}, {0x8546,2,{0xCA,0x72,0x00,0x00,}}, {0x8547,2,{0xCA,0x73,0x00,0x00,}}, {0x8548,2,{0xDE,0xA6,0x00,0x00,}}, {0x8549,2,{0xBD,0xB6,0x00,0x00,}}, {0x854A,2,{0xC8,0xEF,0x00,0x00,}}, {0x854B,2,{0xCA,0x74,0x00,0x00,}}, {0x854C,2,{0xCA,0x75,0x00,0x00,}}, {0x854D,2,{0xCA,0x76,0x00,0x00,}}, {0x854E,2,{0xCA,0x77,0x00,0x00,}}, {0x854F,2,{0xCA,0x78,0x00,0x00,}}, {0x8550,2,{0xCA,0x79,0x00,0x00,}}, {0x8551,2,{0xCA,0x7A,0x00,0x00,}}, {0x8552,2,{0xCA,0x7B,0x00,0x00,}}, {0x8553,2,{0xCA,0x7C,0x00,0x00,}}, {0x8554,2,{0xCA,0x7D,0x00,0x00,}}, {0x8555,2,{0xCA,0x7E,0x00,0x00,}}, {0x8556,2,{0xDE,0xA1,0x00,0x00,}}, {0x8557,2,{0xCA,0x80,0x00,0x00,}}, {0x8558,2,{0xCA,0x81,0x00,0x00,}}, {0x8559,2,{0xDE,0xA5,0x00,0x00,}}, {0x855A,2,{0xCA,0x82,0x00,0x00,}}, {0x855B,2,{0xCA,0x83,0x00,0x00,}}, {0x855C,2,{0xCA,0x84,0x00,0x00,}}, {0x855D,2,{0xCA,0x85,0x00,0x00,}}, {0x855E,2,{0xDE,0xA9,0x00,0x00,}}, {0x855F,2,{0xCA,0x86,0x00,0x00,}}, {0x8560,2,{0xCA,0x87,0x00,0x00,}}, {0x8561,2,{0xCA,0x88,0x00,0x00,}}, {0x8562,2,{0xCA,0x89,0x00,0x00,}}, {0x8563,2,{0xCA,0x8A,0x00,0x00,}}, {0x8564,2,{0xDE,0xA8,0x00,0x00,}}, {0x8565,2,{0xCA,0x8B,0x00,0x00,}}, {0x8566,2,{0xCA,0x8C,0x00,0x00,}}, {0x8567,2,{0xCA,0x8D,0x00,0x00,}}, {0x8568,2,{0xDE,0xA7,0x00,0x00,}}, {0x8569,2,{0xCA,0x8E,0x00,0x00,}}, {0x856A,2,{0xCA,0x8F,0x00,0x00,}}, {0x856B,2,{0xCA,0x90,0x00,0x00,}}, {0x856C,2,{0xCA,0x91,0x00,0x00,}}, {0x856D,2,{0xCA,0x92,0x00,0x00,}}, {0x856E,2,{0xCA,0x93,0x00,0x00,}}, {0x856F,2,{0xCA,0x94,0x00,0x00,}}, {0x8570,2,{0xCA,0x95,0x00,0x00,}}, {0x8571,2,{0xCA,0x96,0x00,0x00,}}, {0x8572,2,{0xDE,0xAD,0x00,0x00,}}, {0x8573,2,{0xCA,0x97,0x00,0x00,}}, {0x8574,2,{0xD4,0xCC,0x00,0x00,}}, {0x8575,2,{0xCA,0x98,0x00,0x00,}}, {0x8576,2,{0xCA,0x99,0x00,0x00,}}, {0x8577,2,{0xCA,0x9A,0x00,0x00,}}, {0x8578,2,{0xCA,0x9B,0x00,0x00,}}, {0x8579,2,{0xDE,0xB3,0x00,0x00,}}, {0x857A,2,{0xDE,0xAA,0x00,0x00,}}, {0x857B,2,{0xDE,0xAE,0x00,0x00,}}, {0x857C,2,{0xCA,0x9C,0x00,0x00,}}, {0x857D,2,{0xCA,0x9D,0x00,0x00,}}, {0x857E,2,{0xC0,0xD9,0x00,0x00,}}, {0x857F,2,{0xCA,0x9E,0x00,0x00,}}, {0x8580,2,{0xCA,0x9F,0x00,0x00,}}, {0x8581,2,{0xCA,0xA0,0x00,0x00,}}, {0x8582,2,{0xCB,0x40,0x00,0x00,}}, {0x8583,2,{0xCB,0x41,0x00,0x00,}}, {0x8584,2,{0xB1,0xA1,0x00,0x00,}}, {0x8585,2,{0xDE,0xB6,0x00,0x00,}}, {0x8586,2,{0xCB,0x42,0x00,0x00,}}, {0x8587,2,{0xDE,0xB1,0x00,0x00,}}, {0x8588,2,{0xCB,0x43,0x00,0x00,}}, {0x8589,2,{0xCB,0x44,0x00,0x00,}}, {0x858A,2,{0xCB,0x45,0x00,0x00,}}, {0x858B,2,{0xCB,0x46,0x00,0x00,}}, {0x858C,2,{0xCB,0x47,0x00,0x00,}}, {0x858D,2,{0xCB,0x48,0x00,0x00,}}, {0x858E,2,{0xCB,0x49,0x00,0x00,}}, {0x858F,2,{0xDE,0xB2,0x00,0x00,}}, {0x8590,2,{0xCB,0x4A,0x00,0x00,}}, {0x8591,2,{0xCB,0x4B,0x00,0x00,}}, {0x8592,2,{0xCB,0x4C,0x00,0x00,}}, {0x8593,2,{0xCB,0x4D,0x00,0x00,}}, {0x8594,2,{0xCB,0x4E,0x00,0x00,}}, {0x8595,2,{0xCB,0x4F,0x00,0x00,}}, {0x8596,2,{0xCB,0x50,0x00,0x00,}}, {0x8597,2,{0xCB,0x51,0x00,0x00,}}, {0x8598,2,{0xCB,0x52,0x00,0x00,}}, {0x8599,2,{0xCB,0x53,0x00,0x00,}}, {0x859A,2,{0xCB,0x54,0x00,0x00,}}, {0x859B,2,{0xD1,0xA6,0x00,0x00,}}, {0x859C,2,{0xDE,0xB5,0x00,0x00,}}, {0x859D,2,{0xCB,0x55,0x00,0x00,}}, {0x859E,2,{0xCB,0x56,0x00,0x00,}}, {0x859F,2,{0xCB,0x57,0x00,0x00,}}, {0x85A0,2,{0xCB,0x58,0x00,0x00,}}, {0x85A1,2,{0xCB,0x59,0x00,0x00,}}, {0x85A2,2,{0xCB,0x5A,0x00,0x00,}}, {0x85A3,2,{0xCB,0x5B,0x00,0x00,}}, {0x85A4,2,{0xDE,0xAF,0x00,0x00,}}, {0x85A5,2,{0xCB,0x5C,0x00,0x00,}}, {0x85A6,2,{0xCB,0x5D,0x00,0x00,}}, {0x85A7,2,{0xCB,0x5E,0x00,0x00,}}, {0x85A8,2,{0xDE,0xB0,0x00,0x00,}}, {0x85A9,2,{0xCB,0x5F,0x00,0x00,}}, {0x85AA,2,{0xD0,0xBD,0x00,0x00,}}, {0x85AB,2,{0xCB,0x60,0x00,0x00,}}, {0x85AC,2,{0xCB,0x61,0x00,0x00,}}, {0x85AD,2,{0xCB,0x62,0x00,0x00,}}, {0x85AE,2,{0xDE,0xB4,0x00,0x00,}}, {0x85AF,2,{0xCA,0xED,0x00,0x00,}}, {0x85B0,2,{0xDE,0xB9,0x00,0x00,}}, {0x85B1,2,{0xCB,0x63,0x00,0x00,}}, {0x85B2,2,{0xCB,0x64,0x00,0x00,}}, {0x85B3,2,{0xCB,0x65,0x00,0x00,}}, {0x85B4,2,{0xCB,0x66,0x00,0x00,}}, {0x85B5,2,{0xCB,0x67,0x00,0x00,}}, {0x85B6,2,{0xCB,0x68,0x00,0x00,}}, {0x85B7,2,{0xDE,0xB8,0x00,0x00,}}, {0x85B8,2,{0xCB,0x69,0x00,0x00,}}, {0x85B9,2,{0xDE,0xB7,0x00,0x00,}}, {0x85BA,2,{0xCB,0x6A,0x00,0x00,}}, {0x85BB,2,{0xCB,0x6B,0x00,0x00,}}, {0x85BC,2,{0xCB,0x6C,0x00,0x00,}}, {0x85BD,2,{0xCB,0x6D,0x00,0x00,}}, {0x85BE,2,{0xCB,0x6E,0x00,0x00,}}, {0x85BF,2,{0xCB,0x6F,0x00,0x00,}}, {0x85C0,2,{0xCB,0x70,0x00,0x00,}}, {0x85C1,2,{0xDE,0xBB,0x00,0x00,}}, {0x85C2,2,{0xCB,0x71,0x00,0x00,}}, {0x85C3,2,{0xCB,0x72,0x00,0x00,}}, {0x85C4,2,{0xCB,0x73,0x00,0x00,}}, {0x85C5,2,{0xCB,0x74,0x00,0x00,}}, {0x85C6,2,{0xCB,0x75,0x00,0x00,}}, {0x85C7,2,{0xCB,0x76,0x00,0x00,}}, {0x85C8,2,{0xCB,0x77,0x00,0x00,}}, {0x85C9,2,{0xBD,0xE5,0x00,0x00,}}, {0x85CA,2,{0xCB,0x78,0x00,0x00,}}, {0x85CB,2,{0xCB,0x79,0x00,0x00,}}, {0x85CC,2,{0xCB,0x7A,0x00,0x00,}}, {0x85CD,2,{0xCB,0x7B,0x00,0x00,}}, {0x85CE,2,{0xCB,0x7C,0x00,0x00,}}, {0x85CF,2,{0xB2,0xD8,0x00,0x00,}}, {0x85D0,2,{0xC3,0xEA,0x00,0x00,}}, {0x85D1,2,{0xCB,0x7D,0x00,0x00,}}, {0x85D2,2,{0xCB,0x7E,0x00,0x00,}}, {0x85D3,2,{0xDE,0xBA,0x00,0x00,}}, {0x85D4,2,{0xCB,0x80,0x00,0x00,}}, {0x85D5,2,{0xC5,0xBA,0x00,0x00,}}, {0x85D6,2,{0xCB,0x81,0x00,0x00,}}, {0x85D7,2,{0xCB,0x82,0x00,0x00,}}, {0x85D8,2,{0xCB,0x83,0x00,0x00,}}, {0x85D9,2,{0xCB,0x84,0x00,0x00,}}, {0x85DA,2,{0xCB,0x85,0x00,0x00,}}, {0x85DB,2,{0xCB,0x86,0x00,0x00,}}, {0x85DC,2,{0xDE,0xBC,0x00,0x00,}}, {0x85DD,2,{0xCB,0x87,0x00,0x00,}}, {0x85DE,2,{0xCB,0x88,0x00,0x00,}}, {0x85DF,2,{0xCB,0x89,0x00,0x00,}}, {0x85E0,2,{0xCB,0x8A,0x00,0x00,}}, {0x85E1,2,{0xCB,0x8B,0x00,0x00,}}, {0x85E2,2,{0xCB,0x8C,0x00,0x00,}}, {0x85E3,2,{0xCB,0x8D,0x00,0x00,}}, {0x85E4,2,{0xCC,0xD9,0x00,0x00,}}, {0x85E5,2,{0xCB,0x8E,0x00,0x00,}}, {0x85E6,2,{0xCB,0x8F,0x00,0x00,}}, {0x85E7,2,{0xCB,0x90,0x00,0x00,}}, {0x85E8,2,{0xCB,0x91,0x00,0x00,}}, {0x85E9,2,{0xB7,0xAA,0x00,0x00,}}, {0x85EA,2,{0xCB,0x92,0x00,0x00,}}, {0x85EB,2,{0xCB,0x93,0x00,0x00,}}, {0x85EC,2,{0xCB,0x94,0x00,0x00,}}, {0x85ED,2,{0xCB,0x95,0x00,0x00,}}, {0x85EE,2,{0xCB,0x96,0x00,0x00,}}, {0x85EF,2,{0xCB,0x97,0x00,0x00,}}, {0x85F0,2,{0xCB,0x98,0x00,0x00,}}, {0x85F1,2,{0xCB,0x99,0x00,0x00,}}, {0x85F2,2,{0xCB,0x9A,0x00,0x00,}}, {0x85F3,2,{0xCB,0x9B,0x00,0x00,}}, {0x85F4,2,{0xCB,0x9C,0x00,0x00,}}, {0x85F5,2,{0xCB,0x9D,0x00,0x00,}}, {0x85F6,2,{0xCB,0x9E,0x00,0x00,}}, {0x85F7,2,{0xCB,0x9F,0x00,0x00,}}, {0x85F8,2,{0xCB,0xA0,0x00,0x00,}}, {0x85F9,2,{0xCC,0x40,0x00,0x00,}}, {0x85FA,2,{0xCC,0x41,0x00,0x00,}}, {0x85FB,2,{0xD4,0xE5,0x00,0x00,}}, {0x85FC,2,{0xCC,0x42,0x00,0x00,}}, {0x85FD,2,{0xCC,0x43,0x00,0x00,}}, {0x85FE,2,{0xCC,0x44,0x00,0x00,}}, {0x85FF,2,{0xDE,0xBD,0x00,0x00,}}, {0x8600,2,{0xCC,0x45,0x00,0x00,}}, {0x8601,2,{0xCC,0x46,0x00,0x00,}}, {0x8602,2,{0xCC,0x47,0x00,0x00,}}, {0x8603,2,{0xCC,0x48,0x00,0x00,}}, {0x8604,2,{0xCC,0x49,0x00,0x00,}}, {0x8605,2,{0xDE,0xBF,0x00,0x00,}}, {0x8606,2,{0xCC,0x4A,0x00,0x00,}}, {0x8607,2,{0xCC,0x4B,0x00,0x00,}}, {0x8608,2,{0xCC,0x4C,0x00,0x00,}}, {0x8609,2,{0xCC,0x4D,0x00,0x00,}}, {0x860A,2,{0xCC,0x4E,0x00,0x00,}}, {0x860B,2,{0xCC,0x4F,0x00,0x00,}}, {0x860C,2,{0xCC,0x50,0x00,0x00,}}, {0x860D,2,{0xCC,0x51,0x00,0x00,}}, {0x860E,2,{0xCC,0x52,0x00,0x00,}}, {0x860F,2,{0xCC,0x53,0x00,0x00,}}, {0x8610,2,{0xCC,0x54,0x00,0x00,}}, {0x8611,2,{0xC4,0xA2,0x00,0x00,}}, {0x8612,2,{0xCC,0x55,0x00,0x00,}}, {0x8613,2,{0xCC,0x56,0x00,0x00,}}, {0x8614,2,{0xCC,0x57,0x00,0x00,}}, {0x8615,2,{0xCC,0x58,0x00,0x00,}}, {0x8616,2,{0xDE,0xC1,0x00,0x00,}}, {0x8617,2,{0xCC,0x59,0x00,0x00,}}, {0x8618,2,{0xCC,0x5A,0x00,0x00,}}, {0x8619,2,{0xCC,0x5B,0x00,0x00,}}, {0x861A,2,{0xCC,0x5C,0x00,0x00,}}, {0x861B,2,{0xCC,0x5D,0x00,0x00,}}, {0x861C,2,{0xCC,0x5E,0x00,0x00,}}, {0x861D,2,{0xCC,0x5F,0x00,0x00,}}, {0x861E,2,{0xCC,0x60,0x00,0x00,}}, {0x861F,2,{0xCC,0x61,0x00,0x00,}}, {0x8620,2,{0xCC,0x62,0x00,0x00,}}, {0x8621,2,{0xCC,0x63,0x00,0x00,}}, {0x8622,2,{0xCC,0x64,0x00,0x00,}}, {0x8623,2,{0xCC,0x65,0x00,0x00,}}, {0x8624,2,{0xCC,0x66,0x00,0x00,}}, {0x8625,2,{0xCC,0x67,0x00,0x00,}}, {0x8626,2,{0xCC,0x68,0x00,0x00,}}, {0x8627,2,{0xDE,0xBE,0x00,0x00,}}, {0x8628,2,{0xCC,0x69,0x00,0x00,}}, {0x8629,2,{0xDE,0xC0,0x00,0x00,}}, {0x862A,2,{0xCC,0x6A,0x00,0x00,}}, {0x862B,2,{0xCC,0x6B,0x00,0x00,}}, {0x862C,2,{0xCC,0x6C,0x00,0x00,}}, {0x862D,2,{0xCC,0x6D,0x00,0x00,}}, {0x862E,2,{0xCC,0x6E,0x00,0x00,}}, {0x862F,2,{0xCC,0x6F,0x00,0x00,}}, {0x8630,2,{0xCC,0x70,0x00,0x00,}}, {0x8631,2,{0xCC,0x71,0x00,0x00,}}, {0x8632,2,{0xCC,0x72,0x00,0x00,}}, {0x8633,2,{0xCC,0x73,0x00,0x00,}}, {0x8634,2,{0xCC,0x74,0x00,0x00,}}, {0x8635,2,{0xCC,0x75,0x00,0x00,}}, {0x8636,2,{0xCC,0x76,0x00,0x00,}}, {0x8637,2,{0xCC,0x77,0x00,0x00,}}, {0x8638,2,{0xD5,0xBA,0x00,0x00,}}, {0x8639,2,{0xCC,0x78,0x00,0x00,}}, {0x863A,2,{0xCC,0x79,0x00,0x00,}}, {0x863B,2,{0xCC,0x7A,0x00,0x00,}}, {0x863C,2,{0xDE,0xC2,0x00,0x00,}}, {0x863D,2,{0xCC,0x7B,0x00,0x00,}}, {0x863E,2,{0xCC,0x7C,0x00,0x00,}}, {0x863F,2,{0xCC,0x7D,0x00,0x00,}}, {0x8640,2,{0xCC,0x7E,0x00,0x00,}}, {0x8641,2,{0xCC,0x80,0x00,0x00,}}, {0x8642,2,{0xCC,0x81,0x00,0x00,}}, {0x8643,2,{0xCC,0x82,0x00,0x00,}}, {0x8644,2,{0xCC,0x83,0x00,0x00,}}, {0x8645,2,{0xCC,0x84,0x00,0x00,}}, {0x8646,2,{0xCC,0x85,0x00,0x00,}}, {0x8647,2,{0xCC,0x86,0x00,0x00,}}, {0x8648,2,{0xCC,0x87,0x00,0x00,}}, {0x8649,2,{0xCC,0x88,0x00,0x00,}}, {0x864A,2,{0xCC,0x89,0x00,0x00,}}, {0x864B,2,{0xCC,0x8A,0x00,0x00,}}, {0x864C,2,{0xCC,0x8B,0x00,0x00,}}, {0x864D,2,{0xF2,0xAE,0x00,0x00,}}, {0x864E,2,{0xBB,0xA2,0x00,0x00,}}, {0x864F,2,{0xC2,0xB2,0x00,0x00,}}, {0x8650,2,{0xC5,0xB0,0x00,0x00,}}, {0x8651,2,{0xC2,0xC7,0x00,0x00,}}, {0x8652,2,{0xCC,0x8C,0x00,0x00,}}, {0x8653,2,{0xCC,0x8D,0x00,0x00,}}, {0x8654,2,{0xF2,0xAF,0x00,0x00,}}, {0x8655,2,{0xCC,0x8E,0x00,0x00,}}, {0x8656,2,{0xCC,0x8F,0x00,0x00,}}, {0x8657,2,{0xCC,0x90,0x00,0x00,}}, {0x8658,2,{0xCC,0x91,0x00,0x00,}}, {0x8659,2,{0xCC,0x92,0x00,0x00,}}, {0x865A,2,{0xD0,0xE9,0x00,0x00,}}, {0x865B,2,{0xCC,0x93,0x00,0x00,}}, {0x865C,2,{0xCC,0x94,0x00,0x00,}}, {0x865D,2,{0xCC,0x95,0x00,0x00,}}, {0x865E,2,{0xD3,0xDD,0x00,0x00,}}, {0x865F,2,{0xCC,0x96,0x00,0x00,}}, {0x8660,2,{0xCC,0x97,0x00,0x00,}}, {0x8661,2,{0xCC,0x98,0x00,0x00,}}, {0x8662,2,{0xEB,0xBD,0x00,0x00,}}, {0x8663,2,{0xCC,0x99,0x00,0x00,}}, {0x8664,2,{0xCC,0x9A,0x00,0x00,}}, {0x8665,2,{0xCC,0x9B,0x00,0x00,}}, {0x8666,2,{0xCC,0x9C,0x00,0x00,}}, {0x8667,2,{0xCC,0x9D,0x00,0x00,}}, {0x8668,2,{0xCC,0x9E,0x00,0x00,}}, {0x8669,2,{0xCC,0x9F,0x00,0x00,}}, {0x866A,2,{0xCC,0xA0,0x00,0x00,}}, {0x866B,2,{0xB3,0xE6,0x00,0x00,}}, {0x866C,2,{0xF2,0xB0,0x00,0x00,}}, {0x866D,2,{0xCD,0x40,0x00,0x00,}}, {0x866E,2,{0xF2,0xB1,0x00,0x00,}}, {0x866F,2,{0xCD,0x41,0x00,0x00,}}, {0x8670,2,{0xCD,0x42,0x00,0x00,}}, {0x8671,2,{0xCA,0xAD,0x00,0x00,}}, {0x8672,2,{0xCD,0x43,0x00,0x00,}}, {0x8673,2,{0xCD,0x44,0x00,0x00,}}, {0x8674,2,{0xCD,0x45,0x00,0x00,}}, {0x8675,2,{0xCD,0x46,0x00,0x00,}}, {0x8676,2,{0xCD,0x47,0x00,0x00,}}, {0x8677,2,{0xCD,0x48,0x00,0x00,}}, {0x8678,2,{0xCD,0x49,0x00,0x00,}}, {0x8679,2,{0xBA,0xE7,0x00,0x00,}}, {0x867A,2,{0xF2,0xB3,0x00,0x00,}}, {0x867B,2,{0xF2,0xB5,0x00,0x00,}}, {0x867C,2,{0xF2,0xB4,0x00,0x00,}}, {0x867D,2,{0xCB,0xE4,0x00,0x00,}}, {0x867E,2,{0xCF,0xBA,0x00,0x00,}}, {0x867F,2,{0xF2,0xB2,0x00,0x00,}}, {0x8680,2,{0xCA,0xB4,0x00,0x00,}}, {0x8681,2,{0xD2,0xCF,0x00,0x00,}}, {0x8682,2,{0xC2,0xEC,0x00,0x00,}}, {0x8683,2,{0xCD,0x4A,0x00,0x00,}}, {0x8684,2,{0xCD,0x4B,0x00,0x00,}}, {0x8685,2,{0xCD,0x4C,0x00,0x00,}}, {0x8686,2,{0xCD,0x4D,0x00,0x00,}}, {0x8687,2,{0xCD,0x4E,0x00,0x00,}}, {0x8688,2,{0xCD,0x4F,0x00,0x00,}}, {0x8689,2,{0xCD,0x50,0x00,0x00,}}, {0x868A,2,{0xCE,0xC3,0x00,0x00,}}, {0x868B,2,{0xF2,0xB8,0x00,0x00,}}, {0x868C,2,{0xB0,0xF6,0x00,0x00,}}, {0x868D,2,{0xF2,0xB7,0x00,0x00,}}, {0x868E,2,{0xCD,0x51,0x00,0x00,}}, {0x868F,2,{0xCD,0x52,0x00,0x00,}}, {0x8690,2,{0xCD,0x53,0x00,0x00,}}, {0x8691,2,{0xCD,0x54,0x00,0x00,}}, {0x8692,2,{0xCD,0x55,0x00,0x00,}}, {0x8693,2,{0xF2,0xBE,0x00,0x00,}}, {0x8694,2,{0xCD,0x56,0x00,0x00,}}, {0x8695,2,{0xB2,0xCF,0x00,0x00,}}, {0x8696,2,{0xCD,0x57,0x00,0x00,}}, {0x8697,2,{0xCD,0x58,0x00,0x00,}}, {0x8698,2,{0xCD,0x59,0x00,0x00,}}, {0x8699,2,{0xCD,0x5A,0x00,0x00,}}, {0x869A,2,{0xCD,0x5B,0x00,0x00,}}, {0x869B,2,{0xCD,0x5C,0x00,0x00,}}, {0x869C,2,{0xD1,0xC1,0x00,0x00,}}, {0x869D,2,{0xF2,0xBA,0x00,0x00,}}, {0x869E,2,{0xCD,0x5D,0x00,0x00,}}, {0x869F,2,{0xCD,0x5E,0x00,0x00,}}, {0x86A0,2,{0xCD,0x5F,0x00,0x00,}}, {0x86A1,2,{0xCD,0x60,0x00,0x00,}}, {0x86A2,2,{0xCD,0x61,0x00,0x00,}}, {0x86A3,2,{0xF2,0xBC,0x00,0x00,}}, {0x86A4,2,{0xD4,0xE9,0x00,0x00,}}, {0x86A5,2,{0xCD,0x62,0x00,0x00,}}, {0x86A6,2,{0xCD,0x63,0x00,0x00,}}, {0x86A7,2,{0xF2,0xBB,0x00,0x00,}}, {0x86A8,2,{0xF2,0xB6,0x00,0x00,}}, {0x86A9,2,{0xF2,0xBF,0x00,0x00,}}, {0x86AA,2,{0xF2,0xBD,0x00,0x00,}}, {0x86AB,2,{0xCD,0x64,0x00,0x00,}}, {0x86AC,2,{0xF2,0xB9,0x00,0x00,}}, {0x86AD,2,{0xCD,0x65,0x00,0x00,}}, {0x86AE,2,{0xCD,0x66,0x00,0x00,}}, {0x86AF,2,{0xF2,0xC7,0x00,0x00,}}, {0x86B0,2,{0xF2,0xC4,0x00,0x00,}}, {0x86B1,2,{0xF2,0xC6,0x00,0x00,}}, {0x86B2,2,{0xCD,0x67,0x00,0x00,}}, {0x86B3,2,{0xCD,0x68,0x00,0x00,}}, {0x86B4,2,{0xF2,0xCA,0x00,0x00,}}, {0x86B5,2,{0xF2,0xC2,0x00,0x00,}}, {0x86B6,2,{0xF2,0xC0,0x00,0x00,}}, {0x86B7,2,{0xCD,0x69,0x00,0x00,}}, {0x86B8,2,{0xCD,0x6A,0x00,0x00,}}, {0x86B9,2,{0xCD,0x6B,0x00,0x00,}}, {0x86BA,2,{0xF2,0xC5,0x00,0x00,}}, {0x86BB,2,{0xCD,0x6C,0x00,0x00,}}, {0x86BC,2,{0xCD,0x6D,0x00,0x00,}}, {0x86BD,2,{0xCD,0x6E,0x00,0x00,}}, {0x86BE,2,{0xCD,0x6F,0x00,0x00,}}, {0x86BF,2,{0xCD,0x70,0x00,0x00,}}, {0x86C0,2,{0xD6,0xFB,0x00,0x00,}}, {0x86C1,2,{0xCD,0x71,0x00,0x00,}}, {0x86C2,2,{0xCD,0x72,0x00,0x00,}}, {0x86C3,2,{0xCD,0x73,0x00,0x00,}}, {0x86C4,2,{0xF2,0xC1,0x00,0x00,}}, {0x86C5,2,{0xCD,0x74,0x00,0x00,}}, {0x86C6,2,{0xC7,0xF9,0x00,0x00,}}, {0x86C7,2,{0xC9,0xDF,0x00,0x00,}}, {0x86C8,2,{0xCD,0x75,0x00,0x00,}}, {0x86C9,2,{0xF2,0xC8,0x00,0x00,}}, {0x86CA,2,{0xB9,0xC6,0x00,0x00,}}, {0x86CB,2,{0xB5,0xB0,0x00,0x00,}}, {0x86CC,2,{0xCD,0x76,0x00,0x00,}}, {0x86CD,2,{0xCD,0x77,0x00,0x00,}}, {0x86CE,2,{0xF2,0xC3,0x00,0x00,}}, {0x86CF,2,{0xF2,0xC9,0x00,0x00,}}, {0x86D0,2,{0xF2,0xD0,0x00,0x00,}}, {0x86D1,2,{0xF2,0xD6,0x00,0x00,}}, {0x86D2,2,{0xCD,0x78,0x00,0x00,}}, {0x86D3,2,{0xCD,0x79,0x00,0x00,}}, {0x86D4,2,{0xBB,0xD7,0x00,0x00,}}, {0x86D5,2,{0xCD,0x7A,0x00,0x00,}}, {0x86D6,2,{0xCD,0x7B,0x00,0x00,}}, {0x86D7,2,{0xCD,0x7C,0x00,0x00,}}, {0x86D8,2,{0xF2,0xD5,0x00,0x00,}}, {0x86D9,2,{0xCD,0xDC,0x00,0x00,}}, {0x86DA,2,{0xCD,0x7D,0x00,0x00,}}, {0x86DB,2,{0xD6,0xEB,0x00,0x00,}}, {0x86DC,2,{0xCD,0x7E,0x00,0x00,}}, {0x86DD,2,{0xCD,0x80,0x00,0x00,}}, {0x86DE,2,{0xF2,0xD2,0x00,0x00,}}, {0x86DF,2,{0xF2,0xD4,0x00,0x00,}}, {0x86E0,2,{0xCD,0x81,0x00,0x00,}}, {0x86E1,2,{0xCD,0x82,0x00,0x00,}}, {0x86E2,2,{0xCD,0x83,0x00,0x00,}}, {0x86E3,2,{0xCD,0x84,0x00,0x00,}}, {0x86E4,2,{0xB8,0xF2,0x00,0x00,}}, {0x86E5,2,{0xCD,0x85,0x00,0x00,}}, {0x86E6,2,{0xCD,0x86,0x00,0x00,}}, {0x86E7,2,{0xCD,0x87,0x00,0x00,}}, {0x86E8,2,{0xCD,0x88,0x00,0x00,}}, {0x86E9,2,{0xF2,0xCB,0x00,0x00,}}, {0x86EA,2,{0xCD,0x89,0x00,0x00,}}, {0x86EB,2,{0xCD,0x8A,0x00,0x00,}}, {0x86EC,2,{0xCD,0x8B,0x00,0x00,}}, {0x86ED,2,{0xF2,0xCE,0x00,0x00,}}, {0x86EE,2,{0xC2,0xF9,0x00,0x00,}}, {0x86EF,2,{0xCD,0x8C,0x00,0x00,}}, {0x86F0,2,{0xD5,0xDD,0x00,0x00,}}, {0x86F1,2,{0xF2,0xCC,0x00,0x00,}}, {0x86F2,2,{0xF2,0xCD,0x00,0x00,}}, {0x86F3,2,{0xF2,0xCF,0x00,0x00,}}, {0x86F4,2,{0xF2,0xD3,0x00,0x00,}}, {0x86F5,2,{0xCD,0x8D,0x00,0x00,}}, {0x86F6,2,{0xCD,0x8E,0x00,0x00,}}, {0x86F7,2,{0xCD,0x8F,0x00,0x00,}}, {0x86F8,2,{0xF2,0xD9,0x00,0x00,}}, {0x86F9,2,{0xD3,0xBC,0x00,0x00,}}, {0x86FA,2,{0xCD,0x90,0x00,0x00,}}, {0x86FB,2,{0xCD,0x91,0x00,0x00,}}, {0x86FC,2,{0xCD,0x92,0x00,0x00,}}, {0x86FD,2,{0xCD,0x93,0x00,0x00,}}, {0x86FE,2,{0xB6,0xEA,0x00,0x00,}}, {0x86FF,2,{0xCD,0x94,0x00,0x00,}}, {0x8700,2,{0xCA,0xF1,0x00,0x00,}}, {0x8701,2,{0xCD,0x95,0x00,0x00,}}, {0x8702,2,{0xB7,0xE4,0x00,0x00,}}, {0x8703,2,{0xF2,0xD7,0x00,0x00,}}, {0x8704,2,{0xCD,0x96,0x00,0x00,}}, {0x8705,2,{0xCD,0x97,0x00,0x00,}}, {0x8706,2,{0xCD,0x98,0x00,0x00,}}, {0x8707,2,{0xF2,0xD8,0x00,0x00,}}, {0x8708,2,{0xF2,0xDA,0x00,0x00,}}, {0x8709,2,{0xF2,0xDD,0x00,0x00,}}, {0x870A,2,{0xF2,0xDB,0x00,0x00,}}, {0x870B,2,{0xCD,0x99,0x00,0x00,}}, {0x870C,2,{0xCD,0x9A,0x00,0x00,}}, {0x870D,2,{0xF2,0xDC,0x00,0x00,}}, {0x870E,2,{0xCD,0x9B,0x00,0x00,}}, {0x870F,2,{0xCD,0x9C,0x00,0x00,}}, {0x8710,2,{0xCD,0x9D,0x00,0x00,}}, {0x8711,2,{0xCD,0x9E,0x00,0x00,}}, {0x8712,2,{0xD1,0xD1,0x00,0x00,}}, {0x8713,2,{0xF2,0xD1,0x00,0x00,}}, {0x8714,2,{0xCD,0x9F,0x00,0x00,}}, {0x8715,2,{0xCD,0xC9,0x00,0x00,}}, {0x8716,2,{0xCD,0xA0,0x00,0x00,}}, {0x8717,2,{0xCE,0xCF,0x00,0x00,}}, {0x8718,2,{0xD6,0xA9,0x00,0x00,}}, {0x8719,2,{0xCE,0x40,0x00,0x00,}}, {0x871A,2,{0xF2,0xE3,0x00,0x00,}}, {0x871B,2,{0xCE,0x41,0x00,0x00,}}, {0x871C,2,{0xC3,0xDB,0x00,0x00,}}, {0x871D,2,{0xCE,0x42,0x00,0x00,}}, {0x871E,2,{0xF2,0xE0,0x00,0x00,}}, {0x871F,2,{0xCE,0x43,0x00,0x00,}}, {0x8720,2,{0xCE,0x44,0x00,0x00,}}, {0x8721,2,{0xC0,0xAF,0x00,0x00,}}, {0x8722,2,{0xF2,0xEC,0x00,0x00,}}, {0x8723,2,{0xF2,0xDE,0x00,0x00,}}, {0x8724,2,{0xCE,0x45,0x00,0x00,}}, {0x8725,2,{0xF2,0xE1,0x00,0x00,}}, {0x8726,2,{0xCE,0x46,0x00,0x00,}}, {0x8727,2,{0xCE,0x47,0x00,0x00,}}, {0x8728,2,{0xCE,0x48,0x00,0x00,}}, {0x8729,2,{0xF2,0xE8,0x00,0x00,}}, {0x872A,2,{0xCE,0x49,0x00,0x00,}}, {0x872B,2,{0xCE,0x4A,0x00,0x00,}}, {0x872C,2,{0xCE,0x4B,0x00,0x00,}}, {0x872D,2,{0xCE,0x4C,0x00,0x00,}}, {0x872E,2,{0xF2,0xE2,0x00,0x00,}}, {0x872F,2,{0xCE,0x4D,0x00,0x00,}}, {0x8730,2,{0xCE,0x4E,0x00,0x00,}}, {0x8731,2,{0xF2,0xE7,0x00,0x00,}}, {0x8732,2,{0xCE,0x4F,0x00,0x00,}}, {0x8733,2,{0xCE,0x50,0x00,0x00,}}, {0x8734,2,{0xF2,0xE6,0x00,0x00,}}, {0x8735,2,{0xCE,0x51,0x00,0x00,}}, {0x8736,2,{0xCE,0x52,0x00,0x00,}}, {0x8737,2,{0xF2,0xE9,0x00,0x00,}}, {0x8738,2,{0xCE,0x53,0x00,0x00,}}, {0x8739,2,{0xCE,0x54,0x00,0x00,}}, {0x873A,2,{0xCE,0x55,0x00,0x00,}}, {0x873B,2,{0xF2,0xDF,0x00,0x00,}}, {0x873C,2,{0xCE,0x56,0x00,0x00,}}, {0x873D,2,{0xCE,0x57,0x00,0x00,}}, {0x873E,2,{0xF2,0xE4,0x00,0x00,}}, {0x873F,2,{0xF2,0xEA,0x00,0x00,}}, {0x8740,2,{0xCE,0x58,0x00,0x00,}}, {0x8741,2,{0xCE,0x59,0x00,0x00,}}, {0x8742,2,{0xCE,0x5A,0x00,0x00,}}, {0x8743,2,{0xCE,0x5B,0x00,0x00,}}, {0x8744,2,{0xCE,0x5C,0x00,0x00,}}, {0x8745,2,{0xCE,0x5D,0x00,0x00,}}, {0x8746,2,{0xCE,0x5E,0x00,0x00,}}, {0x8747,2,{0xD3,0xAC,0x00,0x00,}}, {0x8748,2,{0xF2,0xE5,0x00,0x00,}}, {0x8749,2,{0xB2,0xF5,0x00,0x00,}}, {0x874A,2,{0xCE,0x5F,0x00,0x00,}}, {0x874B,2,{0xCE,0x60,0x00,0x00,}}, {0x874C,2,{0xF2,0xF2,0x00,0x00,}}, {0x874D,2,{0xCE,0x61,0x00,0x00,}}, {0x874E,2,{0xD0,0xAB,0x00,0x00,}}, {0x874F,2,{0xCE,0x62,0x00,0x00,}}, {0x8750,2,{0xCE,0x63,0x00,0x00,}}, {0x8751,2,{0xCE,0x64,0x00,0x00,}}, {0x8752,2,{0xCE,0x65,0x00,0x00,}}, {0x8753,2,{0xF2,0xF5,0x00,0x00,}}, {0x8754,2,{0xCE,0x66,0x00,0x00,}}, {0x8755,2,{0xCE,0x67,0x00,0x00,}}, {0x8756,2,{0xCE,0x68,0x00,0x00,}}, {0x8757,2,{0xBB,0xC8,0x00,0x00,}}, {0x8758,2,{0xCE,0x69,0x00,0x00,}}, {0x8759,2,{0xF2,0xF9,0x00,0x00,}}, {0x875A,2,{0xCE,0x6A,0x00,0x00,}}, {0x875B,2,{0xCE,0x6B,0x00,0x00,}}, {0x875C,2,{0xCE,0x6C,0x00,0x00,}}, {0x875D,2,{0xCE,0x6D,0x00,0x00,}}, {0x875E,2,{0xCE,0x6E,0x00,0x00,}}, {0x875F,2,{0xCE,0x6F,0x00,0x00,}}, {0x8760,2,{0xF2,0xF0,0x00,0x00,}}, {0x8761,2,{0xCE,0x70,0x00,0x00,}}, {0x8762,2,{0xCE,0x71,0x00,0x00,}}, {0x8763,2,{0xF2,0xF6,0x00,0x00,}}, {0x8764,2,{0xF2,0xF8,0x00,0x00,}}, {0x8765,2,{0xF2,0xFA,0x00,0x00,}}, {0x8766,2,{0xCE,0x72,0x00,0x00,}}, {0x8767,2,{0xCE,0x73,0x00,0x00,}}, {0x8768,2,{0xCE,0x74,0x00,0x00,}}, {0x8769,2,{0xCE,0x75,0x00,0x00,}}, {0x876A,2,{0xCE,0x76,0x00,0x00,}}, {0x876B,2,{0xCE,0x77,0x00,0x00,}}, {0x876C,2,{0xCE,0x78,0x00,0x00,}}, {0x876D,2,{0xCE,0x79,0x00,0x00,}}, {0x876E,2,{0xF2,0xF3,0x00,0x00,}}, {0x876F,2,{0xCE,0x7A,0x00,0x00,}}, {0x8770,2,{0xF2,0xF1,0x00,0x00,}}, {0x8771,2,{0xCE,0x7B,0x00,0x00,}}, {0x8772,2,{0xCE,0x7C,0x00,0x00,}}, {0x8773,2,{0xCE,0x7D,0x00,0x00,}}, {0x8774,2,{0xBA,0xFB,0x00,0x00,}}, {0x8775,2,{0xCE,0x7E,0x00,0x00,}}, {0x8776,2,{0xB5,0xFB,0x00,0x00,}}, {0x8777,2,{0xCE,0x80,0x00,0x00,}}, {0x8778,2,{0xCE,0x81,0x00,0x00,}}, {0x8779,2,{0xCE,0x82,0x00,0x00,}}, {0x877A,2,{0xCE,0x83,0x00,0x00,}}, {0x877B,2,{0xF2,0xEF,0x00,0x00,}}, {0x877C,2,{0xF2,0xF7,0x00,0x00,}}, {0x877D,2,{0xF2,0xED,0x00,0x00,}}, {0x877E,2,{0xF2,0xEE,0x00,0x00,}}, {0x877F,2,{0xCE,0x84,0x00,0x00,}}, {0x8780,2,{0xCE,0x85,0x00,0x00,}}, {0x8781,2,{0xCE,0x86,0x00,0x00,}}, {0x8782,2,{0xF2,0xEB,0x00,0x00,}}, {0x8783,2,{0xF3,0xA6,0x00,0x00,}}, {0x8784,2,{0xCE,0x87,0x00,0x00,}}, {0x8785,2,{0xF3,0xA3,0x00,0x00,}}, {0x8786,2,{0xCE,0x88,0x00,0x00,}}, {0x8787,2,{0xCE,0x89,0x00,0x00,}}, {0x8788,2,{0xF3,0xA2,0x00,0x00,}}, {0x8789,2,{0xCE,0x8A,0x00,0x00,}}, {0x878A,2,{0xCE,0x8B,0x00,0x00,}}, {0x878B,2,{0xF2,0xF4,0x00,0x00,}}, {0x878C,2,{0xCE,0x8C,0x00,0x00,}}, {0x878D,2,{0xC8,0xDA,0x00,0x00,}}, {0x878E,2,{0xCE,0x8D,0x00,0x00,}}, {0x878F,2,{0xCE,0x8E,0x00,0x00,}}, {0x8790,2,{0xCE,0x8F,0x00,0x00,}}, {0x8791,2,{0xCE,0x90,0x00,0x00,}}, {0x8792,2,{0xCE,0x91,0x00,0x00,}}, {0x8793,2,{0xF2,0xFB,0x00,0x00,}}, {0x8794,2,{0xCE,0x92,0x00,0x00,}}, {0x8795,2,{0xCE,0x93,0x00,0x00,}}, {0x8796,2,{0xCE,0x94,0x00,0x00,}}, {0x8797,2,{0xF3,0xA5,0x00,0x00,}}, {0x8798,2,{0xCE,0x95,0x00,0x00,}}, {0x8799,2,{0xCE,0x96,0x00,0x00,}}, {0x879A,2,{0xCE,0x97,0x00,0x00,}}, {0x879B,2,{0xCE,0x98,0x00,0x00,}}, {0x879C,2,{0xCE,0x99,0x00,0x00,}}, {0x879D,2,{0xCE,0x9A,0x00,0x00,}}, {0x879E,2,{0xCE,0x9B,0x00,0x00,}}, {0x879F,2,{0xC3,0xF8,0x00,0x00,}}, {0x87A0,2,{0xCE,0x9C,0x00,0x00,}}, {0x87A1,2,{0xCE,0x9D,0x00,0x00,}}, {0x87A2,2,{0xCE,0x9E,0x00,0x00,}}, {0x87A3,2,{0xCE,0x9F,0x00,0x00,}}, {0x87A4,2,{0xCE,0xA0,0x00,0x00,}}, {0x87A5,2,{0xCF,0x40,0x00,0x00,}}, {0x87A6,2,{0xCF,0x41,0x00,0x00,}}, {0x87A7,2,{0xCF,0x42,0x00,0x00,}}, {0x87A8,2,{0xF2,0xFD,0x00,0x00,}}, {0x87A9,2,{0xCF,0x43,0x00,0x00,}}, {0x87AA,2,{0xCF,0x44,0x00,0x00,}}, {0x87AB,2,{0xF3,0xA7,0x00,0x00,}}, {0x87AC,2,{0xF3,0xA9,0x00,0x00,}}, {0x87AD,2,{0xF3,0xA4,0x00,0x00,}}, {0x87AE,2,{0xCF,0x45,0x00,0x00,}}, {0x87AF,2,{0xF2,0xFC,0x00,0x00,}}, {0x87B0,2,{0xCF,0x46,0x00,0x00,}}, {0x87B1,2,{0xCF,0x47,0x00,0x00,}}, {0x87B2,2,{0xCF,0x48,0x00,0x00,}}, {0x87B3,2,{0xF3,0xAB,0x00,0x00,}}, {0x87B4,2,{0xCF,0x49,0x00,0x00,}}, {0x87B5,2,{0xF3,0xAA,0x00,0x00,}}, {0x87B6,2,{0xCF,0x4A,0x00,0x00,}}, {0x87B7,2,{0xCF,0x4B,0x00,0x00,}}, {0x87B8,2,{0xCF,0x4C,0x00,0x00,}}, {0x87B9,2,{0xCF,0x4D,0x00,0x00,}}, {0x87BA,2,{0xC2,0xDD,0x00,0x00,}}, {0x87BB,2,{0xCF,0x4E,0x00,0x00,}}, {0x87BC,2,{0xCF,0x4F,0x00,0x00,}}, {0x87BD,2,{0xF3,0xAE,0x00,0x00,}}, {0x87BE,2,{0xCF,0x50,0x00,0x00,}}, {0x87BF,2,{0xCF,0x51,0x00,0x00,}}, {0x87C0,2,{0xF3,0xB0,0x00,0x00,}}, {0x87C1,2,{0xCF,0x52,0x00,0x00,}}, {0x87C2,2,{0xCF,0x53,0x00,0x00,}}, {0x87C3,2,{0xCF,0x54,0x00,0x00,}}, {0x87C4,2,{0xCF,0x55,0x00,0x00,}}, {0x87C5,2,{0xCF,0x56,0x00,0x00,}}, {0x87C6,2,{0xF3,0xA1,0x00,0x00,}}, {0x87C7,2,{0xCF,0x57,0x00,0x00,}}, {0x87C8,2,{0xCF,0x58,0x00,0x00,}}, {0x87C9,2,{0xCF,0x59,0x00,0x00,}}, {0x87CA,2,{0xF3,0xB1,0x00,0x00,}}, {0x87CB,2,{0xF3,0xAC,0x00,0x00,}}, {0x87CC,2,{0xCF,0x5A,0x00,0x00,}}, {0x87CD,2,{0xCF,0x5B,0x00,0x00,}}, {0x87CE,2,{0xCF,0x5C,0x00,0x00,}}, {0x87CF,2,{0xCF,0x5D,0x00,0x00,}}, {0x87D0,2,{0xCF,0x5E,0x00,0x00,}}, {0x87D1,2,{0xF3,0xAF,0x00,0x00,}}, {0x87D2,2,{0xF2,0xFE,0x00,0x00,}}, {0x87D3,2,{0xF3,0xAD,0x00,0x00,}}, {0x87D4,2,{0xCF,0x5F,0x00,0x00,}}, {0x87D5,2,{0xCF,0x60,0x00,0x00,}}, {0x87D6,2,{0xCF,0x61,0x00,0x00,}}, {0x87D7,2,{0xCF,0x62,0x00,0x00,}}, {0x87D8,2,{0xCF,0x63,0x00,0x00,}}, {0x87D9,2,{0xCF,0x64,0x00,0x00,}}, {0x87DA,2,{0xCF,0x65,0x00,0x00,}}, {0x87DB,2,{0xF3,0xB2,0x00,0x00,}}, {0x87DC,2,{0xCF,0x66,0x00,0x00,}}, {0x87DD,2,{0xCF,0x67,0x00,0x00,}}, {0x87DE,2,{0xCF,0x68,0x00,0x00,}}, {0x87DF,2,{0xCF,0x69,0x00,0x00,}}, {0x87E0,2,{0xF3,0xB4,0x00,0x00,}}, {0x87E1,2,{0xCF,0x6A,0x00,0x00,}}, {0x87E2,2,{0xCF,0x6B,0x00,0x00,}}, {0x87E3,2,{0xCF,0x6C,0x00,0x00,}}, {0x87E4,2,{0xCF,0x6D,0x00,0x00,}}, {0x87E5,2,{0xF3,0xA8,0x00,0x00,}}, {0x87E6,2,{0xCF,0x6E,0x00,0x00,}}, {0x87E7,2,{0xCF,0x6F,0x00,0x00,}}, {0x87E8,2,{0xCF,0x70,0x00,0x00,}}, {0x87E9,2,{0xCF,0x71,0x00,0x00,}}, {0x87EA,2,{0xF3,0xB3,0x00,0x00,}}, {0x87EB,2,{0xCF,0x72,0x00,0x00,}}, {0x87EC,2,{0xCF,0x73,0x00,0x00,}}, {0x87ED,2,{0xCF,0x74,0x00,0x00,}}, {0x87EE,2,{0xF3,0xB5,0x00,0x00,}}, {0x87EF,2,{0xCF,0x75,0x00,0x00,}}, {0x87F0,2,{0xCF,0x76,0x00,0x00,}}, {0x87F1,2,{0xCF,0x77,0x00,0x00,}}, {0x87F2,2,{0xCF,0x78,0x00,0x00,}}, {0x87F3,2,{0xCF,0x79,0x00,0x00,}}, {0x87F4,2,{0xCF,0x7A,0x00,0x00,}}, {0x87F5,2,{0xCF,0x7B,0x00,0x00,}}, {0x87F6,2,{0xCF,0x7C,0x00,0x00,}}, {0x87F7,2,{0xCF,0x7D,0x00,0x00,}}, {0x87F8,2,{0xCF,0x7E,0x00,0x00,}}, {0x87F9,2,{0xD0,0xB7,0x00,0x00,}}, {0x87FA,2,{0xCF,0x80,0x00,0x00,}}, {0x87FB,2,{0xCF,0x81,0x00,0x00,}}, {0x87FC,2,{0xCF,0x82,0x00,0x00,}}, {0x87FD,2,{0xCF,0x83,0x00,0x00,}}, {0x87FE,2,{0xF3,0xB8,0x00,0x00,}}, {0x87FF,2,{0xCF,0x84,0x00,0x00,}}, {0x8800,2,{0xCF,0x85,0x00,0x00,}}, {0x8801,2,{0xCF,0x86,0x00,0x00,}}, {0x8802,2,{0xCF,0x87,0x00,0x00,}}, {0x8803,2,{0xD9,0xF9,0x00,0x00,}}, {0x8804,2,{0xCF,0x88,0x00,0x00,}}, {0x8805,2,{0xCF,0x89,0x00,0x00,}}, {0x8806,2,{0xCF,0x8A,0x00,0x00,}}, {0x8807,2,{0xCF,0x8B,0x00,0x00,}}, {0x8808,2,{0xCF,0x8C,0x00,0x00,}}, {0x8809,2,{0xCF,0x8D,0x00,0x00,}}, {0x880A,2,{0xF3,0xB9,0x00,0x00,}}, {0x880B,2,{0xCF,0x8E,0x00,0x00,}}, {0x880C,2,{0xCF,0x8F,0x00,0x00,}}, {0x880D,2,{0xCF,0x90,0x00,0x00,}}, {0x880E,2,{0xCF,0x91,0x00,0x00,}}, {0x880F,2,{0xCF,0x92,0x00,0x00,}}, {0x8810,2,{0xCF,0x93,0x00,0x00,}}, {0x8811,2,{0xCF,0x94,0x00,0x00,}}, {0x8812,2,{0xCF,0x95,0x00,0x00,}}, {0x8813,2,{0xF3,0xB7,0x00,0x00,}}, {0x8814,2,{0xCF,0x96,0x00,0x00,}}, {0x8815,2,{0xC8,0xE4,0x00,0x00,}}, {0x8816,2,{0xF3,0xB6,0x00,0x00,}}, {0x8817,2,{0xCF,0x97,0x00,0x00,}}, {0x8818,2,{0xCF,0x98,0x00,0x00,}}, {0x8819,2,{0xCF,0x99,0x00,0x00,}}, {0x881A,2,{0xCF,0x9A,0x00,0x00,}}, {0x881B,2,{0xF3,0xBA,0x00,0x00,}}, {0x881C,2,{0xCF,0x9B,0x00,0x00,}}, {0x881D,2,{0xCF,0x9C,0x00,0x00,}}, {0x881E,2,{0xCF,0x9D,0x00,0x00,}}, {0x881F,2,{0xCF,0x9E,0x00,0x00,}}, {0x8820,2,{0xCF,0x9F,0x00,0x00,}}, {0x8821,2,{0xF3,0xBB,0x00,0x00,}}, {0x8822,2,{0xB4,0xC0,0x00,0x00,}}, {0x8823,2,{0xCF,0xA0,0x00,0x00,}}, {0x8824,2,{0xD0,0x40,0x00,0x00,}}, {0x8825,2,{0xD0,0x41,0x00,0x00,}}, {0x8826,2,{0xD0,0x42,0x00,0x00,}}, {0x8827,2,{0xD0,0x43,0x00,0x00,}}, {0x8828,2,{0xD0,0x44,0x00,0x00,}}, {0x8829,2,{0xD0,0x45,0x00,0x00,}}, {0x882A,2,{0xD0,0x46,0x00,0x00,}}, {0x882B,2,{0xD0,0x47,0x00,0x00,}}, {0x882C,2,{0xD0,0x48,0x00,0x00,}}, {0x882D,2,{0xD0,0x49,0x00,0x00,}}, {0x882E,2,{0xD0,0x4A,0x00,0x00,}}, {0x882F,2,{0xD0,0x4B,0x00,0x00,}}, {0x8830,2,{0xD0,0x4C,0x00,0x00,}}, {0x8831,2,{0xD0,0x4D,0x00,0x00,}}, {0x8832,2,{0xEE,0xC3,0x00,0x00,}}, {0x8833,2,{0xD0,0x4E,0x00,0x00,}}, {0x8834,2,{0xD0,0x4F,0x00,0x00,}}, {0x8835,2,{0xD0,0x50,0x00,0x00,}}, {0x8836,2,{0xD0,0x51,0x00,0x00,}}, {0x8837,2,{0xD0,0x52,0x00,0x00,}}, {0x8838,2,{0xD0,0x53,0x00,0x00,}}, {0x8839,2,{0xF3,0xBC,0x00,0x00,}}, {0x883A,2,{0xD0,0x54,0x00,0x00,}}, {0x883B,2,{0xD0,0x55,0x00,0x00,}}, {0x883C,2,{0xF3,0xBD,0x00,0x00,}}, {0x883D,2,{0xD0,0x56,0x00,0x00,}}, {0x883E,2,{0xD0,0x57,0x00,0x00,}}, {0x883F,2,{0xD0,0x58,0x00,0x00,}}, {0x8840,2,{0xD1,0xAA,0x00,0x00,}}, {0x8841,2,{0xD0,0x59,0x00,0x00,}}, {0x8842,2,{0xD0,0x5A,0x00,0x00,}}, {0x8843,2,{0xD0,0x5B,0x00,0x00,}}, {0x8844,2,{0xF4,0xAC,0x00,0x00,}}, {0x8845,2,{0xD0,0xC6,0x00,0x00,}}, {0x8846,2,{0xD0,0x5C,0x00,0x00,}}, {0x8847,2,{0xD0,0x5D,0x00,0x00,}}, {0x8848,2,{0xD0,0x5E,0x00,0x00,}}, {0x8849,2,{0xD0,0x5F,0x00,0x00,}}, {0x884A,2,{0xD0,0x60,0x00,0x00,}}, {0x884B,2,{0xD0,0x61,0x00,0x00,}}, {0x884C,2,{0xD0,0xD0,0x00,0x00,}}, {0x884D,2,{0xD1,0xDC,0x00,0x00,}}, {0x884E,2,{0xD0,0x62,0x00,0x00,}}, {0x884F,2,{0xD0,0x63,0x00,0x00,}}, {0x8850,2,{0xD0,0x64,0x00,0x00,}}, {0x8851,2,{0xD0,0x65,0x00,0x00,}}, {0x8852,2,{0xD0,0x66,0x00,0x00,}}, {0x8853,2,{0xD0,0x67,0x00,0x00,}}, {0x8854,2,{0xCF,0xCE,0x00,0x00,}}, {0x8855,2,{0xD0,0x68,0x00,0x00,}}, {0x8856,2,{0xD0,0x69,0x00,0x00,}}, {0x8857,2,{0xBD,0xD6,0x00,0x00,}}, {0x8858,2,{0xD0,0x6A,0x00,0x00,}}, {0x8859,2,{0xD1,0xC3,0x00,0x00,}}, {0x885A,2,{0xD0,0x6B,0x00,0x00,}}, {0x885B,2,{0xD0,0x6C,0x00,0x00,}}, {0x885C,2,{0xD0,0x6D,0x00,0x00,}}, {0x885D,2,{0xD0,0x6E,0x00,0x00,}}, {0x885E,2,{0xD0,0x6F,0x00,0x00,}}, {0x885F,2,{0xD0,0x70,0x00,0x00,}}, {0x8860,2,{0xD0,0x71,0x00,0x00,}}, {0x8861,2,{0xBA,0xE2,0x00,0x00,}}, {0x8862,2,{0xE1,0xE9,0x00,0x00,}}, {0x8863,2,{0xD2,0xC2,0x00,0x00,}}, {0x8864,2,{0xF1,0xC2,0x00,0x00,}}, {0x8865,2,{0xB2,0xB9,0x00,0x00,}}, {0x8866,2,{0xD0,0x72,0x00,0x00,}}, {0x8867,2,{0xD0,0x73,0x00,0x00,}}, {0x8868,2,{0xB1,0xED,0x00,0x00,}}, {0x8869,2,{0xF1,0xC3,0x00,0x00,}}, {0x886A,2,{0xD0,0x74,0x00,0x00,}}, {0x886B,2,{0xC9,0xC0,0x00,0x00,}}, {0x886C,2,{0xB3,0xC4,0x00,0x00,}}, {0x886D,2,{0xD0,0x75,0x00,0x00,}}, {0x886E,2,{0xD9,0xF2,0x00,0x00,}}, {0x886F,2,{0xD0,0x76,0x00,0x00,}}, {0x8870,2,{0xCB,0xA5,0x00,0x00,}}, {0x8871,2,{0xD0,0x77,0x00,0x00,}}, {0x8872,2,{0xF1,0xC4,0x00,0x00,}}, {0x8873,2,{0xD0,0x78,0x00,0x00,}}, {0x8874,2,{0xD0,0x79,0x00,0x00,}}, {0x8875,2,{0xD0,0x7A,0x00,0x00,}}, {0x8876,2,{0xD0,0x7B,0x00,0x00,}}, {0x8877,2,{0xD6,0xD4,0x00,0x00,}}, {0x8878,2,{0xD0,0x7C,0x00,0x00,}}, {0x8879,2,{0xD0,0x7D,0x00,0x00,}}, {0x887A,2,{0xD0,0x7E,0x00,0x00,}}, {0x887B,2,{0xD0,0x80,0x00,0x00,}}, {0x887C,2,{0xD0,0x81,0x00,0x00,}}, {0x887D,2,{0xF1,0xC5,0x00,0x00,}}, {0x887E,2,{0xF4,0xC0,0x00,0x00,}}, {0x887F,2,{0xF1,0xC6,0x00,0x00,}}, {0x8880,2,{0xD0,0x82,0x00,0x00,}}, {0x8881,2,{0xD4,0xAC,0x00,0x00,}}, {0x8882,2,{0xF1,0xC7,0x00,0x00,}}, {0x8883,2,{0xD0,0x83,0x00,0x00,}}, {0x8884,2,{0xB0,0xC0,0x00,0x00,}}, {0x8885,2,{0xF4,0xC1,0x00,0x00,}}, {0x8886,2,{0xD0,0x84,0x00,0x00,}}, {0x8887,2,{0xD0,0x85,0x00,0x00,}}, {0x8888,2,{0xF4,0xC2,0x00,0x00,}}, {0x8889,2,{0xD0,0x86,0x00,0x00,}}, {0x888A,2,{0xD0,0x87,0x00,0x00,}}, {0x888B,2,{0xB4,0xFC,0x00,0x00,}}, {0x888C,2,{0xD0,0x88,0x00,0x00,}}, {0x888D,2,{0xC5,0xDB,0x00,0x00,}}, {0x888E,2,{0xD0,0x89,0x00,0x00,}}, {0x888F,2,{0xD0,0x8A,0x00,0x00,}}, {0x8890,2,{0xD0,0x8B,0x00,0x00,}}, {0x8891,2,{0xD0,0x8C,0x00,0x00,}}, {0x8892,2,{0xCC,0xBB,0x00,0x00,}}, {0x8893,2,{0xD0,0x8D,0x00,0x00,}}, {0x8894,2,{0xD0,0x8E,0x00,0x00,}}, {0x8895,2,{0xD0,0x8F,0x00,0x00,}}, {0x8896,2,{0xD0,0xE4,0x00,0x00,}}, {0x8897,2,{0xD0,0x90,0x00,0x00,}}, {0x8898,2,{0xD0,0x91,0x00,0x00,}}, {0x8899,2,{0xD0,0x92,0x00,0x00,}}, {0x889A,2,{0xD0,0x93,0x00,0x00,}}, {0x889B,2,{0xD0,0x94,0x00,0x00,}}, {0x889C,2,{0xCD,0xE0,0x00,0x00,}}, {0x889D,2,{0xD0,0x95,0x00,0x00,}}, {0x889E,2,{0xD0,0x96,0x00,0x00,}}, {0x889F,2,{0xD0,0x97,0x00,0x00,}}, {0x88A0,2,{0xD0,0x98,0x00,0x00,}}, {0x88A1,2,{0xD0,0x99,0x00,0x00,}}, {0x88A2,2,{0xF1,0xC8,0x00,0x00,}}, {0x88A3,2,{0xD0,0x9A,0x00,0x00,}}, {0x88A4,2,{0xD9,0xF3,0x00,0x00,}}, {0x88A5,2,{0xD0,0x9B,0x00,0x00,}}, {0x88A6,2,{0xD0,0x9C,0x00,0x00,}}, {0x88A7,2,{0xD0,0x9D,0x00,0x00,}}, {0x88A8,2,{0xD0,0x9E,0x00,0x00,}}, {0x88A9,2,{0xD0,0x9F,0x00,0x00,}}, {0x88AA,2,{0xD0,0xA0,0x00,0x00,}}, {0x88AB,2,{0xB1,0xBB,0x00,0x00,}}, {0x88AC,2,{0xD1,0x40,0x00,0x00,}}, {0x88AD,2,{0xCF,0xAE,0x00,0x00,}}, {0x88AE,2,{0xD1,0x41,0x00,0x00,}}, {0x88AF,2,{0xD1,0x42,0x00,0x00,}}, {0x88B0,2,{0xD1,0x43,0x00,0x00,}}, {0x88B1,2,{0xB8,0xA4,0x00,0x00,}}, {0x88B2,2,{0xD1,0x44,0x00,0x00,}}, {0x88B3,2,{0xD1,0x45,0x00,0x00,}}, {0x88B4,2,{0xD1,0x46,0x00,0x00,}}, {0x88B5,2,{0xD1,0x47,0x00,0x00,}}, {0x88B6,2,{0xD1,0x48,0x00,0x00,}}, {0x88B7,2,{0xF1,0xCA,0x00,0x00,}}, {0x88B8,2,{0xD1,0x49,0x00,0x00,}}, {0x88B9,2,{0xD1,0x4A,0x00,0x00,}}, {0x88BA,2,{0xD1,0x4B,0x00,0x00,}}, {0x88BB,2,{0xD1,0x4C,0x00,0x00,}}, {0x88BC,2,{0xF1,0xCB,0x00,0x00,}}, {0x88BD,2,{0xD1,0x4D,0x00,0x00,}}, {0x88BE,2,{0xD1,0x4E,0x00,0x00,}}, {0x88BF,2,{0xD1,0x4F,0x00,0x00,}}, {0x88C0,2,{0xD1,0x50,0x00,0x00,}}, {0x88C1,2,{0xB2,0xC3,0x00,0x00,}}, {0x88C2,2,{0xC1,0xD1,0x00,0x00,}}, {0x88C3,2,{0xD1,0x51,0x00,0x00,}}, {0x88C4,2,{0xD1,0x52,0x00,0x00,}}, {0x88C5,2,{0xD7,0xB0,0x00,0x00,}}, {0x88C6,2,{0xF1,0xC9,0x00,0x00,}}, {0x88C7,2,{0xD1,0x53,0x00,0x00,}}, {0x88C8,2,{0xD1,0x54,0x00,0x00,}}, {0x88C9,2,{0xF1,0xCC,0x00,0x00,}}, {0x88CA,2,{0xD1,0x55,0x00,0x00,}}, {0x88CB,2,{0xD1,0x56,0x00,0x00,}}, {0x88CC,2,{0xD1,0x57,0x00,0x00,}}, {0x88CD,2,{0xD1,0x58,0x00,0x00,}}, {0x88CE,2,{0xF1,0xCE,0x00,0x00,}}, {0x88CF,2,{0xD1,0x59,0x00,0x00,}}, {0x88D0,2,{0xD1,0x5A,0x00,0x00,}}, {0x88D1,2,{0xD1,0x5B,0x00,0x00,}}, {0x88D2,2,{0xD9,0xF6,0x00,0x00,}}, {0x88D3,2,{0xD1,0x5C,0x00,0x00,}}, {0x88D4,2,{0xD2,0xE1,0x00,0x00,}}, {0x88D5,2,{0xD4,0xA3,0x00,0x00,}}, {0x88D6,2,{0xD1,0x5D,0x00,0x00,}}, {0x88D7,2,{0xD1,0x5E,0x00,0x00,}}, {0x88D8,2,{0xF4,0xC3,0x00,0x00,}}, {0x88D9,2,{0xC8,0xB9,0x00,0x00,}}, {0x88DA,2,{0xD1,0x5F,0x00,0x00,}}, {0x88DB,2,{0xD1,0x60,0x00,0x00,}}, {0x88DC,2,{0xD1,0x61,0x00,0x00,}}, {0x88DD,2,{0xD1,0x62,0x00,0x00,}}, {0x88DE,2,{0xD1,0x63,0x00,0x00,}}, {0x88DF,2,{0xF4,0xC4,0x00,0x00,}}, {0x88E0,2,{0xD1,0x64,0x00,0x00,}}, {0x88E1,2,{0xD1,0x65,0x00,0x00,}}, {0x88E2,2,{0xF1,0xCD,0x00,0x00,}}, {0x88E3,2,{0xF1,0xCF,0x00,0x00,}}, {0x88E4,2,{0xBF,0xE3,0x00,0x00,}}, {0x88E5,2,{0xF1,0xD0,0x00,0x00,}}, {0x88E6,2,{0xD1,0x66,0x00,0x00,}}, {0x88E7,2,{0xD1,0x67,0x00,0x00,}}, {0x88E8,2,{0xF1,0xD4,0x00,0x00,}}, {0x88E9,2,{0xD1,0x68,0x00,0x00,}}, {0x88EA,2,{0xD1,0x69,0x00,0x00,}}, {0x88EB,2,{0xD1,0x6A,0x00,0x00,}}, {0x88EC,2,{0xD1,0x6B,0x00,0x00,}}, {0x88ED,2,{0xD1,0x6C,0x00,0x00,}}, {0x88EE,2,{0xD1,0x6D,0x00,0x00,}}, {0x88EF,2,{0xD1,0x6E,0x00,0x00,}}, {0x88F0,2,{0xF1,0xD6,0x00,0x00,}}, {0x88F1,2,{0xF1,0xD1,0x00,0x00,}}, {0x88F2,2,{0xD1,0x6F,0x00,0x00,}}, {0x88F3,2,{0xC9,0xD1,0x00,0x00,}}, {0x88F4,2,{0xC5,0xE1,0x00,0x00,}}, {0x88F5,2,{0xD1,0x70,0x00,0x00,}}, {0x88F6,2,{0xD1,0x71,0x00,0x00,}}, {0x88F7,2,{0xD1,0x72,0x00,0x00,}}, {0x88F8,2,{0xC2,0xE3,0x00,0x00,}}, {0x88F9,2,{0xB9,0xFC,0x00,0x00,}}, {0x88FA,2,{0xD1,0x73,0x00,0x00,}}, {0x88FB,2,{0xD1,0x74,0x00,0x00,}}, {0x88FC,2,{0xF1,0xD3,0x00,0x00,}}, {0x88FD,2,{0xD1,0x75,0x00,0x00,}}, {0x88FE,2,{0xF1,0xD5,0x00,0x00,}}, {0x88FF,2,{0xD1,0x76,0x00,0x00,}}, {0x8900,2,{0xD1,0x77,0x00,0x00,}}, {0x8901,2,{0xD1,0x78,0x00,0x00,}}, {0x8902,2,{0xB9,0xD3,0x00,0x00,}}, {0x8903,2,{0xD1,0x79,0x00,0x00,}}, {0x8904,2,{0xD1,0x7A,0x00,0x00,}}, {0x8905,2,{0xD1,0x7B,0x00,0x00,}}, {0x8906,2,{0xD1,0x7C,0x00,0x00,}}, {0x8907,2,{0xD1,0x7D,0x00,0x00,}}, {0x8908,2,{0xD1,0x7E,0x00,0x00,}}, {0x8909,2,{0xD1,0x80,0x00,0x00,}}, {0x890A,2,{0xF1,0xDB,0x00,0x00,}}, {0x890B,2,{0xD1,0x81,0x00,0x00,}}, {0x890C,2,{0xD1,0x82,0x00,0x00,}}, {0x890D,2,{0xD1,0x83,0x00,0x00,}}, {0x890E,2,{0xD1,0x84,0x00,0x00,}}, {0x890F,2,{0xD1,0x85,0x00,0x00,}}, {0x8910,2,{0xBA,0xD6,0x00,0x00,}}, {0x8911,2,{0xD1,0x86,0x00,0x00,}}, {0x8912,2,{0xB0,0xFD,0x00,0x00,}}, {0x8913,2,{0xF1,0xD9,0x00,0x00,}}, {0x8914,2,{0xD1,0x87,0x00,0x00,}}, {0x8915,2,{0xD1,0x88,0x00,0x00,}}, {0x8916,2,{0xD1,0x89,0x00,0x00,}}, {0x8917,2,{0xD1,0x8A,0x00,0x00,}}, {0x8918,2,{0xD1,0x8B,0x00,0x00,}}, {0x8919,2,{0xF1,0xD8,0x00,0x00,}}, {0x891A,2,{0xF1,0xD2,0x00,0x00,}}, {0x891B,2,{0xF1,0xDA,0x00,0x00,}}, {0x891C,2,{0xD1,0x8C,0x00,0x00,}}, {0x891D,2,{0xD1,0x8D,0x00,0x00,}}, {0x891E,2,{0xD1,0x8E,0x00,0x00,}}, {0x891F,2,{0xD1,0x8F,0x00,0x00,}}, {0x8920,2,{0xD1,0x90,0x00,0x00,}}, {0x8921,2,{0xF1,0xD7,0x00,0x00,}}, {0x8922,2,{0xD1,0x91,0x00,0x00,}}, {0x8923,2,{0xD1,0x92,0x00,0x00,}}, {0x8924,2,{0xD1,0x93,0x00,0x00,}}, {0x8925,2,{0xC8,0xEC,0x00,0x00,}}, {0x8926,2,{0xD1,0x94,0x00,0x00,}}, {0x8927,2,{0xD1,0x95,0x00,0x00,}}, {0x8928,2,{0xD1,0x96,0x00,0x00,}}, {0x8929,2,{0xD1,0x97,0x00,0x00,}}, {0x892A,2,{0xCD,0xCA,0x00,0x00,}}, {0x892B,2,{0xF1,0xDD,0x00,0x00,}}, {0x892C,2,{0xD1,0x98,0x00,0x00,}}, {0x892D,2,{0xD1,0x99,0x00,0x00,}}, {0x892E,2,{0xD1,0x9A,0x00,0x00,}}, {0x892F,2,{0xD1,0x9B,0x00,0x00,}}, {0x8930,2,{0xE5,0xBD,0x00,0x00,}}, {0x8931,2,{0xD1,0x9C,0x00,0x00,}}, {0x8932,2,{0xD1,0x9D,0x00,0x00,}}, {0x8933,2,{0xD1,0x9E,0x00,0x00,}}, {0x8934,2,{0xF1,0xDC,0x00,0x00,}}, {0x8935,2,{0xD1,0x9F,0x00,0x00,}}, {0x8936,2,{0xF1,0xDE,0x00,0x00,}}, {0x8937,2,{0xD1,0xA0,0x00,0x00,}}, {0x8938,2,{0xD2,0x40,0x00,0x00,}}, {0x8939,2,{0xD2,0x41,0x00,0x00,}}, {0x893A,2,{0xD2,0x42,0x00,0x00,}}, {0x893B,2,{0xD2,0x43,0x00,0x00,}}, {0x893C,2,{0xD2,0x44,0x00,0x00,}}, {0x893D,2,{0xD2,0x45,0x00,0x00,}}, {0x893E,2,{0xD2,0x46,0x00,0x00,}}, {0x893F,2,{0xD2,0x47,0x00,0x00,}}, {0x8940,2,{0xD2,0x48,0x00,0x00,}}, {0x8941,2,{0xF1,0xDF,0x00,0x00,}}, {0x8942,2,{0xD2,0x49,0x00,0x00,}}, {0x8943,2,{0xD2,0x4A,0x00,0x00,}}, {0x8944,2,{0xCF,0xE5,0x00,0x00,}}, {0x8945,2,{0xD2,0x4B,0x00,0x00,}}, {0x8946,2,{0xD2,0x4C,0x00,0x00,}}, {0x8947,2,{0xD2,0x4D,0x00,0x00,}}, {0x8948,2,{0xD2,0x4E,0x00,0x00,}}, {0x8949,2,{0xD2,0x4F,0x00,0x00,}}, {0x894A,2,{0xD2,0x50,0x00,0x00,}}, {0x894B,2,{0xD2,0x51,0x00,0x00,}}, {0x894C,2,{0xD2,0x52,0x00,0x00,}}, {0x894D,2,{0xD2,0x53,0x00,0x00,}}, {0x894E,2,{0xD2,0x54,0x00,0x00,}}, {0x894F,2,{0xD2,0x55,0x00,0x00,}}, {0x8950,2,{0xD2,0x56,0x00,0x00,}}, {0x8951,2,{0xD2,0x57,0x00,0x00,}}, {0x8952,2,{0xD2,0x58,0x00,0x00,}}, {0x8953,2,{0xD2,0x59,0x00,0x00,}}, {0x8954,2,{0xD2,0x5A,0x00,0x00,}}, {0x8955,2,{0xD2,0x5B,0x00,0x00,}}, {0x8956,2,{0xD2,0x5C,0x00,0x00,}}, {0x8957,2,{0xD2,0x5D,0x00,0x00,}}, {0x8958,2,{0xD2,0x5E,0x00,0x00,}}, {0x8959,2,{0xD2,0x5F,0x00,0x00,}}, {0x895A,2,{0xD2,0x60,0x00,0x00,}}, {0x895B,2,{0xD2,0x61,0x00,0x00,}}, {0x895C,2,{0xD2,0x62,0x00,0x00,}}, {0x895D,2,{0xD2,0x63,0x00,0x00,}}, {0x895E,2,{0xF4,0xC5,0x00,0x00,}}, {0x895F,2,{0xBD,0xF3,0x00,0x00,}}, {0x8960,2,{0xD2,0x64,0x00,0x00,}}, {0x8961,2,{0xD2,0x65,0x00,0x00,}}, {0x8962,2,{0xD2,0x66,0x00,0x00,}}, {0x8963,2,{0xD2,0x67,0x00,0x00,}}, {0x8964,2,{0xD2,0x68,0x00,0x00,}}, {0x8965,2,{0xD2,0x69,0x00,0x00,}}, {0x8966,2,{0xF1,0xE0,0x00,0x00,}}, {0x8967,2,{0xD2,0x6A,0x00,0x00,}}, {0x8968,2,{0xD2,0x6B,0x00,0x00,}}, {0x8969,2,{0xD2,0x6C,0x00,0x00,}}, {0x896A,2,{0xD2,0x6D,0x00,0x00,}}, {0x896B,2,{0xD2,0x6E,0x00,0x00,}}, {0x896C,2,{0xD2,0x6F,0x00,0x00,}}, {0x896D,2,{0xD2,0x70,0x00,0x00,}}, {0x896E,2,{0xD2,0x71,0x00,0x00,}}, {0x896F,2,{0xD2,0x72,0x00,0x00,}}, {0x8970,2,{0xD2,0x73,0x00,0x00,}}, {0x8971,2,{0xD2,0x74,0x00,0x00,}}, {0x8972,2,{0xD2,0x75,0x00,0x00,}}, {0x8973,2,{0xD2,0x76,0x00,0x00,}}, {0x8974,2,{0xD2,0x77,0x00,0x00,}}, {0x8975,2,{0xD2,0x78,0x00,0x00,}}, {0x8976,2,{0xD2,0x79,0x00,0x00,}}, {0x8977,2,{0xD2,0x7A,0x00,0x00,}}, {0x8978,2,{0xD2,0x7B,0x00,0x00,}}, {0x8979,2,{0xD2,0x7C,0x00,0x00,}}, {0x897A,2,{0xD2,0x7D,0x00,0x00,}}, {0x897B,2,{0xF1,0xE1,0x00,0x00,}}, {0x897C,2,{0xD2,0x7E,0x00,0x00,}}, {0x897D,2,{0xD2,0x80,0x00,0x00,}}, {0x897E,2,{0xD2,0x81,0x00,0x00,}}, {0x897F,2,{0xCE,0xF7,0x00,0x00,}}, {0x8980,2,{0xD2,0x82,0x00,0x00,}}, {0x8981,2,{0xD2,0xAA,0x00,0x00,}}, {0x8982,2,{0xD2,0x83,0x00,0x00,}}, {0x8983,2,{0xF1,0xFB,0x00,0x00,}}, {0x8984,2,{0xD2,0x84,0x00,0x00,}}, {0x8985,2,{0xD2,0x85,0x00,0x00,}}, {0x8986,2,{0xB8,0xB2,0x00,0x00,}}, {0x8987,2,{0xD2,0x86,0x00,0x00,}}, {0x8988,2,{0xD2,0x87,0x00,0x00,}}, {0x8989,2,{0xD2,0x88,0x00,0x00,}}, {0x898A,2,{0xD2,0x89,0x00,0x00,}}, {0x898B,2,{0xD2,0x8A,0x00,0x00,}}, {0x898C,2,{0xD2,0x8B,0x00,0x00,}}, {0x898D,2,{0xD2,0x8C,0x00,0x00,}}, {0x898E,2,{0xD2,0x8D,0x00,0x00,}}, {0x898F,2,{0xD2,0x8E,0x00,0x00,}}, {0x8990,2,{0xD2,0x8F,0x00,0x00,}}, {0x8991,2,{0xD2,0x90,0x00,0x00,}}, {0x8992,2,{0xD2,0x91,0x00,0x00,}}, {0x8993,2,{0xD2,0x92,0x00,0x00,}}, {0x8994,2,{0xD2,0x93,0x00,0x00,}}, {0x8995,2,{0xD2,0x94,0x00,0x00,}}, {0x8996,2,{0xD2,0x95,0x00,0x00,}}, {0x8997,2,{0xD2,0x96,0x00,0x00,}}, {0x8998,2,{0xD2,0x97,0x00,0x00,}}, {0x8999,2,{0xD2,0x98,0x00,0x00,}}, {0x899A,2,{0xD2,0x99,0x00,0x00,}}, {0x899B,2,{0xD2,0x9A,0x00,0x00,}}, {0x899C,2,{0xD2,0x9B,0x00,0x00,}}, {0x899D,2,{0xD2,0x9C,0x00,0x00,}}, {0x899E,2,{0xD2,0x9D,0x00,0x00,}}, {0x899F,2,{0xD2,0x9E,0x00,0x00,}}, {0x89A0,2,{0xD2,0x9F,0x00,0x00,}}, {0x89A1,2,{0xD2,0xA0,0x00,0x00,}}, {0x89A2,2,{0xD3,0x40,0x00,0x00,}}, {0x89A3,2,{0xD3,0x41,0x00,0x00,}}, {0x89A4,2,{0xD3,0x42,0x00,0x00,}}, {0x89A5,2,{0xD3,0x43,0x00,0x00,}}, {0x89A6,2,{0xD3,0x44,0x00,0x00,}}, {0x89A7,2,{0xD3,0x45,0x00,0x00,}}, {0x89A8,2,{0xD3,0x46,0x00,0x00,}}, {0x89A9,2,{0xD3,0x47,0x00,0x00,}}, {0x89AA,2,{0xD3,0x48,0x00,0x00,}}, {0x89AB,2,{0xD3,0x49,0x00,0x00,}}, {0x89AC,2,{0xD3,0x4A,0x00,0x00,}}, {0x89AD,2,{0xD3,0x4B,0x00,0x00,}}, {0x89AE,2,{0xD3,0x4C,0x00,0x00,}}, {0x89AF,2,{0xD3,0x4D,0x00,0x00,}}, {0x89B0,2,{0xD3,0x4E,0x00,0x00,}}, {0x89B1,2,{0xD3,0x4F,0x00,0x00,}}, {0x89B2,2,{0xD3,0x50,0x00,0x00,}}, {0x89B3,2,{0xD3,0x51,0x00,0x00,}}, {0x89B4,2,{0xD3,0x52,0x00,0x00,}}, {0x89B5,2,{0xD3,0x53,0x00,0x00,}}, {0x89B6,2,{0xD3,0x54,0x00,0x00,}}, {0x89B7,2,{0xD3,0x55,0x00,0x00,}}, {0x89B8,2,{0xD3,0x56,0x00,0x00,}}, {0x89B9,2,{0xD3,0x57,0x00,0x00,}}, {0x89BA,2,{0xD3,0x58,0x00,0x00,}}, {0x89BB,2,{0xD3,0x59,0x00,0x00,}}, {0x89BC,2,{0xD3,0x5A,0x00,0x00,}}, {0x89BD,2,{0xD3,0x5B,0x00,0x00,}}, {0x89BE,2,{0xD3,0x5C,0x00,0x00,}}, {0x89BF,2,{0xD3,0x5D,0x00,0x00,}}, {0x89C0,2,{0xD3,0x5E,0x00,0x00,}}, {0x89C1,2,{0xBC,0xFB,0x00,0x00,}}, {0x89C2,2,{0xB9,0xDB,0x00,0x00,}}, {0x89C3,2,{0xD3,0x5F,0x00,0x00,}}, {0x89C4,2,{0xB9,0xE6,0x00,0x00,}}, {0x89C5,2,{0xC3,0xD9,0x00,0x00,}}, {0x89C6,2,{0xCA,0xD3,0x00,0x00,}}, {0x89C7,2,{0xEA,0xE8,0x00,0x00,}}, {0x89C8,2,{0xC0,0xC0,0x00,0x00,}}, {0x89C9,2,{0xBE,0xF5,0x00,0x00,}}, {0x89CA,2,{0xEA,0xE9,0x00,0x00,}}, {0x89CB,2,{0xEA,0xEA,0x00,0x00,}}, {0x89CC,2,{0xEA,0xEB,0x00,0x00,}}, {0x89CD,2,{0xD3,0x60,0x00,0x00,}}, {0x89CE,2,{0xEA,0xEC,0x00,0x00,}}, {0x89CF,2,{0xEA,0xED,0x00,0x00,}}, {0x89D0,2,{0xEA,0xEE,0x00,0x00,}}, {0x89D1,2,{0xEA,0xEF,0x00,0x00,}}, {0x89D2,2,{0xBD,0xC7,0x00,0x00,}}, {0x89D3,2,{0xD3,0x61,0x00,0x00,}}, {0x89D4,2,{0xD3,0x62,0x00,0x00,}}, {0x89D5,2,{0xD3,0x63,0x00,0x00,}}, {0x89D6,2,{0xF5,0xFB,0x00,0x00,}}, {0x89D7,2,{0xD3,0x64,0x00,0x00,}}, {0x89D8,2,{0xD3,0x65,0x00,0x00,}}, {0x89D9,2,{0xD3,0x66,0x00,0x00,}}, {0x89DA,2,{0xF5,0xFD,0x00,0x00,}}, {0x89DB,2,{0xD3,0x67,0x00,0x00,}}, {0x89DC,2,{0xF5,0xFE,0x00,0x00,}}, {0x89DD,2,{0xD3,0x68,0x00,0x00,}}, {0x89DE,2,{0xF5,0xFC,0x00,0x00,}}, {0x89DF,2,{0xD3,0x69,0x00,0x00,}}, {0x89E0,2,{0xD3,0x6A,0x00,0x00,}}, {0x89E1,2,{0xD3,0x6B,0x00,0x00,}}, {0x89E2,2,{0xD3,0x6C,0x00,0x00,}}, {0x89E3,2,{0xBD,0xE2,0x00,0x00,}}, {0x89E4,2,{0xD3,0x6D,0x00,0x00,}}, {0x89E5,2,{0xF6,0xA1,0x00,0x00,}}, {0x89E6,2,{0xB4,0xA5,0x00,0x00,}}, {0x89E7,2,{0xD3,0x6E,0x00,0x00,}}, {0x89E8,2,{0xD3,0x6F,0x00,0x00,}}, {0x89E9,2,{0xD3,0x70,0x00,0x00,}}, {0x89EA,2,{0xD3,0x71,0x00,0x00,}}, {0x89EB,2,{0xF6,0xA2,0x00,0x00,}}, {0x89EC,2,{0xD3,0x72,0x00,0x00,}}, {0x89ED,2,{0xD3,0x73,0x00,0x00,}}, {0x89EE,2,{0xD3,0x74,0x00,0x00,}}, {0x89EF,2,{0xF6,0xA3,0x00,0x00,}}, {0x89F0,2,{0xD3,0x75,0x00,0x00,}}, {0x89F1,2,{0xD3,0x76,0x00,0x00,}}, {0x89F2,2,{0xD3,0x77,0x00,0x00,}}, {0x89F3,2,{0xEC,0xB2,0x00,0x00,}}, {0x89F4,2,{0xD3,0x78,0x00,0x00,}}, {0x89F5,2,{0xD3,0x79,0x00,0x00,}}, {0x89F6,2,{0xD3,0x7A,0x00,0x00,}}, {0x89F7,2,{0xD3,0x7B,0x00,0x00,}}, {0x89F8,2,{0xD3,0x7C,0x00,0x00,}}, {0x89F9,2,{0xD3,0x7D,0x00,0x00,}}, {0x89FA,2,{0xD3,0x7E,0x00,0x00,}}, {0x89FB,2,{0xD3,0x80,0x00,0x00,}}, {0x89FC,2,{0xD3,0x81,0x00,0x00,}}, {0x89FD,2,{0xD3,0x82,0x00,0x00,}}, {0x89FE,2,{0xD3,0x83,0x00,0x00,}}, {0x89FF,2,{0xD3,0x84,0x00,0x00,}}, {0x8A00,2,{0xD1,0xD4,0x00,0x00,}}, {0x8A01,2,{0xD3,0x85,0x00,0x00,}}, {0x8A02,2,{0xD3,0x86,0x00,0x00,}}, {0x8A03,2,{0xD3,0x87,0x00,0x00,}}, {0x8A04,2,{0xD3,0x88,0x00,0x00,}}, {0x8A05,2,{0xD3,0x89,0x00,0x00,}}, {0x8A06,2,{0xD3,0x8A,0x00,0x00,}}, {0x8A07,2,{0xD9,0xEA,0x00,0x00,}}, {0x8A08,2,{0xD3,0x8B,0x00,0x00,}}, {0x8A09,2,{0xD3,0x8C,0x00,0x00,}}, {0x8A0A,2,{0xD3,0x8D,0x00,0x00,}}, {0x8A0B,2,{0xD3,0x8E,0x00,0x00,}}, {0x8A0C,2,{0xD3,0x8F,0x00,0x00,}}, {0x8A0D,2,{0xD3,0x90,0x00,0x00,}}, {0x8A0E,2,{0xD3,0x91,0x00,0x00,}}, {0x8A0F,2,{0xD3,0x92,0x00,0x00,}}, {0x8A10,2,{0xD3,0x93,0x00,0x00,}}, {0x8A11,2,{0xD3,0x94,0x00,0x00,}}, {0x8A12,2,{0xD3,0x95,0x00,0x00,}}, {0x8A13,2,{0xD3,0x96,0x00,0x00,}}, {0x8A14,2,{0xD3,0x97,0x00,0x00,}}, {0x8A15,2,{0xD3,0x98,0x00,0x00,}}, {0x8A16,2,{0xD3,0x99,0x00,0x00,}}, {0x8A17,2,{0xD3,0x9A,0x00,0x00,}}, {0x8A18,2,{0xD3,0x9B,0x00,0x00,}}, {0x8A19,2,{0xD3,0x9C,0x00,0x00,}}, {0x8A1A,2,{0xD3,0x9D,0x00,0x00,}}, {0x8A1B,2,{0xD3,0x9E,0x00,0x00,}}, {0x8A1C,2,{0xD3,0x9F,0x00,0x00,}}, {0x8A1D,2,{0xD3,0xA0,0x00,0x00,}}, {0x8A1E,2,{0xD4,0x40,0x00,0x00,}}, {0x8A1F,2,{0xD4,0x41,0x00,0x00,}}, {0x8A20,2,{0xD4,0x42,0x00,0x00,}}, {0x8A21,2,{0xD4,0x43,0x00,0x00,}}, {0x8A22,2,{0xD4,0x44,0x00,0x00,}}, {0x8A23,2,{0xD4,0x45,0x00,0x00,}}, {0x8A24,2,{0xD4,0x46,0x00,0x00,}}, {0x8A25,2,{0xD4,0x47,0x00,0x00,}}, {0x8A26,2,{0xD4,0x48,0x00,0x00,}}, {0x8A27,2,{0xD4,0x49,0x00,0x00,}}, {0x8A28,2,{0xD4,0x4A,0x00,0x00,}}, {0x8A29,2,{0xD4,0x4B,0x00,0x00,}}, {0x8A2A,2,{0xD4,0x4C,0x00,0x00,}}, {0x8A2B,2,{0xD4,0x4D,0x00,0x00,}}, {0x8A2C,2,{0xD4,0x4E,0x00,0x00,}}, {0x8A2D,2,{0xD4,0x4F,0x00,0x00,}}, {0x8A2E,2,{0xD4,0x50,0x00,0x00,}}, {0x8A2F,2,{0xD4,0x51,0x00,0x00,}}, {0x8A30,2,{0xD4,0x52,0x00,0x00,}}, {0x8A31,2,{0xD4,0x53,0x00,0x00,}}, {0x8A32,2,{0xD4,0x54,0x00,0x00,}}, {0x8A33,2,{0xD4,0x55,0x00,0x00,}}, {0x8A34,2,{0xD4,0x56,0x00,0x00,}}, {0x8A35,2,{0xD4,0x57,0x00,0x00,}}, {0x8A36,2,{0xD4,0x58,0x00,0x00,}}, {0x8A37,2,{0xD4,0x59,0x00,0x00,}}, {0x8A38,2,{0xD4,0x5A,0x00,0x00,}}, {0x8A39,2,{0xD4,0x5B,0x00,0x00,}}, {0x8A3A,2,{0xD4,0x5C,0x00,0x00,}}, {0x8A3B,2,{0xD4,0x5D,0x00,0x00,}}, {0x8A3C,2,{0xD4,0x5E,0x00,0x00,}}, {0x8A3D,2,{0xD4,0x5F,0x00,0x00,}}, {0x8A3E,2,{0xF6,0xA4,0x00,0x00,}}, {0x8A3F,2,{0xD4,0x60,0x00,0x00,}}, {0x8A40,2,{0xD4,0x61,0x00,0x00,}}, {0x8A41,2,{0xD4,0x62,0x00,0x00,}}, {0x8A42,2,{0xD4,0x63,0x00,0x00,}}, {0x8A43,2,{0xD4,0x64,0x00,0x00,}}, {0x8A44,2,{0xD4,0x65,0x00,0x00,}}, {0x8A45,2,{0xD4,0x66,0x00,0x00,}}, {0x8A46,2,{0xD4,0x67,0x00,0x00,}}, {0x8A47,2,{0xD4,0x68,0x00,0x00,}}, {0x8A48,2,{0xEE,0xBA,0x00,0x00,}}, {0x8A49,2,{0xD4,0x69,0x00,0x00,}}, {0x8A4A,2,{0xD4,0x6A,0x00,0x00,}}, {0x8A4B,2,{0xD4,0x6B,0x00,0x00,}}, {0x8A4C,2,{0xD4,0x6C,0x00,0x00,}}, {0x8A4D,2,{0xD4,0x6D,0x00,0x00,}}, {0x8A4E,2,{0xD4,0x6E,0x00,0x00,}}, {0x8A4F,2,{0xD4,0x6F,0x00,0x00,}}, {0x8A50,2,{0xD4,0x70,0x00,0x00,}}, {0x8A51,2,{0xD4,0x71,0x00,0x00,}}, {0x8A52,2,{0xD4,0x72,0x00,0x00,}}, {0x8A53,2,{0xD4,0x73,0x00,0x00,}}, {0x8A54,2,{0xD4,0x74,0x00,0x00,}}, {0x8A55,2,{0xD4,0x75,0x00,0x00,}}, {0x8A56,2,{0xD4,0x76,0x00,0x00,}}, {0x8A57,2,{0xD4,0x77,0x00,0x00,}}, {0x8A58,2,{0xD4,0x78,0x00,0x00,}}, {0x8A59,2,{0xD4,0x79,0x00,0x00,}}, {0x8A5A,2,{0xD4,0x7A,0x00,0x00,}}, {0x8A5B,2,{0xD4,0x7B,0x00,0x00,}}, {0x8A5C,2,{0xD4,0x7C,0x00,0x00,}}, {0x8A5D,2,{0xD4,0x7D,0x00,0x00,}}, {0x8A5E,2,{0xD4,0x7E,0x00,0x00,}}, {0x8A5F,2,{0xD4,0x80,0x00,0x00,}}, {0x8A60,2,{0xD4,0x81,0x00,0x00,}}, {0x8A61,2,{0xD4,0x82,0x00,0x00,}}, {0x8A62,2,{0xD4,0x83,0x00,0x00,}}, {0x8A63,2,{0xD4,0x84,0x00,0x00,}}, {0x8A64,2,{0xD4,0x85,0x00,0x00,}}, {0x8A65,2,{0xD4,0x86,0x00,0x00,}}, {0x8A66,2,{0xD4,0x87,0x00,0x00,}}, {0x8A67,2,{0xD4,0x88,0x00,0x00,}}, {0x8A68,2,{0xD4,0x89,0x00,0x00,}}, {0x8A69,2,{0xD4,0x8A,0x00,0x00,}}, {0x8A6A,2,{0xD4,0x8B,0x00,0x00,}}, {0x8A6B,2,{0xD4,0x8C,0x00,0x00,}}, {0x8A6C,2,{0xD4,0x8D,0x00,0x00,}}, {0x8A6D,2,{0xD4,0x8E,0x00,0x00,}}, {0x8A6E,2,{0xD4,0x8F,0x00,0x00,}}, {0x8A6F,2,{0xD4,0x90,0x00,0x00,}}, {0x8A70,2,{0xD4,0x91,0x00,0x00,}}, {0x8A71,2,{0xD4,0x92,0x00,0x00,}}, {0x8A72,2,{0xD4,0x93,0x00,0x00,}}, {0x8A73,2,{0xD4,0x94,0x00,0x00,}}, {0x8A74,2,{0xD4,0x95,0x00,0x00,}}, {0x8A75,2,{0xD4,0x96,0x00,0x00,}}, {0x8A76,2,{0xD4,0x97,0x00,0x00,}}, {0x8A77,2,{0xD4,0x98,0x00,0x00,}}, {0x8A78,2,{0xD4,0x99,0x00,0x00,}}, {0x8A79,2,{0xD5,0xB2,0x00,0x00,}}, {0x8A7A,2,{0xD4,0x9A,0x00,0x00,}}, {0x8A7B,2,{0xD4,0x9B,0x00,0x00,}}, {0x8A7C,2,{0xD4,0x9C,0x00,0x00,}}, {0x8A7D,2,{0xD4,0x9D,0x00,0x00,}}, {0x8A7E,2,{0xD4,0x9E,0x00,0x00,}}, {0x8A7F,2,{0xD4,0x9F,0x00,0x00,}}, {0x8A80,2,{0xD4,0xA0,0x00,0x00,}}, {0x8A81,2,{0xD5,0x40,0x00,0x00,}}, {0x8A82,2,{0xD5,0x41,0x00,0x00,}}, {0x8A83,2,{0xD5,0x42,0x00,0x00,}}, {0x8A84,2,{0xD5,0x43,0x00,0x00,}}, {0x8A85,2,{0xD5,0x44,0x00,0x00,}}, {0x8A86,2,{0xD5,0x45,0x00,0x00,}}, {0x8A87,2,{0xD5,0x46,0x00,0x00,}}, {0x8A88,2,{0xD5,0x47,0x00,0x00,}}, {0x8A89,2,{0xD3,0xFE,0x00,0x00,}}, {0x8A8A,2,{0xCC,0xDC,0x00,0x00,}}, {0x8A8B,2,{0xD5,0x48,0x00,0x00,}}, {0x8A8C,2,{0xD5,0x49,0x00,0x00,}}, {0x8A8D,2,{0xD5,0x4A,0x00,0x00,}}, {0x8A8E,2,{0xD5,0x4B,0x00,0x00,}}, {0x8A8F,2,{0xD5,0x4C,0x00,0x00,}}, {0x8A90,2,{0xD5,0x4D,0x00,0x00,}}, {0x8A91,2,{0xD5,0x4E,0x00,0x00,}}, {0x8A92,2,{0xD5,0x4F,0x00,0x00,}}, {0x8A93,2,{0xCA,0xC4,0x00,0x00,}}, {0x8A94,2,{0xD5,0x50,0x00,0x00,}}, {0x8A95,2,{0xD5,0x51,0x00,0x00,}}, {0x8A96,2,{0xD5,0x52,0x00,0x00,}}, {0x8A97,2,{0xD5,0x53,0x00,0x00,}}, {0x8A98,2,{0xD5,0x54,0x00,0x00,}}, {0x8A99,2,{0xD5,0x55,0x00,0x00,}}, {0x8A9A,2,{0xD5,0x56,0x00,0x00,}}, {0x8A9B,2,{0xD5,0x57,0x00,0x00,}}, {0x8A9C,2,{0xD5,0x58,0x00,0x00,}}, {0x8A9D,2,{0xD5,0x59,0x00,0x00,}}, {0x8A9E,2,{0xD5,0x5A,0x00,0x00,}}, {0x8A9F,2,{0xD5,0x5B,0x00,0x00,}}, {0x8AA0,2,{0xD5,0x5C,0x00,0x00,}}, {0x8AA1,2,{0xD5,0x5D,0x00,0x00,}}, {0x8AA2,2,{0xD5,0x5E,0x00,0x00,}}, {0x8AA3,2,{0xD5,0x5F,0x00,0x00,}}, {0x8AA4,2,{0xD5,0x60,0x00,0x00,}}, {0x8AA5,2,{0xD5,0x61,0x00,0x00,}}, {0x8AA6,2,{0xD5,0x62,0x00,0x00,}}, {0x8AA7,2,{0xD5,0x63,0x00,0x00,}}, {0x8AA8,2,{0xD5,0x64,0x00,0x00,}}, {0x8AA9,2,{0xD5,0x65,0x00,0x00,}}, {0x8AAA,2,{0xD5,0x66,0x00,0x00,}}, {0x8AAB,2,{0xD5,0x67,0x00,0x00,}}, {0x8AAC,2,{0xD5,0x68,0x00,0x00,}}, {0x8AAD,2,{0xD5,0x69,0x00,0x00,}}, {0x8AAE,2,{0xD5,0x6A,0x00,0x00,}}, {0x8AAF,2,{0xD5,0x6B,0x00,0x00,}}, {0x8AB0,2,{0xD5,0x6C,0x00,0x00,}}, {0x8AB1,2,{0xD5,0x6D,0x00,0x00,}}, {0x8AB2,2,{0xD5,0x6E,0x00,0x00,}}, {0x8AB3,2,{0xD5,0x6F,0x00,0x00,}}, {0x8AB4,2,{0xD5,0x70,0x00,0x00,}}, {0x8AB5,2,{0xD5,0x71,0x00,0x00,}}, {0x8AB6,2,{0xD5,0x72,0x00,0x00,}}, {0x8AB7,2,{0xD5,0x73,0x00,0x00,}}, {0x8AB8,2,{0xD5,0x74,0x00,0x00,}}, {0x8AB9,2,{0xD5,0x75,0x00,0x00,}}, {0x8ABA,2,{0xD5,0x76,0x00,0x00,}}, {0x8ABB,2,{0xD5,0x77,0x00,0x00,}}, {0x8ABC,2,{0xD5,0x78,0x00,0x00,}}, {0x8ABD,2,{0xD5,0x79,0x00,0x00,}}, {0x8ABE,2,{0xD5,0x7A,0x00,0x00,}}, {0x8ABF,2,{0xD5,0x7B,0x00,0x00,}}, {0x8AC0,2,{0xD5,0x7C,0x00,0x00,}}, {0x8AC1,2,{0xD5,0x7D,0x00,0x00,}}, {0x8AC2,2,{0xD5,0x7E,0x00,0x00,}}, {0x8AC3,2,{0xD5,0x80,0x00,0x00,}}, {0x8AC4,2,{0xD5,0x81,0x00,0x00,}}, {0x8AC5,2,{0xD5,0x82,0x00,0x00,}}, {0x8AC6,2,{0xD5,0x83,0x00,0x00,}}, {0x8AC7,2,{0xD5,0x84,0x00,0x00,}}, {0x8AC8,2,{0xD5,0x85,0x00,0x00,}}, {0x8AC9,2,{0xD5,0x86,0x00,0x00,}}, {0x8ACA,2,{0xD5,0x87,0x00,0x00,}}, {0x8ACB,2,{0xD5,0x88,0x00,0x00,}}, {0x8ACC,2,{0xD5,0x89,0x00,0x00,}}, {0x8ACD,2,{0xD5,0x8A,0x00,0x00,}}, {0x8ACE,2,{0xD5,0x8B,0x00,0x00,}}, {0x8ACF,2,{0xD5,0x8C,0x00,0x00,}}, {0x8AD0,2,{0xD5,0x8D,0x00,0x00,}}, {0x8AD1,2,{0xD5,0x8E,0x00,0x00,}}, {0x8AD2,2,{0xD5,0x8F,0x00,0x00,}}, {0x8AD3,2,{0xD5,0x90,0x00,0x00,}}, {0x8AD4,2,{0xD5,0x91,0x00,0x00,}}, {0x8AD5,2,{0xD5,0x92,0x00,0x00,}}, {0x8AD6,2,{0xD5,0x93,0x00,0x00,}}, {0x8AD7,2,{0xD5,0x94,0x00,0x00,}}, {0x8AD8,2,{0xD5,0x95,0x00,0x00,}}, {0x8AD9,2,{0xD5,0x96,0x00,0x00,}}, {0x8ADA,2,{0xD5,0x97,0x00,0x00,}}, {0x8ADB,2,{0xD5,0x98,0x00,0x00,}}, {0x8ADC,2,{0xD5,0x99,0x00,0x00,}}, {0x8ADD,2,{0xD5,0x9A,0x00,0x00,}}, {0x8ADE,2,{0xD5,0x9B,0x00,0x00,}}, {0x8ADF,2,{0xD5,0x9C,0x00,0x00,}}, {0x8AE0,2,{0xD5,0x9D,0x00,0x00,}}, {0x8AE1,2,{0xD5,0x9E,0x00,0x00,}}, {0x8AE2,2,{0xD5,0x9F,0x00,0x00,}}, {0x8AE3,2,{0xD5,0xA0,0x00,0x00,}}, {0x8AE4,2,{0xD6,0x40,0x00,0x00,}}, {0x8AE5,2,{0xD6,0x41,0x00,0x00,}}, {0x8AE6,2,{0xD6,0x42,0x00,0x00,}}, {0x8AE7,2,{0xD6,0x43,0x00,0x00,}}, {0x8AE8,2,{0xD6,0x44,0x00,0x00,}}, {0x8AE9,2,{0xD6,0x45,0x00,0x00,}}, {0x8AEA,2,{0xD6,0x46,0x00,0x00,}}, {0x8AEB,2,{0xD6,0x47,0x00,0x00,}}, {0x8AEC,2,{0xD6,0x48,0x00,0x00,}}, {0x8AED,2,{0xD6,0x49,0x00,0x00,}}, {0x8AEE,2,{0xD6,0x4A,0x00,0x00,}}, {0x8AEF,2,{0xD6,0x4B,0x00,0x00,}}, {0x8AF0,2,{0xD6,0x4C,0x00,0x00,}}, {0x8AF1,2,{0xD6,0x4D,0x00,0x00,}}, {0x8AF2,2,{0xD6,0x4E,0x00,0x00,}}, {0x8AF3,2,{0xD6,0x4F,0x00,0x00,}}, {0x8AF4,2,{0xD6,0x50,0x00,0x00,}}, {0x8AF5,2,{0xD6,0x51,0x00,0x00,}}, {0x8AF6,2,{0xD6,0x52,0x00,0x00,}}, {0x8AF7,2,{0xD6,0x53,0x00,0x00,}}, {0x8AF8,2,{0xD6,0x54,0x00,0x00,}}, {0x8AF9,2,{0xD6,0x55,0x00,0x00,}}, {0x8AFA,2,{0xD6,0x56,0x00,0x00,}}, {0x8AFB,2,{0xD6,0x57,0x00,0x00,}}, {0x8AFC,2,{0xD6,0x58,0x00,0x00,}}, {0x8AFD,2,{0xD6,0x59,0x00,0x00,}}, {0x8AFE,2,{0xD6,0x5A,0x00,0x00,}}, {0x8AFF,2,{0xD6,0x5B,0x00,0x00,}}, {0x8B00,2,{0xD6,0x5C,0x00,0x00,}}, {0x8B01,2,{0xD6,0x5D,0x00,0x00,}}, {0x8B02,2,{0xD6,0x5E,0x00,0x00,}}, {0x8B03,2,{0xD6,0x5F,0x00,0x00,}}, {0x8B04,2,{0xD6,0x60,0x00,0x00,}}, {0x8B05,2,{0xD6,0x61,0x00,0x00,}}, {0x8B06,2,{0xD6,0x62,0x00,0x00,}}, {0x8B07,2,{0xE5,0xC0,0x00,0x00,}}, {0x8B08,2,{0xD6,0x63,0x00,0x00,}}, {0x8B09,2,{0xD6,0x64,0x00,0x00,}}, {0x8B0A,2,{0xD6,0x65,0x00,0x00,}}, {0x8B0B,2,{0xD6,0x66,0x00,0x00,}}, {0x8B0C,2,{0xD6,0x67,0x00,0x00,}}, {0x8B0D,2,{0xD6,0x68,0x00,0x00,}}, {0x8B0E,2,{0xD6,0x69,0x00,0x00,}}, {0x8B0F,2,{0xD6,0x6A,0x00,0x00,}}, {0x8B10,2,{0xD6,0x6B,0x00,0x00,}}, {0x8B11,2,{0xD6,0x6C,0x00,0x00,}}, {0x8B12,2,{0xD6,0x6D,0x00,0x00,}}, {0x8B13,2,{0xD6,0x6E,0x00,0x00,}}, {0x8B14,2,{0xD6,0x6F,0x00,0x00,}}, {0x8B15,2,{0xD6,0x70,0x00,0x00,}}, {0x8B16,2,{0xD6,0x71,0x00,0x00,}}, {0x8B17,2,{0xD6,0x72,0x00,0x00,}}, {0x8B18,2,{0xD6,0x73,0x00,0x00,}}, {0x8B19,2,{0xD6,0x74,0x00,0x00,}}, {0x8B1A,2,{0xD6,0x75,0x00,0x00,}}, {0x8B1B,2,{0xD6,0x76,0x00,0x00,}}, {0x8B1C,2,{0xD6,0x77,0x00,0x00,}}, {0x8B1D,2,{0xD6,0x78,0x00,0x00,}}, {0x8B1E,2,{0xD6,0x79,0x00,0x00,}}, {0x8B1F,2,{0xD6,0x7A,0x00,0x00,}}, {0x8B20,2,{0xD6,0x7B,0x00,0x00,}}, {0x8B21,2,{0xD6,0x7C,0x00,0x00,}}, {0x8B22,2,{0xD6,0x7D,0x00,0x00,}}, {0x8B23,2,{0xD6,0x7E,0x00,0x00,}}, {0x8B24,2,{0xD6,0x80,0x00,0x00,}}, {0x8B25,2,{0xD6,0x81,0x00,0x00,}}, {0x8B26,2,{0xF6,0xA5,0x00,0x00,}}, {0x8B27,2,{0xD6,0x82,0x00,0x00,}}, {0x8B28,2,{0xD6,0x83,0x00,0x00,}}, {0x8B29,2,{0xD6,0x84,0x00,0x00,}}, {0x8B2A,2,{0xD6,0x85,0x00,0x00,}}, {0x8B2B,2,{0xD6,0x86,0x00,0x00,}}, {0x8B2C,2,{0xD6,0x87,0x00,0x00,}}, {0x8B2D,2,{0xD6,0x88,0x00,0x00,}}, {0x8B2E,2,{0xD6,0x89,0x00,0x00,}}, {0x8B2F,2,{0xD6,0x8A,0x00,0x00,}}, {0x8B30,2,{0xD6,0x8B,0x00,0x00,}}, {0x8B31,2,{0xD6,0x8C,0x00,0x00,}}, {0x8B32,2,{0xD6,0x8D,0x00,0x00,}}, {0x8B33,2,{0xD6,0x8E,0x00,0x00,}}, {0x8B34,2,{0xD6,0x8F,0x00,0x00,}}, {0x8B35,2,{0xD6,0x90,0x00,0x00,}}, {0x8B36,2,{0xD6,0x91,0x00,0x00,}}, {0x8B37,2,{0xD6,0x92,0x00,0x00,}}, {0x8B38,2,{0xD6,0x93,0x00,0x00,}}, {0x8B39,2,{0xD6,0x94,0x00,0x00,}}, {0x8B3A,2,{0xD6,0x95,0x00,0x00,}}, {0x8B3B,2,{0xD6,0x96,0x00,0x00,}}, {0x8B3C,2,{0xD6,0x97,0x00,0x00,}}, {0x8B3D,2,{0xD6,0x98,0x00,0x00,}}, {0x8B3E,2,{0xD6,0x99,0x00,0x00,}}, {0x8B3F,2,{0xD6,0x9A,0x00,0x00,}}, {0x8B40,2,{0xD6,0x9B,0x00,0x00,}}, {0x8B41,2,{0xD6,0x9C,0x00,0x00,}}, {0x8B42,2,{0xD6,0x9D,0x00,0x00,}}, {0x8B43,2,{0xD6,0x9E,0x00,0x00,}}, {0x8B44,2,{0xD6,0x9F,0x00,0x00,}}, {0x8B45,2,{0xD6,0xA0,0x00,0x00,}}, {0x8B46,2,{0xD7,0x40,0x00,0x00,}}, {0x8B47,2,{0xD7,0x41,0x00,0x00,}}, {0x8B48,2,{0xD7,0x42,0x00,0x00,}}, {0x8B49,2,{0xD7,0x43,0x00,0x00,}}, {0x8B4A,2,{0xD7,0x44,0x00,0x00,}}, {0x8B4B,2,{0xD7,0x45,0x00,0x00,}}, {0x8B4C,2,{0xD7,0x46,0x00,0x00,}}, {0x8B4D,2,{0xD7,0x47,0x00,0x00,}}, {0x8B4E,2,{0xD7,0x48,0x00,0x00,}}, {0x8B4F,2,{0xD7,0x49,0x00,0x00,}}, {0x8B50,2,{0xD7,0x4A,0x00,0x00,}}, {0x8B51,2,{0xD7,0x4B,0x00,0x00,}}, {0x8B52,2,{0xD7,0x4C,0x00,0x00,}}, {0x8B53,2,{0xD7,0x4D,0x00,0x00,}}, {0x8B54,2,{0xD7,0x4E,0x00,0x00,}}, {0x8B55,2,{0xD7,0x4F,0x00,0x00,}}, {0x8B56,2,{0xD7,0x50,0x00,0x00,}}, {0x8B57,2,{0xD7,0x51,0x00,0x00,}}, {0x8B58,2,{0xD7,0x52,0x00,0x00,}}, {0x8B59,2,{0xD7,0x53,0x00,0x00,}}, {0x8B5A,2,{0xD7,0x54,0x00,0x00,}}, {0x8B5B,2,{0xD7,0x55,0x00,0x00,}}, {0x8B5C,2,{0xD7,0x56,0x00,0x00,}}, {0x8B5D,2,{0xD7,0x57,0x00,0x00,}}, {0x8B5E,2,{0xD7,0x58,0x00,0x00,}}, {0x8B5F,2,{0xD7,0x59,0x00,0x00,}}, {0x8B60,2,{0xD7,0x5A,0x00,0x00,}}, {0x8B61,2,{0xD7,0x5B,0x00,0x00,}}, {0x8B62,2,{0xD7,0x5C,0x00,0x00,}}, {0x8B63,2,{0xD7,0x5D,0x00,0x00,}}, {0x8B64,2,{0xD7,0x5E,0x00,0x00,}}, {0x8B65,2,{0xD7,0x5F,0x00,0x00,}}, {0x8B66,2,{0xBE,0xAF,0x00,0x00,}}, {0x8B67,2,{0xD7,0x60,0x00,0x00,}}, {0x8B68,2,{0xD7,0x61,0x00,0x00,}}, {0x8B69,2,{0xD7,0x62,0x00,0x00,}}, {0x8B6A,2,{0xD7,0x63,0x00,0x00,}}, {0x8B6B,2,{0xD7,0x64,0x00,0x00,}}, {0x8B6C,2,{0xC6,0xA9,0x00,0x00,}}, {0x8B6D,2,{0xD7,0x65,0x00,0x00,}}, {0x8B6E,2,{0xD7,0x66,0x00,0x00,}}, {0x8B6F,2,{0xD7,0x67,0x00,0x00,}}, {0x8B70,2,{0xD7,0x68,0x00,0x00,}}, {0x8B71,2,{0xD7,0x69,0x00,0x00,}}, {0x8B72,2,{0xD7,0x6A,0x00,0x00,}}, {0x8B73,2,{0xD7,0x6B,0x00,0x00,}}, {0x8B74,2,{0xD7,0x6C,0x00,0x00,}}, {0x8B75,2,{0xD7,0x6D,0x00,0x00,}}, {0x8B76,2,{0xD7,0x6E,0x00,0x00,}}, {0x8B77,2,{0xD7,0x6F,0x00,0x00,}}, {0x8B78,2,{0xD7,0x70,0x00,0x00,}}, {0x8B79,2,{0xD7,0x71,0x00,0x00,}}, {0x8B7A,2,{0xD7,0x72,0x00,0x00,}}, {0x8B7B,2,{0xD7,0x73,0x00,0x00,}}, {0x8B7C,2,{0xD7,0x74,0x00,0x00,}}, {0x8B7D,2,{0xD7,0x75,0x00,0x00,}}, {0x8B7E,2,{0xD7,0x76,0x00,0x00,}}, {0x8B7F,2,{0xD7,0x77,0x00,0x00,}}, {0x8B80,2,{0xD7,0x78,0x00,0x00,}}, {0x8B81,2,{0xD7,0x79,0x00,0x00,}}, {0x8B82,2,{0xD7,0x7A,0x00,0x00,}}, {0x8B83,2,{0xD7,0x7B,0x00,0x00,}}, {0x8B84,2,{0xD7,0x7C,0x00,0x00,}}, {0x8B85,2,{0xD7,0x7D,0x00,0x00,}}, {0x8B86,2,{0xD7,0x7E,0x00,0x00,}}, {0x8B87,2,{0xD7,0x80,0x00,0x00,}}, {0x8B88,2,{0xD7,0x81,0x00,0x00,}}, {0x8B89,2,{0xD7,0x82,0x00,0x00,}}, {0x8B8A,2,{0xD7,0x83,0x00,0x00,}}, {0x8B8B,2,{0xD7,0x84,0x00,0x00,}}, {0x8B8C,2,{0xD7,0x85,0x00,0x00,}}, {0x8B8D,2,{0xD7,0x86,0x00,0x00,}}, {0x8B8E,2,{0xD7,0x87,0x00,0x00,}}, {0x8B8F,2,{0xD7,0x88,0x00,0x00,}}, {0x8B90,2,{0xD7,0x89,0x00,0x00,}}, {0x8B91,2,{0xD7,0x8A,0x00,0x00,}}, {0x8B92,2,{0xD7,0x8B,0x00,0x00,}}, {0x8B93,2,{0xD7,0x8C,0x00,0x00,}}, {0x8B94,2,{0xD7,0x8D,0x00,0x00,}}, {0x8B95,2,{0xD7,0x8E,0x00,0x00,}}, {0x8B96,2,{0xD7,0x8F,0x00,0x00,}}, {0x8B97,2,{0xD7,0x90,0x00,0x00,}}, {0x8B98,2,{0xD7,0x91,0x00,0x00,}}, {0x8B99,2,{0xD7,0x92,0x00,0x00,}}, {0x8B9A,2,{0xD7,0x93,0x00,0x00,}}, {0x8B9B,2,{0xD7,0x94,0x00,0x00,}}, {0x8B9C,2,{0xD7,0x95,0x00,0x00,}}, {0x8B9D,2,{0xD7,0x96,0x00,0x00,}}, {0x8B9E,2,{0xD7,0x97,0x00,0x00,}}, {0x8B9F,2,{0xD7,0x98,0x00,0x00,}}, {0x8BA0,2,{0xDA,0xA5,0x00,0x00,}}, {0x8BA1,2,{0xBC,0xC6,0x00,0x00,}}, {0x8BA2,2,{0xB6,0xA9,0x00,0x00,}}, {0x8BA3,2,{0xB8,0xBC,0x00,0x00,}}, {0x8BA4,2,{0xC8,0xCF,0x00,0x00,}}, {0x8BA5,2,{0xBC,0xA5,0x00,0x00,}}, {0x8BA6,2,{0xDA,0xA6,0x00,0x00,}}, {0x8BA7,2,{0xDA,0xA7,0x00,0x00,}}, {0x8BA8,2,{0xCC,0xD6,0x00,0x00,}}, {0x8BA9,2,{0xC8,0xC3,0x00,0x00,}}, {0x8BAA,2,{0xDA,0xA8,0x00,0x00,}}, {0x8BAB,2,{0xC6,0xFD,0x00,0x00,}}, {0x8BAC,2,{0xD7,0x99,0x00,0x00,}}, {0x8BAD,2,{0xD1,0xB5,0x00,0x00,}}, {0x8BAE,2,{0xD2,0xE9,0x00,0x00,}}, {0x8BAF,2,{0xD1,0xB6,0x00,0x00,}}, {0x8BB0,2,{0xBC,0xC7,0x00,0x00,}}, {0x8BB1,2,{0xD7,0x9A,0x00,0x00,}}, {0x8BB2,2,{0xBD,0xB2,0x00,0x00,}}, {0x8BB3,2,{0xBB,0xE4,0x00,0x00,}}, {0x8BB4,2,{0xDA,0xA9,0x00,0x00,}}, {0x8BB5,2,{0xDA,0xAA,0x00,0x00,}}, {0x8BB6,2,{0xD1,0xC8,0x00,0x00,}}, {0x8BB7,2,{0xDA,0xAB,0x00,0x00,}}, {0x8BB8,2,{0xD0,0xED,0x00,0x00,}}, {0x8BB9,2,{0xB6,0xEF,0x00,0x00,}}, {0x8BBA,2,{0xC2,0xDB,0x00,0x00,}}, {0x8BBB,2,{0xD7,0x9B,0x00,0x00,}}, {0x8BBC,2,{0xCB,0xCF,0x00,0x00,}}, {0x8BBD,2,{0xB7,0xED,0x00,0x00,}}, {0x8BBE,2,{0xC9,0xE8,0x00,0x00,}}, {0x8BBF,2,{0xB7,0xC3,0x00,0x00,}}, {0x8BC0,2,{0xBE,0xF7,0x00,0x00,}}, {0x8BC1,2,{0xD6,0xA4,0x00,0x00,}}, {0x8BC2,2,{0xDA,0xAC,0x00,0x00,}}, {0x8BC3,2,{0xDA,0xAD,0x00,0x00,}}, {0x8BC4,2,{0xC6,0xC0,0x00,0x00,}}, {0x8BC5,2,{0xD7,0xE7,0x00,0x00,}}, {0x8BC6,2,{0xCA,0xB6,0x00,0x00,}}, {0x8BC7,2,{0xD7,0x9C,0x00,0x00,}}, {0x8BC8,2,{0xD5,0xA9,0x00,0x00,}}, {0x8BC9,2,{0xCB,0xDF,0x00,0x00,}}, {0x8BCA,2,{0xD5,0xEF,0x00,0x00,}}, {0x8BCB,2,{0xDA,0xAE,0x00,0x00,}}, {0x8BCC,2,{0xD6,0xDF,0x00,0x00,}}, {0x8BCD,2,{0xB4,0xCA,0x00,0x00,}}, {0x8BCE,2,{0xDA,0xB0,0x00,0x00,}}, {0x8BCF,2,{0xDA,0xAF,0x00,0x00,}}, {0x8BD0,2,{0xD7,0x9D,0x00,0x00,}}, {0x8BD1,2,{0xD2,0xEB,0x00,0x00,}}, {0x8BD2,2,{0xDA,0xB1,0x00,0x00,}}, {0x8BD3,2,{0xDA,0xB2,0x00,0x00,}}, {0x8BD4,2,{0xDA,0xB3,0x00,0x00,}}, {0x8BD5,2,{0xCA,0xD4,0x00,0x00,}}, {0x8BD6,2,{0xDA,0xB4,0x00,0x00,}}, {0x8BD7,2,{0xCA,0xAB,0x00,0x00,}}, {0x8BD8,2,{0xDA,0xB5,0x00,0x00,}}, {0x8BD9,2,{0xDA,0xB6,0x00,0x00,}}, {0x8BDA,2,{0xB3,0xCF,0x00,0x00,}}, {0x8BDB,2,{0xD6,0xEF,0x00,0x00,}}, {0x8BDC,2,{0xDA,0xB7,0x00,0x00,}}, {0x8BDD,2,{0xBB,0xB0,0x00,0x00,}}, {0x8BDE,2,{0xB5,0xAE,0x00,0x00,}}, {0x8BDF,2,{0xDA,0xB8,0x00,0x00,}}, {0x8BE0,2,{0xDA,0xB9,0x00,0x00,}}, {0x8BE1,2,{0xB9,0xEE,0x00,0x00,}}, {0x8BE2,2,{0xD1,0xAF,0x00,0x00,}}, {0x8BE3,2,{0xD2,0xE8,0x00,0x00,}}, {0x8BE4,2,{0xDA,0xBA,0x00,0x00,}}, {0x8BE5,2,{0xB8,0xC3,0x00,0x00,}}, {0x8BE6,2,{0xCF,0xEA,0x00,0x00,}}, {0x8BE7,2,{0xB2,0xEF,0x00,0x00,}}, {0x8BE8,2,{0xDA,0xBB,0x00,0x00,}}, {0x8BE9,2,{0xDA,0xBC,0x00,0x00,}}, {0x8BEA,2,{0xD7,0x9E,0x00,0x00,}}, {0x8BEB,2,{0xBD,0xEB,0x00,0x00,}}, {0x8BEC,2,{0xCE,0xDC,0x00,0x00,}}, {0x8BED,2,{0xD3,0xEF,0x00,0x00,}}, {0x8BEE,2,{0xDA,0xBD,0x00,0x00,}}, {0x8BEF,2,{0xCE,0xF3,0x00,0x00,}}, {0x8BF0,2,{0xDA,0xBE,0x00,0x00,}}, {0x8BF1,2,{0xD3,0xD5,0x00,0x00,}}, {0x8BF2,2,{0xBB,0xE5,0x00,0x00,}}, {0x8BF3,2,{0xDA,0xBF,0x00,0x00,}}, {0x8BF4,2,{0xCB,0xB5,0x00,0x00,}}, {0x8BF5,2,{0xCB,0xD0,0x00,0x00,}}, {0x8BF6,2,{0xDA,0xC0,0x00,0x00,}}, {0x8BF7,2,{0xC7,0xEB,0x00,0x00,}}, {0x8BF8,2,{0xD6,0xEE,0x00,0x00,}}, {0x8BF9,2,{0xDA,0xC1,0x00,0x00,}}, {0x8BFA,2,{0xC5,0xB5,0x00,0x00,}}, {0x8BFB,2,{0xB6,0xC1,0x00,0x00,}}, {0x8BFC,2,{0xDA,0xC2,0x00,0x00,}}, {0x8BFD,2,{0xB7,0xCC,0x00,0x00,}}, {0x8BFE,2,{0xBF,0xCE,0x00,0x00,}}, {0x8BFF,2,{0xDA,0xC3,0x00,0x00,}}, {0x8C00,2,{0xDA,0xC4,0x00,0x00,}}, {0x8C01,2,{0xCB,0xAD,0x00,0x00,}}, {0x8C02,2,{0xDA,0xC5,0x00,0x00,}}, {0x8C03,2,{0xB5,0xF7,0x00,0x00,}}, {0x8C04,2,{0xDA,0xC6,0x00,0x00,}}, {0x8C05,2,{0xC1,0xC2,0x00,0x00,}}, {0x8C06,2,{0xD7,0xBB,0x00,0x00,}}, {0x8C07,2,{0xDA,0xC7,0x00,0x00,}}, {0x8C08,2,{0xCC,0xB8,0x00,0x00,}}, {0x8C09,2,{0xD7,0x9F,0x00,0x00,}}, {0x8C0A,2,{0xD2,0xEA,0x00,0x00,}}, {0x8C0B,2,{0xC4,0xB1,0x00,0x00,}}, {0x8C0C,2,{0xDA,0xC8,0x00,0x00,}}, {0x8C0D,2,{0xB5,0xFD,0x00,0x00,}}, {0x8C0E,2,{0xBB,0xD1,0x00,0x00,}}, {0x8C0F,2,{0xDA,0xC9,0x00,0x00,}}, {0x8C10,2,{0xD0,0xB3,0x00,0x00,}}, {0x8C11,2,{0xDA,0xCA,0x00,0x00,}}, {0x8C12,2,{0xDA,0xCB,0x00,0x00,}}, {0x8C13,2,{0xCE,0xBD,0x00,0x00,}}, {0x8C14,2,{0xDA,0xCC,0x00,0x00,}}, {0x8C15,2,{0xDA,0xCD,0x00,0x00,}}, {0x8C16,2,{0xDA,0xCE,0x00,0x00,}}, {0x8C17,2,{0xB2,0xF7,0x00,0x00,}}, {0x8C18,2,{0xDA,0xD1,0x00,0x00,}}, {0x8C19,2,{0xDA,0xCF,0x00,0x00,}}, {0x8C1A,2,{0xD1,0xE8,0x00,0x00,}}, {0x8C1B,2,{0xDA,0xD0,0x00,0x00,}}, {0x8C1C,2,{0xC3,0xD5,0x00,0x00,}}, {0x8C1D,2,{0xDA,0xD2,0x00,0x00,}}, {0x8C1E,2,{0xD7,0xA0,0x00,0x00,}}, {0x8C1F,2,{0xDA,0xD3,0x00,0x00,}}, {0x8C20,2,{0xDA,0xD4,0x00,0x00,}}, {0x8C21,2,{0xDA,0xD5,0x00,0x00,}}, {0x8C22,2,{0xD0,0xBB,0x00,0x00,}}, {0x8C23,2,{0xD2,0xA5,0x00,0x00,}}, {0x8C24,2,{0xB0,0xF9,0x00,0x00,}}, {0x8C25,2,{0xDA,0xD6,0x00,0x00,}}, {0x8C26,2,{0xC7,0xAB,0x00,0x00,}}, {0x8C27,2,{0xDA,0xD7,0x00,0x00,}}, {0x8C28,2,{0xBD,0xF7,0x00,0x00,}}, {0x8C29,2,{0xC3,0xA1,0x00,0x00,}}, {0x8C2A,2,{0xDA,0xD8,0x00,0x00,}}, {0x8C2B,2,{0xDA,0xD9,0x00,0x00,}}, {0x8C2C,2,{0xC3,0xFD,0x00,0x00,}}, {0x8C2D,2,{0xCC,0xB7,0x00,0x00,}}, {0x8C2E,2,{0xDA,0xDA,0x00,0x00,}}, {0x8C2F,2,{0xDA,0xDB,0x00,0x00,}}, {0x8C30,2,{0xC0,0xBE,0x00,0x00,}}, {0x8C31,2,{0xC6,0xD7,0x00,0x00,}}, {0x8C32,2,{0xDA,0xDC,0x00,0x00,}}, {0x8C33,2,{0xDA,0xDD,0x00,0x00,}}, {0x8C34,2,{0xC7,0xB4,0x00,0x00,}}, {0x8C35,2,{0xDA,0xDE,0x00,0x00,}}, {0x8C36,2,{0xDA,0xDF,0x00,0x00,}}, {0x8C37,2,{0xB9,0xC8,0x00,0x00,}}, {0x8C38,2,{0xD8,0x40,0x00,0x00,}}, {0x8C39,2,{0xD8,0x41,0x00,0x00,}}, {0x8C3A,2,{0xD8,0x42,0x00,0x00,}}, {0x8C3B,2,{0xD8,0x43,0x00,0x00,}}, {0x8C3C,2,{0xD8,0x44,0x00,0x00,}}, {0x8C3D,2,{0xD8,0x45,0x00,0x00,}}, {0x8C3E,2,{0xD8,0x46,0x00,0x00,}}, {0x8C3F,2,{0xD8,0x47,0x00,0x00,}}, {0x8C40,2,{0xD8,0x48,0x00,0x00,}}, {0x8C41,2,{0xBB,0xED,0x00,0x00,}}, {0x8C42,2,{0xD8,0x49,0x00,0x00,}}, {0x8C43,2,{0xD8,0x4A,0x00,0x00,}}, {0x8C44,2,{0xD8,0x4B,0x00,0x00,}}, {0x8C45,2,{0xD8,0x4C,0x00,0x00,}}, {0x8C46,2,{0xB6,0xB9,0x00,0x00,}}, {0x8C47,2,{0xF4,0xF8,0x00,0x00,}}, {0x8C48,2,{0xD8,0x4D,0x00,0x00,}}, {0x8C49,2,{0xF4,0xF9,0x00,0x00,}}, {0x8C4A,2,{0xD8,0x4E,0x00,0x00,}}, {0x8C4B,2,{0xD8,0x4F,0x00,0x00,}}, {0x8C4C,2,{0xCD,0xE3,0x00,0x00,}}, {0x8C4D,2,{0xD8,0x50,0x00,0x00,}}, {0x8C4E,2,{0xD8,0x51,0x00,0x00,}}, {0x8C4F,2,{0xD8,0x52,0x00,0x00,}}, {0x8C50,2,{0xD8,0x53,0x00,0x00,}}, {0x8C51,2,{0xD8,0x54,0x00,0x00,}}, {0x8C52,2,{0xD8,0x55,0x00,0x00,}}, {0x8C53,2,{0xD8,0x56,0x00,0x00,}}, {0x8C54,2,{0xD8,0x57,0x00,0x00,}}, {0x8C55,2,{0xF5,0xB9,0x00,0x00,}}, {0x8C56,2,{0xD8,0x58,0x00,0x00,}}, {0x8C57,2,{0xD8,0x59,0x00,0x00,}}, {0x8C58,2,{0xD8,0x5A,0x00,0x00,}}, {0x8C59,2,{0xD8,0x5B,0x00,0x00,}}, {0x8C5A,2,{0xEB,0xE0,0x00,0x00,}}, {0x8C5B,2,{0xD8,0x5C,0x00,0x00,}}, {0x8C5C,2,{0xD8,0x5D,0x00,0x00,}}, {0x8C5D,2,{0xD8,0x5E,0x00,0x00,}}, {0x8C5E,2,{0xD8,0x5F,0x00,0x00,}}, {0x8C5F,2,{0xD8,0x60,0x00,0x00,}}, {0x8C60,2,{0xD8,0x61,0x00,0x00,}}, {0x8C61,2,{0xCF,0xF3,0x00,0x00,}}, {0x8C62,2,{0xBB,0xBF,0x00,0x00,}}, {0x8C63,2,{0xD8,0x62,0x00,0x00,}}, {0x8C64,2,{0xD8,0x63,0x00,0x00,}}, {0x8C65,2,{0xD8,0x64,0x00,0x00,}}, {0x8C66,2,{0xD8,0x65,0x00,0x00,}}, {0x8C67,2,{0xD8,0x66,0x00,0x00,}}, {0x8C68,2,{0xD8,0x67,0x00,0x00,}}, {0x8C69,2,{0xD8,0x68,0x00,0x00,}}, {0x8C6A,2,{0xBA,0xC0,0x00,0x00,}}, {0x8C6B,2,{0xD4,0xA5,0x00,0x00,}}, {0x8C6C,2,{0xD8,0x69,0x00,0x00,}}, {0x8C6D,2,{0xD8,0x6A,0x00,0x00,}}, {0x8C6E,2,{0xD8,0x6B,0x00,0x00,}}, {0x8C6F,2,{0xD8,0x6C,0x00,0x00,}}, {0x8C70,2,{0xD8,0x6D,0x00,0x00,}}, {0x8C71,2,{0xD8,0x6E,0x00,0x00,}}, {0x8C72,2,{0xD8,0x6F,0x00,0x00,}}, {0x8C73,2,{0xE1,0xD9,0x00,0x00,}}, {0x8C74,2,{0xD8,0x70,0x00,0x00,}}, {0x8C75,2,{0xD8,0x71,0x00,0x00,}}, {0x8C76,2,{0xD8,0x72,0x00,0x00,}}, {0x8C77,2,{0xD8,0x73,0x00,0x00,}}, {0x8C78,2,{0xF5,0xF4,0x00,0x00,}}, {0x8C79,2,{0xB1,0xAA,0x00,0x00,}}, {0x8C7A,2,{0xB2,0xF2,0x00,0x00,}}, {0x8C7B,2,{0xD8,0x74,0x00,0x00,}}, {0x8C7C,2,{0xD8,0x75,0x00,0x00,}}, {0x8C7D,2,{0xD8,0x76,0x00,0x00,}}, {0x8C7E,2,{0xD8,0x77,0x00,0x00,}}, {0x8C7F,2,{0xD8,0x78,0x00,0x00,}}, {0x8C80,2,{0xD8,0x79,0x00,0x00,}}, {0x8C81,2,{0xD8,0x7A,0x00,0x00,}}, {0x8C82,2,{0xF5,0xF5,0x00,0x00,}}, {0x8C83,2,{0xD8,0x7B,0x00,0x00,}}, {0x8C84,2,{0xD8,0x7C,0x00,0x00,}}, {0x8C85,2,{0xF5,0xF7,0x00,0x00,}}, {0x8C86,2,{0xD8,0x7D,0x00,0x00,}}, {0x8C87,2,{0xD8,0x7E,0x00,0x00,}}, {0x8C88,2,{0xD8,0x80,0x00,0x00,}}, {0x8C89,2,{0xBA,0xD1,0x00,0x00,}}, {0x8C8A,2,{0xF5,0xF6,0x00,0x00,}}, {0x8C8B,2,{0xD8,0x81,0x00,0x00,}}, {0x8C8C,2,{0xC3,0xB2,0x00,0x00,}}, {0x8C8D,2,{0xD8,0x82,0x00,0x00,}}, {0x8C8E,2,{0xD8,0x83,0x00,0x00,}}, {0x8C8F,2,{0xD8,0x84,0x00,0x00,}}, {0x8C90,2,{0xD8,0x85,0x00,0x00,}}, {0x8C91,2,{0xD8,0x86,0x00,0x00,}}, {0x8C92,2,{0xD8,0x87,0x00,0x00,}}, {0x8C93,2,{0xD8,0x88,0x00,0x00,}}, {0x8C94,2,{0xF5,0xF9,0x00,0x00,}}, {0x8C95,2,{0xD8,0x89,0x00,0x00,}}, {0x8C96,2,{0xD8,0x8A,0x00,0x00,}}, {0x8C97,2,{0xD8,0x8B,0x00,0x00,}}, {0x8C98,2,{0xF5,0xF8,0x00,0x00,}}, {0x8C99,2,{0xD8,0x8C,0x00,0x00,}}, {0x8C9A,2,{0xD8,0x8D,0x00,0x00,}}, {0x8C9B,2,{0xD8,0x8E,0x00,0x00,}}, {0x8C9C,2,{0xD8,0x8F,0x00,0x00,}}, {0x8C9D,2,{0xD8,0x90,0x00,0x00,}}, {0x8C9E,2,{0xD8,0x91,0x00,0x00,}}, {0x8C9F,2,{0xD8,0x92,0x00,0x00,}}, {0x8CA0,2,{0xD8,0x93,0x00,0x00,}}, {0x8CA1,2,{0xD8,0x94,0x00,0x00,}}, {0x8CA2,2,{0xD8,0x95,0x00,0x00,}}, {0x8CA3,2,{0xD8,0x96,0x00,0x00,}}, {0x8CA4,2,{0xD8,0x97,0x00,0x00,}}, {0x8CA5,2,{0xD8,0x98,0x00,0x00,}}, {0x8CA6,2,{0xD8,0x99,0x00,0x00,}}, {0x8CA7,2,{0xD8,0x9A,0x00,0x00,}}, {0x8CA8,2,{0xD8,0x9B,0x00,0x00,}}, {0x8CA9,2,{0xD8,0x9C,0x00,0x00,}}, {0x8CAA,2,{0xD8,0x9D,0x00,0x00,}}, {0x8CAB,2,{0xD8,0x9E,0x00,0x00,}}, {0x8CAC,2,{0xD8,0x9F,0x00,0x00,}}, {0x8CAD,2,{0xD8,0xA0,0x00,0x00,}}, {0x8CAE,2,{0xD9,0x40,0x00,0x00,}}, {0x8CAF,2,{0xD9,0x41,0x00,0x00,}}, {0x8CB0,2,{0xD9,0x42,0x00,0x00,}}, {0x8CB1,2,{0xD9,0x43,0x00,0x00,}}, {0x8CB2,2,{0xD9,0x44,0x00,0x00,}}, {0x8CB3,2,{0xD9,0x45,0x00,0x00,}}, {0x8CB4,2,{0xD9,0x46,0x00,0x00,}}, {0x8CB5,2,{0xD9,0x47,0x00,0x00,}}, {0x8CB6,2,{0xD9,0x48,0x00,0x00,}}, {0x8CB7,2,{0xD9,0x49,0x00,0x00,}}, {0x8CB8,2,{0xD9,0x4A,0x00,0x00,}}, {0x8CB9,2,{0xD9,0x4B,0x00,0x00,}}, {0x8CBA,2,{0xD9,0x4C,0x00,0x00,}}, {0x8CBB,2,{0xD9,0x4D,0x00,0x00,}}, {0x8CBC,2,{0xD9,0x4E,0x00,0x00,}}, {0x8CBD,2,{0xD9,0x4F,0x00,0x00,}}, {0x8CBE,2,{0xD9,0x50,0x00,0x00,}}, {0x8CBF,2,{0xD9,0x51,0x00,0x00,}}, {0x8CC0,2,{0xD9,0x52,0x00,0x00,}}, {0x8CC1,2,{0xD9,0x53,0x00,0x00,}}, {0x8CC2,2,{0xD9,0x54,0x00,0x00,}}, {0x8CC3,2,{0xD9,0x55,0x00,0x00,}}, {0x8CC4,2,{0xD9,0x56,0x00,0x00,}}, {0x8CC5,2,{0xD9,0x57,0x00,0x00,}}, {0x8CC6,2,{0xD9,0x58,0x00,0x00,}}, {0x8CC7,2,{0xD9,0x59,0x00,0x00,}}, {0x8CC8,2,{0xD9,0x5A,0x00,0x00,}}, {0x8CC9,2,{0xD9,0x5B,0x00,0x00,}}, {0x8CCA,2,{0xD9,0x5C,0x00,0x00,}}, {0x8CCB,2,{0xD9,0x5D,0x00,0x00,}}, {0x8CCC,2,{0xD9,0x5E,0x00,0x00,}}, {0x8CCD,2,{0xD9,0x5F,0x00,0x00,}}, {0x8CCE,2,{0xD9,0x60,0x00,0x00,}}, {0x8CCF,2,{0xD9,0x61,0x00,0x00,}}, {0x8CD0,2,{0xD9,0x62,0x00,0x00,}}, {0x8CD1,2,{0xD9,0x63,0x00,0x00,}}, {0x8CD2,2,{0xD9,0x64,0x00,0x00,}}, {0x8CD3,2,{0xD9,0x65,0x00,0x00,}}, {0x8CD4,2,{0xD9,0x66,0x00,0x00,}}, {0x8CD5,2,{0xD9,0x67,0x00,0x00,}}, {0x8CD6,2,{0xD9,0x68,0x00,0x00,}}, {0x8CD7,2,{0xD9,0x69,0x00,0x00,}}, {0x8CD8,2,{0xD9,0x6A,0x00,0x00,}}, {0x8CD9,2,{0xD9,0x6B,0x00,0x00,}}, {0x8CDA,2,{0xD9,0x6C,0x00,0x00,}}, {0x8CDB,2,{0xD9,0x6D,0x00,0x00,}}, {0x8CDC,2,{0xD9,0x6E,0x00,0x00,}}, {0x8CDD,2,{0xD9,0x6F,0x00,0x00,}}, {0x8CDE,2,{0xD9,0x70,0x00,0x00,}}, {0x8CDF,2,{0xD9,0x71,0x00,0x00,}}, {0x8CE0,2,{0xD9,0x72,0x00,0x00,}}, {0x8CE1,2,{0xD9,0x73,0x00,0x00,}}, {0x8CE2,2,{0xD9,0x74,0x00,0x00,}}, {0x8CE3,2,{0xD9,0x75,0x00,0x00,}}, {0x8CE4,2,{0xD9,0x76,0x00,0x00,}}, {0x8CE5,2,{0xD9,0x77,0x00,0x00,}}, {0x8CE6,2,{0xD9,0x78,0x00,0x00,}}, {0x8CE7,2,{0xD9,0x79,0x00,0x00,}}, {0x8CE8,2,{0xD9,0x7A,0x00,0x00,}}, {0x8CE9,2,{0xD9,0x7B,0x00,0x00,}}, {0x8CEA,2,{0xD9,0x7C,0x00,0x00,}}, {0x8CEB,2,{0xD9,0x7D,0x00,0x00,}}, {0x8CEC,2,{0xD9,0x7E,0x00,0x00,}}, {0x8CED,2,{0xD9,0x80,0x00,0x00,}}, {0x8CEE,2,{0xD9,0x81,0x00,0x00,}}, {0x8CEF,2,{0xD9,0x82,0x00,0x00,}}, {0x8CF0,2,{0xD9,0x83,0x00,0x00,}}, {0x8CF1,2,{0xD9,0x84,0x00,0x00,}}, {0x8CF2,2,{0xD9,0x85,0x00,0x00,}}, {0x8CF3,2,{0xD9,0x86,0x00,0x00,}}, {0x8CF4,2,{0xD9,0x87,0x00,0x00,}}, {0x8CF5,2,{0xD9,0x88,0x00,0x00,}}, {0x8CF6,2,{0xD9,0x89,0x00,0x00,}}, {0x8CF7,2,{0xD9,0x8A,0x00,0x00,}}, {0x8CF8,2,{0xD9,0x8B,0x00,0x00,}}, {0x8CF9,2,{0xD9,0x8C,0x00,0x00,}}, {0x8CFA,2,{0xD9,0x8D,0x00,0x00,}}, {0x8CFB,2,{0xD9,0x8E,0x00,0x00,}}, {0x8CFC,2,{0xD9,0x8F,0x00,0x00,}}, {0x8CFD,2,{0xD9,0x90,0x00,0x00,}}, {0x8CFE,2,{0xD9,0x91,0x00,0x00,}}, {0x8CFF,2,{0xD9,0x92,0x00,0x00,}}, {0x8D00,2,{0xD9,0x93,0x00,0x00,}}, {0x8D01,2,{0xD9,0x94,0x00,0x00,}}, {0x8D02,2,{0xD9,0x95,0x00,0x00,}}, {0x8D03,2,{0xD9,0x96,0x00,0x00,}}, {0x8D04,2,{0xD9,0x97,0x00,0x00,}}, {0x8D05,2,{0xD9,0x98,0x00,0x00,}}, {0x8D06,2,{0xD9,0x99,0x00,0x00,}}, {0x8D07,2,{0xD9,0x9A,0x00,0x00,}}, {0x8D08,2,{0xD9,0x9B,0x00,0x00,}}, {0x8D09,2,{0xD9,0x9C,0x00,0x00,}}, {0x8D0A,2,{0xD9,0x9D,0x00,0x00,}}, {0x8D0B,2,{0xD9,0x9E,0x00,0x00,}}, {0x8D0C,2,{0xD9,0x9F,0x00,0x00,}}, {0x8D0D,2,{0xD9,0xA0,0x00,0x00,}}, {0x8D0E,2,{0xDA,0x40,0x00,0x00,}}, {0x8D0F,2,{0xDA,0x41,0x00,0x00,}}, {0x8D10,2,{0xDA,0x42,0x00,0x00,}}, {0x8D11,2,{0xDA,0x43,0x00,0x00,}}, {0x8D12,2,{0xDA,0x44,0x00,0x00,}}, {0x8D13,2,{0xDA,0x45,0x00,0x00,}}, {0x8D14,2,{0xDA,0x46,0x00,0x00,}}, {0x8D15,2,{0xDA,0x47,0x00,0x00,}}, {0x8D16,2,{0xDA,0x48,0x00,0x00,}}, {0x8D17,2,{0xDA,0x49,0x00,0x00,}}, {0x8D18,2,{0xDA,0x4A,0x00,0x00,}}, {0x8D19,2,{0xDA,0x4B,0x00,0x00,}}, {0x8D1A,2,{0xDA,0x4C,0x00,0x00,}}, {0x8D1B,2,{0xDA,0x4D,0x00,0x00,}}, {0x8D1C,2,{0xDA,0x4E,0x00,0x00,}}, {0x8D1D,2,{0xB1,0xB4,0x00,0x00,}}, {0x8D1E,2,{0xD5,0xEA,0x00,0x00,}}, {0x8D1F,2,{0xB8,0xBA,0x00,0x00,}}, {0x8D20,2,{0xDA,0x4F,0x00,0x00,}}, {0x8D21,2,{0xB9,0xB1,0x00,0x00,}}, {0x8D22,2,{0xB2,0xC6,0x00,0x00,}}, {0x8D23,2,{0xD4,0xF0,0x00,0x00,}}, {0x8D24,2,{0xCF,0xCD,0x00,0x00,}}, {0x8D25,2,{0xB0,0xDC,0x00,0x00,}}, {0x8D26,2,{0xD5,0xCB,0x00,0x00,}}, {0x8D27,2,{0xBB,0xF5,0x00,0x00,}}, {0x8D28,2,{0xD6,0xCA,0x00,0x00,}}, {0x8D29,2,{0xB7,0xB7,0x00,0x00,}}, {0x8D2A,2,{0xCC,0xB0,0x00,0x00,}}, {0x8D2B,2,{0xC6,0xB6,0x00,0x00,}}, {0x8D2C,2,{0xB1,0xE1,0x00,0x00,}}, {0x8D2D,2,{0xB9,0xBA,0x00,0x00,}}, {0x8D2E,2,{0xD6,0xFC,0x00,0x00,}}, {0x8D2F,2,{0xB9,0xE1,0x00,0x00,}}, {0x8D30,2,{0xB7,0xA1,0x00,0x00,}}, {0x8D31,2,{0xBC,0xFA,0x00,0x00,}}, {0x8D32,2,{0xEA,0xDA,0x00,0x00,}}, {0x8D33,2,{0xEA,0xDB,0x00,0x00,}}, {0x8D34,2,{0xCC,0xF9,0x00,0x00,}}, {0x8D35,2,{0xB9,0xF3,0x00,0x00,}}, {0x8D36,2,{0xEA,0xDC,0x00,0x00,}}, {0x8D37,2,{0xB4,0xFB,0x00,0x00,}}, {0x8D38,2,{0xC3,0xB3,0x00,0x00,}}, {0x8D39,2,{0xB7,0xD1,0x00,0x00,}}, {0x8D3A,2,{0xBA,0xD8,0x00,0x00,}}, {0x8D3B,2,{0xEA,0xDD,0x00,0x00,}}, {0x8D3C,2,{0xD4,0xF4,0x00,0x00,}}, {0x8D3D,2,{0xEA,0xDE,0x00,0x00,}}, {0x8D3E,2,{0xBC,0xD6,0x00,0x00,}}, {0x8D3F,2,{0xBB,0xDF,0x00,0x00,}}, {0x8D40,2,{0xEA,0xDF,0x00,0x00,}}, {0x8D41,2,{0xC1,0xDE,0x00,0x00,}}, {0x8D42,2,{0xC2,0xB8,0x00,0x00,}}, {0x8D43,2,{0xD4,0xDF,0x00,0x00,}}, {0x8D44,2,{0xD7,0xCA,0x00,0x00,}}, {0x8D45,2,{0xEA,0xE0,0x00,0x00,}}, {0x8D46,2,{0xEA,0xE1,0x00,0x00,}}, {0x8D47,2,{0xEA,0xE4,0x00,0x00,}}, {0x8D48,2,{0xEA,0xE2,0x00,0x00,}}, {0x8D49,2,{0xEA,0xE3,0x00,0x00,}}, {0x8D4A,2,{0xC9,0xDE,0x00,0x00,}}, {0x8D4B,2,{0xB8,0xB3,0x00,0x00,}}, {0x8D4C,2,{0xB6,0xC4,0x00,0x00,}}, {0x8D4D,2,{0xEA,0xE5,0x00,0x00,}}, {0x8D4E,2,{0xCA,0xEA,0x00,0x00,}}, {0x8D4F,2,{0xC9,0xCD,0x00,0x00,}}, {0x8D50,2,{0xB4,0xCD,0x00,0x00,}}, {0x8D51,2,{0xDA,0x50,0x00,0x00,}}, {0x8D52,2,{0xDA,0x51,0x00,0x00,}}, {0x8D53,2,{0xE2,0xD9,0x00,0x00,}}, {0x8D54,2,{0xC5,0xE2,0x00,0x00,}}, {0x8D55,2,{0xEA,0xE6,0x00,0x00,}}, {0x8D56,2,{0xC0,0xB5,0x00,0x00,}}, {0x8D57,2,{0xDA,0x52,0x00,0x00,}}, {0x8D58,2,{0xD7,0xB8,0x00,0x00,}}, {0x8D59,2,{0xEA,0xE7,0x00,0x00,}}, {0x8D5A,2,{0xD7,0xAC,0x00,0x00,}}, {0x8D5B,2,{0xC8,0xFC,0x00,0x00,}}, {0x8D5C,2,{0xD8,0xD3,0x00,0x00,}}, {0x8D5D,2,{0xD8,0xCD,0x00,0x00,}}, {0x8D5E,2,{0xD4,0xDE,0x00,0x00,}}, {0x8D5F,2,{0xDA,0x53,0x00,0x00,}}, {0x8D60,2,{0xD4,0xF9,0x00,0x00,}}, {0x8D61,2,{0xC9,0xC4,0x00,0x00,}}, {0x8D62,2,{0xD3,0xAE,0x00,0x00,}}, {0x8D63,2,{0xB8,0xD3,0x00,0x00,}}, {0x8D64,2,{0xB3,0xE0,0x00,0x00,}}, {0x8D65,2,{0xDA,0x54,0x00,0x00,}}, {0x8D66,2,{0xC9,0xE2,0x00,0x00,}}, {0x8D67,2,{0xF4,0xF6,0x00,0x00,}}, {0x8D68,2,{0xDA,0x55,0x00,0x00,}}, {0x8D69,2,{0xDA,0x56,0x00,0x00,}}, {0x8D6A,2,{0xDA,0x57,0x00,0x00,}}, {0x8D6B,2,{0xBA,0xD5,0x00,0x00,}}, {0x8D6C,2,{0xDA,0x58,0x00,0x00,}}, {0x8D6D,2,{0xF4,0xF7,0x00,0x00,}}, {0x8D6E,2,{0xDA,0x59,0x00,0x00,}}, {0x8D6F,2,{0xDA,0x5A,0x00,0x00,}}, {0x8D70,2,{0xD7,0xDF,0x00,0x00,}}, {0x8D71,2,{0xDA,0x5B,0x00,0x00,}}, {0x8D72,2,{0xDA,0x5C,0x00,0x00,}}, {0x8D73,2,{0xF4,0xF1,0x00,0x00,}}, {0x8D74,2,{0xB8,0xB0,0x00,0x00,}}, {0x8D75,2,{0xD5,0xD4,0x00,0x00,}}, {0x8D76,2,{0xB8,0xCF,0x00,0x00,}}, {0x8D77,2,{0xC6,0xF0,0x00,0x00,}}, {0x8D78,2,{0xDA,0x5D,0x00,0x00,}}, {0x8D79,2,{0xDA,0x5E,0x00,0x00,}}, {0x8D7A,2,{0xDA,0x5F,0x00,0x00,}}, {0x8D7B,2,{0xDA,0x60,0x00,0x00,}}, {0x8D7C,2,{0xDA,0x61,0x00,0x00,}}, {0x8D7D,2,{0xDA,0x62,0x00,0x00,}}, {0x8D7E,2,{0xDA,0x63,0x00,0x00,}}, {0x8D7F,2,{0xDA,0x64,0x00,0x00,}}, {0x8D80,2,{0xDA,0x65,0x00,0x00,}}, {0x8D81,2,{0xB3,0xC3,0x00,0x00,}}, {0x8D82,2,{0xDA,0x66,0x00,0x00,}}, {0x8D83,2,{0xDA,0x67,0x00,0x00,}}, {0x8D84,2,{0xF4,0xF2,0x00,0x00,}}, {0x8D85,2,{0xB3,0xAC,0x00,0x00,}}, {0x8D86,2,{0xDA,0x68,0x00,0x00,}}, {0x8D87,2,{0xDA,0x69,0x00,0x00,}}, {0x8D88,2,{0xDA,0x6A,0x00,0x00,}}, {0x8D89,2,{0xDA,0x6B,0x00,0x00,}}, {0x8D8A,2,{0xD4,0xBD,0x00,0x00,}}, {0x8D8B,2,{0xC7,0xF7,0x00,0x00,}}, {0x8D8C,2,{0xDA,0x6C,0x00,0x00,}}, {0x8D8D,2,{0xDA,0x6D,0x00,0x00,}}, {0x8D8E,2,{0xDA,0x6E,0x00,0x00,}}, {0x8D8F,2,{0xDA,0x6F,0x00,0x00,}}, {0x8D90,2,{0xDA,0x70,0x00,0x00,}}, {0x8D91,2,{0xF4,0xF4,0x00,0x00,}}, {0x8D92,2,{0xDA,0x71,0x00,0x00,}}, {0x8D93,2,{0xDA,0x72,0x00,0x00,}}, {0x8D94,2,{0xF4,0xF3,0x00,0x00,}}, {0x8D95,2,{0xDA,0x73,0x00,0x00,}}, {0x8D96,2,{0xDA,0x74,0x00,0x00,}}, {0x8D97,2,{0xDA,0x75,0x00,0x00,}}, {0x8D98,2,{0xDA,0x76,0x00,0x00,}}, {0x8D99,2,{0xDA,0x77,0x00,0x00,}}, {0x8D9A,2,{0xDA,0x78,0x00,0x00,}}, {0x8D9B,2,{0xDA,0x79,0x00,0x00,}}, {0x8D9C,2,{0xDA,0x7A,0x00,0x00,}}, {0x8D9D,2,{0xDA,0x7B,0x00,0x00,}}, {0x8D9E,2,{0xDA,0x7C,0x00,0x00,}}, {0x8D9F,2,{0xCC,0xCB,0x00,0x00,}}, {0x8DA0,2,{0xDA,0x7D,0x00,0x00,}}, {0x8DA1,2,{0xDA,0x7E,0x00,0x00,}}, {0x8DA2,2,{0xDA,0x80,0x00,0x00,}}, {0x8DA3,2,{0xC8,0xA4,0x00,0x00,}}, {0x8DA4,2,{0xDA,0x81,0x00,0x00,}}, {0x8DA5,2,{0xDA,0x82,0x00,0x00,}}, {0x8DA6,2,{0xDA,0x83,0x00,0x00,}}, {0x8DA7,2,{0xDA,0x84,0x00,0x00,}}, {0x8DA8,2,{0xDA,0x85,0x00,0x00,}}, {0x8DA9,2,{0xDA,0x86,0x00,0x00,}}, {0x8DAA,2,{0xDA,0x87,0x00,0x00,}}, {0x8DAB,2,{0xDA,0x88,0x00,0x00,}}, {0x8DAC,2,{0xDA,0x89,0x00,0x00,}}, {0x8DAD,2,{0xDA,0x8A,0x00,0x00,}}, {0x8DAE,2,{0xDA,0x8B,0x00,0x00,}}, {0x8DAF,2,{0xDA,0x8C,0x00,0x00,}}, {0x8DB0,2,{0xDA,0x8D,0x00,0x00,}}, {0x8DB1,2,{0xF4,0xF5,0x00,0x00,}}, {0x8DB2,2,{0xDA,0x8E,0x00,0x00,}}, {0x8DB3,2,{0xD7,0xE3,0x00,0x00,}}, {0x8DB4,2,{0xC5,0xBF,0x00,0x00,}}, {0x8DB5,2,{0xF5,0xC0,0x00,0x00,}}, {0x8DB6,2,{0xDA,0x8F,0x00,0x00,}}, {0x8DB7,2,{0xDA,0x90,0x00,0x00,}}, {0x8DB8,2,{0xF5,0xBB,0x00,0x00,}}, {0x8DB9,2,{0xDA,0x91,0x00,0x00,}}, {0x8DBA,2,{0xF5,0xC3,0x00,0x00,}}, {0x8DBB,2,{0xDA,0x92,0x00,0x00,}}, {0x8DBC,2,{0xF5,0xC2,0x00,0x00,}}, {0x8DBD,2,{0xDA,0x93,0x00,0x00,}}, {0x8DBE,2,{0xD6,0xBA,0x00,0x00,}}, {0x8DBF,2,{0xF5,0xC1,0x00,0x00,}}, {0x8DC0,2,{0xDA,0x94,0x00,0x00,}}, {0x8DC1,2,{0xDA,0x95,0x00,0x00,}}, {0x8DC2,2,{0xDA,0x96,0x00,0x00,}}, {0x8DC3,2,{0xD4,0xBE,0x00,0x00,}}, {0x8DC4,2,{0xF5,0xC4,0x00,0x00,}}, {0x8DC5,2,{0xDA,0x97,0x00,0x00,}}, {0x8DC6,2,{0xF5,0xCC,0x00,0x00,}}, {0x8DC7,2,{0xDA,0x98,0x00,0x00,}}, {0x8DC8,2,{0xDA,0x99,0x00,0x00,}}, {0x8DC9,2,{0xDA,0x9A,0x00,0x00,}}, {0x8DCA,2,{0xDA,0x9B,0x00,0x00,}}, {0x8DCB,2,{0xB0,0xCF,0x00,0x00,}}, {0x8DCC,2,{0xB5,0xF8,0x00,0x00,}}, {0x8DCD,2,{0xDA,0x9C,0x00,0x00,}}, {0x8DCE,2,{0xF5,0xC9,0x00,0x00,}}, {0x8DCF,2,{0xF5,0xCA,0x00,0x00,}}, {0x8DD0,2,{0xDA,0x9D,0x00,0x00,}}, {0x8DD1,2,{0xC5,0xDC,0x00,0x00,}}, {0x8DD2,2,{0xDA,0x9E,0x00,0x00,}}, {0x8DD3,2,{0xDA,0x9F,0x00,0x00,}}, {0x8DD4,2,{0xDA,0xA0,0x00,0x00,}}, {0x8DD5,2,{0xDB,0x40,0x00,0x00,}}, {0x8DD6,2,{0xF5,0xC5,0x00,0x00,}}, {0x8DD7,2,{0xF5,0xC6,0x00,0x00,}}, {0x8DD8,2,{0xDB,0x41,0x00,0x00,}}, {0x8DD9,2,{0xDB,0x42,0x00,0x00,}}, {0x8DDA,2,{0xF5,0xC7,0x00,0x00,}}, {0x8DDB,2,{0xF5,0xCB,0x00,0x00,}}, {0x8DDC,2,{0xDB,0x43,0x00,0x00,}}, {0x8DDD,2,{0xBE,0xE0,0x00,0x00,}}, {0x8DDE,2,{0xF5,0xC8,0x00,0x00,}}, {0x8DDF,2,{0xB8,0xFA,0x00,0x00,}}, {0x8DE0,2,{0xDB,0x44,0x00,0x00,}}, {0x8DE1,2,{0xDB,0x45,0x00,0x00,}}, {0x8DE2,2,{0xDB,0x46,0x00,0x00,}}, {0x8DE3,2,{0xF5,0xD0,0x00,0x00,}}, {0x8DE4,2,{0xF5,0xD3,0x00,0x00,}}, {0x8DE5,2,{0xDB,0x47,0x00,0x00,}}, {0x8DE6,2,{0xDB,0x48,0x00,0x00,}}, {0x8DE7,2,{0xDB,0x49,0x00,0x00,}}, {0x8DE8,2,{0xBF,0xE7,0x00,0x00,}}, {0x8DE9,2,{0xDB,0x4A,0x00,0x00,}}, {0x8DEA,2,{0xB9,0xF2,0x00,0x00,}}, {0x8DEB,2,{0xF5,0xBC,0x00,0x00,}}, {0x8DEC,2,{0xF5,0xCD,0x00,0x00,}}, {0x8DED,2,{0xDB,0x4B,0x00,0x00,}}, {0x8DEE,2,{0xDB,0x4C,0x00,0x00,}}, {0x8DEF,2,{0xC2,0xB7,0x00,0x00,}}, {0x8DF0,2,{0xDB,0x4D,0x00,0x00,}}, {0x8DF1,2,{0xDB,0x4E,0x00,0x00,}}, {0x8DF2,2,{0xDB,0x4F,0x00,0x00,}}, {0x8DF3,2,{0xCC,0xF8,0x00,0x00,}}, {0x8DF4,2,{0xDB,0x50,0x00,0x00,}}, {0x8DF5,2,{0xBC,0xF9,0x00,0x00,}}, {0x8DF6,2,{0xDB,0x51,0x00,0x00,}}, {0x8DF7,2,{0xF5,0xCE,0x00,0x00,}}, {0x8DF8,2,{0xF5,0xCF,0x00,0x00,}}, {0x8DF9,2,{0xF5,0xD1,0x00,0x00,}}, {0x8DFA,2,{0xB6,0xE5,0x00,0x00,}}, {0x8DFB,2,{0xF5,0xD2,0x00,0x00,}}, {0x8DFC,2,{0xDB,0x52,0x00,0x00,}}, {0x8DFD,2,{0xF5,0xD5,0x00,0x00,}}, {0x8DFE,2,{0xDB,0x53,0x00,0x00,}}, {0x8DFF,2,{0xDB,0x54,0x00,0x00,}}, {0x8E00,2,{0xDB,0x55,0x00,0x00,}}, {0x8E01,2,{0xDB,0x56,0x00,0x00,}}, {0x8E02,2,{0xDB,0x57,0x00,0x00,}}, {0x8E03,2,{0xDB,0x58,0x00,0x00,}}, {0x8E04,2,{0xDB,0x59,0x00,0x00,}}, {0x8E05,2,{0xF5,0xBD,0x00,0x00,}}, {0x8E06,2,{0xDB,0x5A,0x00,0x00,}}, {0x8E07,2,{0xDB,0x5B,0x00,0x00,}}, {0x8E08,2,{0xDB,0x5C,0x00,0x00,}}, {0x8E09,2,{0xF5,0xD4,0x00,0x00,}}, {0x8E0A,2,{0xD3,0xBB,0x00,0x00,}}, {0x8E0B,2,{0xDB,0x5D,0x00,0x00,}}, {0x8E0C,2,{0xB3,0xEC,0x00,0x00,}}, {0x8E0D,2,{0xDB,0x5E,0x00,0x00,}}, {0x8E0E,2,{0xDB,0x5F,0x00,0x00,}}, {0x8E0F,2,{0xCC,0xA4,0x00,0x00,}}, {0x8E10,2,{0xDB,0x60,0x00,0x00,}}, {0x8E11,2,{0xDB,0x61,0x00,0x00,}}, {0x8E12,2,{0xDB,0x62,0x00,0x00,}}, {0x8E13,2,{0xDB,0x63,0x00,0x00,}}, {0x8E14,2,{0xF5,0xD6,0x00,0x00,}}, {0x8E15,2,{0xDB,0x64,0x00,0x00,}}, {0x8E16,2,{0xDB,0x65,0x00,0x00,}}, {0x8E17,2,{0xDB,0x66,0x00,0x00,}}, {0x8E18,2,{0xDB,0x67,0x00,0x00,}}, {0x8E19,2,{0xDB,0x68,0x00,0x00,}}, {0x8E1A,2,{0xDB,0x69,0x00,0x00,}}, {0x8E1B,2,{0xDB,0x6A,0x00,0x00,}}, {0x8E1C,2,{0xDB,0x6B,0x00,0x00,}}, {0x8E1D,2,{0xF5,0xD7,0x00,0x00,}}, {0x8E1E,2,{0xBE,0xE1,0x00,0x00,}}, {0x8E1F,2,{0xF5,0xD8,0x00,0x00,}}, {0x8E20,2,{0xDB,0x6C,0x00,0x00,}}, {0x8E21,2,{0xDB,0x6D,0x00,0x00,}}, {0x8E22,2,{0xCC,0xDF,0x00,0x00,}}, {0x8E23,2,{0xF5,0xDB,0x00,0x00,}}, {0x8E24,2,{0xDB,0x6E,0x00,0x00,}}, {0x8E25,2,{0xDB,0x6F,0x00,0x00,}}, {0x8E26,2,{0xDB,0x70,0x00,0x00,}}, {0x8E27,2,{0xDB,0x71,0x00,0x00,}}, {0x8E28,2,{0xDB,0x72,0x00,0x00,}}, {0x8E29,2,{0xB2,0xC8,0x00,0x00,}}, {0x8E2A,2,{0xD7,0xD9,0x00,0x00,}}, {0x8E2B,2,{0xDB,0x73,0x00,0x00,}}, {0x8E2C,2,{0xF5,0xD9,0x00,0x00,}}, {0x8E2D,2,{0xDB,0x74,0x00,0x00,}}, {0x8E2E,2,{0xF5,0xDA,0x00,0x00,}}, {0x8E2F,2,{0xF5,0xDC,0x00,0x00,}}, {0x8E30,2,{0xDB,0x75,0x00,0x00,}}, {0x8E31,2,{0xF5,0xE2,0x00,0x00,}}, {0x8E32,2,{0xDB,0x76,0x00,0x00,}}, {0x8E33,2,{0xDB,0x77,0x00,0x00,}}, {0x8E34,2,{0xDB,0x78,0x00,0x00,}}, {0x8E35,2,{0xF5,0xE0,0x00,0x00,}}, {0x8E36,2,{0xDB,0x79,0x00,0x00,}}, {0x8E37,2,{0xDB,0x7A,0x00,0x00,}}, {0x8E38,2,{0xDB,0x7B,0x00,0x00,}}, {0x8E39,2,{0xF5,0xDF,0x00,0x00,}}, {0x8E3A,2,{0xF5,0xDD,0x00,0x00,}}, {0x8E3B,2,{0xDB,0x7C,0x00,0x00,}}, {0x8E3C,2,{0xDB,0x7D,0x00,0x00,}}, {0x8E3D,2,{0xF5,0xE1,0x00,0x00,}}, {0x8E3E,2,{0xDB,0x7E,0x00,0x00,}}, {0x8E3F,2,{0xDB,0x80,0x00,0x00,}}, {0x8E40,2,{0xF5,0xDE,0x00,0x00,}}, {0x8E41,2,{0xF5,0xE4,0x00,0x00,}}, {0x8E42,2,{0xF5,0xE5,0x00,0x00,}}, {0x8E43,2,{0xDB,0x81,0x00,0x00,}}, {0x8E44,2,{0xCC,0xE3,0x00,0x00,}}, {0x8E45,2,{0xDB,0x82,0x00,0x00,}}, {0x8E46,2,{0xDB,0x83,0x00,0x00,}}, {0x8E47,2,{0xE5,0xBF,0x00,0x00,}}, {0x8E48,2,{0xB5,0xB8,0x00,0x00,}}, {0x8E49,2,{0xF5,0xE3,0x00,0x00,}}, {0x8E4A,2,{0xF5,0xE8,0x00,0x00,}}, {0x8E4B,2,{0xCC,0xA3,0x00,0x00,}}, {0x8E4C,2,{0xDB,0x84,0x00,0x00,}}, {0x8E4D,2,{0xDB,0x85,0x00,0x00,}}, {0x8E4E,2,{0xDB,0x86,0x00,0x00,}}, {0x8E4F,2,{0xDB,0x87,0x00,0x00,}}, {0x8E50,2,{0xDB,0x88,0x00,0x00,}}, {0x8E51,2,{0xF5,0xE6,0x00,0x00,}}, {0x8E52,2,{0xF5,0xE7,0x00,0x00,}}, {0x8E53,2,{0xDB,0x89,0x00,0x00,}}, {0x8E54,2,{0xDB,0x8A,0x00,0x00,}}, {0x8E55,2,{0xDB,0x8B,0x00,0x00,}}, {0x8E56,2,{0xDB,0x8C,0x00,0x00,}}, {0x8E57,2,{0xDB,0x8D,0x00,0x00,}}, {0x8E58,2,{0xDB,0x8E,0x00,0x00,}}, {0x8E59,2,{0xF5,0xBE,0x00,0x00,}}, {0x8E5A,2,{0xDB,0x8F,0x00,0x00,}}, {0x8E5B,2,{0xDB,0x90,0x00,0x00,}}, {0x8E5C,2,{0xDB,0x91,0x00,0x00,}}, {0x8E5D,2,{0xDB,0x92,0x00,0x00,}}, {0x8E5E,2,{0xDB,0x93,0x00,0x00,}}, {0x8E5F,2,{0xDB,0x94,0x00,0x00,}}, {0x8E60,2,{0xDB,0x95,0x00,0x00,}}, {0x8E61,2,{0xDB,0x96,0x00,0x00,}}, {0x8E62,2,{0xDB,0x97,0x00,0x00,}}, {0x8E63,2,{0xDB,0x98,0x00,0x00,}}, {0x8E64,2,{0xDB,0x99,0x00,0x00,}}, {0x8E65,2,{0xDB,0x9A,0x00,0x00,}}, {0x8E66,2,{0xB1,0xC4,0x00,0x00,}}, {0x8E67,2,{0xDB,0x9B,0x00,0x00,}}, {0x8E68,2,{0xDB,0x9C,0x00,0x00,}}, {0x8E69,2,{0xF5,0xBF,0x00,0x00,}}, {0x8E6A,2,{0xDB,0x9D,0x00,0x00,}}, {0x8E6B,2,{0xDB,0x9E,0x00,0x00,}}, {0x8E6C,2,{0xB5,0xC5,0x00,0x00,}}, {0x8E6D,2,{0xB2,0xE4,0x00,0x00,}}, {0x8E6E,2,{0xDB,0x9F,0x00,0x00,}}, {0x8E6F,2,{0xF5,0xEC,0x00,0x00,}}, {0x8E70,2,{0xF5,0xE9,0x00,0x00,}}, {0x8E71,2,{0xDB,0xA0,0x00,0x00,}}, {0x8E72,2,{0xB6,0xD7,0x00,0x00,}}, {0x8E73,2,{0xDC,0x40,0x00,0x00,}}, {0x8E74,2,{0xF5,0xED,0x00,0x00,}}, {0x8E75,2,{0xDC,0x41,0x00,0x00,}}, {0x8E76,2,{0xF5,0xEA,0x00,0x00,}}, {0x8E77,2,{0xDC,0x42,0x00,0x00,}}, {0x8E78,2,{0xDC,0x43,0x00,0x00,}}, {0x8E79,2,{0xDC,0x44,0x00,0x00,}}, {0x8E7A,2,{0xDC,0x45,0x00,0x00,}}, {0x8E7B,2,{0xDC,0x46,0x00,0x00,}}, {0x8E7C,2,{0xF5,0xEB,0x00,0x00,}}, {0x8E7D,2,{0xDC,0x47,0x00,0x00,}}, {0x8E7E,2,{0xDC,0x48,0x00,0x00,}}, {0x8E7F,2,{0xB4,0xDA,0x00,0x00,}}, {0x8E80,2,{0xDC,0x49,0x00,0x00,}}, {0x8E81,2,{0xD4,0xEA,0x00,0x00,}}, {0x8E82,2,{0xDC,0x4A,0x00,0x00,}}, {0x8E83,2,{0xDC,0x4B,0x00,0x00,}}, {0x8E84,2,{0xDC,0x4C,0x00,0x00,}}, {0x8E85,2,{0xF5,0xEE,0x00,0x00,}}, {0x8E86,2,{0xDC,0x4D,0x00,0x00,}}, {0x8E87,2,{0xB3,0xF9,0x00,0x00,}}, {0x8E88,2,{0xDC,0x4E,0x00,0x00,}}, {0x8E89,2,{0xDC,0x4F,0x00,0x00,}}, {0x8E8A,2,{0xDC,0x50,0x00,0x00,}}, {0x8E8B,2,{0xDC,0x51,0x00,0x00,}}, {0x8E8C,2,{0xDC,0x52,0x00,0x00,}}, {0x8E8D,2,{0xDC,0x53,0x00,0x00,}}, {0x8E8E,2,{0xDC,0x54,0x00,0x00,}}, {0x8E8F,2,{0xF5,0xEF,0x00,0x00,}}, {0x8E90,2,{0xF5,0xF1,0x00,0x00,}}, {0x8E91,2,{0xDC,0x55,0x00,0x00,}}, {0x8E92,2,{0xDC,0x56,0x00,0x00,}}, {0x8E93,2,{0xDC,0x57,0x00,0x00,}}, {0x8E94,2,{0xF5,0xF0,0x00,0x00,}}, {0x8E95,2,{0xDC,0x58,0x00,0x00,}}, {0x8E96,2,{0xDC,0x59,0x00,0x00,}}, {0x8E97,2,{0xDC,0x5A,0x00,0x00,}}, {0x8E98,2,{0xDC,0x5B,0x00,0x00,}}, {0x8E99,2,{0xDC,0x5C,0x00,0x00,}}, {0x8E9A,2,{0xDC,0x5D,0x00,0x00,}}, {0x8E9B,2,{0xDC,0x5E,0x00,0x00,}}, {0x8E9C,2,{0xF5,0xF2,0x00,0x00,}}, {0x8E9D,2,{0xDC,0x5F,0x00,0x00,}}, {0x8E9E,2,{0xF5,0xF3,0x00,0x00,}}, {0x8E9F,2,{0xDC,0x60,0x00,0x00,}}, {0x8EA0,2,{0xDC,0x61,0x00,0x00,}}, {0x8EA1,2,{0xDC,0x62,0x00,0x00,}}, {0x8EA2,2,{0xDC,0x63,0x00,0x00,}}, {0x8EA3,2,{0xDC,0x64,0x00,0x00,}}, {0x8EA4,2,{0xDC,0x65,0x00,0x00,}}, {0x8EA5,2,{0xDC,0x66,0x00,0x00,}}, {0x8EA6,2,{0xDC,0x67,0x00,0x00,}}, {0x8EA7,2,{0xDC,0x68,0x00,0x00,}}, {0x8EA8,2,{0xDC,0x69,0x00,0x00,}}, {0x8EA9,2,{0xDC,0x6A,0x00,0x00,}}, {0x8EAA,2,{0xDC,0x6B,0x00,0x00,}}, {0x8EAB,2,{0xC9,0xED,0x00,0x00,}}, {0x8EAC,2,{0xB9,0xAA,0x00,0x00,}}, {0x8EAD,2,{0xDC,0x6C,0x00,0x00,}}, {0x8EAE,2,{0xDC,0x6D,0x00,0x00,}}, {0x8EAF,2,{0xC7,0xFB,0x00,0x00,}}, {0x8EB0,2,{0xDC,0x6E,0x00,0x00,}}, {0x8EB1,2,{0xDC,0x6F,0x00,0x00,}}, {0x8EB2,2,{0xB6,0xE3,0x00,0x00,}}, {0x8EB3,2,{0xDC,0x70,0x00,0x00,}}, {0x8EB4,2,{0xDC,0x71,0x00,0x00,}}, {0x8EB5,2,{0xDC,0x72,0x00,0x00,}}, {0x8EB6,2,{0xDC,0x73,0x00,0x00,}}, {0x8EB7,2,{0xDC,0x74,0x00,0x00,}}, {0x8EB8,2,{0xDC,0x75,0x00,0x00,}}, {0x8EB9,2,{0xDC,0x76,0x00,0x00,}}, {0x8EBA,2,{0xCC,0xC9,0x00,0x00,}}, {0x8EBB,2,{0xDC,0x77,0x00,0x00,}}, {0x8EBC,2,{0xDC,0x78,0x00,0x00,}}, {0x8EBD,2,{0xDC,0x79,0x00,0x00,}}, {0x8EBE,2,{0xDC,0x7A,0x00,0x00,}}, {0x8EBF,2,{0xDC,0x7B,0x00,0x00,}}, {0x8EC0,2,{0xDC,0x7C,0x00,0x00,}}, {0x8EC1,2,{0xDC,0x7D,0x00,0x00,}}, {0x8EC2,2,{0xDC,0x7E,0x00,0x00,}}, {0x8EC3,2,{0xDC,0x80,0x00,0x00,}}, {0x8EC4,2,{0xDC,0x81,0x00,0x00,}}, {0x8EC5,2,{0xDC,0x82,0x00,0x00,}}, {0x8EC6,2,{0xDC,0x83,0x00,0x00,}}, {0x8EC7,2,{0xDC,0x84,0x00,0x00,}}, {0x8EC8,2,{0xDC,0x85,0x00,0x00,}}, {0x8EC9,2,{0xDC,0x86,0x00,0x00,}}, {0x8ECA,2,{0xDC,0x87,0x00,0x00,}}, {0x8ECB,2,{0xDC,0x88,0x00,0x00,}}, {0x8ECC,2,{0xDC,0x89,0x00,0x00,}}, {0x8ECD,2,{0xDC,0x8A,0x00,0x00,}}, {0x8ECE,2,{0xEA,0xA6,0x00,0x00,}}, {0x8ECF,2,{0xDC,0x8B,0x00,0x00,}}, {0x8ED0,2,{0xDC,0x8C,0x00,0x00,}}, {0x8ED1,2,{0xDC,0x8D,0x00,0x00,}}, {0x8ED2,2,{0xDC,0x8E,0x00,0x00,}}, {0x8ED3,2,{0xDC,0x8F,0x00,0x00,}}, {0x8ED4,2,{0xDC,0x90,0x00,0x00,}}, {0x8ED5,2,{0xDC,0x91,0x00,0x00,}}, {0x8ED6,2,{0xDC,0x92,0x00,0x00,}}, {0x8ED7,2,{0xDC,0x93,0x00,0x00,}}, {0x8ED8,2,{0xDC,0x94,0x00,0x00,}}, {0x8ED9,2,{0xDC,0x95,0x00,0x00,}}, {0x8EDA,2,{0xDC,0x96,0x00,0x00,}}, {0x8EDB,2,{0xDC,0x97,0x00,0x00,}}, {0x8EDC,2,{0xDC,0x98,0x00,0x00,}}, {0x8EDD,2,{0xDC,0x99,0x00,0x00,}}, {0x8EDE,2,{0xDC,0x9A,0x00,0x00,}}, {0x8EDF,2,{0xDC,0x9B,0x00,0x00,}}, {0x8EE0,2,{0xDC,0x9C,0x00,0x00,}}, {0x8EE1,2,{0xDC,0x9D,0x00,0x00,}}, {0x8EE2,2,{0xDC,0x9E,0x00,0x00,}}, {0x8EE3,2,{0xDC,0x9F,0x00,0x00,}}, {0x8EE4,2,{0xDC,0xA0,0x00,0x00,}}, {0x8EE5,2,{0xDD,0x40,0x00,0x00,}}, {0x8EE6,2,{0xDD,0x41,0x00,0x00,}}, {0x8EE7,2,{0xDD,0x42,0x00,0x00,}}, {0x8EE8,2,{0xDD,0x43,0x00,0x00,}}, {0x8EE9,2,{0xDD,0x44,0x00,0x00,}}, {0x8EEA,2,{0xDD,0x45,0x00,0x00,}}, {0x8EEB,2,{0xDD,0x46,0x00,0x00,}}, {0x8EEC,2,{0xDD,0x47,0x00,0x00,}}, {0x8EED,2,{0xDD,0x48,0x00,0x00,}}, {0x8EEE,2,{0xDD,0x49,0x00,0x00,}}, {0x8EEF,2,{0xDD,0x4A,0x00,0x00,}}, {0x8EF0,2,{0xDD,0x4B,0x00,0x00,}}, {0x8EF1,2,{0xDD,0x4C,0x00,0x00,}}, {0x8EF2,2,{0xDD,0x4D,0x00,0x00,}}, {0x8EF3,2,{0xDD,0x4E,0x00,0x00,}}, {0x8EF4,2,{0xDD,0x4F,0x00,0x00,}}, {0x8EF5,2,{0xDD,0x50,0x00,0x00,}}, {0x8EF6,2,{0xDD,0x51,0x00,0x00,}}, {0x8EF7,2,{0xDD,0x52,0x00,0x00,}}, {0x8EF8,2,{0xDD,0x53,0x00,0x00,}}, {0x8EF9,2,{0xDD,0x54,0x00,0x00,}}, {0x8EFA,2,{0xDD,0x55,0x00,0x00,}}, {0x8EFB,2,{0xDD,0x56,0x00,0x00,}}, {0x8EFC,2,{0xDD,0x57,0x00,0x00,}}, {0x8EFD,2,{0xDD,0x58,0x00,0x00,}}, {0x8EFE,2,{0xDD,0x59,0x00,0x00,}}, {0x8EFF,2,{0xDD,0x5A,0x00,0x00,}}, {0x8F00,2,{0xDD,0x5B,0x00,0x00,}}, {0x8F01,2,{0xDD,0x5C,0x00,0x00,}}, {0x8F02,2,{0xDD,0x5D,0x00,0x00,}}, {0x8F03,2,{0xDD,0x5E,0x00,0x00,}}, {0x8F04,2,{0xDD,0x5F,0x00,0x00,}}, {0x8F05,2,{0xDD,0x60,0x00,0x00,}}, {0x8F06,2,{0xDD,0x61,0x00,0x00,}}, {0x8F07,2,{0xDD,0x62,0x00,0x00,}}, {0x8F08,2,{0xDD,0x63,0x00,0x00,}}, {0x8F09,2,{0xDD,0x64,0x00,0x00,}}, {0x8F0A,2,{0xDD,0x65,0x00,0x00,}}, {0x8F0B,2,{0xDD,0x66,0x00,0x00,}}, {0x8F0C,2,{0xDD,0x67,0x00,0x00,}}, {0x8F0D,2,{0xDD,0x68,0x00,0x00,}}, {0x8F0E,2,{0xDD,0x69,0x00,0x00,}}, {0x8F0F,2,{0xDD,0x6A,0x00,0x00,}}, {0x8F10,2,{0xDD,0x6B,0x00,0x00,}}, {0x8F11,2,{0xDD,0x6C,0x00,0x00,}}, {0x8F12,2,{0xDD,0x6D,0x00,0x00,}}, {0x8F13,2,{0xDD,0x6E,0x00,0x00,}}, {0x8F14,2,{0xDD,0x6F,0x00,0x00,}}, {0x8F15,2,{0xDD,0x70,0x00,0x00,}}, {0x8F16,2,{0xDD,0x71,0x00,0x00,}}, {0x8F17,2,{0xDD,0x72,0x00,0x00,}}, {0x8F18,2,{0xDD,0x73,0x00,0x00,}}, {0x8F19,2,{0xDD,0x74,0x00,0x00,}}, {0x8F1A,2,{0xDD,0x75,0x00,0x00,}}, {0x8F1B,2,{0xDD,0x76,0x00,0x00,}}, {0x8F1C,2,{0xDD,0x77,0x00,0x00,}}, {0x8F1D,2,{0xDD,0x78,0x00,0x00,}}, {0x8F1E,2,{0xDD,0x79,0x00,0x00,}}, {0x8F1F,2,{0xDD,0x7A,0x00,0x00,}}, {0x8F20,2,{0xDD,0x7B,0x00,0x00,}}, {0x8F21,2,{0xDD,0x7C,0x00,0x00,}}, {0x8F22,2,{0xDD,0x7D,0x00,0x00,}}, {0x8F23,2,{0xDD,0x7E,0x00,0x00,}}, {0x8F24,2,{0xDD,0x80,0x00,0x00,}}, {0x8F25,2,{0xDD,0x81,0x00,0x00,}}, {0x8F26,2,{0xDD,0x82,0x00,0x00,}}, {0x8F27,2,{0xDD,0x83,0x00,0x00,}}, {0x8F28,2,{0xDD,0x84,0x00,0x00,}}, {0x8F29,2,{0xDD,0x85,0x00,0x00,}}, {0x8F2A,2,{0xDD,0x86,0x00,0x00,}}, {0x8F2B,2,{0xDD,0x87,0x00,0x00,}}, {0x8F2C,2,{0xDD,0x88,0x00,0x00,}}, {0x8F2D,2,{0xDD,0x89,0x00,0x00,}}, {0x8F2E,2,{0xDD,0x8A,0x00,0x00,}}, {0x8F2F,2,{0xDD,0x8B,0x00,0x00,}}, {0x8F30,2,{0xDD,0x8C,0x00,0x00,}}, {0x8F31,2,{0xDD,0x8D,0x00,0x00,}}, {0x8F32,2,{0xDD,0x8E,0x00,0x00,}}, {0x8F33,2,{0xDD,0x8F,0x00,0x00,}}, {0x8F34,2,{0xDD,0x90,0x00,0x00,}}, {0x8F35,2,{0xDD,0x91,0x00,0x00,}}, {0x8F36,2,{0xDD,0x92,0x00,0x00,}}, {0x8F37,2,{0xDD,0x93,0x00,0x00,}}, {0x8F38,2,{0xDD,0x94,0x00,0x00,}}, {0x8F39,2,{0xDD,0x95,0x00,0x00,}}, {0x8F3A,2,{0xDD,0x96,0x00,0x00,}}, {0x8F3B,2,{0xDD,0x97,0x00,0x00,}}, {0x8F3C,2,{0xDD,0x98,0x00,0x00,}}, {0x8F3D,2,{0xDD,0x99,0x00,0x00,}}, {0x8F3E,2,{0xDD,0x9A,0x00,0x00,}}, {0x8F3F,2,{0xDD,0x9B,0x00,0x00,}}, {0x8F40,2,{0xDD,0x9C,0x00,0x00,}}, {0x8F41,2,{0xDD,0x9D,0x00,0x00,}}, {0x8F42,2,{0xDD,0x9E,0x00,0x00,}}, {0x8F43,2,{0xDD,0x9F,0x00,0x00,}}, {0x8F44,2,{0xDD,0xA0,0x00,0x00,}}, {0x8F45,2,{0xDE,0x40,0x00,0x00,}}, {0x8F46,2,{0xDE,0x41,0x00,0x00,}}, {0x8F47,2,{0xDE,0x42,0x00,0x00,}}, {0x8F48,2,{0xDE,0x43,0x00,0x00,}}, {0x8F49,2,{0xDE,0x44,0x00,0x00,}}, {0x8F4A,2,{0xDE,0x45,0x00,0x00,}}, {0x8F4B,2,{0xDE,0x46,0x00,0x00,}}, {0x8F4C,2,{0xDE,0x47,0x00,0x00,}}, {0x8F4D,2,{0xDE,0x48,0x00,0x00,}}, {0x8F4E,2,{0xDE,0x49,0x00,0x00,}}, {0x8F4F,2,{0xDE,0x4A,0x00,0x00,}}, {0x8F50,2,{0xDE,0x4B,0x00,0x00,}}, {0x8F51,2,{0xDE,0x4C,0x00,0x00,}}, {0x8F52,2,{0xDE,0x4D,0x00,0x00,}}, {0x8F53,2,{0xDE,0x4E,0x00,0x00,}}, {0x8F54,2,{0xDE,0x4F,0x00,0x00,}}, {0x8F55,2,{0xDE,0x50,0x00,0x00,}}, {0x8F56,2,{0xDE,0x51,0x00,0x00,}}, {0x8F57,2,{0xDE,0x52,0x00,0x00,}}, {0x8F58,2,{0xDE,0x53,0x00,0x00,}}, {0x8F59,2,{0xDE,0x54,0x00,0x00,}}, {0x8F5A,2,{0xDE,0x55,0x00,0x00,}}, {0x8F5B,2,{0xDE,0x56,0x00,0x00,}}, {0x8F5C,2,{0xDE,0x57,0x00,0x00,}}, {0x8F5D,2,{0xDE,0x58,0x00,0x00,}}, {0x8F5E,2,{0xDE,0x59,0x00,0x00,}}, {0x8F5F,2,{0xDE,0x5A,0x00,0x00,}}, {0x8F60,2,{0xDE,0x5B,0x00,0x00,}}, {0x8F61,2,{0xDE,0x5C,0x00,0x00,}}, {0x8F62,2,{0xDE,0x5D,0x00,0x00,}}, {0x8F63,2,{0xDE,0x5E,0x00,0x00,}}, {0x8F64,2,{0xDE,0x5F,0x00,0x00,}}, {0x8F65,2,{0xDE,0x60,0x00,0x00,}}, {0x8F66,2,{0xB3,0xB5,0x00,0x00,}}, {0x8F67,2,{0xD4,0xFE,0x00,0x00,}}, {0x8F68,2,{0xB9,0xEC,0x00,0x00,}}, {0x8F69,2,{0xD0,0xF9,0x00,0x00,}}, {0x8F6A,2,{0xDE,0x61,0x00,0x00,}}, {0x8F6B,2,{0xE9,0xED,0x00,0x00,}}, {0x8F6C,2,{0xD7,0xAA,0x00,0x00,}}, {0x8F6D,2,{0xE9,0xEE,0x00,0x00,}}, {0x8F6E,2,{0xC2,0xD6,0x00,0x00,}}, {0x8F6F,2,{0xC8,0xED,0x00,0x00,}}, {0x8F70,2,{0xBA,0xE4,0x00,0x00,}}, {0x8F71,2,{0xE9,0xEF,0x00,0x00,}}, {0x8F72,2,{0xE9,0xF0,0x00,0x00,}}, {0x8F73,2,{0xE9,0xF1,0x00,0x00,}}, {0x8F74,2,{0xD6,0xE1,0x00,0x00,}}, {0x8F75,2,{0xE9,0xF2,0x00,0x00,}}, {0x8F76,2,{0xE9,0xF3,0x00,0x00,}}, {0x8F77,2,{0xE9,0xF5,0x00,0x00,}}, {0x8F78,2,{0xE9,0xF4,0x00,0x00,}}, {0x8F79,2,{0xE9,0xF6,0x00,0x00,}}, {0x8F7A,2,{0xE9,0xF7,0x00,0x00,}}, {0x8F7B,2,{0xC7,0xE1,0x00,0x00,}}, {0x8F7C,2,{0xE9,0xF8,0x00,0x00,}}, {0x8F7D,2,{0xD4,0xD8,0x00,0x00,}}, {0x8F7E,2,{0xE9,0xF9,0x00,0x00,}}, {0x8F7F,2,{0xBD,0xCE,0x00,0x00,}}, {0x8F80,2,{0xDE,0x62,0x00,0x00,}}, {0x8F81,2,{0xE9,0xFA,0x00,0x00,}}, {0x8F82,2,{0xE9,0xFB,0x00,0x00,}}, {0x8F83,2,{0xBD,0xCF,0x00,0x00,}}, {0x8F84,2,{0xE9,0xFC,0x00,0x00,}}, {0x8F85,2,{0xB8,0xA8,0x00,0x00,}}, {0x8F86,2,{0xC1,0xBE,0x00,0x00,}}, {0x8F87,2,{0xE9,0xFD,0x00,0x00,}}, {0x8F88,2,{0xB1,0xB2,0x00,0x00,}}, {0x8F89,2,{0xBB,0xD4,0x00,0x00,}}, {0x8F8A,2,{0xB9,0xF5,0x00,0x00,}}, {0x8F8B,2,{0xE9,0xFE,0x00,0x00,}}, {0x8F8C,2,{0xDE,0x63,0x00,0x00,}}, {0x8F8D,2,{0xEA,0xA1,0x00,0x00,}}, {0x8F8E,2,{0xEA,0xA2,0x00,0x00,}}, {0x8F8F,2,{0xEA,0xA3,0x00,0x00,}}, {0x8F90,2,{0xB7,0xF8,0x00,0x00,}}, {0x8F91,2,{0xBC,0xAD,0x00,0x00,}}, {0x8F92,2,{0xDE,0x64,0x00,0x00,}}, {0x8F93,2,{0xCA,0xE4,0x00,0x00,}}, {0x8F94,2,{0xE0,0xCE,0x00,0x00,}}, {0x8F95,2,{0xD4,0xAF,0x00,0x00,}}, {0x8F96,2,{0xCF,0xBD,0x00,0x00,}}, {0x8F97,2,{0xD5,0xB7,0x00,0x00,}}, {0x8F98,2,{0xEA,0xA4,0x00,0x00,}}, {0x8F99,2,{0xD5,0xDE,0x00,0x00,}}, {0x8F9A,2,{0xEA,0xA5,0x00,0x00,}}, {0x8F9B,2,{0xD0,0xC1,0x00,0x00,}}, {0x8F9C,2,{0xB9,0xBC,0x00,0x00,}}, {0x8F9D,2,{0xDE,0x65,0x00,0x00,}}, {0x8F9E,2,{0xB4,0xC7,0x00,0x00,}}, {0x8F9F,2,{0xB1,0xD9,0x00,0x00,}}, {0x8FA0,2,{0xDE,0x66,0x00,0x00,}}, {0x8FA1,2,{0xDE,0x67,0x00,0x00,}}, {0x8FA2,2,{0xDE,0x68,0x00,0x00,}}, {0x8FA3,2,{0xC0,0xB1,0x00,0x00,}}, {0x8FA4,2,{0xDE,0x69,0x00,0x00,}}, {0x8FA5,2,{0xDE,0x6A,0x00,0x00,}}, {0x8FA6,2,{0xDE,0x6B,0x00,0x00,}}, {0x8FA7,2,{0xDE,0x6C,0x00,0x00,}}, {0x8FA8,2,{0xB1,0xE6,0x00,0x00,}}, {0x8FA9,2,{0xB1,0xE7,0x00,0x00,}}, {0x8FAA,2,{0xDE,0x6D,0x00,0x00,}}, {0x8FAB,2,{0xB1,0xE8,0x00,0x00,}}, {0x8FAC,2,{0xDE,0x6E,0x00,0x00,}}, {0x8FAD,2,{0xDE,0x6F,0x00,0x00,}}, {0x8FAE,2,{0xDE,0x70,0x00,0x00,}}, {0x8FAF,2,{0xDE,0x71,0x00,0x00,}}, {0x8FB0,2,{0xB3,0xBD,0x00,0x00,}}, {0x8FB1,2,{0xC8,0xE8,0x00,0x00,}}, {0x8FB2,2,{0xDE,0x72,0x00,0x00,}}, {0x8FB3,2,{0xDE,0x73,0x00,0x00,}}, {0x8FB4,2,{0xDE,0x74,0x00,0x00,}}, {0x8FB5,2,{0xDE,0x75,0x00,0x00,}}, {0x8FB6,2,{0xE5,0xC1,0x00,0x00,}}, {0x8FB7,2,{0xDE,0x76,0x00,0x00,}}, {0x8FB8,2,{0xDE,0x77,0x00,0x00,}}, {0x8FB9,2,{0xB1,0xDF,0x00,0x00,}}, {0x8FBA,2,{0xDE,0x78,0x00,0x00,}}, {0x8FBB,2,{0xDE,0x79,0x00,0x00,}}, {0x8FBC,2,{0xDE,0x7A,0x00,0x00,}}, {0x8FBD,2,{0xC1,0xC9,0x00,0x00,}}, {0x8FBE,2,{0xB4,0xEF,0x00,0x00,}}, {0x8FBF,2,{0xDE,0x7B,0x00,0x00,}}, {0x8FC0,2,{0xDE,0x7C,0x00,0x00,}}, {0x8FC1,2,{0xC7,0xA8,0x00,0x00,}}, {0x8FC2,2,{0xD3,0xD8,0x00,0x00,}}, {0x8FC3,2,{0xDE,0x7D,0x00,0x00,}}, {0x8FC4,2,{0xC6,0xF9,0x00,0x00,}}, {0x8FC5,2,{0xD1,0xB8,0x00,0x00,}}, {0x8FC6,2,{0xDE,0x7E,0x00,0x00,}}, {0x8FC7,2,{0xB9,0xFD,0x00,0x00,}}, {0x8FC8,2,{0xC2,0xF5,0x00,0x00,}}, {0x8FC9,2,{0xDE,0x80,0x00,0x00,}}, {0x8FCA,2,{0xDE,0x81,0x00,0x00,}}, {0x8FCB,2,{0xDE,0x82,0x00,0x00,}}, {0x8FCC,2,{0xDE,0x83,0x00,0x00,}}, {0x8FCD,2,{0xDE,0x84,0x00,0x00,}}, {0x8FCE,2,{0xD3,0xAD,0x00,0x00,}}, {0x8FCF,2,{0xDE,0x85,0x00,0x00,}}, {0x8FD0,2,{0xD4,0xCB,0x00,0x00,}}, {0x8FD1,2,{0xBD,0xFC,0x00,0x00,}}, {0x8FD2,2,{0xDE,0x86,0x00,0x00,}}, {0x8FD3,2,{0xE5,0xC2,0x00,0x00,}}, {0x8FD4,2,{0xB7,0xB5,0x00,0x00,}}, {0x8FD5,2,{0xE5,0xC3,0x00,0x00,}}, {0x8FD6,2,{0xDE,0x87,0x00,0x00,}}, {0x8FD7,2,{0xDE,0x88,0x00,0x00,}}, {0x8FD8,2,{0xBB,0xB9,0x00,0x00,}}, {0x8FD9,2,{0xD5,0xE2,0x00,0x00,}}, {0x8FDA,2,{0xDE,0x89,0x00,0x00,}}, {0x8FDB,2,{0xBD,0xF8,0x00,0x00,}}, {0x8FDC,2,{0xD4,0xB6,0x00,0x00,}}, {0x8FDD,2,{0xCE,0xA5,0x00,0x00,}}, {0x8FDE,2,{0xC1,0xAC,0x00,0x00,}}, {0x8FDF,2,{0xB3,0xD9,0x00,0x00,}}, {0x8FE0,2,{0xDE,0x8A,0x00,0x00,}}, {0x8FE1,2,{0xDE,0x8B,0x00,0x00,}}, {0x8FE2,2,{0xCC,0xF6,0x00,0x00,}}, {0x8FE3,2,{0xDE,0x8C,0x00,0x00,}}, {0x8FE4,2,{0xE5,0xC6,0x00,0x00,}}, {0x8FE5,2,{0xE5,0xC4,0x00,0x00,}}, {0x8FE6,2,{0xE5,0xC8,0x00,0x00,}}, {0x8FE7,2,{0xDE,0x8D,0x00,0x00,}}, {0x8FE8,2,{0xE5,0xCA,0x00,0x00,}}, {0x8FE9,2,{0xE5,0xC7,0x00,0x00,}}, {0x8FEA,2,{0xB5,0xCF,0x00,0x00,}}, {0x8FEB,2,{0xC6,0xC8,0x00,0x00,}}, {0x8FEC,2,{0xDE,0x8E,0x00,0x00,}}, {0x8FED,2,{0xB5,0xFC,0x00,0x00,}}, {0x8FEE,2,{0xE5,0xC5,0x00,0x00,}}, {0x8FEF,2,{0xDE,0x8F,0x00,0x00,}}, {0x8FF0,2,{0xCA,0xF6,0x00,0x00,}}, {0x8FF1,2,{0xDE,0x90,0x00,0x00,}}, {0x8FF2,2,{0xDE,0x91,0x00,0x00,}}, {0x8FF3,2,{0xE5,0xC9,0x00,0x00,}}, {0x8FF4,2,{0xDE,0x92,0x00,0x00,}}, {0x8FF5,2,{0xDE,0x93,0x00,0x00,}}, {0x8FF6,2,{0xDE,0x94,0x00,0x00,}}, {0x8FF7,2,{0xC3,0xD4,0x00,0x00,}}, {0x8FF8,2,{0xB1,0xC5,0x00,0x00,}}, {0x8FF9,2,{0xBC,0xA3,0x00,0x00,}}, {0x8FFA,2,{0xDE,0x95,0x00,0x00,}}, {0x8FFB,2,{0xDE,0x96,0x00,0x00,}}, {0x8FFC,2,{0xDE,0x97,0x00,0x00,}}, {0x8FFD,2,{0xD7,0xB7,0x00,0x00,}}, {0x8FFE,2,{0xDE,0x98,0x00,0x00,}}, {0x8FFF,2,{0xDE,0x99,0x00,0x00,}}, {0x9000,2,{0xCD,0xCB,0x00,0x00,}}, {0x9001,2,{0xCB,0xCD,0x00,0x00,}}, {0x9002,2,{0xCA,0xCA,0x00,0x00,}}, {0x9003,2,{0xCC,0xD3,0x00,0x00,}}, {0x9004,2,{0xE5,0xCC,0x00,0x00,}}, {0x9005,2,{0xE5,0xCB,0x00,0x00,}}, {0x9006,2,{0xC4,0xE6,0x00,0x00,}}, {0x9007,2,{0xDE,0x9A,0x00,0x00,}}, {0x9008,2,{0xDE,0x9B,0x00,0x00,}}, {0x9009,2,{0xD1,0xA1,0x00,0x00,}}, {0x900A,2,{0xD1,0xB7,0x00,0x00,}}, {0x900B,2,{0xE5,0xCD,0x00,0x00,}}, {0x900C,2,{0xDE,0x9C,0x00,0x00,}}, {0x900D,2,{0xE5,0xD0,0x00,0x00,}}, {0x900E,2,{0xDE,0x9D,0x00,0x00,}}, {0x900F,2,{0xCD,0xB8,0x00,0x00,}}, {0x9010,2,{0xD6,0xF0,0x00,0x00,}}, {0x9011,2,{0xE5,0xCF,0x00,0x00,}}, {0x9012,2,{0xB5,0xDD,0x00,0x00,}}, {0x9013,2,{0xDE,0x9E,0x00,0x00,}}, {0x9014,2,{0xCD,0xBE,0x00,0x00,}}, {0x9015,2,{0xDE,0x9F,0x00,0x00,}}, {0x9016,2,{0xE5,0xD1,0x00,0x00,}}, {0x9017,2,{0xB6,0xBA,0x00,0x00,}}, {0x9018,2,{0xDE,0xA0,0x00,0x00,}}, {0x9019,2,{0xDF,0x40,0x00,0x00,}}, {0x901A,2,{0xCD,0xA8,0x00,0x00,}}, {0x901B,2,{0xB9,0xE4,0x00,0x00,}}, {0x901C,2,{0xDF,0x41,0x00,0x00,}}, {0x901D,2,{0xCA,0xC5,0x00,0x00,}}, {0x901E,2,{0xB3,0xD1,0x00,0x00,}}, {0x901F,2,{0xCB,0xD9,0x00,0x00,}}, {0x9020,2,{0xD4,0xEC,0x00,0x00,}}, {0x9021,2,{0xE5,0xD2,0x00,0x00,}}, {0x9022,2,{0xB7,0xEA,0x00,0x00,}}, {0x9023,2,{0xDF,0x42,0x00,0x00,}}, {0x9024,2,{0xDF,0x43,0x00,0x00,}}, {0x9025,2,{0xDF,0x44,0x00,0x00,}}, {0x9026,2,{0xE5,0xCE,0x00,0x00,}}, {0x9027,2,{0xDF,0x45,0x00,0x00,}}, {0x9028,2,{0xDF,0x46,0x00,0x00,}}, {0x9029,2,{0xDF,0x47,0x00,0x00,}}, {0x902A,2,{0xDF,0x48,0x00,0x00,}}, {0x902B,2,{0xDF,0x49,0x00,0x00,}}, {0x902C,2,{0xDF,0x4A,0x00,0x00,}}, {0x902D,2,{0xE5,0xD5,0x00,0x00,}}, {0x902E,2,{0xB4,0xFE,0x00,0x00,}}, {0x902F,2,{0xE5,0xD6,0x00,0x00,}}, {0x9030,2,{0xDF,0x4B,0x00,0x00,}}, {0x9031,2,{0xDF,0x4C,0x00,0x00,}}, {0x9032,2,{0xDF,0x4D,0x00,0x00,}}, {0x9033,2,{0xDF,0x4E,0x00,0x00,}}, {0x9034,2,{0xDF,0x4F,0x00,0x00,}}, {0x9035,2,{0xE5,0xD3,0x00,0x00,}}, {0x9036,2,{0xE5,0xD4,0x00,0x00,}}, {0x9037,2,{0xDF,0x50,0x00,0x00,}}, {0x9038,2,{0xD2,0xDD,0x00,0x00,}}, {0x9039,2,{0xDF,0x51,0x00,0x00,}}, {0x903A,2,{0xDF,0x52,0x00,0x00,}}, {0x903B,2,{0xC2,0xDF,0x00,0x00,}}, {0x903C,2,{0xB1,0xC6,0x00,0x00,}}, {0x903D,2,{0xDF,0x53,0x00,0x00,}}, {0x903E,2,{0xD3,0xE2,0x00,0x00,}}, {0x903F,2,{0xDF,0x54,0x00,0x00,}}, {0x9040,2,{0xDF,0x55,0x00,0x00,}}, {0x9041,2,{0xB6,0xDD,0x00,0x00,}}, {0x9042,2,{0xCB,0xEC,0x00,0x00,}}, {0x9043,2,{0xDF,0x56,0x00,0x00,}}, {0x9044,2,{0xE5,0xD7,0x00,0x00,}}, {0x9045,2,{0xDF,0x57,0x00,0x00,}}, {0x9046,2,{0xDF,0x58,0x00,0x00,}}, {0x9047,2,{0xD3,0xF6,0x00,0x00,}}, {0x9048,2,{0xDF,0x59,0x00,0x00,}}, {0x9049,2,{0xDF,0x5A,0x00,0x00,}}, {0x904A,2,{0xDF,0x5B,0x00,0x00,}}, {0x904B,2,{0xDF,0x5C,0x00,0x00,}}, {0x904C,2,{0xDF,0x5D,0x00,0x00,}}, {0x904D,2,{0xB1,0xE9,0x00,0x00,}}, {0x904E,2,{0xDF,0x5E,0x00,0x00,}}, {0x904F,2,{0xB6,0xF4,0x00,0x00,}}, {0x9050,2,{0xE5,0xDA,0x00,0x00,}}, {0x9051,2,{0xE5,0xD8,0x00,0x00,}}, {0x9052,2,{0xE5,0xD9,0x00,0x00,}}, {0x9053,2,{0xB5,0xC0,0x00,0x00,}}, {0x9054,2,{0xDF,0x5F,0x00,0x00,}}, {0x9055,2,{0xDF,0x60,0x00,0x00,}}, {0x9056,2,{0xDF,0x61,0x00,0x00,}}, {0x9057,2,{0xD2,0xC5,0x00,0x00,}}, {0x9058,2,{0xE5,0xDC,0x00,0x00,}}, {0x9059,2,{0xDF,0x62,0x00,0x00,}}, {0x905A,2,{0xDF,0x63,0x00,0x00,}}, {0x905B,2,{0xE5,0xDE,0x00,0x00,}}, {0x905C,2,{0xDF,0x64,0x00,0x00,}}, {0x905D,2,{0xDF,0x65,0x00,0x00,}}, {0x905E,2,{0xDF,0x66,0x00,0x00,}}, {0x905F,2,{0xDF,0x67,0x00,0x00,}}, {0x9060,2,{0xDF,0x68,0x00,0x00,}}, {0x9061,2,{0xDF,0x69,0x00,0x00,}}, {0x9062,2,{0xE5,0xDD,0x00,0x00,}}, {0x9063,2,{0xC7,0xB2,0x00,0x00,}}, {0x9064,2,{0xDF,0x6A,0x00,0x00,}}, {0x9065,2,{0xD2,0xA3,0x00,0x00,}}, {0x9066,2,{0xDF,0x6B,0x00,0x00,}}, {0x9067,2,{0xDF,0x6C,0x00,0x00,}}, {0x9068,2,{0xE5,0xDB,0x00,0x00,}}, {0x9069,2,{0xDF,0x6D,0x00,0x00,}}, {0x906A,2,{0xDF,0x6E,0x00,0x00,}}, {0x906B,2,{0xDF,0x6F,0x00,0x00,}}, {0x906C,2,{0xDF,0x70,0x00,0x00,}}, {0x906D,2,{0xD4,0xE2,0x00,0x00,}}, {0x906E,2,{0xD5,0xDA,0x00,0x00,}}, {0x906F,2,{0xDF,0x71,0x00,0x00,}}, {0x9070,2,{0xDF,0x72,0x00,0x00,}}, {0x9071,2,{0xDF,0x73,0x00,0x00,}}, {0x9072,2,{0xDF,0x74,0x00,0x00,}}, {0x9073,2,{0xDF,0x75,0x00,0x00,}}, {0x9074,2,{0xE5,0xE0,0x00,0x00,}}, {0x9075,2,{0xD7,0xF1,0x00,0x00,}}, {0x9076,2,{0xDF,0x76,0x00,0x00,}}, {0x9077,2,{0xDF,0x77,0x00,0x00,}}, {0x9078,2,{0xDF,0x78,0x00,0x00,}}, {0x9079,2,{0xDF,0x79,0x00,0x00,}}, {0x907A,2,{0xDF,0x7A,0x00,0x00,}}, {0x907B,2,{0xDF,0x7B,0x00,0x00,}}, {0x907C,2,{0xDF,0x7C,0x00,0x00,}}, {0x907D,2,{0xE5,0xE1,0x00,0x00,}}, {0x907E,2,{0xDF,0x7D,0x00,0x00,}}, {0x907F,2,{0xB1,0xDC,0x00,0x00,}}, {0x9080,2,{0xD1,0xFB,0x00,0x00,}}, {0x9081,2,{0xDF,0x7E,0x00,0x00,}}, {0x9082,2,{0xE5,0xE2,0x00,0x00,}}, {0x9083,2,{0xE5,0xE4,0x00,0x00,}}, {0x9084,2,{0xDF,0x80,0x00,0x00,}}, {0x9085,2,{0xDF,0x81,0x00,0x00,}}, {0x9086,2,{0xDF,0x82,0x00,0x00,}}, {0x9087,2,{0xDF,0x83,0x00,0x00,}}, {0x9088,2,{0xE5,0xE3,0x00,0x00,}}, {0x9089,2,{0xDF,0x84,0x00,0x00,}}, {0x908A,2,{0xDF,0x85,0x00,0x00,}}, {0x908B,2,{0xE5,0xE5,0x00,0x00,}}, {0x908C,2,{0xDF,0x86,0x00,0x00,}}, {0x908D,2,{0xDF,0x87,0x00,0x00,}}, {0x908E,2,{0xDF,0x88,0x00,0x00,}}, {0x908F,2,{0xDF,0x89,0x00,0x00,}}, {0x9090,2,{0xDF,0x8A,0x00,0x00,}}, {0x9091,2,{0xD2,0xD8,0x00,0x00,}}, {0x9092,2,{0xDF,0x8B,0x00,0x00,}}, {0x9093,2,{0xB5,0xCB,0x00,0x00,}}, {0x9094,2,{0xDF,0x8C,0x00,0x00,}}, {0x9095,2,{0xE7,0xDF,0x00,0x00,}}, {0x9096,2,{0xDF,0x8D,0x00,0x00,}}, {0x9097,2,{0xDA,0xF5,0x00,0x00,}}, {0x9098,2,{0xDF,0x8E,0x00,0x00,}}, {0x9099,2,{0xDA,0xF8,0x00,0x00,}}, {0x909A,2,{0xDF,0x8F,0x00,0x00,}}, {0x909B,2,{0xDA,0xF6,0x00,0x00,}}, {0x909C,2,{0xDF,0x90,0x00,0x00,}}, {0x909D,2,{0xDA,0xF7,0x00,0x00,}}, {0x909E,2,{0xDF,0x91,0x00,0x00,}}, {0x909F,2,{0xDF,0x92,0x00,0x00,}}, {0x90A0,2,{0xDF,0x93,0x00,0x00,}}, {0x90A1,2,{0xDA,0xFA,0x00,0x00,}}, {0x90A2,2,{0xD0,0xCF,0x00,0x00,}}, {0x90A3,2,{0xC4,0xC7,0x00,0x00,}}, {0x90A4,2,{0xDF,0x94,0x00,0x00,}}, {0x90A5,2,{0xDF,0x95,0x00,0x00,}}, {0x90A6,2,{0xB0,0xEE,0x00,0x00,}}, {0x90A7,2,{0xDF,0x96,0x00,0x00,}}, {0x90A8,2,{0xDF,0x97,0x00,0x00,}}, {0x90A9,2,{0xDF,0x98,0x00,0x00,}}, {0x90AA,2,{0xD0,0xB0,0x00,0x00,}}, {0x90AB,2,{0xDF,0x99,0x00,0x00,}}, {0x90AC,2,{0xDA,0xF9,0x00,0x00,}}, {0x90AD,2,{0xDF,0x9A,0x00,0x00,}}, {0x90AE,2,{0xD3,0xCA,0x00,0x00,}}, {0x90AF,2,{0xBA,0xAA,0x00,0x00,}}, {0x90B0,2,{0xDB,0xA2,0x00,0x00,}}, {0x90B1,2,{0xC7,0xF1,0x00,0x00,}}, {0x90B2,2,{0xDF,0x9B,0x00,0x00,}}, {0x90B3,2,{0xDA,0xFC,0x00,0x00,}}, {0x90B4,2,{0xDA,0xFB,0x00,0x00,}}, {0x90B5,2,{0xC9,0xDB,0x00,0x00,}}, {0x90B6,2,{0xDA,0xFD,0x00,0x00,}}, {0x90B7,2,{0xDF,0x9C,0x00,0x00,}}, {0x90B8,2,{0xDB,0xA1,0x00,0x00,}}, {0x90B9,2,{0xD7,0xDE,0x00,0x00,}}, {0x90BA,2,{0xDA,0xFE,0x00,0x00,}}, {0x90BB,2,{0xC1,0xDA,0x00,0x00,}}, {0x90BC,2,{0xDF,0x9D,0x00,0x00,}}, {0x90BD,2,{0xDF,0x9E,0x00,0x00,}}, {0x90BE,2,{0xDB,0xA5,0x00,0x00,}}, {0x90BF,2,{0xDF,0x9F,0x00,0x00,}}, {0x90C0,2,{0xDF,0xA0,0x00,0x00,}}, {0x90C1,2,{0xD3,0xF4,0x00,0x00,}}, {0x90C2,2,{0xE0,0x40,0x00,0x00,}}, {0x90C3,2,{0xE0,0x41,0x00,0x00,}}, {0x90C4,2,{0xDB,0xA7,0x00,0x00,}}, {0x90C5,2,{0xDB,0xA4,0x00,0x00,}}, {0x90C6,2,{0xE0,0x42,0x00,0x00,}}, {0x90C7,2,{0xDB,0xA8,0x00,0x00,}}, {0x90C8,2,{0xE0,0x43,0x00,0x00,}}, {0x90C9,2,{0xE0,0x44,0x00,0x00,}}, {0x90CA,2,{0xBD,0xBC,0x00,0x00,}}, {0x90CB,2,{0xE0,0x45,0x00,0x00,}}, {0x90CC,2,{0xE0,0x46,0x00,0x00,}}, {0x90CD,2,{0xE0,0x47,0x00,0x00,}}, {0x90CE,2,{0xC0,0xC9,0x00,0x00,}}, {0x90CF,2,{0xDB,0xA3,0x00,0x00,}}, {0x90D0,2,{0xDB,0xA6,0x00,0x00,}}, {0x90D1,2,{0xD6,0xA3,0x00,0x00,}}, {0x90D2,2,{0xE0,0x48,0x00,0x00,}}, {0x90D3,2,{0xDB,0xA9,0x00,0x00,}}, {0x90D4,2,{0xE0,0x49,0x00,0x00,}}, {0x90D5,2,{0xE0,0x4A,0x00,0x00,}}, {0x90D6,2,{0xE0,0x4B,0x00,0x00,}}, {0x90D7,2,{0xDB,0xAD,0x00,0x00,}}, {0x90D8,2,{0xE0,0x4C,0x00,0x00,}}, {0x90D9,2,{0xE0,0x4D,0x00,0x00,}}, {0x90DA,2,{0xE0,0x4E,0x00,0x00,}}, {0x90DB,2,{0xDB,0xAE,0x00,0x00,}}, {0x90DC,2,{0xDB,0xAC,0x00,0x00,}}, {0x90DD,2,{0xBA,0xC2,0x00,0x00,}}, {0x90DE,2,{0xE0,0x4F,0x00,0x00,}}, {0x90DF,2,{0xE0,0x50,0x00,0x00,}}, {0x90E0,2,{0xE0,0x51,0x00,0x00,}}, {0x90E1,2,{0xBF,0xA4,0x00,0x00,}}, {0x90E2,2,{0xDB,0xAB,0x00,0x00,}}, {0x90E3,2,{0xE0,0x52,0x00,0x00,}}, {0x90E4,2,{0xE0,0x53,0x00,0x00,}}, {0x90E5,2,{0xE0,0x54,0x00,0x00,}}, {0x90E6,2,{0xDB,0xAA,0x00,0x00,}}, {0x90E7,2,{0xD4,0xC7,0x00,0x00,}}, {0x90E8,2,{0xB2,0xBF,0x00,0x00,}}, {0x90E9,2,{0xE0,0x55,0x00,0x00,}}, {0x90EA,2,{0xE0,0x56,0x00,0x00,}}, {0x90EB,2,{0xDB,0xAF,0x00,0x00,}}, {0x90EC,2,{0xE0,0x57,0x00,0x00,}}, {0x90ED,2,{0xB9,0xF9,0x00,0x00,}}, {0x90EE,2,{0xE0,0x58,0x00,0x00,}}, {0x90EF,2,{0xDB,0xB0,0x00,0x00,}}, {0x90F0,2,{0xE0,0x59,0x00,0x00,}}, {0x90F1,2,{0xE0,0x5A,0x00,0x00,}}, {0x90F2,2,{0xE0,0x5B,0x00,0x00,}}, {0x90F3,2,{0xE0,0x5C,0x00,0x00,}}, {0x90F4,2,{0xB3,0xBB,0x00,0x00,}}, {0x90F5,2,{0xE0,0x5D,0x00,0x00,}}, {0x90F6,2,{0xE0,0x5E,0x00,0x00,}}, {0x90F7,2,{0xE0,0x5F,0x00,0x00,}}, {0x90F8,2,{0xB5,0xA6,0x00,0x00,}}, {0x90F9,2,{0xE0,0x60,0x00,0x00,}}, {0x90FA,2,{0xE0,0x61,0x00,0x00,}}, {0x90FB,2,{0xE0,0x62,0x00,0x00,}}, {0x90FC,2,{0xE0,0x63,0x00,0x00,}}, {0x90FD,2,{0xB6,0xBC,0x00,0x00,}}, {0x90FE,2,{0xDB,0xB1,0x00,0x00,}}, {0x90FF,2,{0xE0,0x64,0x00,0x00,}}, {0x9100,2,{0xE0,0x65,0x00,0x00,}}, {0x9101,2,{0xE0,0x66,0x00,0x00,}}, {0x9102,2,{0xB6,0xF5,0x00,0x00,}}, {0x9103,2,{0xE0,0x67,0x00,0x00,}}, {0x9104,2,{0xDB,0xB2,0x00,0x00,}}, {0x9105,2,{0xE0,0x68,0x00,0x00,}}, {0x9106,2,{0xE0,0x69,0x00,0x00,}}, {0x9107,2,{0xE0,0x6A,0x00,0x00,}}, {0x9108,2,{0xE0,0x6B,0x00,0x00,}}, {0x9109,2,{0xE0,0x6C,0x00,0x00,}}, {0x910A,2,{0xE0,0x6D,0x00,0x00,}}, {0x910B,2,{0xE0,0x6E,0x00,0x00,}}, {0x910C,2,{0xE0,0x6F,0x00,0x00,}}, {0x910D,2,{0xE0,0x70,0x00,0x00,}}, {0x910E,2,{0xE0,0x71,0x00,0x00,}}, {0x910F,2,{0xE0,0x72,0x00,0x00,}}, {0x9110,2,{0xE0,0x73,0x00,0x00,}}, {0x9111,2,{0xE0,0x74,0x00,0x00,}}, {0x9112,2,{0xE0,0x75,0x00,0x00,}}, {0x9113,2,{0xE0,0x76,0x00,0x00,}}, {0x9114,2,{0xE0,0x77,0x00,0x00,}}, {0x9115,2,{0xE0,0x78,0x00,0x00,}}, {0x9116,2,{0xE0,0x79,0x00,0x00,}}, {0x9117,2,{0xE0,0x7A,0x00,0x00,}}, {0x9118,2,{0xE0,0x7B,0x00,0x00,}}, {0x9119,2,{0xB1,0xC9,0x00,0x00,}}, {0x911A,2,{0xE0,0x7C,0x00,0x00,}}, {0x911B,2,{0xE0,0x7D,0x00,0x00,}}, {0x911C,2,{0xE0,0x7E,0x00,0x00,}}, {0x911D,2,{0xE0,0x80,0x00,0x00,}}, {0x911E,2,{0xDB,0xB4,0x00,0x00,}}, {0x911F,2,{0xE0,0x81,0x00,0x00,}}, {0x9120,2,{0xE0,0x82,0x00,0x00,}}, {0x9121,2,{0xE0,0x83,0x00,0x00,}}, {0x9122,2,{0xDB,0xB3,0x00,0x00,}}, {0x9123,2,{0xDB,0xB5,0x00,0x00,}}, {0x9124,2,{0xE0,0x84,0x00,0x00,}}, {0x9125,2,{0xE0,0x85,0x00,0x00,}}, {0x9126,2,{0xE0,0x86,0x00,0x00,}}, {0x9127,2,{0xE0,0x87,0x00,0x00,}}, {0x9128,2,{0xE0,0x88,0x00,0x00,}}, {0x9129,2,{0xE0,0x89,0x00,0x00,}}, {0x912A,2,{0xE0,0x8A,0x00,0x00,}}, {0x912B,2,{0xE0,0x8B,0x00,0x00,}}, {0x912C,2,{0xE0,0x8C,0x00,0x00,}}, {0x912D,2,{0xE0,0x8D,0x00,0x00,}}, {0x912E,2,{0xE0,0x8E,0x00,0x00,}}, {0x912F,2,{0xDB,0xB7,0x00,0x00,}}, {0x9130,2,{0xE0,0x8F,0x00,0x00,}}, {0x9131,2,{0xDB,0xB6,0x00,0x00,}}, {0x9132,2,{0xE0,0x90,0x00,0x00,}}, {0x9133,2,{0xE0,0x91,0x00,0x00,}}, {0x9134,2,{0xE0,0x92,0x00,0x00,}}, {0x9135,2,{0xE0,0x93,0x00,0x00,}}, {0x9136,2,{0xE0,0x94,0x00,0x00,}}, {0x9137,2,{0xE0,0x95,0x00,0x00,}}, {0x9138,2,{0xE0,0x96,0x00,0x00,}}, {0x9139,2,{0xDB,0xB8,0x00,0x00,}}, {0x913A,2,{0xE0,0x97,0x00,0x00,}}, {0x913B,2,{0xE0,0x98,0x00,0x00,}}, {0x913C,2,{0xE0,0x99,0x00,0x00,}}, {0x913D,2,{0xE0,0x9A,0x00,0x00,}}, {0x913E,2,{0xE0,0x9B,0x00,0x00,}}, {0x913F,2,{0xE0,0x9C,0x00,0x00,}}, {0x9140,2,{0xE0,0x9D,0x00,0x00,}}, {0x9141,2,{0xE0,0x9E,0x00,0x00,}}, {0x9142,2,{0xE0,0x9F,0x00,0x00,}}, {0x9143,2,{0xDB,0xB9,0x00,0x00,}}, {0x9144,2,{0xE0,0xA0,0x00,0x00,}}, {0x9145,2,{0xE1,0x40,0x00,0x00,}}, {0x9146,2,{0xDB,0xBA,0x00,0x00,}}, {0x9147,2,{0xE1,0x41,0x00,0x00,}}, {0x9148,2,{0xE1,0x42,0x00,0x00,}}, {0x9149,2,{0xD3,0xCF,0x00,0x00,}}, {0x914A,2,{0xF4,0xFA,0x00,0x00,}}, {0x914B,2,{0xC7,0xF5,0x00,0x00,}}, {0x914C,2,{0xD7,0xC3,0x00,0x00,}}, {0x914D,2,{0xC5,0xE4,0x00,0x00,}}, {0x914E,2,{0xF4,0xFC,0x00,0x00,}}, {0x914F,2,{0xF4,0xFD,0x00,0x00,}}, {0x9150,2,{0xF4,0xFB,0x00,0x00,}}, {0x9151,2,{0xE1,0x43,0x00,0x00,}}, {0x9152,2,{0xBE,0xC6,0x00,0x00,}}, {0x9153,2,{0xE1,0x44,0x00,0x00,}}, {0x9154,2,{0xE1,0x45,0x00,0x00,}}, {0x9155,2,{0xE1,0x46,0x00,0x00,}}, {0x9156,2,{0xE1,0x47,0x00,0x00,}}, {0x9157,2,{0xD0,0xEF,0x00,0x00,}}, {0x9158,2,{0xE1,0x48,0x00,0x00,}}, {0x9159,2,{0xE1,0x49,0x00,0x00,}}, {0x915A,2,{0xB7,0xD3,0x00,0x00,}}, {0x915B,2,{0xE1,0x4A,0x00,0x00,}}, {0x915C,2,{0xE1,0x4B,0x00,0x00,}}, {0x915D,2,{0xD4,0xCD,0x00,0x00,}}, {0x915E,2,{0xCC,0xAA,0x00,0x00,}}, {0x915F,2,{0xE1,0x4C,0x00,0x00,}}, {0x9160,2,{0xE1,0x4D,0x00,0x00,}}, {0x9161,2,{0xF5,0xA2,0x00,0x00,}}, {0x9162,2,{0xF5,0xA1,0x00,0x00,}}, {0x9163,2,{0xBA,0xA8,0x00,0x00,}}, {0x9164,2,{0xF4,0xFE,0x00,0x00,}}, {0x9165,2,{0xCB,0xD6,0x00,0x00,}}, {0x9166,2,{0xE1,0x4E,0x00,0x00,}}, {0x9167,2,{0xE1,0x4F,0x00,0x00,}}, {0x9168,2,{0xE1,0x50,0x00,0x00,}}, {0x9169,2,{0xF5,0xA4,0x00,0x00,}}, {0x916A,2,{0xC0,0xD2,0x00,0x00,}}, {0x916B,2,{0xE1,0x51,0x00,0x00,}}, {0x916C,2,{0xB3,0xEA,0x00,0x00,}}, {0x916D,2,{0xE1,0x52,0x00,0x00,}}, {0x916E,2,{0xCD,0xAA,0x00,0x00,}}, {0x916F,2,{0xF5,0xA5,0x00,0x00,}}, {0x9170,2,{0xF5,0xA3,0x00,0x00,}}, {0x9171,2,{0xBD,0xB4,0x00,0x00,}}, {0x9172,2,{0xF5,0xA8,0x00,0x00,}}, {0x9173,2,{0xE1,0x53,0x00,0x00,}}, {0x9174,2,{0xF5,0xA9,0x00,0x00,}}, {0x9175,2,{0xBD,0xCD,0x00,0x00,}}, {0x9176,2,{0xC3,0xB8,0x00,0x00,}}, {0x9177,2,{0xBF,0xE1,0x00,0x00,}}, {0x9178,2,{0xCB,0xE1,0x00,0x00,}}, {0x9179,2,{0xF5,0xAA,0x00,0x00,}}, {0x917A,2,{0xE1,0x54,0x00,0x00,}}, {0x917B,2,{0xE1,0x55,0x00,0x00,}}, {0x917C,2,{0xE1,0x56,0x00,0x00,}}, {0x917D,2,{0xF5,0xA6,0x00,0x00,}}, {0x917E,2,{0xF5,0xA7,0x00,0x00,}}, {0x917F,2,{0xC4,0xF0,0x00,0x00,}}, {0x9180,2,{0xE1,0x57,0x00,0x00,}}, {0x9181,2,{0xE1,0x58,0x00,0x00,}}, {0x9182,2,{0xE1,0x59,0x00,0x00,}}, {0x9183,2,{0xE1,0x5A,0x00,0x00,}}, {0x9184,2,{0xE1,0x5B,0x00,0x00,}}, {0x9185,2,{0xF5,0xAC,0x00,0x00,}}, {0x9186,2,{0xE1,0x5C,0x00,0x00,}}, {0x9187,2,{0xB4,0xBC,0x00,0x00,}}, {0x9188,2,{0xE1,0x5D,0x00,0x00,}}, {0x9189,2,{0xD7,0xED,0x00,0x00,}}, {0x918A,2,{0xE1,0x5E,0x00,0x00,}}, {0x918B,2,{0xB4,0xD7,0x00,0x00,}}, {0x918C,2,{0xF5,0xAB,0x00,0x00,}}, {0x918D,2,{0xF5,0xAE,0x00,0x00,}}, {0x918E,2,{0xE1,0x5F,0x00,0x00,}}, {0x918F,2,{0xE1,0x60,0x00,0x00,}}, {0x9190,2,{0xF5,0xAD,0x00,0x00,}}, {0x9191,2,{0xF5,0xAF,0x00,0x00,}}, {0x9192,2,{0xD0,0xD1,0x00,0x00,}}, {0x9193,2,{0xE1,0x61,0x00,0x00,}}, {0x9194,2,{0xE1,0x62,0x00,0x00,}}, {0x9195,2,{0xE1,0x63,0x00,0x00,}}, {0x9196,2,{0xE1,0x64,0x00,0x00,}}, {0x9197,2,{0xE1,0x65,0x00,0x00,}}, {0x9198,2,{0xE1,0x66,0x00,0x00,}}, {0x9199,2,{0xE1,0x67,0x00,0x00,}}, {0x919A,2,{0xC3,0xD1,0x00,0x00,}}, {0x919B,2,{0xC8,0xA9,0x00,0x00,}}, {0x919C,2,{0xE1,0x68,0x00,0x00,}}, {0x919D,2,{0xE1,0x69,0x00,0x00,}}, {0x919E,2,{0xE1,0x6A,0x00,0x00,}}, {0x919F,2,{0xE1,0x6B,0x00,0x00,}}, {0x91A0,2,{0xE1,0x6C,0x00,0x00,}}, {0x91A1,2,{0xE1,0x6D,0x00,0x00,}}, {0x91A2,2,{0xF5,0xB0,0x00,0x00,}}, {0x91A3,2,{0xF5,0xB1,0x00,0x00,}}, {0x91A4,2,{0xE1,0x6E,0x00,0x00,}}, {0x91A5,2,{0xE1,0x6F,0x00,0x00,}}, {0x91A6,2,{0xE1,0x70,0x00,0x00,}}, {0x91A7,2,{0xE1,0x71,0x00,0x00,}}, {0x91A8,2,{0xE1,0x72,0x00,0x00,}}, {0x91A9,2,{0xE1,0x73,0x00,0x00,}}, {0x91AA,2,{0xF5,0xB2,0x00,0x00,}}, {0x91AB,2,{0xE1,0x74,0x00,0x00,}}, {0x91AC,2,{0xE1,0x75,0x00,0x00,}}, {0x91AD,2,{0xF5,0xB3,0x00,0x00,}}, {0x91AE,2,{0xF5,0xB4,0x00,0x00,}}, {0x91AF,2,{0xF5,0xB5,0x00,0x00,}}, {0x91B0,2,{0xE1,0x76,0x00,0x00,}}, {0x91B1,2,{0xE1,0x77,0x00,0x00,}}, {0x91B2,2,{0xE1,0x78,0x00,0x00,}}, {0x91B3,2,{0xE1,0x79,0x00,0x00,}}, {0x91B4,2,{0xF5,0xB7,0x00,0x00,}}, {0x91B5,2,{0xF5,0xB6,0x00,0x00,}}, {0x91B6,2,{0xE1,0x7A,0x00,0x00,}}, {0x91B7,2,{0xE1,0x7B,0x00,0x00,}}, {0x91B8,2,{0xE1,0x7C,0x00,0x00,}}, {0x91B9,2,{0xE1,0x7D,0x00,0x00,}}, {0x91BA,2,{0xF5,0xB8,0x00,0x00,}}, {0x91BB,2,{0xE1,0x7E,0x00,0x00,}}, {0x91BC,2,{0xE1,0x80,0x00,0x00,}}, {0x91BD,2,{0xE1,0x81,0x00,0x00,}}, {0x91BE,2,{0xE1,0x82,0x00,0x00,}}, {0x91BF,2,{0xE1,0x83,0x00,0x00,}}, {0x91C0,2,{0xE1,0x84,0x00,0x00,}}, {0x91C1,2,{0xE1,0x85,0x00,0x00,}}, {0x91C2,2,{0xE1,0x86,0x00,0x00,}}, {0x91C3,2,{0xE1,0x87,0x00,0x00,}}, {0x91C4,2,{0xE1,0x88,0x00,0x00,}}, {0x91C5,2,{0xE1,0x89,0x00,0x00,}}, {0x91C6,2,{0xE1,0x8A,0x00,0x00,}}, {0x91C7,2,{0xB2,0xC9,0x00,0x00,}}, {0x91C8,2,{0xE1,0x8B,0x00,0x00,}}, {0x91C9,2,{0xD3,0xD4,0x00,0x00,}}, {0x91CA,2,{0xCA,0xCD,0x00,0x00,}}, {0x91CB,2,{0xE1,0x8C,0x00,0x00,}}, {0x91CC,2,{0xC0,0xEF,0x00,0x00,}}, {0x91CD,2,{0xD6,0xD8,0x00,0x00,}}, {0x91CE,2,{0xD2,0xB0,0x00,0x00,}}, {0x91CF,2,{0xC1,0xBF,0x00,0x00,}}, {0x91D0,2,{0xE1,0x8D,0x00,0x00,}}, {0x91D1,2,{0xBD,0xF0,0x00,0x00,}}, {0x91D2,2,{0xE1,0x8E,0x00,0x00,}}, {0x91D3,2,{0xE1,0x8F,0x00,0x00,}}, {0x91D4,2,{0xE1,0x90,0x00,0x00,}}, {0x91D5,2,{0xE1,0x91,0x00,0x00,}}, {0x91D6,2,{0xE1,0x92,0x00,0x00,}}, {0x91D7,2,{0xE1,0x93,0x00,0x00,}}, {0x91D8,2,{0xE1,0x94,0x00,0x00,}}, {0x91D9,2,{0xE1,0x95,0x00,0x00,}}, {0x91DA,2,{0xE1,0x96,0x00,0x00,}}, {0x91DB,2,{0xE1,0x97,0x00,0x00,}}, {0x91DC,2,{0xB8,0xAA,0x00,0x00,}}, {0x91DD,2,{0xE1,0x98,0x00,0x00,}}, {0x91DE,2,{0xE1,0x99,0x00,0x00,}}, {0x91DF,2,{0xE1,0x9A,0x00,0x00,}}, {0x91E0,2,{0xE1,0x9B,0x00,0x00,}}, {0x91E1,2,{0xE1,0x9C,0x00,0x00,}}, {0x91E2,2,{0xE1,0x9D,0x00,0x00,}}, {0x91E3,2,{0xE1,0x9E,0x00,0x00,}}, {0x91E4,2,{0xE1,0x9F,0x00,0x00,}}, {0x91E5,2,{0xE1,0xA0,0x00,0x00,}}, {0x91E6,2,{0xE2,0x40,0x00,0x00,}}, {0x91E7,2,{0xE2,0x41,0x00,0x00,}}, {0x91E8,2,{0xE2,0x42,0x00,0x00,}}, {0x91E9,2,{0xE2,0x43,0x00,0x00,}}, {0x91EA,2,{0xE2,0x44,0x00,0x00,}}, {0x91EB,2,{0xE2,0x45,0x00,0x00,}}, {0x91EC,2,{0xE2,0x46,0x00,0x00,}}, {0x91ED,2,{0xE2,0x47,0x00,0x00,}}, {0x91EE,2,{0xE2,0x48,0x00,0x00,}}, {0x91EF,2,{0xE2,0x49,0x00,0x00,}}, {0x91F0,2,{0xE2,0x4A,0x00,0x00,}}, {0x91F1,2,{0xE2,0x4B,0x00,0x00,}}, {0x91F2,2,{0xE2,0x4C,0x00,0x00,}}, {0x91F3,2,{0xE2,0x4D,0x00,0x00,}}, {0x91F4,2,{0xE2,0x4E,0x00,0x00,}}, {0x91F5,2,{0xE2,0x4F,0x00,0x00,}}, {0x91F6,2,{0xE2,0x50,0x00,0x00,}}, {0x91F7,2,{0xE2,0x51,0x00,0x00,}}, {0x91F8,2,{0xE2,0x52,0x00,0x00,}}, {0x91F9,2,{0xE2,0x53,0x00,0x00,}}, {0x91FA,2,{0xE2,0x54,0x00,0x00,}}, {0x91FB,2,{0xE2,0x55,0x00,0x00,}}, {0x91FC,2,{0xE2,0x56,0x00,0x00,}}, {0x91FD,2,{0xE2,0x57,0x00,0x00,}}, {0x91FE,2,{0xE2,0x58,0x00,0x00,}}, {0x91FF,2,{0xE2,0x59,0x00,0x00,}}, {0x9200,2,{0xE2,0x5A,0x00,0x00,}}, {0x9201,2,{0xE2,0x5B,0x00,0x00,}}, {0x9202,2,{0xE2,0x5C,0x00,0x00,}}, {0x9203,2,{0xE2,0x5D,0x00,0x00,}}, {0x9204,2,{0xE2,0x5E,0x00,0x00,}}, {0x9205,2,{0xE2,0x5F,0x00,0x00,}}, {0x9206,2,{0xE2,0x60,0x00,0x00,}}, {0x9207,2,{0xE2,0x61,0x00,0x00,}}, {0x9208,2,{0xE2,0x62,0x00,0x00,}}, {0x9209,2,{0xE2,0x63,0x00,0x00,}}, {0x920A,2,{0xE2,0x64,0x00,0x00,}}, {0x920B,2,{0xE2,0x65,0x00,0x00,}}, {0x920C,2,{0xE2,0x66,0x00,0x00,}}, {0x920D,2,{0xE2,0x67,0x00,0x00,}}, {0x920E,2,{0xE2,0x68,0x00,0x00,}}, {0x920F,2,{0xE2,0x69,0x00,0x00,}}, {0x9210,2,{0xE2,0x6A,0x00,0x00,}}, {0x9211,2,{0xE2,0x6B,0x00,0x00,}}, {0x9212,2,{0xE2,0x6C,0x00,0x00,}}, {0x9213,2,{0xE2,0x6D,0x00,0x00,}}, {0x9214,2,{0xE2,0x6E,0x00,0x00,}}, {0x9215,2,{0xE2,0x6F,0x00,0x00,}}, {0x9216,2,{0xE2,0x70,0x00,0x00,}}, {0x9217,2,{0xE2,0x71,0x00,0x00,}}, {0x9218,2,{0xE2,0x72,0x00,0x00,}}, {0x9219,2,{0xE2,0x73,0x00,0x00,}}, {0x921A,2,{0xE2,0x74,0x00,0x00,}}, {0x921B,2,{0xE2,0x75,0x00,0x00,}}, {0x921C,2,{0xE2,0x76,0x00,0x00,}}, {0x921D,2,{0xE2,0x77,0x00,0x00,}}, {0x921E,2,{0xE2,0x78,0x00,0x00,}}, {0x921F,2,{0xE2,0x79,0x00,0x00,}}, {0x9220,2,{0xE2,0x7A,0x00,0x00,}}, {0x9221,2,{0xE2,0x7B,0x00,0x00,}}, {0x9222,2,{0xE2,0x7C,0x00,0x00,}}, {0x9223,2,{0xE2,0x7D,0x00,0x00,}}, {0x9224,2,{0xE2,0x7E,0x00,0x00,}}, {0x9225,2,{0xE2,0x80,0x00,0x00,}}, {0x9226,2,{0xE2,0x81,0x00,0x00,}}, {0x9227,2,{0xE2,0x82,0x00,0x00,}}, {0x9228,2,{0xE2,0x83,0x00,0x00,}}, {0x9229,2,{0xE2,0x84,0x00,0x00,}}, {0x922A,2,{0xE2,0x85,0x00,0x00,}}, {0x922B,2,{0xE2,0x86,0x00,0x00,}}, {0x922C,2,{0xE2,0x87,0x00,0x00,}}, {0x922D,2,{0xE2,0x88,0x00,0x00,}}, {0x922E,2,{0xE2,0x89,0x00,0x00,}}, {0x922F,2,{0xE2,0x8A,0x00,0x00,}}, {0x9230,2,{0xE2,0x8B,0x00,0x00,}}, {0x9231,2,{0xE2,0x8C,0x00,0x00,}}, {0x9232,2,{0xE2,0x8D,0x00,0x00,}}, {0x9233,2,{0xE2,0x8E,0x00,0x00,}}, {0x9234,2,{0xE2,0x8F,0x00,0x00,}}, {0x9235,2,{0xE2,0x90,0x00,0x00,}}, {0x9236,2,{0xE2,0x91,0x00,0x00,}}, {0x9237,2,{0xE2,0x92,0x00,0x00,}}, {0x9238,2,{0xE2,0x93,0x00,0x00,}}, {0x9239,2,{0xE2,0x94,0x00,0x00,}}, {0x923A,2,{0xE2,0x95,0x00,0x00,}}, {0x923B,2,{0xE2,0x96,0x00,0x00,}}, {0x923C,2,{0xE2,0x97,0x00,0x00,}}, {0x923D,2,{0xE2,0x98,0x00,0x00,}}, {0x923E,2,{0xE2,0x99,0x00,0x00,}}, {0x923F,2,{0xE2,0x9A,0x00,0x00,}}, {0x9240,2,{0xE2,0x9B,0x00,0x00,}}, {0x9241,2,{0xE2,0x9C,0x00,0x00,}}, {0x9242,2,{0xE2,0x9D,0x00,0x00,}}, {0x9243,2,{0xE2,0x9E,0x00,0x00,}}, {0x9244,2,{0xE2,0x9F,0x00,0x00,}}, {0x9245,2,{0xE2,0xA0,0x00,0x00,}}, {0x9246,2,{0xE3,0x40,0x00,0x00,}}, {0x9247,2,{0xE3,0x41,0x00,0x00,}}, {0x9248,2,{0xE3,0x42,0x00,0x00,}}, {0x9249,2,{0xE3,0x43,0x00,0x00,}}, {0x924A,2,{0xE3,0x44,0x00,0x00,}}, {0x924B,2,{0xE3,0x45,0x00,0x00,}}, {0x924C,2,{0xE3,0x46,0x00,0x00,}}, {0x924D,2,{0xE3,0x47,0x00,0x00,}}, {0x924E,2,{0xE3,0x48,0x00,0x00,}}, {0x924F,2,{0xE3,0x49,0x00,0x00,}}, {0x9250,2,{0xE3,0x4A,0x00,0x00,}}, {0x9251,2,{0xE3,0x4B,0x00,0x00,}}, {0x9252,2,{0xE3,0x4C,0x00,0x00,}}, {0x9253,2,{0xE3,0x4D,0x00,0x00,}}, {0x9254,2,{0xE3,0x4E,0x00,0x00,}}, {0x9255,2,{0xE3,0x4F,0x00,0x00,}}, {0x9256,2,{0xE3,0x50,0x00,0x00,}}, {0x9257,2,{0xE3,0x51,0x00,0x00,}}, {0x9258,2,{0xE3,0x52,0x00,0x00,}}, {0x9259,2,{0xE3,0x53,0x00,0x00,}}, {0x925A,2,{0xE3,0x54,0x00,0x00,}}, {0x925B,2,{0xE3,0x55,0x00,0x00,}}, {0x925C,2,{0xE3,0x56,0x00,0x00,}}, {0x925D,2,{0xE3,0x57,0x00,0x00,}}, {0x925E,2,{0xE3,0x58,0x00,0x00,}}, {0x925F,2,{0xE3,0x59,0x00,0x00,}}, {0x9260,2,{0xE3,0x5A,0x00,0x00,}}, {0x9261,2,{0xE3,0x5B,0x00,0x00,}}, {0x9262,2,{0xE3,0x5C,0x00,0x00,}}, {0x9263,2,{0xE3,0x5D,0x00,0x00,}}, {0x9264,2,{0xE3,0x5E,0x00,0x00,}}, {0x9265,2,{0xE3,0x5F,0x00,0x00,}}, {0x9266,2,{0xE3,0x60,0x00,0x00,}}, {0x9267,2,{0xE3,0x61,0x00,0x00,}}, {0x9268,2,{0xE3,0x62,0x00,0x00,}}, {0x9269,2,{0xE3,0x63,0x00,0x00,}}, {0x926A,2,{0xE3,0x64,0x00,0x00,}}, {0x926B,2,{0xE3,0x65,0x00,0x00,}}, {0x926C,2,{0xE3,0x66,0x00,0x00,}}, {0x926D,2,{0xE3,0x67,0x00,0x00,}}, {0x926E,2,{0xE3,0x68,0x00,0x00,}}, {0x926F,2,{0xE3,0x69,0x00,0x00,}}, {0x9270,2,{0xE3,0x6A,0x00,0x00,}}, {0x9271,2,{0xE3,0x6B,0x00,0x00,}}, {0x9272,2,{0xE3,0x6C,0x00,0x00,}}, {0x9273,2,{0xE3,0x6D,0x00,0x00,}}, {0x9274,2,{0xBC,0xF8,0x00,0x00,}}, {0x9275,2,{0xE3,0x6E,0x00,0x00,}}, {0x9276,2,{0xE3,0x6F,0x00,0x00,}}, {0x9277,2,{0xE3,0x70,0x00,0x00,}}, {0x9278,2,{0xE3,0x71,0x00,0x00,}}, {0x9279,2,{0xE3,0x72,0x00,0x00,}}, {0x927A,2,{0xE3,0x73,0x00,0x00,}}, {0x927B,2,{0xE3,0x74,0x00,0x00,}}, {0x927C,2,{0xE3,0x75,0x00,0x00,}}, {0x927D,2,{0xE3,0x76,0x00,0x00,}}, {0x927E,2,{0xE3,0x77,0x00,0x00,}}, {0x927F,2,{0xE3,0x78,0x00,0x00,}}, {0x9280,2,{0xE3,0x79,0x00,0x00,}}, {0x9281,2,{0xE3,0x7A,0x00,0x00,}}, {0x9282,2,{0xE3,0x7B,0x00,0x00,}}, {0x9283,2,{0xE3,0x7C,0x00,0x00,}}, {0x9284,2,{0xE3,0x7D,0x00,0x00,}}, {0x9285,2,{0xE3,0x7E,0x00,0x00,}}, {0x9286,2,{0xE3,0x80,0x00,0x00,}}, {0x9287,2,{0xE3,0x81,0x00,0x00,}}, {0x9288,2,{0xE3,0x82,0x00,0x00,}}, {0x9289,2,{0xE3,0x83,0x00,0x00,}}, {0x928A,2,{0xE3,0x84,0x00,0x00,}}, {0x928B,2,{0xE3,0x85,0x00,0x00,}}, {0x928C,2,{0xE3,0x86,0x00,0x00,}}, {0x928D,2,{0xE3,0x87,0x00,0x00,}}, {0x928E,2,{0xF6,0xC6,0x00,0x00,}}, {0x928F,2,{0xE3,0x88,0x00,0x00,}}, {0x9290,2,{0xE3,0x89,0x00,0x00,}}, {0x9291,2,{0xE3,0x8A,0x00,0x00,}}, {0x9292,2,{0xE3,0x8B,0x00,0x00,}}, {0x9293,2,{0xE3,0x8C,0x00,0x00,}}, {0x9294,2,{0xE3,0x8D,0x00,0x00,}}, {0x9295,2,{0xE3,0x8E,0x00,0x00,}}, {0x9296,2,{0xE3,0x8F,0x00,0x00,}}, {0x9297,2,{0xE3,0x90,0x00,0x00,}}, {0x9298,2,{0xE3,0x91,0x00,0x00,}}, {0x9299,2,{0xE3,0x92,0x00,0x00,}}, {0x929A,2,{0xE3,0x93,0x00,0x00,}}, {0x929B,2,{0xE3,0x94,0x00,0x00,}}, {0x929C,2,{0xE3,0x95,0x00,0x00,}}, {0x929D,2,{0xE3,0x96,0x00,0x00,}}, {0x929E,2,{0xE3,0x97,0x00,0x00,}}, {0x929F,2,{0xE3,0x98,0x00,0x00,}}, {0x92A0,2,{0xE3,0x99,0x00,0x00,}}, {0x92A1,2,{0xE3,0x9A,0x00,0x00,}}, {0x92A2,2,{0xE3,0x9B,0x00,0x00,}}, {0x92A3,2,{0xE3,0x9C,0x00,0x00,}}, {0x92A4,2,{0xE3,0x9D,0x00,0x00,}}, {0x92A5,2,{0xE3,0x9E,0x00,0x00,}}, {0x92A6,2,{0xE3,0x9F,0x00,0x00,}}, {0x92A7,2,{0xE3,0xA0,0x00,0x00,}}, {0x92A8,2,{0xE4,0x40,0x00,0x00,}}, {0x92A9,2,{0xE4,0x41,0x00,0x00,}}, {0x92AA,2,{0xE4,0x42,0x00,0x00,}}, {0x92AB,2,{0xE4,0x43,0x00,0x00,}}, {0x92AC,2,{0xE4,0x44,0x00,0x00,}}, {0x92AD,2,{0xE4,0x45,0x00,0x00,}}, {0x92AE,2,{0xF6,0xC7,0x00,0x00,}}, {0x92AF,2,{0xE4,0x46,0x00,0x00,}}, {0x92B0,2,{0xE4,0x47,0x00,0x00,}}, {0x92B1,2,{0xE4,0x48,0x00,0x00,}}, {0x92B2,2,{0xE4,0x49,0x00,0x00,}}, {0x92B3,2,{0xE4,0x4A,0x00,0x00,}}, {0x92B4,2,{0xE4,0x4B,0x00,0x00,}}, {0x92B5,2,{0xE4,0x4C,0x00,0x00,}}, {0x92B6,2,{0xE4,0x4D,0x00,0x00,}}, {0x92B7,2,{0xE4,0x4E,0x00,0x00,}}, {0x92B8,2,{0xE4,0x4F,0x00,0x00,}}, {0x92B9,2,{0xE4,0x50,0x00,0x00,}}, {0x92BA,2,{0xE4,0x51,0x00,0x00,}}, {0x92BB,2,{0xE4,0x52,0x00,0x00,}}, {0x92BC,2,{0xE4,0x53,0x00,0x00,}}, {0x92BD,2,{0xE4,0x54,0x00,0x00,}}, {0x92BE,2,{0xE4,0x55,0x00,0x00,}}, {0x92BF,2,{0xE4,0x56,0x00,0x00,}}, {0x92C0,2,{0xE4,0x57,0x00,0x00,}}, {0x92C1,2,{0xE4,0x58,0x00,0x00,}}, {0x92C2,2,{0xE4,0x59,0x00,0x00,}}, {0x92C3,2,{0xE4,0x5A,0x00,0x00,}}, {0x92C4,2,{0xE4,0x5B,0x00,0x00,}}, {0x92C5,2,{0xE4,0x5C,0x00,0x00,}}, {0x92C6,2,{0xE4,0x5D,0x00,0x00,}}, {0x92C7,2,{0xE4,0x5E,0x00,0x00,}}, {0x92C8,2,{0xF6,0xC8,0x00,0x00,}}, {0x92C9,2,{0xE4,0x5F,0x00,0x00,}}, {0x92CA,2,{0xE4,0x60,0x00,0x00,}}, {0x92CB,2,{0xE4,0x61,0x00,0x00,}}, {0x92CC,2,{0xE4,0x62,0x00,0x00,}}, {0x92CD,2,{0xE4,0x63,0x00,0x00,}}, {0x92CE,2,{0xE4,0x64,0x00,0x00,}}, {0x92CF,2,{0xE4,0x65,0x00,0x00,}}, {0x92D0,2,{0xE4,0x66,0x00,0x00,}}, {0x92D1,2,{0xE4,0x67,0x00,0x00,}}, {0x92D2,2,{0xE4,0x68,0x00,0x00,}}, {0x92D3,2,{0xE4,0x69,0x00,0x00,}}, {0x92D4,2,{0xE4,0x6A,0x00,0x00,}}, {0x92D5,2,{0xE4,0x6B,0x00,0x00,}}, {0x92D6,2,{0xE4,0x6C,0x00,0x00,}}, {0x92D7,2,{0xE4,0x6D,0x00,0x00,}}, {0x92D8,2,{0xE4,0x6E,0x00,0x00,}}, {0x92D9,2,{0xE4,0x6F,0x00,0x00,}}, {0x92DA,2,{0xE4,0x70,0x00,0x00,}}, {0x92DB,2,{0xE4,0x71,0x00,0x00,}}, {0x92DC,2,{0xE4,0x72,0x00,0x00,}}, {0x92DD,2,{0xE4,0x73,0x00,0x00,}}, {0x92DE,2,{0xE4,0x74,0x00,0x00,}}, {0x92DF,2,{0xE4,0x75,0x00,0x00,}}, {0x92E0,2,{0xE4,0x76,0x00,0x00,}}, {0x92E1,2,{0xE4,0x77,0x00,0x00,}}, {0x92E2,2,{0xE4,0x78,0x00,0x00,}}, {0x92E3,2,{0xE4,0x79,0x00,0x00,}}, {0x92E4,2,{0xE4,0x7A,0x00,0x00,}}, {0x92E5,2,{0xE4,0x7B,0x00,0x00,}}, {0x92E6,2,{0xE4,0x7C,0x00,0x00,}}, {0x92E7,2,{0xE4,0x7D,0x00,0x00,}}, {0x92E8,2,{0xE4,0x7E,0x00,0x00,}}, {0x92E9,2,{0xE4,0x80,0x00,0x00,}}, {0x92EA,2,{0xE4,0x81,0x00,0x00,}}, {0x92EB,2,{0xE4,0x82,0x00,0x00,}}, {0x92EC,2,{0xE4,0x83,0x00,0x00,}}, {0x92ED,2,{0xE4,0x84,0x00,0x00,}}, {0x92EE,2,{0xE4,0x85,0x00,0x00,}}, {0x92EF,2,{0xE4,0x86,0x00,0x00,}}, {0x92F0,2,{0xE4,0x87,0x00,0x00,}}, {0x92F1,2,{0xE4,0x88,0x00,0x00,}}, {0x92F2,2,{0xE4,0x89,0x00,0x00,}}, {0x92F3,2,{0xE4,0x8A,0x00,0x00,}}, {0x92F4,2,{0xE4,0x8B,0x00,0x00,}}, {0x92F5,2,{0xE4,0x8C,0x00,0x00,}}, {0x92F6,2,{0xE4,0x8D,0x00,0x00,}}, {0x92F7,2,{0xE4,0x8E,0x00,0x00,}}, {0x92F8,2,{0xE4,0x8F,0x00,0x00,}}, {0x92F9,2,{0xE4,0x90,0x00,0x00,}}, {0x92FA,2,{0xE4,0x91,0x00,0x00,}}, {0x92FB,2,{0xE4,0x92,0x00,0x00,}}, {0x92FC,2,{0xE4,0x93,0x00,0x00,}}, {0x92FD,2,{0xE4,0x94,0x00,0x00,}}, {0x92FE,2,{0xE4,0x95,0x00,0x00,}}, {0x92FF,2,{0xE4,0x96,0x00,0x00,}}, {0x9300,2,{0xE4,0x97,0x00,0x00,}}, {0x9301,2,{0xE4,0x98,0x00,0x00,}}, {0x9302,2,{0xE4,0x99,0x00,0x00,}}, {0x9303,2,{0xE4,0x9A,0x00,0x00,}}, {0x9304,2,{0xE4,0x9B,0x00,0x00,}}, {0x9305,2,{0xE4,0x9C,0x00,0x00,}}, {0x9306,2,{0xE4,0x9D,0x00,0x00,}}, {0x9307,2,{0xE4,0x9E,0x00,0x00,}}, {0x9308,2,{0xE4,0x9F,0x00,0x00,}}, {0x9309,2,{0xE4,0xA0,0x00,0x00,}}, {0x930A,2,{0xE5,0x40,0x00,0x00,}}, {0x930B,2,{0xE5,0x41,0x00,0x00,}}, {0x930C,2,{0xE5,0x42,0x00,0x00,}}, {0x930D,2,{0xE5,0x43,0x00,0x00,}}, {0x930E,2,{0xE5,0x44,0x00,0x00,}}, {0x930F,2,{0xE5,0x45,0x00,0x00,}}, {0x9310,2,{0xE5,0x46,0x00,0x00,}}, {0x9311,2,{0xE5,0x47,0x00,0x00,}}, {0x9312,2,{0xE5,0x48,0x00,0x00,}}, {0x9313,2,{0xE5,0x49,0x00,0x00,}}, {0x9314,2,{0xE5,0x4A,0x00,0x00,}}, {0x9315,2,{0xE5,0x4B,0x00,0x00,}}, {0x9316,2,{0xE5,0x4C,0x00,0x00,}}, {0x9317,2,{0xE5,0x4D,0x00,0x00,}}, {0x9318,2,{0xE5,0x4E,0x00,0x00,}}, {0x9319,2,{0xE5,0x4F,0x00,0x00,}}, {0x931A,2,{0xE5,0x50,0x00,0x00,}}, {0x931B,2,{0xE5,0x51,0x00,0x00,}}, {0x931C,2,{0xE5,0x52,0x00,0x00,}}, {0x931D,2,{0xE5,0x53,0x00,0x00,}}, {0x931E,2,{0xE5,0x54,0x00,0x00,}}, {0x931F,2,{0xE5,0x55,0x00,0x00,}}, {0x9320,2,{0xE5,0x56,0x00,0x00,}}, {0x9321,2,{0xE5,0x57,0x00,0x00,}}, {0x9322,2,{0xE5,0x58,0x00,0x00,}}, {0x9323,2,{0xE5,0x59,0x00,0x00,}}, {0x9324,2,{0xE5,0x5A,0x00,0x00,}}, {0x9325,2,{0xE5,0x5B,0x00,0x00,}}, {0x9326,2,{0xE5,0x5C,0x00,0x00,}}, {0x9327,2,{0xE5,0x5D,0x00,0x00,}}, {0x9328,2,{0xE5,0x5E,0x00,0x00,}}, {0x9329,2,{0xE5,0x5F,0x00,0x00,}}, {0x932A,2,{0xE5,0x60,0x00,0x00,}}, {0x932B,2,{0xE5,0x61,0x00,0x00,}}, {0x932C,2,{0xE5,0x62,0x00,0x00,}}, {0x932D,2,{0xE5,0x63,0x00,0x00,}}, {0x932E,2,{0xE5,0x64,0x00,0x00,}}, {0x932F,2,{0xE5,0x65,0x00,0x00,}}, {0x9330,2,{0xE5,0x66,0x00,0x00,}}, {0x9331,2,{0xE5,0x67,0x00,0x00,}}, {0x9332,2,{0xE5,0x68,0x00,0x00,}}, {0x9333,2,{0xE5,0x69,0x00,0x00,}}, {0x9334,2,{0xE5,0x6A,0x00,0x00,}}, {0x9335,2,{0xE5,0x6B,0x00,0x00,}}, {0x9336,2,{0xE5,0x6C,0x00,0x00,}}, {0x9337,2,{0xE5,0x6D,0x00,0x00,}}, {0x9338,2,{0xE5,0x6E,0x00,0x00,}}, {0x9339,2,{0xE5,0x6F,0x00,0x00,}}, {0x933A,2,{0xE5,0x70,0x00,0x00,}}, {0x933B,2,{0xE5,0x71,0x00,0x00,}}, {0x933C,2,{0xE5,0x72,0x00,0x00,}}, {0x933D,2,{0xE5,0x73,0x00,0x00,}}, {0x933E,2,{0xF6,0xC9,0x00,0x00,}}, {0x933F,2,{0xE5,0x74,0x00,0x00,}}, {0x9340,2,{0xE5,0x75,0x00,0x00,}}, {0x9341,2,{0xE5,0x76,0x00,0x00,}}, {0x9342,2,{0xE5,0x77,0x00,0x00,}}, {0x9343,2,{0xE5,0x78,0x00,0x00,}}, {0x9344,2,{0xE5,0x79,0x00,0x00,}}, {0x9345,2,{0xE5,0x7A,0x00,0x00,}}, {0x9346,2,{0xE5,0x7B,0x00,0x00,}}, {0x9347,2,{0xE5,0x7C,0x00,0x00,}}, {0x9348,2,{0xE5,0x7D,0x00,0x00,}}, {0x9349,2,{0xE5,0x7E,0x00,0x00,}}, {0x934A,2,{0xE5,0x80,0x00,0x00,}}, {0x934B,2,{0xE5,0x81,0x00,0x00,}}, {0x934C,2,{0xE5,0x82,0x00,0x00,}}, {0x934D,2,{0xE5,0x83,0x00,0x00,}}, {0x934E,2,{0xE5,0x84,0x00,0x00,}}, {0x934F,2,{0xE5,0x85,0x00,0x00,}}, {0x9350,2,{0xE5,0x86,0x00,0x00,}}, {0x9351,2,{0xE5,0x87,0x00,0x00,}}, {0x9352,2,{0xE5,0x88,0x00,0x00,}}, {0x9353,2,{0xE5,0x89,0x00,0x00,}}, {0x9354,2,{0xE5,0x8A,0x00,0x00,}}, {0x9355,2,{0xE5,0x8B,0x00,0x00,}}, {0x9356,2,{0xE5,0x8C,0x00,0x00,}}, {0x9357,2,{0xE5,0x8D,0x00,0x00,}}, {0x9358,2,{0xE5,0x8E,0x00,0x00,}}, {0x9359,2,{0xE5,0x8F,0x00,0x00,}}, {0x935A,2,{0xE5,0x90,0x00,0x00,}}, {0x935B,2,{0xE5,0x91,0x00,0x00,}}, {0x935C,2,{0xE5,0x92,0x00,0x00,}}, {0x935D,2,{0xE5,0x93,0x00,0x00,}}, {0x935E,2,{0xE5,0x94,0x00,0x00,}}, {0x935F,2,{0xE5,0x95,0x00,0x00,}}, {0x9360,2,{0xE5,0x96,0x00,0x00,}}, {0x9361,2,{0xE5,0x97,0x00,0x00,}}, {0x9362,2,{0xE5,0x98,0x00,0x00,}}, {0x9363,2,{0xE5,0x99,0x00,0x00,}}, {0x9364,2,{0xE5,0x9A,0x00,0x00,}}, {0x9365,2,{0xE5,0x9B,0x00,0x00,}}, {0x9366,2,{0xE5,0x9C,0x00,0x00,}}, {0x9367,2,{0xE5,0x9D,0x00,0x00,}}, {0x9368,2,{0xE5,0x9E,0x00,0x00,}}, {0x9369,2,{0xE5,0x9F,0x00,0x00,}}, {0x936A,2,{0xF6,0xCA,0x00,0x00,}}, {0x936B,2,{0xE5,0xA0,0x00,0x00,}}, {0x936C,2,{0xE6,0x40,0x00,0x00,}}, {0x936D,2,{0xE6,0x41,0x00,0x00,}}, {0x936E,2,{0xE6,0x42,0x00,0x00,}}, {0x936F,2,{0xE6,0x43,0x00,0x00,}}, {0x9370,2,{0xE6,0x44,0x00,0x00,}}, {0x9371,2,{0xE6,0x45,0x00,0x00,}}, {0x9372,2,{0xE6,0x46,0x00,0x00,}}, {0x9373,2,{0xE6,0x47,0x00,0x00,}}, {0x9374,2,{0xE6,0x48,0x00,0x00,}}, {0x9375,2,{0xE6,0x49,0x00,0x00,}}, {0x9376,2,{0xE6,0x4A,0x00,0x00,}}, {0x9377,2,{0xE6,0x4B,0x00,0x00,}}, {0x9378,2,{0xE6,0x4C,0x00,0x00,}}, {0x9379,2,{0xE6,0x4D,0x00,0x00,}}, {0x937A,2,{0xE6,0x4E,0x00,0x00,}}, {0x937B,2,{0xE6,0x4F,0x00,0x00,}}, {0x937C,2,{0xE6,0x50,0x00,0x00,}}, {0x937D,2,{0xE6,0x51,0x00,0x00,}}, {0x937E,2,{0xE6,0x52,0x00,0x00,}}, {0x937F,2,{0xE6,0x53,0x00,0x00,}}, {0x9380,2,{0xE6,0x54,0x00,0x00,}}, {0x9381,2,{0xE6,0x55,0x00,0x00,}}, {0x9382,2,{0xE6,0x56,0x00,0x00,}}, {0x9383,2,{0xE6,0x57,0x00,0x00,}}, {0x9384,2,{0xE6,0x58,0x00,0x00,}}, {0x9385,2,{0xE6,0x59,0x00,0x00,}}, {0x9386,2,{0xE6,0x5A,0x00,0x00,}}, {0x9387,2,{0xE6,0x5B,0x00,0x00,}}, {0x9388,2,{0xE6,0x5C,0x00,0x00,}}, {0x9389,2,{0xE6,0x5D,0x00,0x00,}}, {0x938A,2,{0xE6,0x5E,0x00,0x00,}}, {0x938B,2,{0xE6,0x5F,0x00,0x00,}}, {0x938C,2,{0xE6,0x60,0x00,0x00,}}, {0x938D,2,{0xE6,0x61,0x00,0x00,}}, {0x938E,2,{0xE6,0x62,0x00,0x00,}}, {0x938F,2,{0xF6,0xCC,0x00,0x00,}}, {0x9390,2,{0xE6,0x63,0x00,0x00,}}, {0x9391,2,{0xE6,0x64,0x00,0x00,}}, {0x9392,2,{0xE6,0x65,0x00,0x00,}}, {0x9393,2,{0xE6,0x66,0x00,0x00,}}, {0x9394,2,{0xE6,0x67,0x00,0x00,}}, {0x9395,2,{0xE6,0x68,0x00,0x00,}}, {0x9396,2,{0xE6,0x69,0x00,0x00,}}, {0x9397,2,{0xE6,0x6A,0x00,0x00,}}, {0x9398,2,{0xE6,0x6B,0x00,0x00,}}, {0x9399,2,{0xE6,0x6C,0x00,0x00,}}, {0x939A,2,{0xE6,0x6D,0x00,0x00,}}, {0x939B,2,{0xE6,0x6E,0x00,0x00,}}, {0x939C,2,{0xE6,0x6F,0x00,0x00,}}, {0x939D,2,{0xE6,0x70,0x00,0x00,}}, {0x939E,2,{0xE6,0x71,0x00,0x00,}}, {0x939F,2,{0xE6,0x72,0x00,0x00,}}, {0x93A0,2,{0xE6,0x73,0x00,0x00,}}, {0x93A1,2,{0xE6,0x74,0x00,0x00,}}, {0x93A2,2,{0xE6,0x75,0x00,0x00,}}, {0x93A3,2,{0xE6,0x76,0x00,0x00,}}, {0x93A4,2,{0xE6,0x77,0x00,0x00,}}, {0x93A5,2,{0xE6,0x78,0x00,0x00,}}, {0x93A6,2,{0xE6,0x79,0x00,0x00,}}, {0x93A7,2,{0xE6,0x7A,0x00,0x00,}}, {0x93A8,2,{0xE6,0x7B,0x00,0x00,}}, {0x93A9,2,{0xE6,0x7C,0x00,0x00,}}, {0x93AA,2,{0xE6,0x7D,0x00,0x00,}}, {0x93AB,2,{0xE6,0x7E,0x00,0x00,}}, {0x93AC,2,{0xE6,0x80,0x00,0x00,}}, {0x93AD,2,{0xE6,0x81,0x00,0x00,}}, {0x93AE,2,{0xE6,0x82,0x00,0x00,}}, {0x93AF,2,{0xE6,0x83,0x00,0x00,}}, {0x93B0,2,{0xE6,0x84,0x00,0x00,}}, {0x93B1,2,{0xE6,0x85,0x00,0x00,}}, {0x93B2,2,{0xE6,0x86,0x00,0x00,}}, {0x93B3,2,{0xE6,0x87,0x00,0x00,}}, {0x93B4,2,{0xE6,0x88,0x00,0x00,}}, {0x93B5,2,{0xE6,0x89,0x00,0x00,}}, {0x93B6,2,{0xE6,0x8A,0x00,0x00,}}, {0x93B7,2,{0xE6,0x8B,0x00,0x00,}}, {0x93B8,2,{0xE6,0x8C,0x00,0x00,}}, {0x93B9,2,{0xE6,0x8D,0x00,0x00,}}, {0x93BA,2,{0xE6,0x8E,0x00,0x00,}}, {0x93BB,2,{0xE6,0x8F,0x00,0x00,}}, {0x93BC,2,{0xE6,0x90,0x00,0x00,}}, {0x93BD,2,{0xE6,0x91,0x00,0x00,}}, {0x93BE,2,{0xE6,0x92,0x00,0x00,}}, {0x93BF,2,{0xE6,0x93,0x00,0x00,}}, {0x93C0,2,{0xE6,0x94,0x00,0x00,}}, {0x93C1,2,{0xE6,0x95,0x00,0x00,}}, {0x93C2,2,{0xE6,0x96,0x00,0x00,}}, {0x93C3,2,{0xE6,0x97,0x00,0x00,}}, {0x93C4,2,{0xE6,0x98,0x00,0x00,}}, {0x93C5,2,{0xE6,0x99,0x00,0x00,}}, {0x93C6,2,{0xE6,0x9A,0x00,0x00,}}, {0x93C7,2,{0xE6,0x9B,0x00,0x00,}}, {0x93C8,2,{0xE6,0x9C,0x00,0x00,}}, {0x93C9,2,{0xE6,0x9D,0x00,0x00,}}, {0x93CA,2,{0xF6,0xCB,0x00,0x00,}}, {0x93CB,2,{0xE6,0x9E,0x00,0x00,}}, {0x93CC,2,{0xE6,0x9F,0x00,0x00,}}, {0x93CD,2,{0xE6,0xA0,0x00,0x00,}}, {0x93CE,2,{0xE7,0x40,0x00,0x00,}}, {0x93CF,2,{0xE7,0x41,0x00,0x00,}}, {0x93D0,2,{0xE7,0x42,0x00,0x00,}}, {0x93D1,2,{0xE7,0x43,0x00,0x00,}}, {0x93D2,2,{0xE7,0x44,0x00,0x00,}}, {0x93D3,2,{0xE7,0x45,0x00,0x00,}}, {0x93D4,2,{0xE7,0x46,0x00,0x00,}}, {0x93D5,2,{0xE7,0x47,0x00,0x00,}}, {0x93D6,2,{0xF7,0xE9,0x00,0x00,}}, {0x93D7,2,{0xE7,0x48,0x00,0x00,}}, {0x93D8,2,{0xE7,0x49,0x00,0x00,}}, {0x93D9,2,{0xE7,0x4A,0x00,0x00,}}, {0x93DA,2,{0xE7,0x4B,0x00,0x00,}}, {0x93DB,2,{0xE7,0x4C,0x00,0x00,}}, {0x93DC,2,{0xE7,0x4D,0x00,0x00,}}, {0x93DD,2,{0xE7,0x4E,0x00,0x00,}}, {0x93DE,2,{0xE7,0x4F,0x00,0x00,}}, {0x93DF,2,{0xE7,0x50,0x00,0x00,}}, {0x93E0,2,{0xE7,0x51,0x00,0x00,}}, {0x93E1,2,{0xE7,0x52,0x00,0x00,}}, {0x93E2,2,{0xE7,0x53,0x00,0x00,}}, {0x93E3,2,{0xE7,0x54,0x00,0x00,}}, {0x93E4,2,{0xE7,0x55,0x00,0x00,}}, {0x93E5,2,{0xE7,0x56,0x00,0x00,}}, {0x93E6,2,{0xE7,0x57,0x00,0x00,}}, {0x93E7,2,{0xE7,0x58,0x00,0x00,}}, {0x93E8,2,{0xE7,0x59,0x00,0x00,}}, {0x93E9,2,{0xE7,0x5A,0x00,0x00,}}, {0x93EA,2,{0xE7,0x5B,0x00,0x00,}}, {0x93EB,2,{0xE7,0x5C,0x00,0x00,}}, {0x93EC,2,{0xE7,0x5D,0x00,0x00,}}, {0x93ED,2,{0xE7,0x5E,0x00,0x00,}}, {0x93EE,2,{0xE7,0x5F,0x00,0x00,}}, {0x93EF,2,{0xE7,0x60,0x00,0x00,}}, {0x93F0,2,{0xE7,0x61,0x00,0x00,}}, {0x93F1,2,{0xE7,0x62,0x00,0x00,}}, {0x93F2,2,{0xE7,0x63,0x00,0x00,}}, {0x93F3,2,{0xE7,0x64,0x00,0x00,}}, {0x93F4,2,{0xE7,0x65,0x00,0x00,}}, {0x93F5,2,{0xE7,0x66,0x00,0x00,}}, {0x93F6,2,{0xE7,0x67,0x00,0x00,}}, {0x93F7,2,{0xE7,0x68,0x00,0x00,}}, {0x93F8,2,{0xE7,0x69,0x00,0x00,}}, {0x93F9,2,{0xE7,0x6A,0x00,0x00,}}, {0x93FA,2,{0xE7,0x6B,0x00,0x00,}}, {0x93FB,2,{0xE7,0x6C,0x00,0x00,}}, {0x93FC,2,{0xE7,0x6D,0x00,0x00,}}, {0x93FD,2,{0xE7,0x6E,0x00,0x00,}}, {0x93FE,2,{0xE7,0x6F,0x00,0x00,}}, {0x93FF,2,{0xE7,0x70,0x00,0x00,}}, {0x9400,2,{0xE7,0x71,0x00,0x00,}}, {0x9401,2,{0xE7,0x72,0x00,0x00,}}, {0x9402,2,{0xE7,0x73,0x00,0x00,}}, {0x9403,2,{0xE7,0x74,0x00,0x00,}}, {0x9404,2,{0xE7,0x75,0x00,0x00,}}, {0x9405,2,{0xE7,0x76,0x00,0x00,}}, {0x9406,2,{0xE7,0x77,0x00,0x00,}}, {0x9407,2,{0xE7,0x78,0x00,0x00,}}, {0x9408,2,{0xE7,0x79,0x00,0x00,}}, {0x9409,2,{0xE7,0x7A,0x00,0x00,}}, {0x940A,2,{0xE7,0x7B,0x00,0x00,}}, {0x940B,2,{0xE7,0x7C,0x00,0x00,}}, {0x940C,2,{0xE7,0x7D,0x00,0x00,}}, {0x940D,2,{0xE7,0x7E,0x00,0x00,}}, {0x940E,2,{0xE7,0x80,0x00,0x00,}}, {0x940F,2,{0xE7,0x81,0x00,0x00,}}, {0x9410,2,{0xE7,0x82,0x00,0x00,}}, {0x9411,2,{0xE7,0x83,0x00,0x00,}}, {0x9412,2,{0xE7,0x84,0x00,0x00,}}, {0x9413,2,{0xE7,0x85,0x00,0x00,}}, {0x9414,2,{0xE7,0x86,0x00,0x00,}}, {0x9415,2,{0xE7,0x87,0x00,0x00,}}, {0x9416,2,{0xE7,0x88,0x00,0x00,}}, {0x9417,2,{0xE7,0x89,0x00,0x00,}}, {0x9418,2,{0xE7,0x8A,0x00,0x00,}}, {0x9419,2,{0xE7,0x8B,0x00,0x00,}}, {0x941A,2,{0xE7,0x8C,0x00,0x00,}}, {0x941B,2,{0xE7,0x8D,0x00,0x00,}}, {0x941C,2,{0xE7,0x8E,0x00,0x00,}}, {0x941D,2,{0xE7,0x8F,0x00,0x00,}}, {0x941E,2,{0xE7,0x90,0x00,0x00,}}, {0x941F,2,{0xE7,0x91,0x00,0x00,}}, {0x9420,2,{0xE7,0x92,0x00,0x00,}}, {0x9421,2,{0xE7,0x93,0x00,0x00,}}, {0x9422,2,{0xE7,0x94,0x00,0x00,}}, {0x9423,2,{0xE7,0x95,0x00,0x00,}}, {0x9424,2,{0xE7,0x96,0x00,0x00,}}, {0x9425,2,{0xE7,0x97,0x00,0x00,}}, {0x9426,2,{0xE7,0x98,0x00,0x00,}}, {0x9427,2,{0xE7,0x99,0x00,0x00,}}, {0x9428,2,{0xE7,0x9A,0x00,0x00,}}, {0x9429,2,{0xE7,0x9B,0x00,0x00,}}, {0x942A,2,{0xE7,0x9C,0x00,0x00,}}, {0x942B,2,{0xE7,0x9D,0x00,0x00,}}, {0x942C,2,{0xE7,0x9E,0x00,0x00,}}, {0x942D,2,{0xE7,0x9F,0x00,0x00,}}, {0x942E,2,{0xE7,0xA0,0x00,0x00,}}, {0x942F,2,{0xE8,0x40,0x00,0x00,}}, {0x9430,2,{0xE8,0x41,0x00,0x00,}}, {0x9431,2,{0xE8,0x42,0x00,0x00,}}, {0x9432,2,{0xE8,0x43,0x00,0x00,}}, {0x9433,2,{0xE8,0x44,0x00,0x00,}}, {0x9434,2,{0xE8,0x45,0x00,0x00,}}, {0x9435,2,{0xE8,0x46,0x00,0x00,}}, {0x9436,2,{0xE8,0x47,0x00,0x00,}}, {0x9437,2,{0xE8,0x48,0x00,0x00,}}, {0x9438,2,{0xE8,0x49,0x00,0x00,}}, {0x9439,2,{0xE8,0x4A,0x00,0x00,}}, {0x943A,2,{0xE8,0x4B,0x00,0x00,}}, {0x943B,2,{0xE8,0x4C,0x00,0x00,}}, {0x943C,2,{0xE8,0x4D,0x00,0x00,}}, {0x943D,2,{0xE8,0x4E,0x00,0x00,}}, {0x943E,2,{0xF6,0xCD,0x00,0x00,}}, {0x943F,2,{0xE8,0x4F,0x00,0x00,}}, {0x9440,2,{0xE8,0x50,0x00,0x00,}}, {0x9441,2,{0xE8,0x51,0x00,0x00,}}, {0x9442,2,{0xE8,0x52,0x00,0x00,}}, {0x9443,2,{0xE8,0x53,0x00,0x00,}}, {0x9444,2,{0xE8,0x54,0x00,0x00,}}, {0x9445,2,{0xE8,0x55,0x00,0x00,}}, {0x9446,2,{0xE8,0x56,0x00,0x00,}}, {0x9447,2,{0xE8,0x57,0x00,0x00,}}, {0x9448,2,{0xE8,0x58,0x00,0x00,}}, {0x9449,2,{0xE8,0x59,0x00,0x00,}}, {0x944A,2,{0xE8,0x5A,0x00,0x00,}}, {0x944B,2,{0xE8,0x5B,0x00,0x00,}}, {0x944C,2,{0xE8,0x5C,0x00,0x00,}}, {0x944D,2,{0xE8,0x5D,0x00,0x00,}}, {0x944E,2,{0xE8,0x5E,0x00,0x00,}}, {0x944F,2,{0xE8,0x5F,0x00,0x00,}}, {0x9450,2,{0xE8,0x60,0x00,0x00,}}, {0x9451,2,{0xE8,0x61,0x00,0x00,}}, {0x9452,2,{0xE8,0x62,0x00,0x00,}}, {0x9453,2,{0xE8,0x63,0x00,0x00,}}, {0x9454,2,{0xE8,0x64,0x00,0x00,}}, {0x9455,2,{0xE8,0x65,0x00,0x00,}}, {0x9456,2,{0xE8,0x66,0x00,0x00,}}, {0x9457,2,{0xE8,0x67,0x00,0x00,}}, {0x9458,2,{0xE8,0x68,0x00,0x00,}}, {0x9459,2,{0xE8,0x69,0x00,0x00,}}, {0x945A,2,{0xE8,0x6A,0x00,0x00,}}, {0x945B,2,{0xE8,0x6B,0x00,0x00,}}, {0x945C,2,{0xE8,0x6C,0x00,0x00,}}, {0x945D,2,{0xE8,0x6D,0x00,0x00,}}, {0x945E,2,{0xE8,0x6E,0x00,0x00,}}, {0x945F,2,{0xE8,0x6F,0x00,0x00,}}, {0x9460,2,{0xE8,0x70,0x00,0x00,}}, {0x9461,2,{0xE8,0x71,0x00,0x00,}}, {0x9462,2,{0xE8,0x72,0x00,0x00,}}, {0x9463,2,{0xE8,0x73,0x00,0x00,}}, {0x9464,2,{0xE8,0x74,0x00,0x00,}}, {0x9465,2,{0xE8,0x75,0x00,0x00,}}, {0x9466,2,{0xE8,0x76,0x00,0x00,}}, {0x9467,2,{0xE8,0x77,0x00,0x00,}}, {0x9468,2,{0xE8,0x78,0x00,0x00,}}, {0x9469,2,{0xE8,0x79,0x00,0x00,}}, {0x946A,2,{0xE8,0x7A,0x00,0x00,}}, {0x946B,2,{0xF6,0xCE,0x00,0x00,}}, {0x946C,2,{0xE8,0x7B,0x00,0x00,}}, {0x946D,2,{0xE8,0x7C,0x00,0x00,}}, {0x946E,2,{0xE8,0x7D,0x00,0x00,}}, {0x946F,2,{0xE8,0x7E,0x00,0x00,}}, {0x9470,2,{0xE8,0x80,0x00,0x00,}}, {0x9471,2,{0xE8,0x81,0x00,0x00,}}, {0x9472,2,{0xE8,0x82,0x00,0x00,}}, {0x9473,2,{0xE8,0x83,0x00,0x00,}}, {0x9474,2,{0xE8,0x84,0x00,0x00,}}, {0x9475,2,{0xE8,0x85,0x00,0x00,}}, {0x9476,2,{0xE8,0x86,0x00,0x00,}}, {0x9477,2,{0xE8,0x87,0x00,0x00,}}, {0x9478,2,{0xE8,0x88,0x00,0x00,}}, {0x9479,2,{0xE8,0x89,0x00,0x00,}}, {0x947A,2,{0xE8,0x8A,0x00,0x00,}}, {0x947B,2,{0xE8,0x8B,0x00,0x00,}}, {0x947C,2,{0xE8,0x8C,0x00,0x00,}}, {0x947D,2,{0xE8,0x8D,0x00,0x00,}}, {0x947E,2,{0xE8,0x8E,0x00,0x00,}}, {0x947F,2,{0xE8,0x8F,0x00,0x00,}}, {0x9480,2,{0xE8,0x90,0x00,0x00,}}, {0x9481,2,{0xE8,0x91,0x00,0x00,}}, {0x9482,2,{0xE8,0x92,0x00,0x00,}}, {0x9483,2,{0xE8,0x93,0x00,0x00,}}, {0x9484,2,{0xE8,0x94,0x00,0x00,}}, {0x9485,2,{0xEE,0xC4,0x00,0x00,}}, {0x9486,2,{0xEE,0xC5,0x00,0x00,}}, {0x9487,2,{0xEE,0xC6,0x00,0x00,}}, {0x9488,2,{0xD5,0xEB,0x00,0x00,}}, {0x9489,2,{0xB6,0xA4,0x00,0x00,}}, {0x948A,2,{0xEE,0xC8,0x00,0x00,}}, {0x948B,2,{0xEE,0xC7,0x00,0x00,}}, {0x948C,2,{0xEE,0xC9,0x00,0x00,}}, {0x948D,2,{0xEE,0xCA,0x00,0x00,}}, {0x948E,2,{0xC7,0xA5,0x00,0x00,}}, {0x948F,2,{0xEE,0xCB,0x00,0x00,}}, {0x9490,2,{0xEE,0xCC,0x00,0x00,}}, {0x9491,2,{0xE8,0x95,0x00,0x00,}}, {0x9492,2,{0xB7,0xB0,0x00,0x00,}}, {0x9493,2,{0xB5,0xF6,0x00,0x00,}}, {0x9494,2,{0xEE,0xCD,0x00,0x00,}}, {0x9495,2,{0xEE,0xCF,0x00,0x00,}}, {0x9496,2,{0xE8,0x96,0x00,0x00,}}, {0x9497,2,{0xEE,0xCE,0x00,0x00,}}, {0x9498,2,{0xE8,0x97,0x00,0x00,}}, {0x9499,2,{0xB8,0xC6,0x00,0x00,}}, {0x949A,2,{0xEE,0xD0,0x00,0x00,}}, {0x949B,2,{0xEE,0xD1,0x00,0x00,}}, {0x949C,2,{0xEE,0xD2,0x00,0x00,}}, {0x949D,2,{0xB6,0xDB,0x00,0x00,}}, {0x949E,2,{0xB3,0xAE,0x00,0x00,}}, {0x949F,2,{0xD6,0xD3,0x00,0x00,}}, {0x94A0,2,{0xC4,0xC6,0x00,0x00,}}, {0x94A1,2,{0xB1,0xB5,0x00,0x00,}}, {0x94A2,2,{0xB8,0xD6,0x00,0x00,}}, {0x94A3,2,{0xEE,0xD3,0x00,0x00,}}, {0x94A4,2,{0xEE,0xD4,0x00,0x00,}}, {0x94A5,2,{0xD4,0xBF,0x00,0x00,}}, {0x94A6,2,{0xC7,0xD5,0x00,0x00,}}, {0x94A7,2,{0xBE,0xFB,0x00,0x00,}}, {0x94A8,2,{0xCE,0xD9,0x00,0x00,}}, {0x94A9,2,{0xB9,0xB3,0x00,0x00,}}, {0x94AA,2,{0xEE,0xD6,0x00,0x00,}}, {0x94AB,2,{0xEE,0xD5,0x00,0x00,}}, {0x94AC,2,{0xEE,0xD8,0x00,0x00,}}, {0x94AD,2,{0xEE,0xD7,0x00,0x00,}}, {0x94AE,2,{0xC5,0xA5,0x00,0x00,}}, {0x94AF,2,{0xEE,0xD9,0x00,0x00,}}, {0x94B0,2,{0xEE,0xDA,0x00,0x00,}}, {0x94B1,2,{0xC7,0xAE,0x00,0x00,}}, {0x94B2,2,{0xEE,0xDB,0x00,0x00,}}, {0x94B3,2,{0xC7,0xAF,0x00,0x00,}}, {0x94B4,2,{0xEE,0xDC,0x00,0x00,}}, {0x94B5,2,{0xB2,0xA7,0x00,0x00,}}, {0x94B6,2,{0xEE,0xDD,0x00,0x00,}}, {0x94B7,2,{0xEE,0xDE,0x00,0x00,}}, {0x94B8,2,{0xEE,0xDF,0x00,0x00,}}, {0x94B9,2,{0xEE,0xE0,0x00,0x00,}}, {0x94BA,2,{0xEE,0xE1,0x00,0x00,}}, {0x94BB,2,{0xD7,0xEA,0x00,0x00,}}, {0x94BC,2,{0xEE,0xE2,0x00,0x00,}}, {0x94BD,2,{0xEE,0xE3,0x00,0x00,}}, {0x94BE,2,{0xBC,0xD8,0x00,0x00,}}, {0x94BF,2,{0xEE,0xE4,0x00,0x00,}}, {0x94C0,2,{0xD3,0xCB,0x00,0x00,}}, {0x94C1,2,{0xCC,0xFA,0x00,0x00,}}, {0x94C2,2,{0xB2,0xAC,0x00,0x00,}}, {0x94C3,2,{0xC1,0xE5,0x00,0x00,}}, {0x94C4,2,{0xEE,0xE5,0x00,0x00,}}, {0x94C5,2,{0xC7,0xA6,0x00,0x00,}}, {0x94C6,2,{0xC3,0xAD,0x00,0x00,}}, {0x94C7,2,{0xE8,0x98,0x00,0x00,}}, {0x94C8,2,{0xEE,0xE6,0x00,0x00,}}, {0x94C9,2,{0xEE,0xE7,0x00,0x00,}}, {0x94CA,2,{0xEE,0xE8,0x00,0x00,}}, {0x94CB,2,{0xEE,0xE9,0x00,0x00,}}, {0x94CC,2,{0xEE,0xEA,0x00,0x00,}}, {0x94CD,2,{0xEE,0xEB,0x00,0x00,}}, {0x94CE,2,{0xEE,0xEC,0x00,0x00,}}, {0x94CF,2,{0xE8,0x99,0x00,0x00,}}, {0x94D0,2,{0xEE,0xED,0x00,0x00,}}, {0x94D1,2,{0xEE,0xEE,0x00,0x00,}}, {0x94D2,2,{0xEE,0xEF,0x00,0x00,}}, {0x94D3,2,{0xE8,0x9A,0x00,0x00,}}, {0x94D4,2,{0xE8,0x9B,0x00,0x00,}}, {0x94D5,2,{0xEE,0xF0,0x00,0x00,}}, {0x94D6,2,{0xEE,0xF1,0x00,0x00,}}, {0x94D7,2,{0xEE,0xF2,0x00,0x00,}}, {0x94D8,2,{0xEE,0xF4,0x00,0x00,}}, {0x94D9,2,{0xEE,0xF3,0x00,0x00,}}, {0x94DA,2,{0xE8,0x9C,0x00,0x00,}}, {0x94DB,2,{0xEE,0xF5,0x00,0x00,}}, {0x94DC,2,{0xCD,0xAD,0x00,0x00,}}, {0x94DD,2,{0xC2,0xC1,0x00,0x00,}}, {0x94DE,2,{0xEE,0xF6,0x00,0x00,}}, {0x94DF,2,{0xEE,0xF7,0x00,0x00,}}, {0x94E0,2,{0xEE,0xF8,0x00,0x00,}}, {0x94E1,2,{0xD5,0xA1,0x00,0x00,}}, {0x94E2,2,{0xEE,0xF9,0x00,0x00,}}, {0x94E3,2,{0xCF,0xB3,0x00,0x00,}}, {0x94E4,2,{0xEE,0xFA,0x00,0x00,}}, {0x94E5,2,{0xEE,0xFB,0x00,0x00,}}, {0x94E6,2,{0xE8,0x9D,0x00,0x00,}}, {0x94E7,2,{0xEE,0xFC,0x00,0x00,}}, {0x94E8,2,{0xEE,0xFD,0x00,0x00,}}, {0x94E9,2,{0xEF,0xA1,0x00,0x00,}}, {0x94EA,2,{0xEE,0xFE,0x00,0x00,}}, {0x94EB,2,{0xEF,0xA2,0x00,0x00,}}, {0x94EC,2,{0xB8,0xF5,0x00,0x00,}}, {0x94ED,2,{0xC3,0xFA,0x00,0x00,}}, {0x94EE,2,{0xEF,0xA3,0x00,0x00,}}, {0x94EF,2,{0xEF,0xA4,0x00,0x00,}}, {0x94F0,2,{0xBD,0xC2,0x00,0x00,}}, {0x94F1,2,{0xD2,0xBF,0x00,0x00,}}, {0x94F2,2,{0xB2,0xF9,0x00,0x00,}}, {0x94F3,2,{0xEF,0xA5,0x00,0x00,}}, {0x94F4,2,{0xEF,0xA6,0x00,0x00,}}, {0x94F5,2,{0xEF,0xA7,0x00,0x00,}}, {0x94F6,2,{0xD2,0xF8,0x00,0x00,}}, {0x94F7,2,{0xEF,0xA8,0x00,0x00,}}, {0x94F8,2,{0xD6,0xFD,0x00,0x00,}}, {0x94F9,2,{0xEF,0xA9,0x00,0x00,}}, {0x94FA,2,{0xC6,0xCC,0x00,0x00,}}, {0x94FB,2,{0xE8,0x9E,0x00,0x00,}}, {0x94FC,2,{0xEF,0xAA,0x00,0x00,}}, {0x94FD,2,{0xEF,0xAB,0x00,0x00,}}, {0x94FE,2,{0xC1,0xB4,0x00,0x00,}}, {0x94FF,2,{0xEF,0xAC,0x00,0x00,}}, {0x9500,2,{0xCF,0xFA,0x00,0x00,}}, {0x9501,2,{0xCB,0xF8,0x00,0x00,}}, {0x9502,2,{0xEF,0xAE,0x00,0x00,}}, {0x9503,2,{0xEF,0xAD,0x00,0x00,}}, {0x9504,2,{0xB3,0xFA,0x00,0x00,}}, {0x9505,2,{0xB9,0xF8,0x00,0x00,}}, {0x9506,2,{0xEF,0xAF,0x00,0x00,}}, {0x9507,2,{0xEF,0xB0,0x00,0x00,}}, {0x9508,2,{0xD0,0xE2,0x00,0x00,}}, {0x9509,2,{0xEF,0xB1,0x00,0x00,}}, {0x950A,2,{0xEF,0xB2,0x00,0x00,}}, {0x950B,2,{0xB7,0xE6,0x00,0x00,}}, {0x950C,2,{0xD0,0xBF,0x00,0x00,}}, {0x950D,2,{0xEF,0xB3,0x00,0x00,}}, {0x950E,2,{0xEF,0xB4,0x00,0x00,}}, {0x950F,2,{0xEF,0xB5,0x00,0x00,}}, {0x9510,2,{0xC8,0xF1,0x00,0x00,}}, {0x9511,2,{0xCC,0xE0,0x00,0x00,}}, {0x9512,2,{0xEF,0xB6,0x00,0x00,}}, {0x9513,2,{0xEF,0xB7,0x00,0x00,}}, {0x9514,2,{0xEF,0xB8,0x00,0x00,}}, {0x9515,2,{0xEF,0xB9,0x00,0x00,}}, {0x9516,2,{0xEF,0xBA,0x00,0x00,}}, {0x9517,2,{0xD5,0xE0,0x00,0x00,}}, {0x9518,2,{0xEF,0xBB,0x00,0x00,}}, {0x9519,2,{0xB4,0xED,0x00,0x00,}}, {0x951A,2,{0xC3,0xAA,0x00,0x00,}}, {0x951B,2,{0xEF,0xBC,0x00,0x00,}}, {0x951C,2,{0xE8,0x9F,0x00,0x00,}}, {0x951D,2,{0xEF,0xBD,0x00,0x00,}}, {0x951E,2,{0xEF,0xBE,0x00,0x00,}}, {0x951F,2,{0xEF,0xBF,0x00,0x00,}}, {0x9520,2,{0xE8,0xA0,0x00,0x00,}}, {0x9521,2,{0xCE,0xFD,0x00,0x00,}}, {0x9522,2,{0xEF,0xC0,0x00,0x00,}}, {0x9523,2,{0xC2,0xE0,0x00,0x00,}}, {0x9524,2,{0xB4,0xB8,0x00,0x00,}}, {0x9525,2,{0xD7,0xB6,0x00,0x00,}}, {0x9526,2,{0xBD,0xF5,0x00,0x00,}}, {0x9527,2,{0xE9,0x40,0x00,0x00,}}, {0x9528,2,{0xCF,0xC7,0x00,0x00,}}, {0x9529,2,{0xEF,0xC3,0x00,0x00,}}, {0x952A,2,{0xEF,0xC1,0x00,0x00,}}, {0x952B,2,{0xEF,0xC2,0x00,0x00,}}, {0x952C,2,{0xEF,0xC4,0x00,0x00,}}, {0x952D,2,{0xB6,0xA7,0x00,0x00,}}, {0x952E,2,{0xBC,0xFC,0x00,0x00,}}, {0x952F,2,{0xBE,0xE2,0x00,0x00,}}, {0x9530,2,{0xC3,0xCC,0x00,0x00,}}, {0x9531,2,{0xEF,0xC5,0x00,0x00,}}, {0x9532,2,{0xEF,0xC6,0x00,0x00,}}, {0x9533,2,{0xE9,0x41,0x00,0x00,}}, {0x9534,2,{0xEF,0xC7,0x00,0x00,}}, {0x9535,2,{0xEF,0xCF,0x00,0x00,}}, {0x9536,2,{0xEF,0xC8,0x00,0x00,}}, {0x9537,2,{0xEF,0xC9,0x00,0x00,}}, {0x9538,2,{0xEF,0xCA,0x00,0x00,}}, {0x9539,2,{0xC7,0xC2,0x00,0x00,}}, {0x953A,2,{0xEF,0xF1,0x00,0x00,}}, {0x953B,2,{0xB6,0xCD,0x00,0x00,}}, {0x953C,2,{0xEF,0xCB,0x00,0x00,}}, {0x953D,2,{0xE9,0x42,0x00,0x00,}}, {0x953E,2,{0xEF,0xCC,0x00,0x00,}}, {0x953F,2,{0xEF,0xCD,0x00,0x00,}}, {0x9540,2,{0xB6,0xC6,0x00,0x00,}}, {0x9541,2,{0xC3,0xBE,0x00,0x00,}}, {0x9542,2,{0xEF,0xCE,0x00,0x00,}}, {0x9543,2,{0xE9,0x43,0x00,0x00,}}, {0x9544,2,{0xEF,0xD0,0x00,0x00,}}, {0x9545,2,{0xEF,0xD1,0x00,0x00,}}, {0x9546,2,{0xEF,0xD2,0x00,0x00,}}, {0x9547,2,{0xD5,0xF2,0x00,0x00,}}, {0x9548,2,{0xE9,0x44,0x00,0x00,}}, {0x9549,2,{0xEF,0xD3,0x00,0x00,}}, {0x954A,2,{0xC4,0xF7,0x00,0x00,}}, {0x954B,2,{0xE9,0x45,0x00,0x00,}}, {0x954C,2,{0xEF,0xD4,0x00,0x00,}}, {0x954D,2,{0xC4,0xF8,0x00,0x00,}}, {0x954E,2,{0xEF,0xD5,0x00,0x00,}}, {0x954F,2,{0xEF,0xD6,0x00,0x00,}}, {0x9550,2,{0xB8,0xE4,0x00,0x00,}}, {0x9551,2,{0xB0,0xF7,0x00,0x00,}}, {0x9552,2,{0xEF,0xD7,0x00,0x00,}}, {0x9553,2,{0xEF,0xD8,0x00,0x00,}}, {0x9554,2,{0xEF,0xD9,0x00,0x00,}}, {0x9555,2,{0xE9,0x46,0x00,0x00,}}, {0x9556,2,{0xEF,0xDA,0x00,0x00,}}, {0x9557,2,{0xEF,0xDB,0x00,0x00,}}, {0x9558,2,{0xEF,0xDC,0x00,0x00,}}, {0x9559,2,{0xEF,0xDD,0x00,0x00,}}, {0x955A,2,{0xE9,0x47,0x00,0x00,}}, {0x955B,2,{0xEF,0xDE,0x00,0x00,}}, {0x955C,2,{0xBE,0xB5,0x00,0x00,}}, {0x955D,2,{0xEF,0xE1,0x00,0x00,}}, {0x955E,2,{0xEF,0xDF,0x00,0x00,}}, {0x955F,2,{0xEF,0xE0,0x00,0x00,}}, {0x9560,2,{0xE9,0x48,0x00,0x00,}}, {0x9561,2,{0xEF,0xE2,0x00,0x00,}}, {0x9562,2,{0xEF,0xE3,0x00,0x00,}}, {0x9563,2,{0xC1,0xCD,0x00,0x00,}}, {0x9564,2,{0xEF,0xE4,0x00,0x00,}}, {0x9565,2,{0xEF,0xE5,0x00,0x00,}}, {0x9566,2,{0xEF,0xE6,0x00,0x00,}}, {0x9567,2,{0xEF,0xE7,0x00,0x00,}}, {0x9568,2,{0xEF,0xE8,0x00,0x00,}}, {0x9569,2,{0xEF,0xE9,0x00,0x00,}}, {0x956A,2,{0xEF,0xEA,0x00,0x00,}}, {0x956B,2,{0xEF,0xEB,0x00,0x00,}}, {0x956C,2,{0xEF,0xEC,0x00,0x00,}}, {0x956D,2,{0xC0,0xD8,0x00,0x00,}}, {0x956E,2,{0xE9,0x49,0x00,0x00,}}, {0x956F,2,{0xEF,0xED,0x00,0x00,}}, {0x9570,2,{0xC1,0xAD,0x00,0x00,}}, {0x9571,2,{0xEF,0xEE,0x00,0x00,}}, {0x9572,2,{0xEF,0xEF,0x00,0x00,}}, {0x9573,2,{0xEF,0xF0,0x00,0x00,}}, {0x9574,2,{0xE9,0x4A,0x00,0x00,}}, {0x9575,2,{0xE9,0x4B,0x00,0x00,}}, {0x9576,2,{0xCF,0xE2,0x00,0x00,}}, {0x9577,2,{0xE9,0x4C,0x00,0x00,}}, {0x9578,2,{0xE9,0x4D,0x00,0x00,}}, {0x9579,2,{0xE9,0x4E,0x00,0x00,}}, {0x957A,2,{0xE9,0x4F,0x00,0x00,}}, {0x957B,2,{0xE9,0x50,0x00,0x00,}}, {0x957C,2,{0xE9,0x51,0x00,0x00,}}, {0x957D,2,{0xE9,0x52,0x00,0x00,}}, {0x957E,2,{0xE9,0x53,0x00,0x00,}}, {0x957F,2,{0xB3,0xA4,0x00,0x00,}}, {0x9580,2,{0xE9,0x54,0x00,0x00,}}, {0x9581,2,{0xE9,0x55,0x00,0x00,}}, {0x9582,2,{0xE9,0x56,0x00,0x00,}}, {0x9583,2,{0xE9,0x57,0x00,0x00,}}, {0x9584,2,{0xE9,0x58,0x00,0x00,}}, {0x9585,2,{0xE9,0x59,0x00,0x00,}}, {0x9586,2,{0xE9,0x5A,0x00,0x00,}}, {0x9587,2,{0xE9,0x5B,0x00,0x00,}}, {0x9588,2,{0xE9,0x5C,0x00,0x00,}}, {0x9589,2,{0xE9,0x5D,0x00,0x00,}}, {0x958A,2,{0xE9,0x5E,0x00,0x00,}}, {0x958B,2,{0xE9,0x5F,0x00,0x00,}}, {0x958C,2,{0xE9,0x60,0x00,0x00,}}, {0x958D,2,{0xE9,0x61,0x00,0x00,}}, {0x958E,2,{0xE9,0x62,0x00,0x00,}}, {0x958F,2,{0xE9,0x63,0x00,0x00,}}, {0x9590,2,{0xE9,0x64,0x00,0x00,}}, {0x9591,2,{0xE9,0x65,0x00,0x00,}}, {0x9592,2,{0xE9,0x66,0x00,0x00,}}, {0x9593,2,{0xE9,0x67,0x00,0x00,}}, {0x9594,2,{0xE9,0x68,0x00,0x00,}}, {0x9595,2,{0xE9,0x69,0x00,0x00,}}, {0x9596,2,{0xE9,0x6A,0x00,0x00,}}, {0x9597,2,{0xE9,0x6B,0x00,0x00,}}, {0x9598,2,{0xE9,0x6C,0x00,0x00,}}, {0x9599,2,{0xE9,0x6D,0x00,0x00,}}, {0x959A,2,{0xE9,0x6E,0x00,0x00,}}, {0x959B,2,{0xE9,0x6F,0x00,0x00,}}, {0x959C,2,{0xE9,0x70,0x00,0x00,}}, {0x959D,2,{0xE9,0x71,0x00,0x00,}}, {0x959E,2,{0xE9,0x72,0x00,0x00,}}, {0x959F,2,{0xE9,0x73,0x00,0x00,}}, {0x95A0,2,{0xE9,0x74,0x00,0x00,}}, {0x95A1,2,{0xE9,0x75,0x00,0x00,}}, {0x95A2,2,{0xE9,0x76,0x00,0x00,}}, {0x95A3,2,{0xE9,0x77,0x00,0x00,}}, {0x95A4,2,{0xE9,0x78,0x00,0x00,}}, {0x95A5,2,{0xE9,0x79,0x00,0x00,}}, {0x95A6,2,{0xE9,0x7A,0x00,0x00,}}, {0x95A7,2,{0xE9,0x7B,0x00,0x00,}}, {0x95A8,2,{0xE9,0x7C,0x00,0x00,}}, {0x95A9,2,{0xE9,0x7D,0x00,0x00,}}, {0x95AA,2,{0xE9,0x7E,0x00,0x00,}}, {0x95AB,2,{0xE9,0x80,0x00,0x00,}}, {0x95AC,2,{0xE9,0x81,0x00,0x00,}}, {0x95AD,2,{0xE9,0x82,0x00,0x00,}}, {0x95AE,2,{0xE9,0x83,0x00,0x00,}}, {0x95AF,2,{0xE9,0x84,0x00,0x00,}}, {0x95B0,2,{0xE9,0x85,0x00,0x00,}}, {0x95B1,2,{0xE9,0x86,0x00,0x00,}}, {0x95B2,2,{0xE9,0x87,0x00,0x00,}}, {0x95B3,2,{0xE9,0x88,0x00,0x00,}}, {0x95B4,2,{0xE9,0x89,0x00,0x00,}}, {0x95B5,2,{0xE9,0x8A,0x00,0x00,}}, {0x95B6,2,{0xE9,0x8B,0x00,0x00,}}, {0x95B7,2,{0xE9,0x8C,0x00,0x00,}}, {0x95B8,2,{0xE9,0x8D,0x00,0x00,}}, {0x95B9,2,{0xE9,0x8E,0x00,0x00,}}, {0x95BA,2,{0xE9,0x8F,0x00,0x00,}}, {0x95BB,2,{0xE9,0x90,0x00,0x00,}}, {0x95BC,2,{0xE9,0x91,0x00,0x00,}}, {0x95BD,2,{0xE9,0x92,0x00,0x00,}}, {0x95BE,2,{0xE9,0x93,0x00,0x00,}}, {0x95BF,2,{0xE9,0x94,0x00,0x00,}}, {0x95C0,2,{0xE9,0x95,0x00,0x00,}}, {0x95C1,2,{0xE9,0x96,0x00,0x00,}}, {0x95C2,2,{0xE9,0x97,0x00,0x00,}}, {0x95C3,2,{0xE9,0x98,0x00,0x00,}}, {0x95C4,2,{0xE9,0x99,0x00,0x00,}}, {0x95C5,2,{0xE9,0x9A,0x00,0x00,}}, {0x95C6,2,{0xE9,0x9B,0x00,0x00,}}, {0x95C7,2,{0xE9,0x9C,0x00,0x00,}}, {0x95C8,2,{0xE9,0x9D,0x00,0x00,}}, {0x95C9,2,{0xE9,0x9E,0x00,0x00,}}, {0x95CA,2,{0xE9,0x9F,0x00,0x00,}}, {0x95CB,2,{0xE9,0xA0,0x00,0x00,}}, {0x95CC,2,{0xEA,0x40,0x00,0x00,}}, {0x95CD,2,{0xEA,0x41,0x00,0x00,}}, {0x95CE,2,{0xEA,0x42,0x00,0x00,}}, {0x95CF,2,{0xEA,0x43,0x00,0x00,}}, {0x95D0,2,{0xEA,0x44,0x00,0x00,}}, {0x95D1,2,{0xEA,0x45,0x00,0x00,}}, {0x95D2,2,{0xEA,0x46,0x00,0x00,}}, {0x95D3,2,{0xEA,0x47,0x00,0x00,}}, {0x95D4,2,{0xEA,0x48,0x00,0x00,}}, {0x95D5,2,{0xEA,0x49,0x00,0x00,}}, {0x95D6,2,{0xEA,0x4A,0x00,0x00,}}, {0x95D7,2,{0xEA,0x4B,0x00,0x00,}}, {0x95D8,2,{0xEA,0x4C,0x00,0x00,}}, {0x95D9,2,{0xEA,0x4D,0x00,0x00,}}, {0x95DA,2,{0xEA,0x4E,0x00,0x00,}}, {0x95DB,2,{0xEA,0x4F,0x00,0x00,}}, {0x95DC,2,{0xEA,0x50,0x00,0x00,}}, {0x95DD,2,{0xEA,0x51,0x00,0x00,}}, {0x95DE,2,{0xEA,0x52,0x00,0x00,}}, {0x95DF,2,{0xEA,0x53,0x00,0x00,}}, {0x95E0,2,{0xEA,0x54,0x00,0x00,}}, {0x95E1,2,{0xEA,0x55,0x00,0x00,}}, {0x95E2,2,{0xEA,0x56,0x00,0x00,}}, {0x95E3,2,{0xEA,0x57,0x00,0x00,}}, {0x95E4,2,{0xEA,0x58,0x00,0x00,}}, {0x95E5,2,{0xEA,0x59,0x00,0x00,}}, {0x95E6,2,{0xEA,0x5A,0x00,0x00,}}, {0x95E7,2,{0xEA,0x5B,0x00,0x00,}}, {0x95E8,2,{0xC3,0xC5,0x00,0x00,}}, {0x95E9,2,{0xE3,0xC5,0x00,0x00,}}, {0x95EA,2,{0xC9,0xC1,0x00,0x00,}}, {0x95EB,2,{0xE3,0xC6,0x00,0x00,}}, {0x95EC,2,{0xEA,0x5C,0x00,0x00,}}, {0x95ED,2,{0xB1,0xD5,0x00,0x00,}}, {0x95EE,2,{0xCE,0xCA,0x00,0x00,}}, {0x95EF,2,{0xB4,0xB3,0x00,0x00,}}, {0x95F0,2,{0xC8,0xF2,0x00,0x00,}}, {0x95F1,2,{0xE3,0xC7,0x00,0x00,}}, {0x95F2,2,{0xCF,0xD0,0x00,0x00,}}, {0x95F3,2,{0xE3,0xC8,0x00,0x00,}}, {0x95F4,2,{0xBC,0xE4,0x00,0x00,}}, {0x95F5,2,{0xE3,0xC9,0x00,0x00,}}, {0x95F6,2,{0xE3,0xCA,0x00,0x00,}}, {0x95F7,2,{0xC3,0xC6,0x00,0x00,}}, {0x95F8,2,{0xD5,0xA2,0x00,0x00,}}, {0x95F9,2,{0xC4,0xD6,0x00,0x00,}}, {0x95FA,2,{0xB9,0xEB,0x00,0x00,}}, {0x95FB,2,{0xCE,0xC5,0x00,0x00,}}, {0x95FC,2,{0xE3,0xCB,0x00,0x00,}}, {0x95FD,2,{0xC3,0xF6,0x00,0x00,}}, {0x95FE,2,{0xE3,0xCC,0x00,0x00,}}, {0x95FF,2,{0xEA,0x5D,0x00,0x00,}}, {0x9600,2,{0xB7,0xA7,0x00,0x00,}}, {0x9601,2,{0xB8,0xF3,0x00,0x00,}}, {0x9602,2,{0xBA,0xD2,0x00,0x00,}}, {0x9603,2,{0xE3,0xCD,0x00,0x00,}}, {0x9604,2,{0xE3,0xCE,0x00,0x00,}}, {0x9605,2,{0xD4,0xC4,0x00,0x00,}}, {0x9606,2,{0xE3,0xCF,0x00,0x00,}}, {0x9607,2,{0xEA,0x5E,0x00,0x00,}}, {0x9608,2,{0xE3,0xD0,0x00,0x00,}}, {0x9609,2,{0xD1,0xCB,0x00,0x00,}}, {0x960A,2,{0xE3,0xD1,0x00,0x00,}}, {0x960B,2,{0xE3,0xD2,0x00,0x00,}}, {0x960C,2,{0xE3,0xD3,0x00,0x00,}}, {0x960D,2,{0xE3,0xD4,0x00,0x00,}}, {0x960E,2,{0xD1,0xD6,0x00,0x00,}}, {0x960F,2,{0xE3,0xD5,0x00,0x00,}}, {0x9610,2,{0xB2,0xFB,0x00,0x00,}}, {0x9611,2,{0xC0,0xBB,0x00,0x00,}}, {0x9612,2,{0xE3,0xD6,0x00,0x00,}}, {0x9613,2,{0xEA,0x5F,0x00,0x00,}}, {0x9614,2,{0xC0,0xAB,0x00,0x00,}}, {0x9615,2,{0xE3,0xD7,0x00,0x00,}}, {0x9616,2,{0xE3,0xD8,0x00,0x00,}}, {0x9617,2,{0xE3,0xD9,0x00,0x00,}}, {0x9618,2,{0xEA,0x60,0x00,0x00,}}, {0x9619,2,{0xE3,0xDA,0x00,0x00,}}, {0x961A,2,{0xE3,0xDB,0x00,0x00,}}, {0x961B,2,{0xEA,0x61,0x00,0x00,}}, {0x961C,2,{0xB8,0xB7,0x00,0x00,}}, {0x961D,2,{0xDA,0xE2,0x00,0x00,}}, {0x961E,2,{0xEA,0x62,0x00,0x00,}}, {0x961F,2,{0xB6,0xD3,0x00,0x00,}}, {0x9620,2,{0xEA,0x63,0x00,0x00,}}, {0x9621,2,{0xDA,0xE4,0x00,0x00,}}, {0x9622,2,{0xDA,0xE3,0x00,0x00,}}, {0x9623,2,{0xEA,0x64,0x00,0x00,}}, {0x9624,2,{0xEA,0x65,0x00,0x00,}}, {0x9625,2,{0xEA,0x66,0x00,0x00,}}, {0x9626,2,{0xEA,0x67,0x00,0x00,}}, {0x9627,2,{0xEA,0x68,0x00,0x00,}}, {0x9628,2,{0xEA,0x69,0x00,0x00,}}, {0x9629,2,{0xEA,0x6A,0x00,0x00,}}, {0x962A,2,{0xDA,0xE6,0x00,0x00,}}, {0x962B,2,{0xEA,0x6B,0x00,0x00,}}, {0x962C,2,{0xEA,0x6C,0x00,0x00,}}, {0x962D,2,{0xEA,0x6D,0x00,0x00,}}, {0x962E,2,{0xC8,0xEE,0x00,0x00,}}, {0x962F,2,{0xEA,0x6E,0x00,0x00,}}, {0x9630,2,{0xEA,0x6F,0x00,0x00,}}, {0x9631,2,{0xDA,0xE5,0x00,0x00,}}, {0x9632,2,{0xB7,0xC0,0x00,0x00,}}, {0x9633,2,{0xD1,0xF4,0x00,0x00,}}, {0x9634,2,{0xD2,0xF5,0x00,0x00,}}, {0x9635,2,{0xD5,0xF3,0x00,0x00,}}, {0x9636,2,{0xBD,0xD7,0x00,0x00,}}, {0x9637,2,{0xEA,0x70,0x00,0x00,}}, {0x9638,2,{0xEA,0x71,0x00,0x00,}}, {0x9639,2,{0xEA,0x72,0x00,0x00,}}, {0x963A,2,{0xEA,0x73,0x00,0x00,}}, {0x963B,2,{0xD7,0xE8,0x00,0x00,}}, {0x963C,2,{0xDA,0xE8,0x00,0x00,}}, {0x963D,2,{0xDA,0xE7,0x00,0x00,}}, {0x963E,2,{0xEA,0x74,0x00,0x00,}}, {0x963F,2,{0xB0,0xA2,0x00,0x00,}}, {0x9640,2,{0xCD,0xD3,0x00,0x00,}}, {0x9641,2,{0xEA,0x75,0x00,0x00,}}, {0x9642,2,{0xDA,0xE9,0x00,0x00,}}, {0x9643,2,{0xEA,0x76,0x00,0x00,}}, {0x9644,2,{0xB8,0xBD,0x00,0x00,}}, {0x9645,2,{0xBC,0xCA,0x00,0x00,}}, {0x9646,2,{0xC2,0xBD,0x00,0x00,}}, {0x9647,2,{0xC2,0xA4,0x00,0x00,}}, {0x9648,2,{0xB3,0xC2,0x00,0x00,}}, {0x9649,2,{0xDA,0xEA,0x00,0x00,}}, {0x964A,2,{0xEA,0x77,0x00,0x00,}}, {0x964B,2,{0xC2,0xAA,0x00,0x00,}}, {0x964C,2,{0xC4,0xB0,0x00,0x00,}}, {0x964D,2,{0xBD,0xB5,0x00,0x00,}}, {0x964E,2,{0xEA,0x78,0x00,0x00,}}, {0x964F,2,{0xEA,0x79,0x00,0x00,}}, {0x9650,2,{0xCF,0xDE,0x00,0x00,}}, {0x9651,2,{0xEA,0x7A,0x00,0x00,}}, {0x9652,2,{0xEA,0x7B,0x00,0x00,}}, {0x9653,2,{0xEA,0x7C,0x00,0x00,}}, {0x9654,2,{0xDA,0xEB,0x00,0x00,}}, {0x9655,2,{0xC9,0xC2,0x00,0x00,}}, {0x9656,2,{0xEA,0x7D,0x00,0x00,}}, {0x9657,2,{0xEA,0x7E,0x00,0x00,}}, {0x9658,2,{0xEA,0x80,0x00,0x00,}}, {0x9659,2,{0xEA,0x81,0x00,0x00,}}, {0x965A,2,{0xEA,0x82,0x00,0x00,}}, {0x965B,2,{0xB1,0xDD,0x00,0x00,}}, {0x965C,2,{0xEA,0x83,0x00,0x00,}}, {0x965D,2,{0xEA,0x84,0x00,0x00,}}, {0x965E,2,{0xEA,0x85,0x00,0x00,}}, {0x965F,2,{0xDA,0xEC,0x00,0x00,}}, {0x9660,2,{0xEA,0x86,0x00,0x00,}}, {0x9661,2,{0xB6,0xB8,0x00,0x00,}}, {0x9662,2,{0xD4,0xBA,0x00,0x00,}}, {0x9663,2,{0xEA,0x87,0x00,0x00,}}, {0x9664,2,{0xB3,0xFD,0x00,0x00,}}, {0x9665,2,{0xEA,0x88,0x00,0x00,}}, {0x9666,2,{0xEA,0x89,0x00,0x00,}}, {0x9667,2,{0xDA,0xED,0x00,0x00,}}, {0x9668,2,{0xD4,0xC9,0x00,0x00,}}, {0x9669,2,{0xCF,0xD5,0x00,0x00,}}, {0x966A,2,{0xC5,0xE3,0x00,0x00,}}, {0x966B,2,{0xEA,0x8A,0x00,0x00,}}, {0x966C,2,{0xDA,0xEE,0x00,0x00,}}, {0x966D,2,{0xEA,0x8B,0x00,0x00,}}, {0x966E,2,{0xEA,0x8C,0x00,0x00,}}, {0x966F,2,{0xEA,0x8D,0x00,0x00,}}, {0x9670,2,{0xEA,0x8E,0x00,0x00,}}, {0x9671,2,{0xEA,0x8F,0x00,0x00,}}, {0x9672,2,{0xDA,0xEF,0x00,0x00,}}, {0x9673,2,{0xEA,0x90,0x00,0x00,}}, {0x9674,2,{0xDA,0xF0,0x00,0x00,}}, {0x9675,2,{0xC1,0xEA,0x00,0x00,}}, {0x9676,2,{0xCC,0xD5,0x00,0x00,}}, {0x9677,2,{0xCF,0xDD,0x00,0x00,}}, {0x9678,2,{0xEA,0x91,0x00,0x00,}}, {0x9679,2,{0xEA,0x92,0x00,0x00,}}, {0x967A,2,{0xEA,0x93,0x00,0x00,}}, {0x967B,2,{0xEA,0x94,0x00,0x00,}}, {0x967C,2,{0xEA,0x95,0x00,0x00,}}, {0x967D,2,{0xEA,0x96,0x00,0x00,}}, {0x967E,2,{0xEA,0x97,0x00,0x00,}}, {0x967F,2,{0xEA,0x98,0x00,0x00,}}, {0x9680,2,{0xEA,0x99,0x00,0x00,}}, {0x9681,2,{0xEA,0x9A,0x00,0x00,}}, {0x9682,2,{0xEA,0x9B,0x00,0x00,}}, {0x9683,2,{0xEA,0x9C,0x00,0x00,}}, {0x9684,2,{0xEA,0x9D,0x00,0x00,}}, {0x9685,2,{0xD3,0xE7,0x00,0x00,}}, {0x9686,2,{0xC2,0xA1,0x00,0x00,}}, {0x9687,2,{0xEA,0x9E,0x00,0x00,}}, {0x9688,2,{0xDA,0xF1,0x00,0x00,}}, {0x9689,2,{0xEA,0x9F,0x00,0x00,}}, {0x968A,2,{0xEA,0xA0,0x00,0x00,}}, {0x968B,2,{0xCB,0xE5,0x00,0x00,}}, {0x968C,2,{0xEB,0x40,0x00,0x00,}}, {0x968D,2,{0xDA,0xF2,0x00,0x00,}}, {0x968E,2,{0xEB,0x41,0x00,0x00,}}, {0x968F,2,{0xCB,0xE6,0x00,0x00,}}, {0x9690,2,{0xD2,0xFE,0x00,0x00,}}, {0x9691,2,{0xEB,0x42,0x00,0x00,}}, {0x9692,2,{0xEB,0x43,0x00,0x00,}}, {0x9693,2,{0xEB,0x44,0x00,0x00,}}, {0x9694,2,{0xB8,0xF4,0x00,0x00,}}, {0x9695,2,{0xEB,0x45,0x00,0x00,}}, {0x9696,2,{0xEB,0x46,0x00,0x00,}}, {0x9697,2,{0xDA,0xF3,0x00,0x00,}}, {0x9698,2,{0xB0,0xAF,0x00,0x00,}}, {0x9699,2,{0xCF,0xB6,0x00,0x00,}}, {0x969A,2,{0xEB,0x47,0x00,0x00,}}, {0x969B,2,{0xEB,0x48,0x00,0x00,}}, {0x969C,2,{0xD5,0xCF,0x00,0x00,}}, {0x969D,2,{0xEB,0x49,0x00,0x00,}}, {0x969E,2,{0xEB,0x4A,0x00,0x00,}}, {0x969F,2,{0xEB,0x4B,0x00,0x00,}}, {0x96A0,2,{0xEB,0x4C,0x00,0x00,}}, {0x96A1,2,{0xEB,0x4D,0x00,0x00,}}, {0x96A2,2,{0xEB,0x4E,0x00,0x00,}}, {0x96A3,2,{0xEB,0x4F,0x00,0x00,}}, {0x96A4,2,{0xEB,0x50,0x00,0x00,}}, {0x96A5,2,{0xEB,0x51,0x00,0x00,}}, {0x96A6,2,{0xEB,0x52,0x00,0x00,}}, {0x96A7,2,{0xCB,0xED,0x00,0x00,}}, {0x96A8,2,{0xEB,0x53,0x00,0x00,}}, {0x96A9,2,{0xEB,0x54,0x00,0x00,}}, {0x96AA,2,{0xEB,0x55,0x00,0x00,}}, {0x96AB,2,{0xEB,0x56,0x00,0x00,}}, {0x96AC,2,{0xEB,0x57,0x00,0x00,}}, {0x96AD,2,{0xEB,0x58,0x00,0x00,}}, {0x96AE,2,{0xEB,0x59,0x00,0x00,}}, {0x96AF,2,{0xEB,0x5A,0x00,0x00,}}, {0x96B0,2,{0xDA,0xF4,0x00,0x00,}}, {0x96B1,2,{0xEB,0x5B,0x00,0x00,}}, {0x96B2,2,{0xEB,0x5C,0x00,0x00,}}, {0x96B3,2,{0xE3,0xC4,0x00,0x00,}}, {0x96B4,2,{0xEB,0x5D,0x00,0x00,}}, {0x96B5,2,{0xEB,0x5E,0x00,0x00,}}, {0x96B6,2,{0xC1,0xA5,0x00,0x00,}}, {0x96B7,2,{0xEB,0x5F,0x00,0x00,}}, {0x96B8,2,{0xEB,0x60,0x00,0x00,}}, {0x96B9,2,{0xF6,0xBF,0x00,0x00,}}, {0x96BA,2,{0xEB,0x61,0x00,0x00,}}, {0x96BB,2,{0xEB,0x62,0x00,0x00,}}, {0x96BC,2,{0xF6,0xC0,0x00,0x00,}}, {0x96BD,2,{0xF6,0xC1,0x00,0x00,}}, {0x96BE,2,{0xC4,0xD1,0x00,0x00,}}, {0x96BF,2,{0xEB,0x63,0x00,0x00,}}, {0x96C0,2,{0xC8,0xB8,0x00,0x00,}}, {0x96C1,2,{0xD1,0xE3,0x00,0x00,}}, {0x96C2,2,{0xEB,0x64,0x00,0x00,}}, {0x96C3,2,{0xEB,0x65,0x00,0x00,}}, {0x96C4,2,{0xD0,0xDB,0x00,0x00,}}, {0x96C5,2,{0xD1,0xC5,0x00,0x00,}}, {0x96C6,2,{0xBC,0xAF,0x00,0x00,}}, {0x96C7,2,{0xB9,0xCD,0x00,0x00,}}, {0x96C8,2,{0xEB,0x66,0x00,0x00,}}, {0x96C9,2,{0xEF,0xF4,0x00,0x00,}}, {0x96CA,2,{0xEB,0x67,0x00,0x00,}}, {0x96CB,2,{0xEB,0x68,0x00,0x00,}}, {0x96CC,2,{0xB4,0xC6,0x00,0x00,}}, {0x96CD,2,{0xD3,0xBA,0x00,0x00,}}, {0x96CE,2,{0xF6,0xC2,0x00,0x00,}}, {0x96CF,2,{0xB3,0xFB,0x00,0x00,}}, {0x96D0,2,{0xEB,0x69,0x00,0x00,}}, {0x96D1,2,{0xEB,0x6A,0x00,0x00,}}, {0x96D2,2,{0xF6,0xC3,0x00,0x00,}}, {0x96D3,2,{0xEB,0x6B,0x00,0x00,}}, {0x96D4,2,{0xEB,0x6C,0x00,0x00,}}, {0x96D5,2,{0xB5,0xF1,0x00,0x00,}}, {0x96D6,2,{0xEB,0x6D,0x00,0x00,}}, {0x96D7,2,{0xEB,0x6E,0x00,0x00,}}, {0x96D8,2,{0xEB,0x6F,0x00,0x00,}}, {0x96D9,2,{0xEB,0x70,0x00,0x00,}}, {0x96DA,2,{0xEB,0x71,0x00,0x00,}}, {0x96DB,2,{0xEB,0x72,0x00,0x00,}}, {0x96DC,2,{0xEB,0x73,0x00,0x00,}}, {0x96DD,2,{0xEB,0x74,0x00,0x00,}}, {0x96DE,2,{0xEB,0x75,0x00,0x00,}}, {0x96DF,2,{0xEB,0x76,0x00,0x00,}}, {0x96E0,2,{0xF6,0xC5,0x00,0x00,}}, {0x96E1,2,{0xEB,0x77,0x00,0x00,}}, {0x96E2,2,{0xEB,0x78,0x00,0x00,}}, {0x96E3,2,{0xEB,0x79,0x00,0x00,}}, {0x96E4,2,{0xEB,0x7A,0x00,0x00,}}, {0x96E5,2,{0xEB,0x7B,0x00,0x00,}}, {0x96E6,2,{0xEB,0x7C,0x00,0x00,}}, {0x96E7,2,{0xEB,0x7D,0x00,0x00,}}, {0x96E8,2,{0xD3,0xEA,0x00,0x00,}}, {0x96E9,2,{0xF6,0xA7,0x00,0x00,}}, {0x96EA,2,{0xD1,0xA9,0x00,0x00,}}, {0x96EB,2,{0xEB,0x7E,0x00,0x00,}}, {0x96EC,2,{0xEB,0x80,0x00,0x00,}}, {0x96ED,2,{0xEB,0x81,0x00,0x00,}}, {0x96EE,2,{0xEB,0x82,0x00,0x00,}}, {0x96EF,2,{0xF6,0xA9,0x00,0x00,}}, {0x96F0,2,{0xEB,0x83,0x00,0x00,}}, {0x96F1,2,{0xEB,0x84,0x00,0x00,}}, {0x96F2,2,{0xEB,0x85,0x00,0x00,}}, {0x96F3,2,{0xF6,0xA8,0x00,0x00,}}, {0x96F4,2,{0xEB,0x86,0x00,0x00,}}, {0x96F5,2,{0xEB,0x87,0x00,0x00,}}, {0x96F6,2,{0xC1,0xE3,0x00,0x00,}}, {0x96F7,2,{0xC0,0xD7,0x00,0x00,}}, {0x96F8,2,{0xEB,0x88,0x00,0x00,}}, {0x96F9,2,{0xB1,0xA2,0x00,0x00,}}, {0x96FA,2,{0xEB,0x89,0x00,0x00,}}, {0x96FB,2,{0xEB,0x8A,0x00,0x00,}}, {0x96FC,2,{0xEB,0x8B,0x00,0x00,}}, {0x96FD,2,{0xEB,0x8C,0x00,0x00,}}, {0x96FE,2,{0xCE,0xED,0x00,0x00,}}, {0x96FF,2,{0xEB,0x8D,0x00,0x00,}}, {0x9700,2,{0xD0,0xE8,0x00,0x00,}}, {0x9701,2,{0xF6,0xAB,0x00,0x00,}}, {0x9702,2,{0xEB,0x8E,0x00,0x00,}}, {0x9703,2,{0xEB,0x8F,0x00,0x00,}}, {0x9704,2,{0xCF,0xF6,0x00,0x00,}}, {0x9705,2,{0xEB,0x90,0x00,0x00,}}, {0x9706,2,{0xF6,0xAA,0x00,0x00,}}, {0x9707,2,{0xD5,0xF0,0x00,0x00,}}, {0x9708,2,{0xF6,0xAC,0x00,0x00,}}, {0x9709,2,{0xC3,0xB9,0x00,0x00,}}, {0x970A,2,{0xEB,0x91,0x00,0x00,}}, {0x970B,2,{0xEB,0x92,0x00,0x00,}}, {0x970C,2,{0xEB,0x93,0x00,0x00,}}, {0x970D,2,{0xBB,0xF4,0x00,0x00,}}, {0x970E,2,{0xF6,0xAE,0x00,0x00,}}, {0x970F,2,{0xF6,0xAD,0x00,0x00,}}, {0x9710,2,{0xEB,0x94,0x00,0x00,}}, {0x9711,2,{0xEB,0x95,0x00,0x00,}}, {0x9712,2,{0xEB,0x96,0x00,0x00,}}, {0x9713,2,{0xC4,0xDE,0x00,0x00,}}, {0x9714,2,{0xEB,0x97,0x00,0x00,}}, {0x9715,2,{0xEB,0x98,0x00,0x00,}}, {0x9716,2,{0xC1,0xD8,0x00,0x00,}}, {0x9717,2,{0xEB,0x99,0x00,0x00,}}, {0x9718,2,{0xEB,0x9A,0x00,0x00,}}, {0x9719,2,{0xEB,0x9B,0x00,0x00,}}, {0x971A,2,{0xEB,0x9C,0x00,0x00,}}, {0x971B,2,{0xEB,0x9D,0x00,0x00,}}, {0x971C,2,{0xCB,0xAA,0x00,0x00,}}, {0x971D,2,{0xEB,0x9E,0x00,0x00,}}, {0x971E,2,{0xCF,0xBC,0x00,0x00,}}, {0x971F,2,{0xEB,0x9F,0x00,0x00,}}, {0x9720,2,{0xEB,0xA0,0x00,0x00,}}, {0x9721,2,{0xEC,0x40,0x00,0x00,}}, {0x9722,2,{0xEC,0x41,0x00,0x00,}}, {0x9723,2,{0xEC,0x42,0x00,0x00,}}, {0x9724,2,{0xEC,0x43,0x00,0x00,}}, {0x9725,2,{0xEC,0x44,0x00,0x00,}}, {0x9726,2,{0xEC,0x45,0x00,0x00,}}, {0x9727,2,{0xEC,0x46,0x00,0x00,}}, {0x9728,2,{0xEC,0x47,0x00,0x00,}}, {0x9729,2,{0xEC,0x48,0x00,0x00,}}, {0x972A,2,{0xF6,0xAF,0x00,0x00,}}, {0x972B,2,{0xEC,0x49,0x00,0x00,}}, {0x972C,2,{0xEC,0x4A,0x00,0x00,}}, {0x972D,2,{0xF6,0xB0,0x00,0x00,}}, {0x972E,2,{0xEC,0x4B,0x00,0x00,}}, {0x972F,2,{0xEC,0x4C,0x00,0x00,}}, {0x9730,2,{0xF6,0xB1,0x00,0x00,}}, {0x9731,2,{0xEC,0x4D,0x00,0x00,}}, {0x9732,2,{0xC2,0xB6,0x00,0x00,}}, {0x9733,2,{0xEC,0x4E,0x00,0x00,}}, {0x9734,2,{0xEC,0x4F,0x00,0x00,}}, {0x9735,2,{0xEC,0x50,0x00,0x00,}}, {0x9736,2,{0xEC,0x51,0x00,0x00,}}, {0x9737,2,{0xEC,0x52,0x00,0x00,}}, {0x9738,2,{0xB0,0xD4,0x00,0x00,}}, {0x9739,2,{0xC5,0xF9,0x00,0x00,}}, {0x973A,2,{0xEC,0x53,0x00,0x00,}}, {0x973B,2,{0xEC,0x54,0x00,0x00,}}, {0x973C,2,{0xEC,0x55,0x00,0x00,}}, {0x973D,2,{0xEC,0x56,0x00,0x00,}}, {0x973E,2,{0xF6,0xB2,0x00,0x00,}}, {0x973F,2,{0xEC,0x57,0x00,0x00,}}, {0x9740,2,{0xEC,0x58,0x00,0x00,}}, {0x9741,2,{0xEC,0x59,0x00,0x00,}}, {0x9742,2,{0xEC,0x5A,0x00,0x00,}}, {0x9743,2,{0xEC,0x5B,0x00,0x00,}}, {0x9744,2,{0xEC,0x5C,0x00,0x00,}}, {0x9745,2,{0xEC,0x5D,0x00,0x00,}}, {0x9746,2,{0xEC,0x5E,0x00,0x00,}}, {0x9747,2,{0xEC,0x5F,0x00,0x00,}}, {0x9748,2,{0xEC,0x60,0x00,0x00,}}, {0x9749,2,{0xEC,0x61,0x00,0x00,}}, {0x974A,2,{0xEC,0x62,0x00,0x00,}}, {0x974B,2,{0xEC,0x63,0x00,0x00,}}, {0x974C,2,{0xEC,0x64,0x00,0x00,}}, {0x974D,2,{0xEC,0x65,0x00,0x00,}}, {0x974E,2,{0xEC,0x66,0x00,0x00,}}, {0x974F,2,{0xEC,0x67,0x00,0x00,}}, {0x9750,2,{0xEC,0x68,0x00,0x00,}}, {0x9751,2,{0xEC,0x69,0x00,0x00,}}, {0x9752,2,{0xC7,0xE0,0x00,0x00,}}, {0x9753,2,{0xF6,0xA6,0x00,0x00,}}, {0x9754,2,{0xEC,0x6A,0x00,0x00,}}, {0x9755,2,{0xEC,0x6B,0x00,0x00,}}, {0x9756,2,{0xBE,0xB8,0x00,0x00,}}, {0x9757,2,{0xEC,0x6C,0x00,0x00,}}, {0x9758,2,{0xEC,0x6D,0x00,0x00,}}, {0x9759,2,{0xBE,0xB2,0x00,0x00,}}, {0x975A,2,{0xEC,0x6E,0x00,0x00,}}, {0x975B,2,{0xB5,0xE5,0x00,0x00,}}, {0x975C,2,{0xEC,0x6F,0x00,0x00,}}, {0x975D,2,{0xEC,0x70,0x00,0x00,}}, {0x975E,2,{0xB7,0xC7,0x00,0x00,}}, {0x975F,2,{0xEC,0x71,0x00,0x00,}}, {0x9760,2,{0xBF,0xBF,0x00,0x00,}}, {0x9761,2,{0xC3,0xD2,0x00,0x00,}}, {0x9762,2,{0xC3,0xE6,0x00,0x00,}}, {0x9763,2,{0xEC,0x72,0x00,0x00,}}, {0x9764,2,{0xEC,0x73,0x00,0x00,}}, {0x9765,2,{0xD8,0xCC,0x00,0x00,}}, {0x9766,2,{0xEC,0x74,0x00,0x00,}}, {0x9767,2,{0xEC,0x75,0x00,0x00,}}, {0x9768,2,{0xEC,0x76,0x00,0x00,}}, {0x9769,2,{0xB8,0xEF,0x00,0x00,}}, {0x976A,2,{0xEC,0x77,0x00,0x00,}}, {0x976B,2,{0xEC,0x78,0x00,0x00,}}, {0x976C,2,{0xEC,0x79,0x00,0x00,}}, {0x976D,2,{0xEC,0x7A,0x00,0x00,}}, {0x976E,2,{0xEC,0x7B,0x00,0x00,}}, {0x976F,2,{0xEC,0x7C,0x00,0x00,}}, {0x9770,2,{0xEC,0x7D,0x00,0x00,}}, {0x9771,2,{0xEC,0x7E,0x00,0x00,}}, {0x9772,2,{0xEC,0x80,0x00,0x00,}}, {0x9773,2,{0xBD,0xF9,0x00,0x00,}}, {0x9774,2,{0xD1,0xA5,0x00,0x00,}}, {0x9775,2,{0xEC,0x81,0x00,0x00,}}, {0x9776,2,{0xB0,0xD0,0x00,0x00,}}, {0x9777,2,{0xEC,0x82,0x00,0x00,}}, {0x9778,2,{0xEC,0x83,0x00,0x00,}}, {0x9779,2,{0xEC,0x84,0x00,0x00,}}, {0x977A,2,{0xEC,0x85,0x00,0x00,}}, {0x977B,2,{0xEC,0x86,0x00,0x00,}}, {0x977C,2,{0xF7,0xB0,0x00,0x00,}}, {0x977D,2,{0xEC,0x87,0x00,0x00,}}, {0x977E,2,{0xEC,0x88,0x00,0x00,}}, {0x977F,2,{0xEC,0x89,0x00,0x00,}}, {0x9780,2,{0xEC,0x8A,0x00,0x00,}}, {0x9781,2,{0xEC,0x8B,0x00,0x00,}}, {0x9782,2,{0xEC,0x8C,0x00,0x00,}}, {0x9783,2,{0xEC,0x8D,0x00,0x00,}}, {0x9784,2,{0xEC,0x8E,0x00,0x00,}}, {0x9785,2,{0xF7,0xB1,0x00,0x00,}}, {0x9786,2,{0xEC,0x8F,0x00,0x00,}}, {0x9787,2,{0xEC,0x90,0x00,0x00,}}, {0x9788,2,{0xEC,0x91,0x00,0x00,}}, {0x9789,2,{0xEC,0x92,0x00,0x00,}}, {0x978A,2,{0xEC,0x93,0x00,0x00,}}, {0x978B,2,{0xD0,0xAC,0x00,0x00,}}, {0x978C,2,{0xEC,0x94,0x00,0x00,}}, {0x978D,2,{0xB0,0xB0,0x00,0x00,}}, {0x978E,2,{0xEC,0x95,0x00,0x00,}}, {0x978F,2,{0xEC,0x96,0x00,0x00,}}, {0x9790,2,{0xEC,0x97,0x00,0x00,}}, {0x9791,2,{0xF7,0xB2,0x00,0x00,}}, {0x9792,2,{0xF7,0xB3,0x00,0x00,}}, {0x9793,2,{0xEC,0x98,0x00,0x00,}}, {0x9794,2,{0xF7,0xB4,0x00,0x00,}}, {0x9795,2,{0xEC,0x99,0x00,0x00,}}, {0x9796,2,{0xEC,0x9A,0x00,0x00,}}, {0x9797,2,{0xEC,0x9B,0x00,0x00,}}, {0x9798,2,{0xC7,0xCA,0x00,0x00,}}, {0x9799,2,{0xEC,0x9C,0x00,0x00,}}, {0x979A,2,{0xEC,0x9D,0x00,0x00,}}, {0x979B,2,{0xEC,0x9E,0x00,0x00,}}, {0x979C,2,{0xEC,0x9F,0x00,0x00,}}, {0x979D,2,{0xEC,0xA0,0x00,0x00,}}, {0x979E,2,{0xED,0x40,0x00,0x00,}}, {0x979F,2,{0xED,0x41,0x00,0x00,}}, {0x97A0,2,{0xBE,0xCF,0x00,0x00,}}, {0x97A1,2,{0xED,0x42,0x00,0x00,}}, {0x97A2,2,{0xED,0x43,0x00,0x00,}}, {0x97A3,2,{0xF7,0xB7,0x00,0x00,}}, {0x97A4,2,{0xED,0x44,0x00,0x00,}}, {0x97A5,2,{0xED,0x45,0x00,0x00,}}, {0x97A6,2,{0xED,0x46,0x00,0x00,}}, {0x97A7,2,{0xED,0x47,0x00,0x00,}}, {0x97A8,2,{0xED,0x48,0x00,0x00,}}, {0x97A9,2,{0xED,0x49,0x00,0x00,}}, {0x97AA,2,{0xED,0x4A,0x00,0x00,}}, {0x97AB,2,{0xF7,0xB6,0x00,0x00,}}, {0x97AC,2,{0xED,0x4B,0x00,0x00,}}, {0x97AD,2,{0xB1,0xDE,0x00,0x00,}}, {0x97AE,2,{0xED,0x4C,0x00,0x00,}}, {0x97AF,2,{0xF7,0xB5,0x00,0x00,}}, {0x97B0,2,{0xED,0x4D,0x00,0x00,}}, {0x97B1,2,{0xED,0x4E,0x00,0x00,}}, {0x97B2,2,{0xF7,0xB8,0x00,0x00,}}, {0x97B3,2,{0xED,0x4F,0x00,0x00,}}, {0x97B4,2,{0xF7,0xB9,0x00,0x00,}}, {0x97B5,2,{0xED,0x50,0x00,0x00,}}, {0x97B6,2,{0xED,0x51,0x00,0x00,}}, {0x97B7,2,{0xED,0x52,0x00,0x00,}}, {0x97B8,2,{0xED,0x53,0x00,0x00,}}, {0x97B9,2,{0xED,0x54,0x00,0x00,}}, {0x97BA,2,{0xED,0x55,0x00,0x00,}}, {0x97BB,2,{0xED,0x56,0x00,0x00,}}, {0x97BC,2,{0xED,0x57,0x00,0x00,}}, {0x97BD,2,{0xED,0x58,0x00,0x00,}}, {0x97BE,2,{0xED,0x59,0x00,0x00,}}, {0x97BF,2,{0xED,0x5A,0x00,0x00,}}, {0x97C0,2,{0xED,0x5B,0x00,0x00,}}, {0x97C1,2,{0xED,0x5C,0x00,0x00,}}, {0x97C2,2,{0xED,0x5D,0x00,0x00,}}, {0x97C3,2,{0xED,0x5E,0x00,0x00,}}, {0x97C4,2,{0xED,0x5F,0x00,0x00,}}, {0x97C5,2,{0xED,0x60,0x00,0x00,}}, {0x97C6,2,{0xED,0x61,0x00,0x00,}}, {0x97C7,2,{0xED,0x62,0x00,0x00,}}, {0x97C8,2,{0xED,0x63,0x00,0x00,}}, {0x97C9,2,{0xED,0x64,0x00,0x00,}}, {0x97CA,2,{0xED,0x65,0x00,0x00,}}, {0x97CB,2,{0xED,0x66,0x00,0x00,}}, {0x97CC,2,{0xED,0x67,0x00,0x00,}}, {0x97CD,2,{0xED,0x68,0x00,0x00,}}, {0x97CE,2,{0xED,0x69,0x00,0x00,}}, {0x97CF,2,{0xED,0x6A,0x00,0x00,}}, {0x97D0,2,{0xED,0x6B,0x00,0x00,}}, {0x97D1,2,{0xED,0x6C,0x00,0x00,}}, {0x97D2,2,{0xED,0x6D,0x00,0x00,}}, {0x97D3,2,{0xED,0x6E,0x00,0x00,}}, {0x97D4,2,{0xED,0x6F,0x00,0x00,}}, {0x97D5,2,{0xED,0x70,0x00,0x00,}}, {0x97D6,2,{0xED,0x71,0x00,0x00,}}, {0x97D7,2,{0xED,0x72,0x00,0x00,}}, {0x97D8,2,{0xED,0x73,0x00,0x00,}}, {0x97D9,2,{0xED,0x74,0x00,0x00,}}, {0x97DA,2,{0xED,0x75,0x00,0x00,}}, {0x97DB,2,{0xED,0x76,0x00,0x00,}}, {0x97DC,2,{0xED,0x77,0x00,0x00,}}, {0x97DD,2,{0xED,0x78,0x00,0x00,}}, {0x97DE,2,{0xED,0x79,0x00,0x00,}}, {0x97DF,2,{0xED,0x7A,0x00,0x00,}}, {0x97E0,2,{0xED,0x7B,0x00,0x00,}}, {0x97E1,2,{0xED,0x7C,0x00,0x00,}}, {0x97E2,2,{0xED,0x7D,0x00,0x00,}}, {0x97E3,2,{0xED,0x7E,0x00,0x00,}}, {0x97E4,2,{0xED,0x80,0x00,0x00,}}, {0x97E5,2,{0xED,0x81,0x00,0x00,}}, {0x97E6,2,{0xCE,0xA4,0x00,0x00,}}, {0x97E7,2,{0xC8,0xCD,0x00,0x00,}}, {0x97E8,2,{0xED,0x82,0x00,0x00,}}, {0x97E9,2,{0xBA,0xAB,0x00,0x00,}}, {0x97EA,2,{0xE8,0xB8,0x00,0x00,}}, {0x97EB,2,{0xE8,0xB9,0x00,0x00,}}, {0x97EC,2,{0xE8,0xBA,0x00,0x00,}}, {0x97ED,2,{0xBE,0xC2,0x00,0x00,}}, {0x97EE,2,{0xED,0x83,0x00,0x00,}}, {0x97EF,2,{0xED,0x84,0x00,0x00,}}, {0x97F0,2,{0xED,0x85,0x00,0x00,}}, {0x97F1,2,{0xED,0x86,0x00,0x00,}}, {0x97F2,2,{0xED,0x87,0x00,0x00,}}, {0x97F3,2,{0xD2,0xF4,0x00,0x00,}}, {0x97F4,2,{0xED,0x88,0x00,0x00,}}, {0x97F5,2,{0xD4,0xCF,0x00,0x00,}}, {0x97F6,2,{0xC9,0xD8,0x00,0x00,}}, {0x97F7,2,{0xED,0x89,0x00,0x00,}}, {0x97F8,2,{0xED,0x8A,0x00,0x00,}}, {0x97F9,2,{0xED,0x8B,0x00,0x00,}}, {0x97FA,2,{0xED,0x8C,0x00,0x00,}}, {0x97FB,2,{0xED,0x8D,0x00,0x00,}}, {0x97FC,2,{0xED,0x8E,0x00,0x00,}}, {0x97FD,2,{0xED,0x8F,0x00,0x00,}}, {0x97FE,2,{0xED,0x90,0x00,0x00,}}, {0x97FF,2,{0xED,0x91,0x00,0x00,}}, {0x9800,2,{0xED,0x92,0x00,0x00,}}, {0x9801,2,{0xED,0x93,0x00,0x00,}}, {0x9802,2,{0xED,0x94,0x00,0x00,}}, {0x9803,2,{0xED,0x95,0x00,0x00,}}, {0x9804,2,{0xED,0x96,0x00,0x00,}}, {0x9805,2,{0xED,0x97,0x00,0x00,}}, {0x9806,2,{0xED,0x98,0x00,0x00,}}, {0x9807,2,{0xED,0x99,0x00,0x00,}}, {0x9808,2,{0xED,0x9A,0x00,0x00,}}, {0x9809,2,{0xED,0x9B,0x00,0x00,}}, {0x980A,2,{0xED,0x9C,0x00,0x00,}}, {0x980B,2,{0xED,0x9D,0x00,0x00,}}, {0x980C,2,{0xED,0x9E,0x00,0x00,}}, {0x980D,2,{0xED,0x9F,0x00,0x00,}}, {0x980E,2,{0xED,0xA0,0x00,0x00,}}, {0x980F,2,{0xEE,0x40,0x00,0x00,}}, {0x9810,2,{0xEE,0x41,0x00,0x00,}}, {0x9811,2,{0xEE,0x42,0x00,0x00,}}, {0x9812,2,{0xEE,0x43,0x00,0x00,}}, {0x9813,2,{0xEE,0x44,0x00,0x00,}}, {0x9814,2,{0xEE,0x45,0x00,0x00,}}, {0x9815,2,{0xEE,0x46,0x00,0x00,}}, {0x9816,2,{0xEE,0x47,0x00,0x00,}}, {0x9817,2,{0xEE,0x48,0x00,0x00,}}, {0x9818,2,{0xEE,0x49,0x00,0x00,}}, {0x9819,2,{0xEE,0x4A,0x00,0x00,}}, {0x981A,2,{0xEE,0x4B,0x00,0x00,}}, {0x981B,2,{0xEE,0x4C,0x00,0x00,}}, {0x981C,2,{0xEE,0x4D,0x00,0x00,}}, {0x981D,2,{0xEE,0x4E,0x00,0x00,}}, {0x981E,2,{0xEE,0x4F,0x00,0x00,}}, {0x981F,2,{0xEE,0x50,0x00,0x00,}}, {0x9820,2,{0xEE,0x51,0x00,0x00,}}, {0x9821,2,{0xEE,0x52,0x00,0x00,}}, {0x9822,2,{0xEE,0x53,0x00,0x00,}}, {0x9823,2,{0xEE,0x54,0x00,0x00,}}, {0x9824,2,{0xEE,0x55,0x00,0x00,}}, {0x9825,2,{0xEE,0x56,0x00,0x00,}}, {0x9826,2,{0xEE,0x57,0x00,0x00,}}, {0x9827,2,{0xEE,0x58,0x00,0x00,}}, {0x9828,2,{0xEE,0x59,0x00,0x00,}}, {0x9829,2,{0xEE,0x5A,0x00,0x00,}}, {0x982A,2,{0xEE,0x5B,0x00,0x00,}}, {0x982B,2,{0xEE,0x5C,0x00,0x00,}}, {0x982C,2,{0xEE,0x5D,0x00,0x00,}}, {0x982D,2,{0xEE,0x5E,0x00,0x00,}}, {0x982E,2,{0xEE,0x5F,0x00,0x00,}}, {0x982F,2,{0xEE,0x60,0x00,0x00,}}, {0x9830,2,{0xEE,0x61,0x00,0x00,}}, {0x9831,2,{0xEE,0x62,0x00,0x00,}}, {0x9832,2,{0xEE,0x63,0x00,0x00,}}, {0x9833,2,{0xEE,0x64,0x00,0x00,}}, {0x9834,2,{0xEE,0x65,0x00,0x00,}}, {0x9835,2,{0xEE,0x66,0x00,0x00,}}, {0x9836,2,{0xEE,0x67,0x00,0x00,}}, {0x9837,2,{0xEE,0x68,0x00,0x00,}}, {0x9838,2,{0xEE,0x69,0x00,0x00,}}, {0x9839,2,{0xEE,0x6A,0x00,0x00,}}, {0x983A,2,{0xEE,0x6B,0x00,0x00,}}, {0x983B,2,{0xEE,0x6C,0x00,0x00,}}, {0x983C,2,{0xEE,0x6D,0x00,0x00,}}, {0x983D,2,{0xEE,0x6E,0x00,0x00,}}, {0x983E,2,{0xEE,0x6F,0x00,0x00,}}, {0x983F,2,{0xEE,0x70,0x00,0x00,}}, {0x9840,2,{0xEE,0x71,0x00,0x00,}}, {0x9841,2,{0xEE,0x72,0x00,0x00,}}, {0x9842,2,{0xEE,0x73,0x00,0x00,}}, {0x9843,2,{0xEE,0x74,0x00,0x00,}}, {0x9844,2,{0xEE,0x75,0x00,0x00,}}, {0x9845,2,{0xEE,0x76,0x00,0x00,}}, {0x9846,2,{0xEE,0x77,0x00,0x00,}}, {0x9847,2,{0xEE,0x78,0x00,0x00,}}, {0x9848,2,{0xEE,0x79,0x00,0x00,}}, {0x9849,2,{0xEE,0x7A,0x00,0x00,}}, {0x984A,2,{0xEE,0x7B,0x00,0x00,}}, {0x984B,2,{0xEE,0x7C,0x00,0x00,}}, {0x984C,2,{0xEE,0x7D,0x00,0x00,}}, {0x984D,2,{0xEE,0x7E,0x00,0x00,}}, {0x984E,2,{0xEE,0x80,0x00,0x00,}}, {0x984F,2,{0xEE,0x81,0x00,0x00,}}, {0x9850,2,{0xEE,0x82,0x00,0x00,}}, {0x9851,2,{0xEE,0x83,0x00,0x00,}}, {0x9852,2,{0xEE,0x84,0x00,0x00,}}, {0x9853,2,{0xEE,0x85,0x00,0x00,}}, {0x9854,2,{0xEE,0x86,0x00,0x00,}}, {0x9855,2,{0xEE,0x87,0x00,0x00,}}, {0x9856,2,{0xEE,0x88,0x00,0x00,}}, {0x9857,2,{0xEE,0x89,0x00,0x00,}}, {0x9858,2,{0xEE,0x8A,0x00,0x00,}}, {0x9859,2,{0xEE,0x8B,0x00,0x00,}}, {0x985A,2,{0xEE,0x8C,0x00,0x00,}}, {0x985B,2,{0xEE,0x8D,0x00,0x00,}}, {0x985C,2,{0xEE,0x8E,0x00,0x00,}}, {0x985D,2,{0xEE,0x8F,0x00,0x00,}}, {0x985E,2,{0xEE,0x90,0x00,0x00,}}, {0x985F,2,{0xEE,0x91,0x00,0x00,}}, {0x9860,2,{0xEE,0x92,0x00,0x00,}}, {0x9861,2,{0xEE,0x93,0x00,0x00,}}, {0x9862,2,{0xEE,0x94,0x00,0x00,}}, {0x9863,2,{0xEE,0x95,0x00,0x00,}}, {0x9864,2,{0xEE,0x96,0x00,0x00,}}, {0x9865,2,{0xEE,0x97,0x00,0x00,}}, {0x9866,2,{0xEE,0x98,0x00,0x00,}}, {0x9867,2,{0xEE,0x99,0x00,0x00,}}, {0x9868,2,{0xEE,0x9A,0x00,0x00,}}, {0x9869,2,{0xEE,0x9B,0x00,0x00,}}, {0x986A,2,{0xEE,0x9C,0x00,0x00,}}, {0x986B,2,{0xEE,0x9D,0x00,0x00,}}, {0x986C,2,{0xEE,0x9E,0x00,0x00,}}, {0x986D,2,{0xEE,0x9F,0x00,0x00,}}, {0x986E,2,{0xEE,0xA0,0x00,0x00,}}, {0x986F,2,{0xEF,0x40,0x00,0x00,}}, {0x9870,2,{0xEF,0x41,0x00,0x00,}}, {0x9871,2,{0xEF,0x42,0x00,0x00,}}, {0x9872,2,{0xEF,0x43,0x00,0x00,}}, {0x9873,2,{0xEF,0x44,0x00,0x00,}}, {0x9874,2,{0xEF,0x45,0x00,0x00,}}, {0x9875,2,{0xD2,0xB3,0x00,0x00,}}, {0x9876,2,{0xB6,0xA5,0x00,0x00,}}, {0x9877,2,{0xC7,0xEA,0x00,0x00,}}, {0x9878,2,{0xF1,0xFC,0x00,0x00,}}, {0x9879,2,{0xCF,0xEE,0x00,0x00,}}, {0x987A,2,{0xCB,0xB3,0x00,0x00,}}, {0x987B,2,{0xD0,0xEB,0x00,0x00,}}, {0x987C,2,{0xE7,0xEF,0x00,0x00,}}, {0x987D,2,{0xCD,0xE7,0x00,0x00,}}, {0x987E,2,{0xB9,0xCB,0x00,0x00,}}, {0x987F,2,{0xB6,0xD9,0x00,0x00,}}, {0x9880,2,{0xF1,0xFD,0x00,0x00,}}, {0x9881,2,{0xB0,0xE4,0x00,0x00,}}, {0x9882,2,{0xCB,0xCC,0x00,0x00,}}, {0x9883,2,{0xF1,0xFE,0x00,0x00,}}, {0x9884,2,{0xD4,0xA4,0x00,0x00,}}, {0x9885,2,{0xC2,0xAD,0x00,0x00,}}, {0x9886,2,{0xC1,0xEC,0x00,0x00,}}, {0x9887,2,{0xC6,0xC4,0x00,0x00,}}, {0x9888,2,{0xBE,0xB1,0x00,0x00,}}, {0x9889,2,{0xF2,0xA1,0x00,0x00,}}, {0x988A,2,{0xBC,0xD5,0x00,0x00,}}, {0x988B,2,{0xEF,0x46,0x00,0x00,}}, {0x988C,2,{0xF2,0xA2,0x00,0x00,}}, {0x988D,2,{0xF2,0xA3,0x00,0x00,}}, {0x988E,2,{0xEF,0x47,0x00,0x00,}}, {0x988F,2,{0xF2,0xA4,0x00,0x00,}}, {0x9890,2,{0xD2,0xC3,0x00,0x00,}}, {0x9891,2,{0xC6,0xB5,0x00,0x00,}}, {0x9892,2,{0xEF,0x48,0x00,0x00,}}, {0x9893,2,{0xCD,0xC7,0x00,0x00,}}, {0x9894,2,{0xF2,0xA5,0x00,0x00,}}, {0x9895,2,{0xEF,0x49,0x00,0x00,}}, {0x9896,2,{0xD3,0xB1,0x00,0x00,}}, {0x9897,2,{0xBF,0xC5,0x00,0x00,}}, {0x9898,2,{0xCC,0xE2,0x00,0x00,}}, {0x9899,2,{0xEF,0x4A,0x00,0x00,}}, {0x989A,2,{0xF2,0xA6,0x00,0x00,}}, {0x989B,2,{0xF2,0xA7,0x00,0x00,}}, {0x989C,2,{0xD1,0xD5,0x00,0x00,}}, {0x989D,2,{0xB6,0xEE,0x00,0x00,}}, {0x989E,2,{0xF2,0xA8,0x00,0x00,}}, {0x989F,2,{0xF2,0xA9,0x00,0x00,}}, {0x98A0,2,{0xB5,0xDF,0x00,0x00,}}, {0x98A1,2,{0xF2,0xAA,0x00,0x00,}}, {0x98A2,2,{0xF2,0xAB,0x00,0x00,}}, {0x98A3,2,{0xEF,0x4B,0x00,0x00,}}, {0x98A4,2,{0xB2,0xFC,0x00,0x00,}}, {0x98A5,2,{0xF2,0xAC,0x00,0x00,}}, {0x98A6,2,{0xF2,0xAD,0x00,0x00,}}, {0x98A7,2,{0xC8,0xA7,0x00,0x00,}}, {0x98A8,2,{0xEF,0x4C,0x00,0x00,}}, {0x98A9,2,{0xEF,0x4D,0x00,0x00,}}, {0x98AA,2,{0xEF,0x4E,0x00,0x00,}}, {0x98AB,2,{0xEF,0x4F,0x00,0x00,}}, {0x98AC,2,{0xEF,0x50,0x00,0x00,}}, {0x98AD,2,{0xEF,0x51,0x00,0x00,}}, {0x98AE,2,{0xEF,0x52,0x00,0x00,}}, {0x98AF,2,{0xEF,0x53,0x00,0x00,}}, {0x98B0,2,{0xEF,0x54,0x00,0x00,}}, {0x98B1,2,{0xEF,0x55,0x00,0x00,}}, {0x98B2,2,{0xEF,0x56,0x00,0x00,}}, {0x98B3,2,{0xEF,0x57,0x00,0x00,}}, {0x98B4,2,{0xEF,0x58,0x00,0x00,}}, {0x98B5,2,{0xEF,0x59,0x00,0x00,}}, {0x98B6,2,{0xEF,0x5A,0x00,0x00,}}, {0x98B7,2,{0xEF,0x5B,0x00,0x00,}}, {0x98B8,2,{0xEF,0x5C,0x00,0x00,}}, {0x98B9,2,{0xEF,0x5D,0x00,0x00,}}, {0x98BA,2,{0xEF,0x5E,0x00,0x00,}}, {0x98BB,2,{0xEF,0x5F,0x00,0x00,}}, {0x98BC,2,{0xEF,0x60,0x00,0x00,}}, {0x98BD,2,{0xEF,0x61,0x00,0x00,}}, {0x98BE,2,{0xEF,0x62,0x00,0x00,}}, {0x98BF,2,{0xEF,0x63,0x00,0x00,}}, {0x98C0,2,{0xEF,0x64,0x00,0x00,}}, {0x98C1,2,{0xEF,0x65,0x00,0x00,}}, {0x98C2,2,{0xEF,0x66,0x00,0x00,}}, {0x98C3,2,{0xEF,0x67,0x00,0x00,}}, {0x98C4,2,{0xEF,0x68,0x00,0x00,}}, {0x98C5,2,{0xEF,0x69,0x00,0x00,}}, {0x98C6,2,{0xEF,0x6A,0x00,0x00,}}, {0x98C7,2,{0xEF,0x6B,0x00,0x00,}}, {0x98C8,2,{0xEF,0x6C,0x00,0x00,}}, {0x98C9,2,{0xEF,0x6D,0x00,0x00,}}, {0x98CA,2,{0xEF,0x6E,0x00,0x00,}}, {0x98CB,2,{0xEF,0x6F,0x00,0x00,}}, {0x98CC,2,{0xEF,0x70,0x00,0x00,}}, {0x98CD,2,{0xEF,0x71,0x00,0x00,}}, {0x98CE,2,{0xB7,0xE7,0x00,0x00,}}, {0x98CF,2,{0xEF,0x72,0x00,0x00,}}, {0x98D0,2,{0xEF,0x73,0x00,0x00,}}, {0x98D1,2,{0xEC,0xA9,0x00,0x00,}}, {0x98D2,2,{0xEC,0xAA,0x00,0x00,}}, {0x98D3,2,{0xEC,0xAB,0x00,0x00,}}, {0x98D4,2,{0xEF,0x74,0x00,0x00,}}, {0x98D5,2,{0xEC,0xAC,0x00,0x00,}}, {0x98D6,2,{0xEF,0x75,0x00,0x00,}}, {0x98D7,2,{0xEF,0x76,0x00,0x00,}}, {0x98D8,2,{0xC6,0xAE,0x00,0x00,}}, {0x98D9,2,{0xEC,0xAD,0x00,0x00,}}, {0x98DA,2,{0xEC,0xAE,0x00,0x00,}}, {0x98DB,2,{0xEF,0x77,0x00,0x00,}}, {0x98DC,2,{0xEF,0x78,0x00,0x00,}}, {0x98DD,2,{0xEF,0x79,0x00,0x00,}}, {0x98DE,2,{0xB7,0xC9,0x00,0x00,}}, {0x98DF,2,{0xCA,0xB3,0x00,0x00,}}, {0x98E0,2,{0xEF,0x7A,0x00,0x00,}}, {0x98E1,2,{0xEF,0x7B,0x00,0x00,}}, {0x98E2,2,{0xEF,0x7C,0x00,0x00,}}, {0x98E3,2,{0xEF,0x7D,0x00,0x00,}}, {0x98E4,2,{0xEF,0x7E,0x00,0x00,}}, {0x98E5,2,{0xEF,0x80,0x00,0x00,}}, {0x98E6,2,{0xEF,0x81,0x00,0x00,}}, {0x98E7,2,{0xE2,0xB8,0x00,0x00,}}, {0x98E8,2,{0xF7,0xCF,0x00,0x00,}}, {0x98E9,2,{0xEF,0x82,0x00,0x00,}}, {0x98EA,2,{0xEF,0x83,0x00,0x00,}}, {0x98EB,2,{0xEF,0x84,0x00,0x00,}}, {0x98EC,2,{0xEF,0x85,0x00,0x00,}}, {0x98ED,2,{0xEF,0x86,0x00,0x00,}}, {0x98EE,2,{0xEF,0x87,0x00,0x00,}}, {0x98EF,2,{0xEF,0x88,0x00,0x00,}}, {0x98F0,2,{0xEF,0x89,0x00,0x00,}}, {0x98F1,2,{0xEF,0x8A,0x00,0x00,}}, {0x98F2,2,{0xEF,0x8B,0x00,0x00,}}, {0x98F3,2,{0xEF,0x8C,0x00,0x00,}}, {0x98F4,2,{0xEF,0x8D,0x00,0x00,}}, {0x98F5,2,{0xEF,0x8E,0x00,0x00,}}, {0x98F6,2,{0xEF,0x8F,0x00,0x00,}}, {0x98F7,2,{0xEF,0x90,0x00,0x00,}}, {0x98F8,2,{0xEF,0x91,0x00,0x00,}}, {0x98F9,2,{0xEF,0x92,0x00,0x00,}}, {0x98FA,2,{0xEF,0x93,0x00,0x00,}}, {0x98FB,2,{0xEF,0x94,0x00,0x00,}}, {0x98FC,2,{0xEF,0x95,0x00,0x00,}}, {0x98FD,2,{0xEF,0x96,0x00,0x00,}}, {0x98FE,2,{0xEF,0x97,0x00,0x00,}}, {0x98FF,2,{0xEF,0x98,0x00,0x00,}}, {0x9900,2,{0xEF,0x99,0x00,0x00,}}, {0x9901,2,{0xEF,0x9A,0x00,0x00,}}, {0x9902,2,{0xEF,0x9B,0x00,0x00,}}, {0x9903,2,{0xEF,0x9C,0x00,0x00,}}, {0x9904,2,{0xEF,0x9D,0x00,0x00,}}, {0x9905,2,{0xEF,0x9E,0x00,0x00,}}, {0x9906,2,{0xEF,0x9F,0x00,0x00,}}, {0x9907,2,{0xEF,0xA0,0x00,0x00,}}, {0x9908,2,{0xF0,0x40,0x00,0x00,}}, {0x9909,2,{0xF0,0x41,0x00,0x00,}}, {0x990A,2,{0xF0,0x42,0x00,0x00,}}, {0x990B,2,{0xF0,0x43,0x00,0x00,}}, {0x990C,2,{0xF0,0x44,0x00,0x00,}}, {0x990D,2,{0xF7,0xD0,0x00,0x00,}}, {0x990E,2,{0xF0,0x45,0x00,0x00,}}, {0x990F,2,{0xF0,0x46,0x00,0x00,}}, {0x9910,2,{0xB2,0xCD,0x00,0x00,}}, {0x9911,2,{0xF0,0x47,0x00,0x00,}}, {0x9912,2,{0xF0,0x48,0x00,0x00,}}, {0x9913,2,{0xF0,0x49,0x00,0x00,}}, {0x9914,2,{0xF0,0x4A,0x00,0x00,}}, {0x9915,2,{0xF0,0x4B,0x00,0x00,}}, {0x9916,2,{0xF0,0x4C,0x00,0x00,}}, {0x9917,2,{0xF0,0x4D,0x00,0x00,}}, {0x9918,2,{0xF0,0x4E,0x00,0x00,}}, {0x9919,2,{0xF0,0x4F,0x00,0x00,}}, {0x991A,2,{0xF0,0x50,0x00,0x00,}}, {0x991B,2,{0xF0,0x51,0x00,0x00,}}, {0x991C,2,{0xF0,0x52,0x00,0x00,}}, {0x991D,2,{0xF0,0x53,0x00,0x00,}}, {0x991E,2,{0xF0,0x54,0x00,0x00,}}, {0x991F,2,{0xF0,0x55,0x00,0x00,}}, {0x9920,2,{0xF0,0x56,0x00,0x00,}}, {0x9921,2,{0xF0,0x57,0x00,0x00,}}, {0x9922,2,{0xF0,0x58,0x00,0x00,}}, {0x9923,2,{0xF0,0x59,0x00,0x00,}}, {0x9924,2,{0xF0,0x5A,0x00,0x00,}}, {0x9925,2,{0xF0,0x5B,0x00,0x00,}}, {0x9926,2,{0xF0,0x5C,0x00,0x00,}}, {0x9927,2,{0xF0,0x5D,0x00,0x00,}}, {0x9928,2,{0xF0,0x5E,0x00,0x00,}}, {0x9929,2,{0xF0,0x5F,0x00,0x00,}}, {0x992A,2,{0xF0,0x60,0x00,0x00,}}, {0x992B,2,{0xF0,0x61,0x00,0x00,}}, {0x992C,2,{0xF0,0x62,0x00,0x00,}}, {0x992D,2,{0xF0,0x63,0x00,0x00,}}, {0x992E,2,{0xF7,0xD1,0x00,0x00,}}, {0x992F,2,{0xF0,0x64,0x00,0x00,}}, {0x9930,2,{0xF0,0x65,0x00,0x00,}}, {0x9931,2,{0xF0,0x66,0x00,0x00,}}, {0x9932,2,{0xF0,0x67,0x00,0x00,}}, {0x9933,2,{0xF0,0x68,0x00,0x00,}}, {0x9934,2,{0xF0,0x69,0x00,0x00,}}, {0x9935,2,{0xF0,0x6A,0x00,0x00,}}, {0x9936,2,{0xF0,0x6B,0x00,0x00,}}, {0x9937,2,{0xF0,0x6C,0x00,0x00,}}, {0x9938,2,{0xF0,0x6D,0x00,0x00,}}, {0x9939,2,{0xF0,0x6E,0x00,0x00,}}, {0x993A,2,{0xF0,0x6F,0x00,0x00,}}, {0x993B,2,{0xF0,0x70,0x00,0x00,}}, {0x993C,2,{0xF0,0x71,0x00,0x00,}}, {0x993D,2,{0xF0,0x72,0x00,0x00,}}, {0x993E,2,{0xF0,0x73,0x00,0x00,}}, {0x993F,2,{0xF0,0x74,0x00,0x00,}}, {0x9940,2,{0xF0,0x75,0x00,0x00,}}, {0x9941,2,{0xF0,0x76,0x00,0x00,}}, {0x9942,2,{0xF0,0x77,0x00,0x00,}}, {0x9943,2,{0xF0,0x78,0x00,0x00,}}, {0x9944,2,{0xF0,0x79,0x00,0x00,}}, {0x9945,2,{0xF0,0x7A,0x00,0x00,}}, {0x9946,2,{0xF0,0x7B,0x00,0x00,}}, {0x9947,2,{0xF0,0x7C,0x00,0x00,}}, {0x9948,2,{0xF0,0x7D,0x00,0x00,}}, {0x9949,2,{0xF0,0x7E,0x00,0x00,}}, {0x994A,2,{0xF0,0x80,0x00,0x00,}}, {0x994B,2,{0xF0,0x81,0x00,0x00,}}, {0x994C,2,{0xF0,0x82,0x00,0x00,}}, {0x994D,2,{0xF0,0x83,0x00,0x00,}}, {0x994E,2,{0xF0,0x84,0x00,0x00,}}, {0x994F,2,{0xF0,0x85,0x00,0x00,}}, {0x9950,2,{0xF0,0x86,0x00,0x00,}}, {0x9951,2,{0xF0,0x87,0x00,0x00,}}, {0x9952,2,{0xF0,0x88,0x00,0x00,}}, {0x9953,2,{0xF0,0x89,0x00,0x00,}}, {0x9954,2,{0xF7,0xD3,0x00,0x00,}}, {0x9955,2,{0xF7,0xD2,0x00,0x00,}}, {0x9956,2,{0xF0,0x8A,0x00,0x00,}}, {0x9957,2,{0xF0,0x8B,0x00,0x00,}}, {0x9958,2,{0xF0,0x8C,0x00,0x00,}}, {0x9959,2,{0xF0,0x8D,0x00,0x00,}}, {0x995A,2,{0xF0,0x8E,0x00,0x00,}}, {0x995B,2,{0xF0,0x8F,0x00,0x00,}}, {0x995C,2,{0xF0,0x90,0x00,0x00,}}, {0x995D,2,{0xF0,0x91,0x00,0x00,}}, {0x995E,2,{0xF0,0x92,0x00,0x00,}}, {0x995F,2,{0xF0,0x93,0x00,0x00,}}, {0x9960,2,{0xF0,0x94,0x00,0x00,}}, {0x9961,2,{0xF0,0x95,0x00,0x00,}}, {0x9962,2,{0xF0,0x96,0x00,0x00,}}, {0x9963,2,{0xE2,0xBB,0x00,0x00,}}, {0x9964,2,{0xF0,0x97,0x00,0x00,}}, {0x9965,2,{0xBC,0xA2,0x00,0x00,}}, {0x9966,2,{0xF0,0x98,0x00,0x00,}}, {0x9967,2,{0xE2,0xBC,0x00,0x00,}}, {0x9968,2,{0xE2,0xBD,0x00,0x00,}}, {0x9969,2,{0xE2,0xBE,0x00,0x00,}}, {0x996A,2,{0xE2,0xBF,0x00,0x00,}}, {0x996B,2,{0xE2,0xC0,0x00,0x00,}}, {0x996C,2,{0xE2,0xC1,0x00,0x00,}}, {0x996D,2,{0xB7,0xB9,0x00,0x00,}}, {0x996E,2,{0xD2,0xFB,0x00,0x00,}}, {0x996F,2,{0xBD,0xA4,0x00,0x00,}}, {0x9970,2,{0xCA,0xCE,0x00,0x00,}}, {0x9971,2,{0xB1,0xA5,0x00,0x00,}}, {0x9972,2,{0xCB,0xC7,0x00,0x00,}}, {0x9973,2,{0xF0,0x99,0x00,0x00,}}, {0x9974,2,{0xE2,0xC2,0x00,0x00,}}, {0x9975,2,{0xB6,0xFC,0x00,0x00,}}, {0x9976,2,{0xC8,0xC4,0x00,0x00,}}, {0x9977,2,{0xE2,0xC3,0x00,0x00,}}, {0x9978,2,{0xF0,0x9A,0x00,0x00,}}, {0x9979,2,{0xF0,0x9B,0x00,0x00,}}, {0x997A,2,{0xBD,0xC8,0x00,0x00,}}, {0x997B,2,{0xF0,0x9C,0x00,0x00,}}, {0x997C,2,{0xB1,0xFD,0x00,0x00,}}, {0x997D,2,{0xE2,0xC4,0x00,0x00,}}, {0x997E,2,{0xF0,0x9D,0x00,0x00,}}, {0x997F,2,{0xB6,0xF6,0x00,0x00,}}, {0x9980,2,{0xE2,0xC5,0x00,0x00,}}, {0x9981,2,{0xC4,0xD9,0x00,0x00,}}, {0x9982,2,{0xF0,0x9E,0x00,0x00,}}, {0x9983,2,{0xF0,0x9F,0x00,0x00,}}, {0x9984,2,{0xE2,0xC6,0x00,0x00,}}, {0x9985,2,{0xCF,0xDA,0x00,0x00,}}, {0x9986,2,{0xB9,0xDD,0x00,0x00,}}, {0x9987,2,{0xE2,0xC7,0x00,0x00,}}, {0x9988,2,{0xC0,0xA1,0x00,0x00,}}, {0x9989,2,{0xF0,0xA0,0x00,0x00,}}, {0x998A,2,{0xE2,0xC8,0x00,0x00,}}, {0x998B,2,{0xB2,0xF6,0x00,0x00,}}, {0x998C,2,{0xF1,0x40,0x00,0x00,}}, {0x998D,2,{0xE2,0xC9,0x00,0x00,}}, {0x998E,2,{0xF1,0x41,0x00,0x00,}}, {0x998F,2,{0xC1,0xF3,0x00,0x00,}}, {0x9990,2,{0xE2,0xCA,0x00,0x00,}}, {0x9991,2,{0xE2,0xCB,0x00,0x00,}}, {0x9992,2,{0xC2,0xF8,0x00,0x00,}}, {0x9993,2,{0xE2,0xCC,0x00,0x00,}}, {0x9994,2,{0xE2,0xCD,0x00,0x00,}}, {0x9995,2,{0xE2,0xCE,0x00,0x00,}}, {0x9996,2,{0xCA,0xD7,0x00,0x00,}}, {0x9997,2,{0xD8,0xB8,0x00,0x00,}}, {0x9998,2,{0xD9,0xE5,0x00,0x00,}}, {0x9999,2,{0xCF,0xE3,0x00,0x00,}}, {0x999A,2,{0xF1,0x42,0x00,0x00,}}, {0x999B,2,{0xF1,0x43,0x00,0x00,}}, {0x999C,2,{0xF1,0x44,0x00,0x00,}}, {0x999D,2,{0xF1,0x45,0x00,0x00,}}, {0x999E,2,{0xF1,0x46,0x00,0x00,}}, {0x999F,2,{0xF1,0x47,0x00,0x00,}}, {0x99A0,2,{0xF1,0x48,0x00,0x00,}}, {0x99A1,2,{0xF1,0x49,0x00,0x00,}}, {0x99A2,2,{0xF1,0x4A,0x00,0x00,}}, {0x99A3,2,{0xF1,0x4B,0x00,0x00,}}, {0x99A4,2,{0xF1,0x4C,0x00,0x00,}}, {0x99A5,2,{0xF0,0xA5,0x00,0x00,}}, {0x99A6,2,{0xF1,0x4D,0x00,0x00,}}, {0x99A7,2,{0xF1,0x4E,0x00,0x00,}}, {0x99A8,2,{0xDC,0xB0,0x00,0x00,}}, {0x99A9,2,{0xF1,0x4F,0x00,0x00,}}, {0x99AA,2,{0xF1,0x50,0x00,0x00,}}, {0x99AB,2,{0xF1,0x51,0x00,0x00,}}, {0x99AC,2,{0xF1,0x52,0x00,0x00,}}, {0x99AD,2,{0xF1,0x53,0x00,0x00,}}, {0x99AE,2,{0xF1,0x54,0x00,0x00,}}, {0x99AF,2,{0xF1,0x55,0x00,0x00,}}, {0x99B0,2,{0xF1,0x56,0x00,0x00,}}, {0x99B1,2,{0xF1,0x57,0x00,0x00,}}, {0x99B2,2,{0xF1,0x58,0x00,0x00,}}, {0x99B3,2,{0xF1,0x59,0x00,0x00,}}, {0x99B4,2,{0xF1,0x5A,0x00,0x00,}}, {0x99B5,2,{0xF1,0x5B,0x00,0x00,}}, {0x99B6,2,{0xF1,0x5C,0x00,0x00,}}, {0x99B7,2,{0xF1,0x5D,0x00,0x00,}}, {0x99B8,2,{0xF1,0x5E,0x00,0x00,}}, {0x99B9,2,{0xF1,0x5F,0x00,0x00,}}, {0x99BA,2,{0xF1,0x60,0x00,0x00,}}, {0x99BB,2,{0xF1,0x61,0x00,0x00,}}, {0x99BC,2,{0xF1,0x62,0x00,0x00,}}, {0x99BD,2,{0xF1,0x63,0x00,0x00,}}, {0x99BE,2,{0xF1,0x64,0x00,0x00,}}, {0x99BF,2,{0xF1,0x65,0x00,0x00,}}, {0x99C0,2,{0xF1,0x66,0x00,0x00,}}, {0x99C1,2,{0xF1,0x67,0x00,0x00,}}, {0x99C2,2,{0xF1,0x68,0x00,0x00,}}, {0x99C3,2,{0xF1,0x69,0x00,0x00,}}, {0x99C4,2,{0xF1,0x6A,0x00,0x00,}}, {0x99C5,2,{0xF1,0x6B,0x00,0x00,}}, {0x99C6,2,{0xF1,0x6C,0x00,0x00,}}, {0x99C7,2,{0xF1,0x6D,0x00,0x00,}}, {0x99C8,2,{0xF1,0x6E,0x00,0x00,}}, {0x99C9,2,{0xF1,0x6F,0x00,0x00,}}, {0x99CA,2,{0xF1,0x70,0x00,0x00,}}, {0x99CB,2,{0xF1,0x71,0x00,0x00,}}, {0x99CC,2,{0xF1,0x72,0x00,0x00,}}, {0x99CD,2,{0xF1,0x73,0x00,0x00,}}, {0x99CE,2,{0xF1,0x74,0x00,0x00,}}, {0x99CF,2,{0xF1,0x75,0x00,0x00,}}, {0x99D0,2,{0xF1,0x76,0x00,0x00,}}, {0x99D1,2,{0xF1,0x77,0x00,0x00,}}, {0x99D2,2,{0xF1,0x78,0x00,0x00,}}, {0x99D3,2,{0xF1,0x79,0x00,0x00,}}, {0x99D4,2,{0xF1,0x7A,0x00,0x00,}}, {0x99D5,2,{0xF1,0x7B,0x00,0x00,}}, {0x99D6,2,{0xF1,0x7C,0x00,0x00,}}, {0x99D7,2,{0xF1,0x7D,0x00,0x00,}}, {0x99D8,2,{0xF1,0x7E,0x00,0x00,}}, {0x99D9,2,{0xF1,0x80,0x00,0x00,}}, {0x99DA,2,{0xF1,0x81,0x00,0x00,}}, {0x99DB,2,{0xF1,0x82,0x00,0x00,}}, {0x99DC,2,{0xF1,0x83,0x00,0x00,}}, {0x99DD,2,{0xF1,0x84,0x00,0x00,}}, {0x99DE,2,{0xF1,0x85,0x00,0x00,}}, {0x99DF,2,{0xF1,0x86,0x00,0x00,}}, {0x99E0,2,{0xF1,0x87,0x00,0x00,}}, {0x99E1,2,{0xF1,0x88,0x00,0x00,}}, {0x99E2,2,{0xF1,0x89,0x00,0x00,}}, {0x99E3,2,{0xF1,0x8A,0x00,0x00,}}, {0x99E4,2,{0xF1,0x8B,0x00,0x00,}}, {0x99E5,2,{0xF1,0x8C,0x00,0x00,}}, {0x99E6,2,{0xF1,0x8D,0x00,0x00,}}, {0x99E7,2,{0xF1,0x8E,0x00,0x00,}}, {0x99E8,2,{0xF1,0x8F,0x00,0x00,}}, {0x99E9,2,{0xF1,0x90,0x00,0x00,}}, {0x99EA,2,{0xF1,0x91,0x00,0x00,}}, {0x99EB,2,{0xF1,0x92,0x00,0x00,}}, {0x99EC,2,{0xF1,0x93,0x00,0x00,}}, {0x99ED,2,{0xF1,0x94,0x00,0x00,}}, {0x99EE,2,{0xF1,0x95,0x00,0x00,}}, {0x99EF,2,{0xF1,0x96,0x00,0x00,}}, {0x99F0,2,{0xF1,0x97,0x00,0x00,}}, {0x99F1,2,{0xF1,0x98,0x00,0x00,}}, {0x99F2,2,{0xF1,0x99,0x00,0x00,}}, {0x99F3,2,{0xF1,0x9A,0x00,0x00,}}, {0x99F4,2,{0xF1,0x9B,0x00,0x00,}}, {0x99F5,2,{0xF1,0x9C,0x00,0x00,}}, {0x99F6,2,{0xF1,0x9D,0x00,0x00,}}, {0x99F7,2,{0xF1,0x9E,0x00,0x00,}}, {0x99F8,2,{0xF1,0x9F,0x00,0x00,}}, {0x99F9,2,{0xF1,0xA0,0x00,0x00,}}, {0x99FA,2,{0xF2,0x40,0x00,0x00,}}, {0x99FB,2,{0xF2,0x41,0x00,0x00,}}, {0x99FC,2,{0xF2,0x42,0x00,0x00,}}, {0x99FD,2,{0xF2,0x43,0x00,0x00,}}, {0x99FE,2,{0xF2,0x44,0x00,0x00,}}, {0x99FF,2,{0xF2,0x45,0x00,0x00,}}, {0x9A00,2,{0xF2,0x46,0x00,0x00,}}, {0x9A01,2,{0xF2,0x47,0x00,0x00,}}, {0x9A02,2,{0xF2,0x48,0x00,0x00,}}, {0x9A03,2,{0xF2,0x49,0x00,0x00,}}, {0x9A04,2,{0xF2,0x4A,0x00,0x00,}}, {0x9A05,2,{0xF2,0x4B,0x00,0x00,}}, {0x9A06,2,{0xF2,0x4C,0x00,0x00,}}, {0x9A07,2,{0xF2,0x4D,0x00,0x00,}}, {0x9A08,2,{0xF2,0x4E,0x00,0x00,}}, {0x9A09,2,{0xF2,0x4F,0x00,0x00,}}, {0x9A0A,2,{0xF2,0x50,0x00,0x00,}}, {0x9A0B,2,{0xF2,0x51,0x00,0x00,}}, {0x9A0C,2,{0xF2,0x52,0x00,0x00,}}, {0x9A0D,2,{0xF2,0x53,0x00,0x00,}}, {0x9A0E,2,{0xF2,0x54,0x00,0x00,}}, {0x9A0F,2,{0xF2,0x55,0x00,0x00,}}, {0x9A10,2,{0xF2,0x56,0x00,0x00,}}, {0x9A11,2,{0xF2,0x57,0x00,0x00,}}, {0x9A12,2,{0xF2,0x58,0x00,0x00,}}, {0x9A13,2,{0xF2,0x59,0x00,0x00,}}, {0x9A14,2,{0xF2,0x5A,0x00,0x00,}}, {0x9A15,2,{0xF2,0x5B,0x00,0x00,}}, {0x9A16,2,{0xF2,0x5C,0x00,0x00,}}, {0x9A17,2,{0xF2,0x5D,0x00,0x00,}}, {0x9A18,2,{0xF2,0x5E,0x00,0x00,}}, {0x9A19,2,{0xF2,0x5F,0x00,0x00,}}, {0x9A1A,2,{0xF2,0x60,0x00,0x00,}}, {0x9A1B,2,{0xF2,0x61,0x00,0x00,}}, {0x9A1C,2,{0xF2,0x62,0x00,0x00,}}, {0x9A1D,2,{0xF2,0x63,0x00,0x00,}}, {0x9A1E,2,{0xF2,0x64,0x00,0x00,}}, {0x9A1F,2,{0xF2,0x65,0x00,0x00,}}, {0x9A20,2,{0xF2,0x66,0x00,0x00,}}, {0x9A21,2,{0xF2,0x67,0x00,0x00,}}, {0x9A22,2,{0xF2,0x68,0x00,0x00,}}, {0x9A23,2,{0xF2,0x69,0x00,0x00,}}, {0x9A24,2,{0xF2,0x6A,0x00,0x00,}}, {0x9A25,2,{0xF2,0x6B,0x00,0x00,}}, {0x9A26,2,{0xF2,0x6C,0x00,0x00,}}, {0x9A27,2,{0xF2,0x6D,0x00,0x00,}}, {0x9A28,2,{0xF2,0x6E,0x00,0x00,}}, {0x9A29,2,{0xF2,0x6F,0x00,0x00,}}, {0x9A2A,2,{0xF2,0x70,0x00,0x00,}}, {0x9A2B,2,{0xF2,0x71,0x00,0x00,}}, {0x9A2C,2,{0xF2,0x72,0x00,0x00,}}, {0x9A2D,2,{0xF2,0x73,0x00,0x00,}}, {0x9A2E,2,{0xF2,0x74,0x00,0x00,}}, {0x9A2F,2,{0xF2,0x75,0x00,0x00,}}, {0x9A30,2,{0xF2,0x76,0x00,0x00,}}, {0x9A31,2,{0xF2,0x77,0x00,0x00,}}, {0x9A32,2,{0xF2,0x78,0x00,0x00,}}, {0x9A33,2,{0xF2,0x79,0x00,0x00,}}, {0x9A34,2,{0xF2,0x7A,0x00,0x00,}}, {0x9A35,2,{0xF2,0x7B,0x00,0x00,}}, {0x9A36,2,{0xF2,0x7C,0x00,0x00,}}, {0x9A37,2,{0xF2,0x7D,0x00,0x00,}}, {0x9A38,2,{0xF2,0x7E,0x00,0x00,}}, {0x9A39,2,{0xF2,0x80,0x00,0x00,}}, {0x9A3A,2,{0xF2,0x81,0x00,0x00,}}, {0x9A3B,2,{0xF2,0x82,0x00,0x00,}}, {0x9A3C,2,{0xF2,0x83,0x00,0x00,}}, {0x9A3D,2,{0xF2,0x84,0x00,0x00,}}, {0x9A3E,2,{0xF2,0x85,0x00,0x00,}}, {0x9A3F,2,{0xF2,0x86,0x00,0x00,}}, {0x9A40,2,{0xF2,0x87,0x00,0x00,}}, {0x9A41,2,{0xF2,0x88,0x00,0x00,}}, {0x9A42,2,{0xF2,0x89,0x00,0x00,}}, {0x9A43,2,{0xF2,0x8A,0x00,0x00,}}, {0x9A44,2,{0xF2,0x8B,0x00,0x00,}}, {0x9A45,2,{0xF2,0x8C,0x00,0x00,}}, {0x9A46,2,{0xF2,0x8D,0x00,0x00,}}, {0x9A47,2,{0xF2,0x8E,0x00,0x00,}}, {0x9A48,2,{0xF2,0x8F,0x00,0x00,}}, {0x9A49,2,{0xF2,0x90,0x00,0x00,}}, {0x9A4A,2,{0xF2,0x91,0x00,0x00,}}, {0x9A4B,2,{0xF2,0x92,0x00,0x00,}}, {0x9A4C,2,{0xF2,0x93,0x00,0x00,}}, {0x9A4D,2,{0xF2,0x94,0x00,0x00,}}, {0x9A4E,2,{0xF2,0x95,0x00,0x00,}}, {0x9A4F,2,{0xF2,0x96,0x00,0x00,}}, {0x9A50,2,{0xF2,0x97,0x00,0x00,}}, {0x9A51,2,{0xF2,0x98,0x00,0x00,}}, {0x9A52,2,{0xF2,0x99,0x00,0x00,}}, {0x9A53,2,{0xF2,0x9A,0x00,0x00,}}, {0x9A54,2,{0xF2,0x9B,0x00,0x00,}}, {0x9A55,2,{0xF2,0x9C,0x00,0x00,}}, {0x9A56,2,{0xF2,0x9D,0x00,0x00,}}, {0x9A57,2,{0xF2,0x9E,0x00,0x00,}}, {0x9A58,2,{0xF2,0x9F,0x00,0x00,}}, {0x9A59,2,{0xF2,0xA0,0x00,0x00,}}, {0x9A5A,2,{0xF3,0x40,0x00,0x00,}}, {0x9A5B,2,{0xF3,0x41,0x00,0x00,}}, {0x9A5C,2,{0xF3,0x42,0x00,0x00,}}, {0x9A5D,2,{0xF3,0x43,0x00,0x00,}}, {0x9A5E,2,{0xF3,0x44,0x00,0x00,}}, {0x9A5F,2,{0xF3,0x45,0x00,0x00,}}, {0x9A60,2,{0xF3,0x46,0x00,0x00,}}, {0x9A61,2,{0xF3,0x47,0x00,0x00,}}, {0x9A62,2,{0xF3,0x48,0x00,0x00,}}, {0x9A63,2,{0xF3,0x49,0x00,0x00,}}, {0x9A64,2,{0xF3,0x4A,0x00,0x00,}}, {0x9A65,2,{0xF3,0x4B,0x00,0x00,}}, {0x9A66,2,{0xF3,0x4C,0x00,0x00,}}, {0x9A67,2,{0xF3,0x4D,0x00,0x00,}}, {0x9A68,2,{0xF3,0x4E,0x00,0x00,}}, {0x9A69,2,{0xF3,0x4F,0x00,0x00,}}, {0x9A6A,2,{0xF3,0x50,0x00,0x00,}}, {0x9A6B,2,{0xF3,0x51,0x00,0x00,}}, {0x9A6C,2,{0xC2,0xED,0x00,0x00,}}, {0x9A6D,2,{0xD4,0xA6,0x00,0x00,}}, {0x9A6E,2,{0xCD,0xD4,0x00,0x00,}}, {0x9A6F,2,{0xD1,0xB1,0x00,0x00,}}, {0x9A70,2,{0xB3,0xDB,0x00,0x00,}}, {0x9A71,2,{0xC7,0xFD,0x00,0x00,}}, {0x9A72,2,{0xF3,0x52,0x00,0x00,}}, {0x9A73,2,{0xB2,0xB5,0x00,0x00,}}, {0x9A74,2,{0xC2,0xBF,0x00,0x00,}}, {0x9A75,2,{0xE6,0xE0,0x00,0x00,}}, {0x9A76,2,{0xCA,0xBB,0x00,0x00,}}, {0x9A77,2,{0xE6,0xE1,0x00,0x00,}}, {0x9A78,2,{0xE6,0xE2,0x00,0x00,}}, {0x9A79,2,{0xBE,0xD4,0x00,0x00,}}, {0x9A7A,2,{0xE6,0xE3,0x00,0x00,}}, {0x9A7B,2,{0xD7,0xA4,0x00,0x00,}}, {0x9A7C,2,{0xCD,0xD5,0x00,0x00,}}, {0x9A7D,2,{0xE6,0xE5,0x00,0x00,}}, {0x9A7E,2,{0xBC,0xDD,0x00,0x00,}}, {0x9A7F,2,{0xE6,0xE4,0x00,0x00,}}, {0x9A80,2,{0xE6,0xE6,0x00,0x00,}}, {0x9A81,2,{0xE6,0xE7,0x00,0x00,}}, {0x9A82,2,{0xC2,0xEE,0x00,0x00,}}, {0x9A83,2,{0xF3,0x53,0x00,0x00,}}, {0x9A84,2,{0xBD,0xBE,0x00,0x00,}}, {0x9A85,2,{0xE6,0xE8,0x00,0x00,}}, {0x9A86,2,{0xC2,0xE6,0x00,0x00,}}, {0x9A87,2,{0xBA,0xA7,0x00,0x00,}}, {0x9A88,2,{0xE6,0xE9,0x00,0x00,}}, {0x9A89,2,{0xF3,0x54,0x00,0x00,}}, {0x9A8A,2,{0xE6,0xEA,0x00,0x00,}}, {0x9A8B,2,{0xB3,0xD2,0x00,0x00,}}, {0x9A8C,2,{0xD1,0xE9,0x00,0x00,}}, {0x9A8D,2,{0xF3,0x55,0x00,0x00,}}, {0x9A8E,2,{0xF3,0x56,0x00,0x00,}}, {0x9A8F,2,{0xBF,0xA5,0x00,0x00,}}, {0x9A90,2,{0xE6,0xEB,0x00,0x00,}}, {0x9A91,2,{0xC6,0xEF,0x00,0x00,}}, {0x9A92,2,{0xE6,0xEC,0x00,0x00,}}, {0x9A93,2,{0xE6,0xED,0x00,0x00,}}, {0x9A94,2,{0xF3,0x57,0x00,0x00,}}, {0x9A95,2,{0xF3,0x58,0x00,0x00,}}, {0x9A96,2,{0xE6,0xEE,0x00,0x00,}}, {0x9A97,2,{0xC6,0xAD,0x00,0x00,}}, {0x9A98,2,{0xE6,0xEF,0x00,0x00,}}, {0x9A99,2,{0xF3,0x59,0x00,0x00,}}, {0x9A9A,2,{0xC9,0xA7,0x00,0x00,}}, {0x9A9B,2,{0xE6,0xF0,0x00,0x00,}}, {0x9A9C,2,{0xE6,0xF1,0x00,0x00,}}, {0x9A9D,2,{0xE6,0xF2,0x00,0x00,}}, {0x9A9E,2,{0xE5,0xB9,0x00,0x00,}}, {0x9A9F,2,{0xE6,0xF3,0x00,0x00,}}, {0x9AA0,2,{0xE6,0xF4,0x00,0x00,}}, {0x9AA1,2,{0xC2,0xE2,0x00,0x00,}}, {0x9AA2,2,{0xE6,0xF5,0x00,0x00,}}, {0x9AA3,2,{0xE6,0xF6,0x00,0x00,}}, {0x9AA4,2,{0xD6,0xE8,0x00,0x00,}}, {0x9AA5,2,{0xE6,0xF7,0x00,0x00,}}, {0x9AA6,2,{0xF3,0x5A,0x00,0x00,}}, {0x9AA7,2,{0xE6,0xF8,0x00,0x00,}}, {0x9AA8,2,{0xB9,0xC7,0x00,0x00,}}, {0x9AA9,2,{0xF3,0x5B,0x00,0x00,}}, {0x9AAA,2,{0xF3,0x5C,0x00,0x00,}}, {0x9AAB,2,{0xF3,0x5D,0x00,0x00,}}, {0x9AAC,2,{0xF3,0x5E,0x00,0x00,}}, {0x9AAD,2,{0xF3,0x5F,0x00,0x00,}}, {0x9AAE,2,{0xF3,0x60,0x00,0x00,}}, {0x9AAF,2,{0xF3,0x61,0x00,0x00,}}, {0x9AB0,2,{0xF7,0xBB,0x00,0x00,}}, {0x9AB1,2,{0xF7,0xBA,0x00,0x00,}}, {0x9AB2,2,{0xF3,0x62,0x00,0x00,}}, {0x9AB3,2,{0xF3,0x63,0x00,0x00,}}, {0x9AB4,2,{0xF3,0x64,0x00,0x00,}}, {0x9AB5,2,{0xF3,0x65,0x00,0x00,}}, {0x9AB6,2,{0xF7,0xBE,0x00,0x00,}}, {0x9AB7,2,{0xF7,0xBC,0x00,0x00,}}, {0x9AB8,2,{0xBA,0xA1,0x00,0x00,}}, {0x9AB9,2,{0xF3,0x66,0x00,0x00,}}, {0x9ABA,2,{0xF7,0xBF,0x00,0x00,}}, {0x9ABB,2,{0xF3,0x67,0x00,0x00,}}, {0x9ABC,2,{0xF7,0xC0,0x00,0x00,}}, {0x9ABD,2,{0xF3,0x68,0x00,0x00,}}, {0x9ABE,2,{0xF3,0x69,0x00,0x00,}}, {0x9ABF,2,{0xF3,0x6A,0x00,0x00,}}, {0x9AC0,2,{0xF7,0xC2,0x00,0x00,}}, {0x9AC1,2,{0xF7,0xC1,0x00,0x00,}}, {0x9AC2,2,{0xF7,0xC4,0x00,0x00,}}, {0x9AC3,2,{0xF3,0x6B,0x00,0x00,}}, {0x9AC4,2,{0xF3,0x6C,0x00,0x00,}}, {0x9AC5,2,{0xF7,0xC3,0x00,0x00,}}, {0x9AC6,2,{0xF3,0x6D,0x00,0x00,}}, {0x9AC7,2,{0xF3,0x6E,0x00,0x00,}}, {0x9AC8,2,{0xF3,0x6F,0x00,0x00,}}, {0x9AC9,2,{0xF3,0x70,0x00,0x00,}}, {0x9ACA,2,{0xF3,0x71,0x00,0x00,}}, {0x9ACB,2,{0xF7,0xC5,0x00,0x00,}}, {0x9ACC,2,{0xF7,0xC6,0x00,0x00,}}, {0x9ACD,2,{0xF3,0x72,0x00,0x00,}}, {0x9ACE,2,{0xF3,0x73,0x00,0x00,}}, {0x9ACF,2,{0xF3,0x74,0x00,0x00,}}, {0x9AD0,2,{0xF3,0x75,0x00,0x00,}}, {0x9AD1,2,{0xF7,0xC7,0x00,0x00,}}, {0x9AD2,2,{0xF3,0x76,0x00,0x00,}}, {0x9AD3,2,{0xCB,0xE8,0x00,0x00,}}, {0x9AD4,2,{0xF3,0x77,0x00,0x00,}}, {0x9AD5,2,{0xF3,0x78,0x00,0x00,}}, {0x9AD6,2,{0xF3,0x79,0x00,0x00,}}, {0x9AD7,2,{0xF3,0x7A,0x00,0x00,}}, {0x9AD8,2,{0xB8,0xDF,0x00,0x00,}}, {0x9AD9,2,{0xF3,0x7B,0x00,0x00,}}, {0x9ADA,2,{0xF3,0x7C,0x00,0x00,}}, {0x9ADB,2,{0xF3,0x7D,0x00,0x00,}}, {0x9ADC,2,{0xF3,0x7E,0x00,0x00,}}, {0x9ADD,2,{0xF3,0x80,0x00,0x00,}}, {0x9ADE,2,{0xF3,0x81,0x00,0x00,}}, {0x9ADF,2,{0xF7,0xD4,0x00,0x00,}}, {0x9AE0,2,{0xF3,0x82,0x00,0x00,}}, {0x9AE1,2,{0xF7,0xD5,0x00,0x00,}}, {0x9AE2,2,{0xF3,0x83,0x00,0x00,}}, {0x9AE3,2,{0xF3,0x84,0x00,0x00,}}, {0x9AE4,2,{0xF3,0x85,0x00,0x00,}}, {0x9AE5,2,{0xF3,0x86,0x00,0x00,}}, {0x9AE6,2,{0xF7,0xD6,0x00,0x00,}}, {0x9AE7,2,{0xF3,0x87,0x00,0x00,}}, {0x9AE8,2,{0xF3,0x88,0x00,0x00,}}, {0x9AE9,2,{0xF3,0x89,0x00,0x00,}}, {0x9AEA,2,{0xF3,0x8A,0x00,0x00,}}, {0x9AEB,2,{0xF7,0xD8,0x00,0x00,}}, {0x9AEC,2,{0xF3,0x8B,0x00,0x00,}}, {0x9AED,2,{0xF7,0xDA,0x00,0x00,}}, {0x9AEE,2,{0xF3,0x8C,0x00,0x00,}}, {0x9AEF,2,{0xF7,0xD7,0x00,0x00,}}, {0x9AF0,2,{0xF3,0x8D,0x00,0x00,}}, {0x9AF1,2,{0xF3,0x8E,0x00,0x00,}}, {0x9AF2,2,{0xF3,0x8F,0x00,0x00,}}, {0x9AF3,2,{0xF3,0x90,0x00,0x00,}}, {0x9AF4,2,{0xF3,0x91,0x00,0x00,}}, {0x9AF5,2,{0xF3,0x92,0x00,0x00,}}, {0x9AF6,2,{0xF3,0x93,0x00,0x00,}}, {0x9AF7,2,{0xF3,0x94,0x00,0x00,}}, {0x9AF8,2,{0xF3,0x95,0x00,0x00,}}, {0x9AF9,2,{0xF7,0xDB,0x00,0x00,}}, {0x9AFA,2,{0xF3,0x96,0x00,0x00,}}, {0x9AFB,2,{0xF7,0xD9,0x00,0x00,}}, {0x9AFC,2,{0xF3,0x97,0x00,0x00,}}, {0x9AFD,2,{0xF3,0x98,0x00,0x00,}}, {0x9AFE,2,{0xF3,0x99,0x00,0x00,}}, {0x9AFF,2,{0xF3,0x9A,0x00,0x00,}}, {0x9B00,2,{0xF3,0x9B,0x00,0x00,}}, {0x9B01,2,{0xF3,0x9C,0x00,0x00,}}, {0x9B02,2,{0xF3,0x9D,0x00,0x00,}}, {0x9B03,2,{0xD7,0xD7,0x00,0x00,}}, {0x9B04,2,{0xF3,0x9E,0x00,0x00,}}, {0x9B05,2,{0xF3,0x9F,0x00,0x00,}}, {0x9B06,2,{0xF3,0xA0,0x00,0x00,}}, {0x9B07,2,{0xF4,0x40,0x00,0x00,}}, {0x9B08,2,{0xF7,0xDC,0x00,0x00,}}, {0x9B09,2,{0xF4,0x41,0x00,0x00,}}, {0x9B0A,2,{0xF4,0x42,0x00,0x00,}}, {0x9B0B,2,{0xF4,0x43,0x00,0x00,}}, {0x9B0C,2,{0xF4,0x44,0x00,0x00,}}, {0x9B0D,2,{0xF4,0x45,0x00,0x00,}}, {0x9B0E,2,{0xF4,0x46,0x00,0x00,}}, {0x9B0F,2,{0xF7,0xDD,0x00,0x00,}}, {0x9B10,2,{0xF4,0x47,0x00,0x00,}}, {0x9B11,2,{0xF4,0x48,0x00,0x00,}}, {0x9B12,2,{0xF4,0x49,0x00,0x00,}}, {0x9B13,2,{0xF7,0xDE,0x00,0x00,}}, {0x9B14,2,{0xF4,0x4A,0x00,0x00,}}, {0x9B15,2,{0xF4,0x4B,0x00,0x00,}}, {0x9B16,2,{0xF4,0x4C,0x00,0x00,}}, {0x9B17,2,{0xF4,0x4D,0x00,0x00,}}, {0x9B18,2,{0xF4,0x4E,0x00,0x00,}}, {0x9B19,2,{0xF4,0x4F,0x00,0x00,}}, {0x9B1A,2,{0xF4,0x50,0x00,0x00,}}, {0x9B1B,2,{0xF4,0x51,0x00,0x00,}}, {0x9B1C,2,{0xF4,0x52,0x00,0x00,}}, {0x9B1D,2,{0xF4,0x53,0x00,0x00,}}, {0x9B1E,2,{0xF4,0x54,0x00,0x00,}}, {0x9B1F,2,{0xF7,0xDF,0x00,0x00,}}, {0x9B20,2,{0xF4,0x55,0x00,0x00,}}, {0x9B21,2,{0xF4,0x56,0x00,0x00,}}, {0x9B22,2,{0xF4,0x57,0x00,0x00,}}, {0x9B23,2,{0xF7,0xE0,0x00,0x00,}}, {0x9B24,2,{0xF4,0x58,0x00,0x00,}}, {0x9B25,2,{0xF4,0x59,0x00,0x00,}}, {0x9B26,2,{0xF4,0x5A,0x00,0x00,}}, {0x9B27,2,{0xF4,0x5B,0x00,0x00,}}, {0x9B28,2,{0xF4,0x5C,0x00,0x00,}}, {0x9B29,2,{0xF4,0x5D,0x00,0x00,}}, {0x9B2A,2,{0xF4,0x5E,0x00,0x00,}}, {0x9B2B,2,{0xF4,0x5F,0x00,0x00,}}, {0x9B2C,2,{0xF4,0x60,0x00,0x00,}}, {0x9B2D,2,{0xF4,0x61,0x00,0x00,}}, {0x9B2E,2,{0xF4,0x62,0x00,0x00,}}, {0x9B2F,2,{0xDB,0xCB,0x00,0x00,}}, {0x9B30,2,{0xF4,0x63,0x00,0x00,}}, {0x9B31,2,{0xF4,0x64,0x00,0x00,}}, {0x9B32,2,{0xD8,0xAA,0x00,0x00,}}, {0x9B33,2,{0xF4,0x65,0x00,0x00,}}, {0x9B34,2,{0xF4,0x66,0x00,0x00,}}, {0x9B35,2,{0xF4,0x67,0x00,0x00,}}, {0x9B36,2,{0xF4,0x68,0x00,0x00,}}, {0x9B37,2,{0xF4,0x69,0x00,0x00,}}, {0x9B38,2,{0xF4,0x6A,0x00,0x00,}}, {0x9B39,2,{0xF4,0x6B,0x00,0x00,}}, {0x9B3A,2,{0xF4,0x6C,0x00,0x00,}}, {0x9B3B,2,{0xE5,0xF7,0x00,0x00,}}, {0x9B3C,2,{0xB9,0xED,0x00,0x00,}}, {0x9B3D,2,{0xF4,0x6D,0x00,0x00,}}, {0x9B3E,2,{0xF4,0x6E,0x00,0x00,}}, {0x9B3F,2,{0xF4,0x6F,0x00,0x00,}}, {0x9B40,2,{0xF4,0x70,0x00,0x00,}}, {0x9B41,2,{0xBF,0xFD,0x00,0x00,}}, {0x9B42,2,{0xBB,0xEA,0x00,0x00,}}, {0x9B43,2,{0xF7,0xC9,0x00,0x00,}}, {0x9B44,2,{0xC6,0xC7,0x00,0x00,}}, {0x9B45,2,{0xF7,0xC8,0x00,0x00,}}, {0x9B46,2,{0xF4,0x71,0x00,0x00,}}, {0x9B47,2,{0xF7,0xCA,0x00,0x00,}}, {0x9B48,2,{0xF7,0xCC,0x00,0x00,}}, {0x9B49,2,{0xF7,0xCB,0x00,0x00,}}, {0x9B4A,2,{0xF4,0x72,0x00,0x00,}}, {0x9B4B,2,{0xF4,0x73,0x00,0x00,}}, {0x9B4C,2,{0xF4,0x74,0x00,0x00,}}, {0x9B4D,2,{0xF7,0xCD,0x00,0x00,}}, {0x9B4E,2,{0xF4,0x75,0x00,0x00,}}, {0x9B4F,2,{0xCE,0xBA,0x00,0x00,}}, {0x9B50,2,{0xF4,0x76,0x00,0x00,}}, {0x9B51,2,{0xF7,0xCE,0x00,0x00,}}, {0x9B52,2,{0xF4,0x77,0x00,0x00,}}, {0x9B53,2,{0xF4,0x78,0x00,0x00,}}, {0x9B54,2,{0xC4,0xA7,0x00,0x00,}}, {0x9B55,2,{0xF4,0x79,0x00,0x00,}}, {0x9B56,2,{0xF4,0x7A,0x00,0x00,}}, {0x9B57,2,{0xF4,0x7B,0x00,0x00,}}, {0x9B58,2,{0xF4,0x7C,0x00,0x00,}}, {0x9B59,2,{0xF4,0x7D,0x00,0x00,}}, {0x9B5A,2,{0xF4,0x7E,0x00,0x00,}}, {0x9B5B,2,{0xF4,0x80,0x00,0x00,}}, {0x9B5C,2,{0xF4,0x81,0x00,0x00,}}, {0x9B5D,2,{0xF4,0x82,0x00,0x00,}}, {0x9B5E,2,{0xF4,0x83,0x00,0x00,}}, {0x9B5F,2,{0xF4,0x84,0x00,0x00,}}, {0x9B60,2,{0xF4,0x85,0x00,0x00,}}, {0x9B61,2,{0xF4,0x86,0x00,0x00,}}, {0x9B62,2,{0xF4,0x87,0x00,0x00,}}, {0x9B63,2,{0xF4,0x88,0x00,0x00,}}, {0x9B64,2,{0xF4,0x89,0x00,0x00,}}, {0x9B65,2,{0xF4,0x8A,0x00,0x00,}}, {0x9B66,2,{0xF4,0x8B,0x00,0x00,}}, {0x9B67,2,{0xF4,0x8C,0x00,0x00,}}, {0x9B68,2,{0xF4,0x8D,0x00,0x00,}}, {0x9B69,2,{0xF4,0x8E,0x00,0x00,}}, {0x9B6A,2,{0xF4,0x8F,0x00,0x00,}}, {0x9B6B,2,{0xF4,0x90,0x00,0x00,}}, {0x9B6C,2,{0xF4,0x91,0x00,0x00,}}, {0x9B6D,2,{0xF4,0x92,0x00,0x00,}}, {0x9B6E,2,{0xF4,0x93,0x00,0x00,}}, {0x9B6F,2,{0xF4,0x94,0x00,0x00,}}, {0x9B70,2,{0xF4,0x95,0x00,0x00,}}, {0x9B71,2,{0xF4,0x96,0x00,0x00,}}, {0x9B72,2,{0xF4,0x97,0x00,0x00,}}, {0x9B73,2,{0xF4,0x98,0x00,0x00,}}, {0x9B74,2,{0xF4,0x99,0x00,0x00,}}, {0x9B75,2,{0xF4,0x9A,0x00,0x00,}}, {0x9B76,2,{0xF4,0x9B,0x00,0x00,}}, {0x9B77,2,{0xF4,0x9C,0x00,0x00,}}, {0x9B78,2,{0xF4,0x9D,0x00,0x00,}}, {0x9B79,2,{0xF4,0x9E,0x00,0x00,}}, {0x9B7A,2,{0xF4,0x9F,0x00,0x00,}}, {0x9B7B,2,{0xF4,0xA0,0x00,0x00,}}, {0x9B7C,2,{0xF5,0x40,0x00,0x00,}}, {0x9B7D,2,{0xF5,0x41,0x00,0x00,}}, {0x9B7E,2,{0xF5,0x42,0x00,0x00,}}, {0x9B7F,2,{0xF5,0x43,0x00,0x00,}}, {0x9B80,2,{0xF5,0x44,0x00,0x00,}}, {0x9B81,2,{0xF5,0x45,0x00,0x00,}}, {0x9B82,2,{0xF5,0x46,0x00,0x00,}}, {0x9B83,2,{0xF5,0x47,0x00,0x00,}}, {0x9B84,2,{0xF5,0x48,0x00,0x00,}}, {0x9B85,2,{0xF5,0x49,0x00,0x00,}}, {0x9B86,2,{0xF5,0x4A,0x00,0x00,}}, {0x9B87,2,{0xF5,0x4B,0x00,0x00,}}, {0x9B88,2,{0xF5,0x4C,0x00,0x00,}}, {0x9B89,2,{0xF5,0x4D,0x00,0x00,}}, {0x9B8A,2,{0xF5,0x4E,0x00,0x00,}}, {0x9B8B,2,{0xF5,0x4F,0x00,0x00,}}, {0x9B8C,2,{0xF5,0x50,0x00,0x00,}}, {0x9B8D,2,{0xF5,0x51,0x00,0x00,}}, {0x9B8E,2,{0xF5,0x52,0x00,0x00,}}, {0x9B8F,2,{0xF5,0x53,0x00,0x00,}}, {0x9B90,2,{0xF5,0x54,0x00,0x00,}}, {0x9B91,2,{0xF5,0x55,0x00,0x00,}}, {0x9B92,2,{0xF5,0x56,0x00,0x00,}}, {0x9B93,2,{0xF5,0x57,0x00,0x00,}}, {0x9B94,2,{0xF5,0x58,0x00,0x00,}}, {0x9B95,2,{0xF5,0x59,0x00,0x00,}}, {0x9B96,2,{0xF5,0x5A,0x00,0x00,}}, {0x9B97,2,{0xF5,0x5B,0x00,0x00,}}, {0x9B98,2,{0xF5,0x5C,0x00,0x00,}}, {0x9B99,2,{0xF5,0x5D,0x00,0x00,}}, {0x9B9A,2,{0xF5,0x5E,0x00,0x00,}}, {0x9B9B,2,{0xF5,0x5F,0x00,0x00,}}, {0x9B9C,2,{0xF5,0x60,0x00,0x00,}}, {0x9B9D,2,{0xF5,0x61,0x00,0x00,}}, {0x9B9E,2,{0xF5,0x62,0x00,0x00,}}, {0x9B9F,2,{0xF5,0x63,0x00,0x00,}}, {0x9BA0,2,{0xF5,0x64,0x00,0x00,}}, {0x9BA1,2,{0xF5,0x65,0x00,0x00,}}, {0x9BA2,2,{0xF5,0x66,0x00,0x00,}}, {0x9BA3,2,{0xF5,0x67,0x00,0x00,}}, {0x9BA4,2,{0xF5,0x68,0x00,0x00,}}, {0x9BA5,2,{0xF5,0x69,0x00,0x00,}}, {0x9BA6,2,{0xF5,0x6A,0x00,0x00,}}, {0x9BA7,2,{0xF5,0x6B,0x00,0x00,}}, {0x9BA8,2,{0xF5,0x6C,0x00,0x00,}}, {0x9BA9,2,{0xF5,0x6D,0x00,0x00,}}, {0x9BAA,2,{0xF5,0x6E,0x00,0x00,}}, {0x9BAB,2,{0xF5,0x6F,0x00,0x00,}}, {0x9BAC,2,{0xF5,0x70,0x00,0x00,}}, {0x9BAD,2,{0xF5,0x71,0x00,0x00,}}, {0x9BAE,2,{0xF5,0x72,0x00,0x00,}}, {0x9BAF,2,{0xF5,0x73,0x00,0x00,}}, {0x9BB0,2,{0xF5,0x74,0x00,0x00,}}, {0x9BB1,2,{0xF5,0x75,0x00,0x00,}}, {0x9BB2,2,{0xF5,0x76,0x00,0x00,}}, {0x9BB3,2,{0xF5,0x77,0x00,0x00,}}, {0x9BB4,2,{0xF5,0x78,0x00,0x00,}}, {0x9BB5,2,{0xF5,0x79,0x00,0x00,}}, {0x9BB6,2,{0xF5,0x7A,0x00,0x00,}}, {0x9BB7,2,{0xF5,0x7B,0x00,0x00,}}, {0x9BB8,2,{0xF5,0x7C,0x00,0x00,}}, {0x9BB9,2,{0xF5,0x7D,0x00,0x00,}}, {0x9BBA,2,{0xF5,0x7E,0x00,0x00,}}, {0x9BBB,2,{0xF5,0x80,0x00,0x00,}}, {0x9BBC,2,{0xF5,0x81,0x00,0x00,}}, {0x9BBD,2,{0xF5,0x82,0x00,0x00,}}, {0x9BBE,2,{0xF5,0x83,0x00,0x00,}}, {0x9BBF,2,{0xF5,0x84,0x00,0x00,}}, {0x9BC0,2,{0xF5,0x85,0x00,0x00,}}, {0x9BC1,2,{0xF5,0x86,0x00,0x00,}}, {0x9BC2,2,{0xF5,0x87,0x00,0x00,}}, {0x9BC3,2,{0xF5,0x88,0x00,0x00,}}, {0x9BC4,2,{0xF5,0x89,0x00,0x00,}}, {0x9BC5,2,{0xF5,0x8A,0x00,0x00,}}, {0x9BC6,2,{0xF5,0x8B,0x00,0x00,}}, {0x9BC7,2,{0xF5,0x8C,0x00,0x00,}}, {0x9BC8,2,{0xF5,0x8D,0x00,0x00,}}, {0x9BC9,2,{0xF5,0x8E,0x00,0x00,}}, {0x9BCA,2,{0xF5,0x8F,0x00,0x00,}}, {0x9BCB,2,{0xF5,0x90,0x00,0x00,}}, {0x9BCC,2,{0xF5,0x91,0x00,0x00,}}, {0x9BCD,2,{0xF5,0x92,0x00,0x00,}}, {0x9BCE,2,{0xF5,0x93,0x00,0x00,}}, {0x9BCF,2,{0xF5,0x94,0x00,0x00,}}, {0x9BD0,2,{0xF5,0x95,0x00,0x00,}}, {0x9BD1,2,{0xF5,0x96,0x00,0x00,}}, {0x9BD2,2,{0xF5,0x97,0x00,0x00,}}, {0x9BD3,2,{0xF5,0x98,0x00,0x00,}}, {0x9BD4,2,{0xF5,0x99,0x00,0x00,}}, {0x9BD5,2,{0xF5,0x9A,0x00,0x00,}}, {0x9BD6,2,{0xF5,0x9B,0x00,0x00,}}, {0x9BD7,2,{0xF5,0x9C,0x00,0x00,}}, {0x9BD8,2,{0xF5,0x9D,0x00,0x00,}}, {0x9BD9,2,{0xF5,0x9E,0x00,0x00,}}, {0x9BDA,2,{0xF5,0x9F,0x00,0x00,}}, {0x9BDB,2,{0xF5,0xA0,0x00,0x00,}}, {0x9BDC,2,{0xF6,0x40,0x00,0x00,}}, {0x9BDD,2,{0xF6,0x41,0x00,0x00,}}, {0x9BDE,2,{0xF6,0x42,0x00,0x00,}}, {0x9BDF,2,{0xF6,0x43,0x00,0x00,}}, {0x9BE0,2,{0xF6,0x44,0x00,0x00,}}, {0x9BE1,2,{0xF6,0x45,0x00,0x00,}}, {0x9BE2,2,{0xF6,0x46,0x00,0x00,}}, {0x9BE3,2,{0xF6,0x47,0x00,0x00,}}, {0x9BE4,2,{0xF6,0x48,0x00,0x00,}}, {0x9BE5,2,{0xF6,0x49,0x00,0x00,}}, {0x9BE6,2,{0xF6,0x4A,0x00,0x00,}}, {0x9BE7,2,{0xF6,0x4B,0x00,0x00,}}, {0x9BE8,2,{0xF6,0x4C,0x00,0x00,}}, {0x9BE9,2,{0xF6,0x4D,0x00,0x00,}}, {0x9BEA,2,{0xF6,0x4E,0x00,0x00,}}, {0x9BEB,2,{0xF6,0x4F,0x00,0x00,}}, {0x9BEC,2,{0xF6,0x50,0x00,0x00,}}, {0x9BED,2,{0xF6,0x51,0x00,0x00,}}, {0x9BEE,2,{0xF6,0x52,0x00,0x00,}}, {0x9BEF,2,{0xF6,0x53,0x00,0x00,}}, {0x9BF0,2,{0xF6,0x54,0x00,0x00,}}, {0x9BF1,2,{0xF6,0x55,0x00,0x00,}}, {0x9BF2,2,{0xF6,0x56,0x00,0x00,}}, {0x9BF3,2,{0xF6,0x57,0x00,0x00,}}, {0x9BF4,2,{0xF6,0x58,0x00,0x00,}}, {0x9BF5,2,{0xF6,0x59,0x00,0x00,}}, {0x9BF6,2,{0xF6,0x5A,0x00,0x00,}}, {0x9BF7,2,{0xF6,0x5B,0x00,0x00,}}, {0x9BF8,2,{0xF6,0x5C,0x00,0x00,}}, {0x9BF9,2,{0xF6,0x5D,0x00,0x00,}}, {0x9BFA,2,{0xF6,0x5E,0x00,0x00,}}, {0x9BFB,2,{0xF6,0x5F,0x00,0x00,}}, {0x9BFC,2,{0xF6,0x60,0x00,0x00,}}, {0x9BFD,2,{0xF6,0x61,0x00,0x00,}}, {0x9BFE,2,{0xF6,0x62,0x00,0x00,}}, {0x9BFF,2,{0xF6,0x63,0x00,0x00,}}, {0x9C00,2,{0xF6,0x64,0x00,0x00,}}, {0x9C01,2,{0xF6,0x65,0x00,0x00,}}, {0x9C02,2,{0xF6,0x66,0x00,0x00,}}, {0x9C03,2,{0xF6,0x67,0x00,0x00,}}, {0x9C04,2,{0xF6,0x68,0x00,0x00,}}, {0x9C05,2,{0xF6,0x69,0x00,0x00,}}, {0x9C06,2,{0xF6,0x6A,0x00,0x00,}}, {0x9C07,2,{0xF6,0x6B,0x00,0x00,}}, {0x9C08,2,{0xF6,0x6C,0x00,0x00,}}, {0x9C09,2,{0xF6,0x6D,0x00,0x00,}}, {0x9C0A,2,{0xF6,0x6E,0x00,0x00,}}, {0x9C0B,2,{0xF6,0x6F,0x00,0x00,}}, {0x9C0C,2,{0xF6,0x70,0x00,0x00,}}, {0x9C0D,2,{0xF6,0x71,0x00,0x00,}}, {0x9C0E,2,{0xF6,0x72,0x00,0x00,}}, {0x9C0F,2,{0xF6,0x73,0x00,0x00,}}, {0x9C10,2,{0xF6,0x74,0x00,0x00,}}, {0x9C11,2,{0xF6,0x75,0x00,0x00,}}, {0x9C12,2,{0xF6,0x76,0x00,0x00,}}, {0x9C13,2,{0xF6,0x77,0x00,0x00,}}, {0x9C14,2,{0xF6,0x78,0x00,0x00,}}, {0x9C15,2,{0xF6,0x79,0x00,0x00,}}, {0x9C16,2,{0xF6,0x7A,0x00,0x00,}}, {0x9C17,2,{0xF6,0x7B,0x00,0x00,}}, {0x9C18,2,{0xF6,0x7C,0x00,0x00,}}, {0x9C19,2,{0xF6,0x7D,0x00,0x00,}}, {0x9C1A,2,{0xF6,0x7E,0x00,0x00,}}, {0x9C1B,2,{0xF6,0x80,0x00,0x00,}}, {0x9C1C,2,{0xF6,0x81,0x00,0x00,}}, {0x9C1D,2,{0xF6,0x82,0x00,0x00,}}, {0x9C1E,2,{0xF6,0x83,0x00,0x00,}}, {0x9C1F,2,{0xF6,0x84,0x00,0x00,}}, {0x9C20,2,{0xF6,0x85,0x00,0x00,}}, {0x9C21,2,{0xF6,0x86,0x00,0x00,}}, {0x9C22,2,{0xF6,0x87,0x00,0x00,}}, {0x9C23,2,{0xF6,0x88,0x00,0x00,}}, {0x9C24,2,{0xF6,0x89,0x00,0x00,}}, {0x9C25,2,{0xF6,0x8A,0x00,0x00,}}, {0x9C26,2,{0xF6,0x8B,0x00,0x00,}}, {0x9C27,2,{0xF6,0x8C,0x00,0x00,}}, {0x9C28,2,{0xF6,0x8D,0x00,0x00,}}, {0x9C29,2,{0xF6,0x8E,0x00,0x00,}}, {0x9C2A,2,{0xF6,0x8F,0x00,0x00,}}, {0x9C2B,2,{0xF6,0x90,0x00,0x00,}}, {0x9C2C,2,{0xF6,0x91,0x00,0x00,}}, {0x9C2D,2,{0xF6,0x92,0x00,0x00,}}, {0x9C2E,2,{0xF6,0x93,0x00,0x00,}}, {0x9C2F,2,{0xF6,0x94,0x00,0x00,}}, {0x9C30,2,{0xF6,0x95,0x00,0x00,}}, {0x9C31,2,{0xF6,0x96,0x00,0x00,}}, {0x9C32,2,{0xF6,0x97,0x00,0x00,}}, {0x9C33,2,{0xF6,0x98,0x00,0x00,}}, {0x9C34,2,{0xF6,0x99,0x00,0x00,}}, {0x9C35,2,{0xF6,0x9A,0x00,0x00,}}, {0x9C36,2,{0xF6,0x9B,0x00,0x00,}}, {0x9C37,2,{0xF6,0x9C,0x00,0x00,}}, {0x9C38,2,{0xF6,0x9D,0x00,0x00,}}, {0x9C39,2,{0xF6,0x9E,0x00,0x00,}}, {0x9C3A,2,{0xF6,0x9F,0x00,0x00,}}, {0x9C3B,2,{0xF6,0xA0,0x00,0x00,}}, {0x9C3C,2,{0xF7,0x40,0x00,0x00,}}, {0x9C3D,2,{0xF7,0x41,0x00,0x00,}}, {0x9C3E,2,{0xF7,0x42,0x00,0x00,}}, {0x9C3F,2,{0xF7,0x43,0x00,0x00,}}, {0x9C40,2,{0xF7,0x44,0x00,0x00,}}, {0x9C41,2,{0xF7,0x45,0x00,0x00,}}, {0x9C42,2,{0xF7,0x46,0x00,0x00,}}, {0x9C43,2,{0xF7,0x47,0x00,0x00,}}, {0x9C44,2,{0xF7,0x48,0x00,0x00,}}, {0x9C45,2,{0xF7,0x49,0x00,0x00,}}, {0x9C46,2,{0xF7,0x4A,0x00,0x00,}}, {0x9C47,2,{0xF7,0x4B,0x00,0x00,}}, {0x9C48,2,{0xF7,0x4C,0x00,0x00,}}, {0x9C49,2,{0xF7,0x4D,0x00,0x00,}}, {0x9C4A,2,{0xF7,0x4E,0x00,0x00,}}, {0x9C4B,2,{0xF7,0x4F,0x00,0x00,}}, {0x9C4C,2,{0xF7,0x50,0x00,0x00,}}, {0x9C4D,2,{0xF7,0x51,0x00,0x00,}}, {0x9C4E,2,{0xF7,0x52,0x00,0x00,}}, {0x9C4F,2,{0xF7,0x53,0x00,0x00,}}, {0x9C50,2,{0xF7,0x54,0x00,0x00,}}, {0x9C51,2,{0xF7,0x55,0x00,0x00,}}, {0x9C52,2,{0xF7,0x56,0x00,0x00,}}, {0x9C53,2,{0xF7,0x57,0x00,0x00,}}, {0x9C54,2,{0xF7,0x58,0x00,0x00,}}, {0x9C55,2,{0xF7,0x59,0x00,0x00,}}, {0x9C56,2,{0xF7,0x5A,0x00,0x00,}}, {0x9C57,2,{0xF7,0x5B,0x00,0x00,}}, {0x9C58,2,{0xF7,0x5C,0x00,0x00,}}, {0x9C59,2,{0xF7,0x5D,0x00,0x00,}}, {0x9C5A,2,{0xF7,0x5E,0x00,0x00,}}, {0x9C5B,2,{0xF7,0x5F,0x00,0x00,}}, {0x9C5C,2,{0xF7,0x60,0x00,0x00,}}, {0x9C5D,2,{0xF7,0x61,0x00,0x00,}}, {0x9C5E,2,{0xF7,0x62,0x00,0x00,}}, {0x9C5F,2,{0xF7,0x63,0x00,0x00,}}, {0x9C60,2,{0xF7,0x64,0x00,0x00,}}, {0x9C61,2,{0xF7,0x65,0x00,0x00,}}, {0x9C62,2,{0xF7,0x66,0x00,0x00,}}, {0x9C63,2,{0xF7,0x67,0x00,0x00,}}, {0x9C64,2,{0xF7,0x68,0x00,0x00,}}, {0x9C65,2,{0xF7,0x69,0x00,0x00,}}, {0x9C66,2,{0xF7,0x6A,0x00,0x00,}}, {0x9C67,2,{0xF7,0x6B,0x00,0x00,}}, {0x9C68,2,{0xF7,0x6C,0x00,0x00,}}, {0x9C69,2,{0xF7,0x6D,0x00,0x00,}}, {0x9C6A,2,{0xF7,0x6E,0x00,0x00,}}, {0x9C6B,2,{0xF7,0x6F,0x00,0x00,}}, {0x9C6C,2,{0xF7,0x70,0x00,0x00,}}, {0x9C6D,2,{0xF7,0x71,0x00,0x00,}}, {0x9C6E,2,{0xF7,0x72,0x00,0x00,}}, {0x9C6F,2,{0xF7,0x73,0x00,0x00,}}, {0x9C70,2,{0xF7,0x74,0x00,0x00,}}, {0x9C71,2,{0xF7,0x75,0x00,0x00,}}, {0x9C72,2,{0xF7,0x76,0x00,0x00,}}, {0x9C73,2,{0xF7,0x77,0x00,0x00,}}, {0x9C74,2,{0xF7,0x78,0x00,0x00,}}, {0x9C75,2,{0xF7,0x79,0x00,0x00,}}, {0x9C76,2,{0xF7,0x7A,0x00,0x00,}}, {0x9C77,2,{0xF7,0x7B,0x00,0x00,}}, {0x9C78,2,{0xF7,0x7C,0x00,0x00,}}, {0x9C79,2,{0xF7,0x7D,0x00,0x00,}}, {0x9C7A,2,{0xF7,0x7E,0x00,0x00,}}, {0x9C7B,2,{0xF7,0x80,0x00,0x00,}}, {0x9C7C,2,{0xD3,0xE3,0x00,0x00,}}, {0x9C7D,2,{0xF7,0x81,0x00,0x00,}}, {0x9C7E,2,{0xF7,0x82,0x00,0x00,}}, {0x9C7F,2,{0xF6,0xCF,0x00,0x00,}}, {0x9C80,2,{0xF7,0x83,0x00,0x00,}}, {0x9C81,2,{0xC2,0xB3,0x00,0x00,}}, {0x9C82,2,{0xF6,0xD0,0x00,0x00,}}, {0x9C83,2,{0xF7,0x84,0x00,0x00,}}, {0x9C84,2,{0xF7,0x85,0x00,0x00,}}, {0x9C85,2,{0xF6,0xD1,0x00,0x00,}}, {0x9C86,2,{0xF6,0xD2,0x00,0x00,}}, {0x9C87,2,{0xF6,0xD3,0x00,0x00,}}, {0x9C88,2,{0xF6,0xD4,0x00,0x00,}}, {0x9C89,2,{0xF7,0x86,0x00,0x00,}}, {0x9C8A,2,{0xF7,0x87,0x00,0x00,}}, {0x9C8B,2,{0xF6,0xD6,0x00,0x00,}}, {0x9C8C,2,{0xF7,0x88,0x00,0x00,}}, {0x9C8D,2,{0xB1,0xAB,0x00,0x00,}}, {0x9C8E,2,{0xF6,0xD7,0x00,0x00,}}, {0x9C8F,2,{0xF7,0x89,0x00,0x00,}}, {0x9C90,2,{0xF6,0xD8,0x00,0x00,}}, {0x9C91,2,{0xF6,0xD9,0x00,0x00,}}, {0x9C92,2,{0xF6,0xDA,0x00,0x00,}}, {0x9C93,2,{0xF7,0x8A,0x00,0x00,}}, {0x9C94,2,{0xF6,0xDB,0x00,0x00,}}, {0x9C95,2,{0xF6,0xDC,0x00,0x00,}}, {0x9C96,2,{0xF7,0x8B,0x00,0x00,}}, {0x9C97,2,{0xF7,0x8C,0x00,0x00,}}, {0x9C98,2,{0xF7,0x8D,0x00,0x00,}}, {0x9C99,2,{0xF7,0x8E,0x00,0x00,}}, {0x9C9A,2,{0xF6,0xDD,0x00,0x00,}}, {0x9C9B,2,{0xF6,0xDE,0x00,0x00,}}, {0x9C9C,2,{0xCF,0xCA,0x00,0x00,}}, {0x9C9D,2,{0xF7,0x8F,0x00,0x00,}}, {0x9C9E,2,{0xF6,0xDF,0x00,0x00,}}, {0x9C9F,2,{0xF6,0xE0,0x00,0x00,}}, {0x9CA0,2,{0xF6,0xE1,0x00,0x00,}}, {0x9CA1,2,{0xF6,0xE2,0x00,0x00,}}, {0x9CA2,2,{0xF6,0xE3,0x00,0x00,}}, {0x9CA3,2,{0xF6,0xE4,0x00,0x00,}}, {0x9CA4,2,{0xC0,0xF0,0x00,0x00,}}, {0x9CA5,2,{0xF6,0xE5,0x00,0x00,}}, {0x9CA6,2,{0xF6,0xE6,0x00,0x00,}}, {0x9CA7,2,{0xF6,0xE7,0x00,0x00,}}, {0x9CA8,2,{0xF6,0xE8,0x00,0x00,}}, {0x9CA9,2,{0xF6,0xE9,0x00,0x00,}}, {0x9CAA,2,{0xF7,0x90,0x00,0x00,}}, {0x9CAB,2,{0xF6,0xEA,0x00,0x00,}}, {0x9CAC,2,{0xF7,0x91,0x00,0x00,}}, {0x9CAD,2,{0xF6,0xEB,0x00,0x00,}}, {0x9CAE,2,{0xF6,0xEC,0x00,0x00,}}, {0x9CAF,2,{0xF7,0x92,0x00,0x00,}}, {0x9CB0,2,{0xF6,0xED,0x00,0x00,}}, {0x9CB1,2,{0xF6,0xEE,0x00,0x00,}}, {0x9CB2,2,{0xF6,0xEF,0x00,0x00,}}, {0x9CB3,2,{0xF6,0xF0,0x00,0x00,}}, {0x9CB4,2,{0xF6,0xF1,0x00,0x00,}}, {0x9CB5,2,{0xF6,0xF2,0x00,0x00,}}, {0x9CB6,2,{0xF6,0xF3,0x00,0x00,}}, {0x9CB7,2,{0xF6,0xF4,0x00,0x00,}}, {0x9CB8,2,{0xBE,0xA8,0x00,0x00,}}, {0x9CB9,2,{0xF7,0x93,0x00,0x00,}}, {0x9CBA,2,{0xF6,0xF5,0x00,0x00,}}, {0x9CBB,2,{0xF6,0xF6,0x00,0x00,}}, {0x9CBC,2,{0xF6,0xF7,0x00,0x00,}}, {0x9CBD,2,{0xF6,0xF8,0x00,0x00,}}, {0x9CBE,2,{0xF7,0x94,0x00,0x00,}}, {0x9CBF,2,{0xF7,0x95,0x00,0x00,}}, {0x9CC0,2,{0xF7,0x96,0x00,0x00,}}, {0x9CC1,2,{0xF7,0x97,0x00,0x00,}}, {0x9CC2,2,{0xF7,0x98,0x00,0x00,}}, {0x9CC3,2,{0xC8,0xFA,0x00,0x00,}}, {0x9CC4,2,{0xF6,0xF9,0x00,0x00,}}, {0x9CC5,2,{0xF6,0xFA,0x00,0x00,}}, {0x9CC6,2,{0xF6,0xFB,0x00,0x00,}}, {0x9CC7,2,{0xF6,0xFC,0x00,0x00,}}, {0x9CC8,2,{0xF7,0x99,0x00,0x00,}}, {0x9CC9,2,{0xF7,0x9A,0x00,0x00,}}, {0x9CCA,2,{0xF6,0xFD,0x00,0x00,}}, {0x9CCB,2,{0xF6,0xFE,0x00,0x00,}}, {0x9CCC,2,{0xF7,0xA1,0x00,0x00,}}, {0x9CCD,2,{0xF7,0xA2,0x00,0x00,}}, {0x9CCE,2,{0xF7,0xA3,0x00,0x00,}}, {0x9CCF,2,{0xF7,0xA4,0x00,0x00,}}, {0x9CD0,2,{0xF7,0xA5,0x00,0x00,}}, {0x9CD1,2,{0xF7,0x9B,0x00,0x00,}}, {0x9CD2,2,{0xF7,0x9C,0x00,0x00,}}, {0x9CD3,2,{0xF7,0xA6,0x00,0x00,}}, {0x9CD4,2,{0xF7,0xA7,0x00,0x00,}}, {0x9CD5,2,{0xF7,0xA8,0x00,0x00,}}, {0x9CD6,2,{0xB1,0xEE,0x00,0x00,}}, {0x9CD7,2,{0xF7,0xA9,0x00,0x00,}}, {0x9CD8,2,{0xF7,0xAA,0x00,0x00,}}, {0x9CD9,2,{0xF7,0xAB,0x00,0x00,}}, {0x9CDA,2,{0xF7,0x9D,0x00,0x00,}}, {0x9CDB,2,{0xF7,0x9E,0x00,0x00,}}, {0x9CDC,2,{0xF7,0xAC,0x00,0x00,}}, {0x9CDD,2,{0xF7,0xAD,0x00,0x00,}}, {0x9CDE,2,{0xC1,0xDB,0x00,0x00,}}, {0x9CDF,2,{0xF7,0xAE,0x00,0x00,}}, {0x9CE0,2,{0xF7,0x9F,0x00,0x00,}}, {0x9CE1,2,{0xF7,0xA0,0x00,0x00,}}, {0x9CE2,2,{0xF7,0xAF,0x00,0x00,}}, {0x9CE3,2,{0xF8,0x40,0x00,0x00,}}, {0x9CE4,2,{0xF8,0x41,0x00,0x00,}}, {0x9CE5,2,{0xF8,0x42,0x00,0x00,}}, {0x9CE6,2,{0xF8,0x43,0x00,0x00,}}, {0x9CE7,2,{0xF8,0x44,0x00,0x00,}}, {0x9CE8,2,{0xF8,0x45,0x00,0x00,}}, {0x9CE9,2,{0xF8,0x46,0x00,0x00,}}, {0x9CEA,2,{0xF8,0x47,0x00,0x00,}}, {0x9CEB,2,{0xF8,0x48,0x00,0x00,}}, {0x9CEC,2,{0xF8,0x49,0x00,0x00,}}, {0x9CED,2,{0xF8,0x4A,0x00,0x00,}}, {0x9CEE,2,{0xF8,0x4B,0x00,0x00,}}, {0x9CEF,2,{0xF8,0x4C,0x00,0x00,}}, {0x9CF0,2,{0xF8,0x4D,0x00,0x00,}}, {0x9CF1,2,{0xF8,0x4E,0x00,0x00,}}, {0x9CF2,2,{0xF8,0x4F,0x00,0x00,}}, {0x9CF3,2,{0xF8,0x50,0x00,0x00,}}, {0x9CF4,2,{0xF8,0x51,0x00,0x00,}}, {0x9CF5,2,{0xF8,0x52,0x00,0x00,}}, {0x9CF6,2,{0xF8,0x53,0x00,0x00,}}, {0x9CF7,2,{0xF8,0x54,0x00,0x00,}}, {0x9CF8,2,{0xF8,0x55,0x00,0x00,}}, {0x9CF9,2,{0xF8,0x56,0x00,0x00,}}, {0x9CFA,2,{0xF8,0x57,0x00,0x00,}}, {0x9CFB,2,{0xF8,0x58,0x00,0x00,}}, {0x9CFC,2,{0xF8,0x59,0x00,0x00,}}, {0x9CFD,2,{0xF8,0x5A,0x00,0x00,}}, {0x9CFE,2,{0xF8,0x5B,0x00,0x00,}}, {0x9CFF,2,{0xF8,0x5C,0x00,0x00,}}, {0x9D00,2,{0xF8,0x5D,0x00,0x00,}}, {0x9D01,2,{0xF8,0x5E,0x00,0x00,}}, {0x9D02,2,{0xF8,0x5F,0x00,0x00,}}, {0x9D03,2,{0xF8,0x60,0x00,0x00,}}, {0x9D04,2,{0xF8,0x61,0x00,0x00,}}, {0x9D05,2,{0xF8,0x62,0x00,0x00,}}, {0x9D06,2,{0xF8,0x63,0x00,0x00,}}, {0x9D07,2,{0xF8,0x64,0x00,0x00,}}, {0x9D08,2,{0xF8,0x65,0x00,0x00,}}, {0x9D09,2,{0xF8,0x66,0x00,0x00,}}, {0x9D0A,2,{0xF8,0x67,0x00,0x00,}}, {0x9D0B,2,{0xF8,0x68,0x00,0x00,}}, {0x9D0C,2,{0xF8,0x69,0x00,0x00,}}, {0x9D0D,2,{0xF8,0x6A,0x00,0x00,}}, {0x9D0E,2,{0xF8,0x6B,0x00,0x00,}}, {0x9D0F,2,{0xF8,0x6C,0x00,0x00,}}, {0x9D10,2,{0xF8,0x6D,0x00,0x00,}}, {0x9D11,2,{0xF8,0x6E,0x00,0x00,}}, {0x9D12,2,{0xF8,0x6F,0x00,0x00,}}, {0x9D13,2,{0xF8,0x70,0x00,0x00,}}, {0x9D14,2,{0xF8,0x71,0x00,0x00,}}, {0x9D15,2,{0xF8,0x72,0x00,0x00,}}, {0x9D16,2,{0xF8,0x73,0x00,0x00,}}, {0x9D17,2,{0xF8,0x74,0x00,0x00,}}, {0x9D18,2,{0xF8,0x75,0x00,0x00,}}, {0x9D19,2,{0xF8,0x76,0x00,0x00,}}, {0x9D1A,2,{0xF8,0x77,0x00,0x00,}}, {0x9D1B,2,{0xF8,0x78,0x00,0x00,}}, {0x9D1C,2,{0xF8,0x79,0x00,0x00,}}, {0x9D1D,2,{0xF8,0x7A,0x00,0x00,}}, {0x9D1E,2,{0xF8,0x7B,0x00,0x00,}}, {0x9D1F,2,{0xF8,0x7C,0x00,0x00,}}, {0x9D20,2,{0xF8,0x7D,0x00,0x00,}}, {0x9D21,2,{0xF8,0x7E,0x00,0x00,}}, {0x9D22,2,{0xF8,0x80,0x00,0x00,}}, {0x9D23,2,{0xF8,0x81,0x00,0x00,}}, {0x9D24,2,{0xF8,0x82,0x00,0x00,}}, {0x9D25,2,{0xF8,0x83,0x00,0x00,}}, {0x9D26,2,{0xF8,0x84,0x00,0x00,}}, {0x9D27,2,{0xF8,0x85,0x00,0x00,}}, {0x9D28,2,{0xF8,0x86,0x00,0x00,}}, {0x9D29,2,{0xF8,0x87,0x00,0x00,}}, {0x9D2A,2,{0xF8,0x88,0x00,0x00,}}, {0x9D2B,2,{0xF8,0x89,0x00,0x00,}}, {0x9D2C,2,{0xF8,0x8A,0x00,0x00,}}, {0x9D2D,2,{0xF8,0x8B,0x00,0x00,}}, {0x9D2E,2,{0xF8,0x8C,0x00,0x00,}}, {0x9D2F,2,{0xF8,0x8D,0x00,0x00,}}, {0x9D30,2,{0xF8,0x8E,0x00,0x00,}}, {0x9D31,2,{0xF8,0x8F,0x00,0x00,}}, {0x9D32,2,{0xF8,0x90,0x00,0x00,}}, {0x9D33,2,{0xF8,0x91,0x00,0x00,}}, {0x9D34,2,{0xF8,0x92,0x00,0x00,}}, {0x9D35,2,{0xF8,0x93,0x00,0x00,}}, {0x9D36,2,{0xF8,0x94,0x00,0x00,}}, {0x9D37,2,{0xF8,0x95,0x00,0x00,}}, {0x9D38,2,{0xF8,0x96,0x00,0x00,}}, {0x9D39,2,{0xF8,0x97,0x00,0x00,}}, {0x9D3A,2,{0xF8,0x98,0x00,0x00,}}, {0x9D3B,2,{0xF8,0x99,0x00,0x00,}}, {0x9D3C,2,{0xF8,0x9A,0x00,0x00,}}, {0x9D3D,2,{0xF8,0x9B,0x00,0x00,}}, {0x9D3E,2,{0xF8,0x9C,0x00,0x00,}}, {0x9D3F,2,{0xF8,0x9D,0x00,0x00,}}, {0x9D40,2,{0xF8,0x9E,0x00,0x00,}}, {0x9D41,2,{0xF8,0x9F,0x00,0x00,}}, {0x9D42,2,{0xF8,0xA0,0x00,0x00,}}, {0x9D43,2,{0xF9,0x40,0x00,0x00,}}, {0x9D44,2,{0xF9,0x41,0x00,0x00,}}, {0x9D45,2,{0xF9,0x42,0x00,0x00,}}, {0x9D46,2,{0xF9,0x43,0x00,0x00,}}, {0x9D47,2,{0xF9,0x44,0x00,0x00,}}, {0x9D48,2,{0xF9,0x45,0x00,0x00,}}, {0x9D49,2,{0xF9,0x46,0x00,0x00,}}, {0x9D4A,2,{0xF9,0x47,0x00,0x00,}}, {0x9D4B,2,{0xF9,0x48,0x00,0x00,}}, {0x9D4C,2,{0xF9,0x49,0x00,0x00,}}, {0x9D4D,2,{0xF9,0x4A,0x00,0x00,}}, {0x9D4E,2,{0xF9,0x4B,0x00,0x00,}}, {0x9D4F,2,{0xF9,0x4C,0x00,0x00,}}, {0x9D50,2,{0xF9,0x4D,0x00,0x00,}}, {0x9D51,2,{0xF9,0x4E,0x00,0x00,}}, {0x9D52,2,{0xF9,0x4F,0x00,0x00,}}, {0x9D53,2,{0xF9,0x50,0x00,0x00,}}, {0x9D54,2,{0xF9,0x51,0x00,0x00,}}, {0x9D55,2,{0xF9,0x52,0x00,0x00,}}, {0x9D56,2,{0xF9,0x53,0x00,0x00,}}, {0x9D57,2,{0xF9,0x54,0x00,0x00,}}, {0x9D58,2,{0xF9,0x55,0x00,0x00,}}, {0x9D59,2,{0xF9,0x56,0x00,0x00,}}, {0x9D5A,2,{0xF9,0x57,0x00,0x00,}}, {0x9D5B,2,{0xF9,0x58,0x00,0x00,}}, {0x9D5C,2,{0xF9,0x59,0x00,0x00,}}, {0x9D5D,2,{0xF9,0x5A,0x00,0x00,}}, {0x9D5E,2,{0xF9,0x5B,0x00,0x00,}}, {0x9D5F,2,{0xF9,0x5C,0x00,0x00,}}, {0x9D60,2,{0xF9,0x5D,0x00,0x00,}}, {0x9D61,2,{0xF9,0x5E,0x00,0x00,}}, {0x9D62,2,{0xF9,0x5F,0x00,0x00,}}, {0x9D63,2,{0xF9,0x60,0x00,0x00,}}, {0x9D64,2,{0xF9,0x61,0x00,0x00,}}, {0x9D65,2,{0xF9,0x62,0x00,0x00,}}, {0x9D66,2,{0xF9,0x63,0x00,0x00,}}, {0x9D67,2,{0xF9,0x64,0x00,0x00,}}, {0x9D68,2,{0xF9,0x65,0x00,0x00,}}, {0x9D69,2,{0xF9,0x66,0x00,0x00,}}, {0x9D6A,2,{0xF9,0x67,0x00,0x00,}}, {0x9D6B,2,{0xF9,0x68,0x00,0x00,}}, {0x9D6C,2,{0xF9,0x69,0x00,0x00,}}, {0x9D6D,2,{0xF9,0x6A,0x00,0x00,}}, {0x9D6E,2,{0xF9,0x6B,0x00,0x00,}}, {0x9D6F,2,{0xF9,0x6C,0x00,0x00,}}, {0x9D70,2,{0xF9,0x6D,0x00,0x00,}}, {0x9D71,2,{0xF9,0x6E,0x00,0x00,}}, {0x9D72,2,{0xF9,0x6F,0x00,0x00,}}, {0x9D73,2,{0xF9,0x70,0x00,0x00,}}, {0x9D74,2,{0xF9,0x71,0x00,0x00,}}, {0x9D75,2,{0xF9,0x72,0x00,0x00,}}, {0x9D76,2,{0xF9,0x73,0x00,0x00,}}, {0x9D77,2,{0xF9,0x74,0x00,0x00,}}, {0x9D78,2,{0xF9,0x75,0x00,0x00,}}, {0x9D79,2,{0xF9,0x76,0x00,0x00,}}, {0x9D7A,2,{0xF9,0x77,0x00,0x00,}}, {0x9D7B,2,{0xF9,0x78,0x00,0x00,}}, {0x9D7C,2,{0xF9,0x79,0x00,0x00,}}, {0x9D7D,2,{0xF9,0x7A,0x00,0x00,}}, {0x9D7E,2,{0xF9,0x7B,0x00,0x00,}}, {0x9D7F,2,{0xF9,0x7C,0x00,0x00,}}, {0x9D80,2,{0xF9,0x7D,0x00,0x00,}}, {0x9D81,2,{0xF9,0x7E,0x00,0x00,}}, {0x9D82,2,{0xF9,0x80,0x00,0x00,}}, {0x9D83,2,{0xF9,0x81,0x00,0x00,}}, {0x9D84,2,{0xF9,0x82,0x00,0x00,}}, {0x9D85,2,{0xF9,0x83,0x00,0x00,}}, {0x9D86,2,{0xF9,0x84,0x00,0x00,}}, {0x9D87,2,{0xF9,0x85,0x00,0x00,}}, {0x9D88,2,{0xF9,0x86,0x00,0x00,}}, {0x9D89,2,{0xF9,0x87,0x00,0x00,}}, {0x9D8A,2,{0xF9,0x88,0x00,0x00,}}, {0x9D8B,2,{0xF9,0x89,0x00,0x00,}}, {0x9D8C,2,{0xF9,0x8A,0x00,0x00,}}, {0x9D8D,2,{0xF9,0x8B,0x00,0x00,}}, {0x9D8E,2,{0xF9,0x8C,0x00,0x00,}}, {0x9D8F,2,{0xF9,0x8D,0x00,0x00,}}, {0x9D90,2,{0xF9,0x8E,0x00,0x00,}}, {0x9D91,2,{0xF9,0x8F,0x00,0x00,}}, {0x9D92,2,{0xF9,0x90,0x00,0x00,}}, {0x9D93,2,{0xF9,0x91,0x00,0x00,}}, {0x9D94,2,{0xF9,0x92,0x00,0x00,}}, {0x9D95,2,{0xF9,0x93,0x00,0x00,}}, {0x9D96,2,{0xF9,0x94,0x00,0x00,}}, {0x9D97,2,{0xF9,0x95,0x00,0x00,}}, {0x9D98,2,{0xF9,0x96,0x00,0x00,}}, {0x9D99,2,{0xF9,0x97,0x00,0x00,}}, {0x9D9A,2,{0xF9,0x98,0x00,0x00,}}, {0x9D9B,2,{0xF9,0x99,0x00,0x00,}}, {0x9D9C,2,{0xF9,0x9A,0x00,0x00,}}, {0x9D9D,2,{0xF9,0x9B,0x00,0x00,}}, {0x9D9E,2,{0xF9,0x9C,0x00,0x00,}}, {0x9D9F,2,{0xF9,0x9D,0x00,0x00,}}, {0x9DA0,2,{0xF9,0x9E,0x00,0x00,}}, {0x9DA1,2,{0xF9,0x9F,0x00,0x00,}}, {0x9DA2,2,{0xF9,0xA0,0x00,0x00,}}, {0x9DA3,2,{0xFA,0x40,0x00,0x00,}}, {0x9DA4,2,{0xFA,0x41,0x00,0x00,}}, {0x9DA5,2,{0xFA,0x42,0x00,0x00,}}, {0x9DA6,2,{0xFA,0x43,0x00,0x00,}}, {0x9DA7,2,{0xFA,0x44,0x00,0x00,}}, {0x9DA8,2,{0xFA,0x45,0x00,0x00,}}, {0x9DA9,2,{0xFA,0x46,0x00,0x00,}}, {0x9DAA,2,{0xFA,0x47,0x00,0x00,}}, {0x9DAB,2,{0xFA,0x48,0x00,0x00,}}, {0x9DAC,2,{0xFA,0x49,0x00,0x00,}}, {0x9DAD,2,{0xFA,0x4A,0x00,0x00,}}, {0x9DAE,2,{0xFA,0x4B,0x00,0x00,}}, {0x9DAF,2,{0xFA,0x4C,0x00,0x00,}}, {0x9DB0,2,{0xFA,0x4D,0x00,0x00,}}, {0x9DB1,2,{0xFA,0x4E,0x00,0x00,}}, {0x9DB2,2,{0xFA,0x4F,0x00,0x00,}}, {0x9DB3,2,{0xFA,0x50,0x00,0x00,}}, {0x9DB4,2,{0xFA,0x51,0x00,0x00,}}, {0x9DB5,2,{0xFA,0x52,0x00,0x00,}}, {0x9DB6,2,{0xFA,0x53,0x00,0x00,}}, {0x9DB7,2,{0xFA,0x54,0x00,0x00,}}, {0x9DB8,2,{0xFA,0x55,0x00,0x00,}}, {0x9DB9,2,{0xFA,0x56,0x00,0x00,}}, {0x9DBA,2,{0xFA,0x57,0x00,0x00,}}, {0x9DBB,2,{0xFA,0x58,0x00,0x00,}}, {0x9DBC,2,{0xFA,0x59,0x00,0x00,}}, {0x9DBD,2,{0xFA,0x5A,0x00,0x00,}}, {0x9DBE,2,{0xFA,0x5B,0x00,0x00,}}, {0x9DBF,2,{0xFA,0x5C,0x00,0x00,}}, {0x9DC0,2,{0xFA,0x5D,0x00,0x00,}}, {0x9DC1,2,{0xFA,0x5E,0x00,0x00,}}, {0x9DC2,2,{0xFA,0x5F,0x00,0x00,}}, {0x9DC3,2,{0xFA,0x60,0x00,0x00,}}, {0x9DC4,2,{0xFA,0x61,0x00,0x00,}}, {0x9DC5,2,{0xFA,0x62,0x00,0x00,}}, {0x9DC6,2,{0xFA,0x63,0x00,0x00,}}, {0x9DC7,2,{0xFA,0x64,0x00,0x00,}}, {0x9DC8,2,{0xFA,0x65,0x00,0x00,}}, {0x9DC9,2,{0xFA,0x66,0x00,0x00,}}, {0x9DCA,2,{0xFA,0x67,0x00,0x00,}}, {0x9DCB,2,{0xFA,0x68,0x00,0x00,}}, {0x9DCC,2,{0xFA,0x69,0x00,0x00,}}, {0x9DCD,2,{0xFA,0x6A,0x00,0x00,}}, {0x9DCE,2,{0xFA,0x6B,0x00,0x00,}}, {0x9DCF,2,{0xFA,0x6C,0x00,0x00,}}, {0x9DD0,2,{0xFA,0x6D,0x00,0x00,}}, {0x9DD1,2,{0xFA,0x6E,0x00,0x00,}}, {0x9DD2,2,{0xFA,0x6F,0x00,0x00,}}, {0x9DD3,2,{0xFA,0x70,0x00,0x00,}}, {0x9DD4,2,{0xFA,0x71,0x00,0x00,}}, {0x9DD5,2,{0xFA,0x72,0x00,0x00,}}, {0x9DD6,2,{0xFA,0x73,0x00,0x00,}}, {0x9DD7,2,{0xFA,0x74,0x00,0x00,}}, {0x9DD8,2,{0xFA,0x75,0x00,0x00,}}, {0x9DD9,2,{0xFA,0x76,0x00,0x00,}}, {0x9DDA,2,{0xFA,0x77,0x00,0x00,}}, {0x9DDB,2,{0xFA,0x78,0x00,0x00,}}, {0x9DDC,2,{0xFA,0x79,0x00,0x00,}}, {0x9DDD,2,{0xFA,0x7A,0x00,0x00,}}, {0x9DDE,2,{0xFA,0x7B,0x00,0x00,}}, {0x9DDF,2,{0xFA,0x7C,0x00,0x00,}}, {0x9DE0,2,{0xFA,0x7D,0x00,0x00,}}, {0x9DE1,2,{0xFA,0x7E,0x00,0x00,}}, {0x9DE2,2,{0xFA,0x80,0x00,0x00,}}, {0x9DE3,2,{0xFA,0x81,0x00,0x00,}}, {0x9DE4,2,{0xFA,0x82,0x00,0x00,}}, {0x9DE5,2,{0xFA,0x83,0x00,0x00,}}, {0x9DE6,2,{0xFA,0x84,0x00,0x00,}}, {0x9DE7,2,{0xFA,0x85,0x00,0x00,}}, {0x9DE8,2,{0xFA,0x86,0x00,0x00,}}, {0x9DE9,2,{0xFA,0x87,0x00,0x00,}}, {0x9DEA,2,{0xFA,0x88,0x00,0x00,}}, {0x9DEB,2,{0xFA,0x89,0x00,0x00,}}, {0x9DEC,2,{0xFA,0x8A,0x00,0x00,}}, {0x9DED,2,{0xFA,0x8B,0x00,0x00,}}, {0x9DEE,2,{0xFA,0x8C,0x00,0x00,}}, {0x9DEF,2,{0xFA,0x8D,0x00,0x00,}}, {0x9DF0,2,{0xFA,0x8E,0x00,0x00,}}, {0x9DF1,2,{0xFA,0x8F,0x00,0x00,}}, {0x9DF2,2,{0xFA,0x90,0x00,0x00,}}, {0x9DF3,2,{0xFA,0x91,0x00,0x00,}}, {0x9DF4,2,{0xFA,0x92,0x00,0x00,}}, {0x9DF5,2,{0xFA,0x93,0x00,0x00,}}, {0x9DF6,2,{0xFA,0x94,0x00,0x00,}}, {0x9DF7,2,{0xFA,0x95,0x00,0x00,}}, {0x9DF8,2,{0xFA,0x96,0x00,0x00,}}, {0x9DF9,2,{0xFA,0x97,0x00,0x00,}}, {0x9DFA,2,{0xFA,0x98,0x00,0x00,}}, {0x9DFB,2,{0xFA,0x99,0x00,0x00,}}, {0x9DFC,2,{0xFA,0x9A,0x00,0x00,}}, {0x9DFD,2,{0xFA,0x9B,0x00,0x00,}}, {0x9DFE,2,{0xFA,0x9C,0x00,0x00,}}, {0x9DFF,2,{0xFA,0x9D,0x00,0x00,}}, {0x9E00,2,{0xFA,0x9E,0x00,0x00,}}, {0x9E01,2,{0xFA,0x9F,0x00,0x00,}}, {0x9E02,2,{0xFA,0xA0,0x00,0x00,}}, {0x9E03,2,{0xFB,0x40,0x00,0x00,}}, {0x9E04,2,{0xFB,0x41,0x00,0x00,}}, {0x9E05,2,{0xFB,0x42,0x00,0x00,}}, {0x9E06,2,{0xFB,0x43,0x00,0x00,}}, {0x9E07,2,{0xFB,0x44,0x00,0x00,}}, {0x9E08,2,{0xFB,0x45,0x00,0x00,}}, {0x9E09,2,{0xFB,0x46,0x00,0x00,}}, {0x9E0A,2,{0xFB,0x47,0x00,0x00,}}, {0x9E0B,2,{0xFB,0x48,0x00,0x00,}}, {0x9E0C,2,{0xFB,0x49,0x00,0x00,}}, {0x9E0D,2,{0xFB,0x4A,0x00,0x00,}}, {0x9E0E,2,{0xFB,0x4B,0x00,0x00,}}, {0x9E0F,2,{0xFB,0x4C,0x00,0x00,}}, {0x9E10,2,{0xFB,0x4D,0x00,0x00,}}, {0x9E11,2,{0xFB,0x4E,0x00,0x00,}}, {0x9E12,2,{0xFB,0x4F,0x00,0x00,}}, {0x9E13,2,{0xFB,0x50,0x00,0x00,}}, {0x9E14,2,{0xFB,0x51,0x00,0x00,}}, {0x9E15,2,{0xFB,0x52,0x00,0x00,}}, {0x9E16,2,{0xFB,0x53,0x00,0x00,}}, {0x9E17,2,{0xFB,0x54,0x00,0x00,}}, {0x9E18,2,{0xFB,0x55,0x00,0x00,}}, {0x9E19,2,{0xFB,0x56,0x00,0x00,}}, {0x9E1A,2,{0xFB,0x57,0x00,0x00,}}, {0x9E1B,2,{0xFB,0x58,0x00,0x00,}}, {0x9E1C,2,{0xFB,0x59,0x00,0x00,}}, {0x9E1D,2,{0xFB,0x5A,0x00,0x00,}}, {0x9E1E,2,{0xFB,0x5B,0x00,0x00,}}, {0x9E1F,2,{0xC4,0xF1,0x00,0x00,}}, {0x9E20,2,{0xF0,0xAF,0x00,0x00,}}, {0x9E21,2,{0xBC,0xA6,0x00,0x00,}}, {0x9E22,2,{0xF0,0xB0,0x00,0x00,}}, {0x9E23,2,{0xC3,0xF9,0x00,0x00,}}, {0x9E24,2,{0xFB,0x5C,0x00,0x00,}}, {0x9E25,2,{0xC5,0xB8,0x00,0x00,}}, {0x9E26,2,{0xD1,0xBB,0x00,0x00,}}, {0x9E27,2,{0xFB,0x5D,0x00,0x00,}}, {0x9E28,2,{0xF0,0xB1,0x00,0x00,}}, {0x9E29,2,{0xF0,0xB2,0x00,0x00,}}, {0x9E2A,2,{0xF0,0xB3,0x00,0x00,}}, {0x9E2B,2,{0xF0,0xB4,0x00,0x00,}}, {0x9E2C,2,{0xF0,0xB5,0x00,0x00,}}, {0x9E2D,2,{0xD1,0xBC,0x00,0x00,}}, {0x9E2E,2,{0xFB,0x5E,0x00,0x00,}}, {0x9E2F,2,{0xD1,0xEC,0x00,0x00,}}, {0x9E30,2,{0xFB,0x5F,0x00,0x00,}}, {0x9E31,2,{0xF0,0xB7,0x00,0x00,}}, {0x9E32,2,{0xF0,0xB6,0x00,0x00,}}, {0x9E33,2,{0xD4,0xA7,0x00,0x00,}}, {0x9E34,2,{0xFB,0x60,0x00,0x00,}}, {0x9E35,2,{0xCD,0xD2,0x00,0x00,}}, {0x9E36,2,{0xF0,0xB8,0x00,0x00,}}, {0x9E37,2,{0xF0,0xBA,0x00,0x00,}}, {0x9E38,2,{0xF0,0xB9,0x00,0x00,}}, {0x9E39,2,{0xF0,0xBB,0x00,0x00,}}, {0x9E3A,2,{0xF0,0xBC,0x00,0x00,}}, {0x9E3B,2,{0xFB,0x61,0x00,0x00,}}, {0x9E3C,2,{0xFB,0x62,0x00,0x00,}}, {0x9E3D,2,{0xB8,0xEB,0x00,0x00,}}, {0x9E3E,2,{0xF0,0xBD,0x00,0x00,}}, {0x9E3F,2,{0xBA,0xE8,0x00,0x00,}}, {0x9E40,2,{0xFB,0x63,0x00,0x00,}}, {0x9E41,2,{0xF0,0xBE,0x00,0x00,}}, {0x9E42,2,{0xF0,0xBF,0x00,0x00,}}, {0x9E43,2,{0xBE,0xE9,0x00,0x00,}}, {0x9E44,2,{0xF0,0xC0,0x00,0x00,}}, {0x9E45,2,{0xB6,0xEC,0x00,0x00,}}, {0x9E46,2,{0xF0,0xC1,0x00,0x00,}}, {0x9E47,2,{0xF0,0xC2,0x00,0x00,}}, {0x9E48,2,{0xF0,0xC3,0x00,0x00,}}, {0x9E49,2,{0xF0,0xC4,0x00,0x00,}}, {0x9E4A,2,{0xC8,0xB5,0x00,0x00,}}, {0x9E4B,2,{0xF0,0xC5,0x00,0x00,}}, {0x9E4C,2,{0xF0,0xC6,0x00,0x00,}}, {0x9E4D,2,{0xFB,0x64,0x00,0x00,}}, {0x9E4E,2,{0xF0,0xC7,0x00,0x00,}}, {0x9E4F,2,{0xC5,0xF4,0x00,0x00,}}, {0x9E50,2,{0xFB,0x65,0x00,0x00,}}, {0x9E51,2,{0xF0,0xC8,0x00,0x00,}}, {0x9E52,2,{0xFB,0x66,0x00,0x00,}}, {0x9E53,2,{0xFB,0x67,0x00,0x00,}}, {0x9E54,2,{0xFB,0x68,0x00,0x00,}}, {0x9E55,2,{0xF0,0xC9,0x00,0x00,}}, {0x9E56,2,{0xFB,0x69,0x00,0x00,}}, {0x9E57,2,{0xF0,0xCA,0x00,0x00,}}, {0x9E58,2,{0xF7,0xBD,0x00,0x00,}}, {0x9E59,2,{0xFB,0x6A,0x00,0x00,}}, {0x9E5A,2,{0xF0,0xCB,0x00,0x00,}}, {0x9E5B,2,{0xF0,0xCC,0x00,0x00,}}, {0x9E5C,2,{0xF0,0xCD,0x00,0x00,}}, {0x9E5D,2,{0xFB,0x6B,0x00,0x00,}}, {0x9E5E,2,{0xF0,0xCE,0x00,0x00,}}, {0x9E5F,2,{0xFB,0x6C,0x00,0x00,}}, {0x9E60,2,{0xFB,0x6D,0x00,0x00,}}, {0x9E61,2,{0xFB,0x6E,0x00,0x00,}}, {0x9E62,2,{0xFB,0x6F,0x00,0x00,}}, {0x9E63,2,{0xF0,0xCF,0x00,0x00,}}, {0x9E64,2,{0xBA,0xD7,0x00,0x00,}}, {0x9E65,2,{0xFB,0x70,0x00,0x00,}}, {0x9E66,2,{0xF0,0xD0,0x00,0x00,}}, {0x9E67,2,{0xF0,0xD1,0x00,0x00,}}, {0x9E68,2,{0xF0,0xD2,0x00,0x00,}}, {0x9E69,2,{0xF0,0xD3,0x00,0x00,}}, {0x9E6A,2,{0xF0,0xD4,0x00,0x00,}}, {0x9E6B,2,{0xF0,0xD5,0x00,0x00,}}, {0x9E6C,2,{0xF0,0xD6,0x00,0x00,}}, {0x9E6D,2,{0xF0,0xD8,0x00,0x00,}}, {0x9E6E,2,{0xFB,0x71,0x00,0x00,}}, {0x9E6F,2,{0xFB,0x72,0x00,0x00,}}, {0x9E70,2,{0xD3,0xA5,0x00,0x00,}}, {0x9E71,2,{0xF0,0xD7,0x00,0x00,}}, {0x9E72,2,{0xFB,0x73,0x00,0x00,}}, {0x9E73,2,{0xF0,0xD9,0x00,0x00,}}, {0x9E74,2,{0xFB,0x74,0x00,0x00,}}, {0x9E75,2,{0xFB,0x75,0x00,0x00,}}, {0x9E76,2,{0xFB,0x76,0x00,0x00,}}, {0x9E77,2,{0xFB,0x77,0x00,0x00,}}, {0x9E78,2,{0xFB,0x78,0x00,0x00,}}, {0x9E79,2,{0xFB,0x79,0x00,0x00,}}, {0x9E7A,2,{0xFB,0x7A,0x00,0x00,}}, {0x9E7B,2,{0xFB,0x7B,0x00,0x00,}}, {0x9E7C,2,{0xFB,0x7C,0x00,0x00,}}, {0x9E7D,2,{0xFB,0x7D,0x00,0x00,}}, {0x9E7E,2,{0xF5,0xBA,0x00,0x00,}}, {0x9E7F,2,{0xC2,0xB9,0x00,0x00,}}, {0x9E80,2,{0xFB,0x7E,0x00,0x00,}}, {0x9E81,2,{0xFB,0x80,0x00,0x00,}}, {0x9E82,2,{0xF7,0xE4,0x00,0x00,}}, {0x9E83,2,{0xFB,0x81,0x00,0x00,}}, {0x9E84,2,{0xFB,0x82,0x00,0x00,}}, {0x9E85,2,{0xFB,0x83,0x00,0x00,}}, {0x9E86,2,{0xFB,0x84,0x00,0x00,}}, {0x9E87,2,{0xF7,0xE5,0x00,0x00,}}, {0x9E88,2,{0xF7,0xE6,0x00,0x00,}}, {0x9E89,2,{0xFB,0x85,0x00,0x00,}}, {0x9E8A,2,{0xFB,0x86,0x00,0x00,}}, {0x9E8B,2,{0xF7,0xE7,0x00,0x00,}}, {0x9E8C,2,{0xFB,0x87,0x00,0x00,}}, {0x9E8D,2,{0xFB,0x88,0x00,0x00,}}, {0x9E8E,2,{0xFB,0x89,0x00,0x00,}}, {0x9E8F,2,{0xFB,0x8A,0x00,0x00,}}, {0x9E90,2,{0xFB,0x8B,0x00,0x00,}}, {0x9E91,2,{0xFB,0x8C,0x00,0x00,}}, {0x9E92,2,{0xF7,0xE8,0x00,0x00,}}, {0x9E93,2,{0xC2,0xB4,0x00,0x00,}}, {0x9E94,2,{0xFB,0x8D,0x00,0x00,}}, {0x9E95,2,{0xFB,0x8E,0x00,0x00,}}, {0x9E96,2,{0xFB,0x8F,0x00,0x00,}}, {0x9E97,2,{0xFB,0x90,0x00,0x00,}}, {0x9E98,2,{0xFB,0x91,0x00,0x00,}}, {0x9E99,2,{0xFB,0x92,0x00,0x00,}}, {0x9E9A,2,{0xFB,0x93,0x00,0x00,}}, {0x9E9B,2,{0xFB,0x94,0x00,0x00,}}, {0x9E9C,2,{0xFB,0x95,0x00,0x00,}}, {0x9E9D,2,{0xF7,0xEA,0x00,0x00,}}, {0x9E9E,2,{0xFB,0x96,0x00,0x00,}}, {0x9E9F,2,{0xF7,0xEB,0x00,0x00,}}, {0x9EA0,2,{0xFB,0x97,0x00,0x00,}}, {0x9EA1,2,{0xFB,0x98,0x00,0x00,}}, {0x9EA2,2,{0xFB,0x99,0x00,0x00,}}, {0x9EA3,2,{0xFB,0x9A,0x00,0x00,}}, {0x9EA4,2,{0xFB,0x9B,0x00,0x00,}}, {0x9EA5,2,{0xFB,0x9C,0x00,0x00,}}, {0x9EA6,2,{0xC2,0xF3,0x00,0x00,}}, {0x9EA7,2,{0xFB,0x9D,0x00,0x00,}}, {0x9EA8,2,{0xFB,0x9E,0x00,0x00,}}, {0x9EA9,2,{0xFB,0x9F,0x00,0x00,}}, {0x9EAA,2,{0xFB,0xA0,0x00,0x00,}}, {0x9EAB,2,{0xFC,0x40,0x00,0x00,}}, {0x9EAC,2,{0xFC,0x41,0x00,0x00,}}, {0x9EAD,2,{0xFC,0x42,0x00,0x00,}}, {0x9EAE,2,{0xFC,0x43,0x00,0x00,}}, {0x9EAF,2,{0xFC,0x44,0x00,0x00,}}, {0x9EB0,2,{0xFC,0x45,0x00,0x00,}}, {0x9EB1,2,{0xFC,0x46,0x00,0x00,}}, {0x9EB2,2,{0xFC,0x47,0x00,0x00,}}, {0x9EB3,2,{0xFC,0x48,0x00,0x00,}}, {0x9EB4,2,{0xF4,0xF0,0x00,0x00,}}, {0x9EB5,2,{0xFC,0x49,0x00,0x00,}}, {0x9EB6,2,{0xFC,0x4A,0x00,0x00,}}, {0x9EB7,2,{0xFC,0x4B,0x00,0x00,}}, {0x9EB8,2,{0xF4,0xEF,0x00,0x00,}}, {0x9EB9,2,{0xFC,0x4C,0x00,0x00,}}, {0x9EBA,2,{0xFC,0x4D,0x00,0x00,}}, {0x9EBB,2,{0xC2,0xE9,0x00,0x00,}}, {0x9EBC,2,{0xFC,0x4E,0x00,0x00,}}, {0x9EBD,2,{0xF7,0xE1,0x00,0x00,}}, {0x9EBE,2,{0xF7,0xE2,0x00,0x00,}}, {0x9EBF,2,{0xFC,0x4F,0x00,0x00,}}, {0x9EC0,2,{0xFC,0x50,0x00,0x00,}}, {0x9EC1,2,{0xFC,0x51,0x00,0x00,}}, {0x9EC2,2,{0xFC,0x52,0x00,0x00,}}, {0x9EC3,2,{0xFC,0x53,0x00,0x00,}}, {0x9EC4,2,{0xBB,0xC6,0x00,0x00,}}, {0x9EC5,2,{0xFC,0x54,0x00,0x00,}}, {0x9EC6,2,{0xFC,0x55,0x00,0x00,}}, {0x9EC7,2,{0xFC,0x56,0x00,0x00,}}, {0x9EC8,2,{0xFC,0x57,0x00,0x00,}}, {0x9EC9,2,{0xD9,0xE4,0x00,0x00,}}, {0x9ECA,2,{0xFC,0x58,0x00,0x00,}}, {0x9ECB,2,{0xFC,0x59,0x00,0x00,}}, {0x9ECC,2,{0xFC,0x5A,0x00,0x00,}}, {0x9ECD,2,{0xCA,0xF2,0x00,0x00,}}, {0x9ECE,2,{0xC0,0xE8,0x00,0x00,}}, {0x9ECF,2,{0xF0,0xA4,0x00,0x00,}}, {0x9ED0,2,{0xFC,0x5B,0x00,0x00,}}, {0x9ED1,2,{0xBA,0xDA,0x00,0x00,}}, {0x9ED2,2,{0xFC,0x5C,0x00,0x00,}}, {0x9ED3,2,{0xFC,0x5D,0x00,0x00,}}, {0x9ED4,2,{0xC7,0xAD,0x00,0x00,}}, {0x9ED5,2,{0xFC,0x5E,0x00,0x00,}}, {0x9ED6,2,{0xFC,0x5F,0x00,0x00,}}, {0x9ED7,2,{0xFC,0x60,0x00,0x00,}}, {0x9ED8,2,{0xC4,0xAC,0x00,0x00,}}, {0x9ED9,2,{0xFC,0x61,0x00,0x00,}}, {0x9EDA,2,{0xFC,0x62,0x00,0x00,}}, {0x9EDB,2,{0xF7,0xEC,0x00,0x00,}}, {0x9EDC,2,{0xF7,0xED,0x00,0x00,}}, {0x9EDD,2,{0xF7,0xEE,0x00,0x00,}}, {0x9EDE,2,{0xFC,0x63,0x00,0x00,}}, {0x9EDF,2,{0xF7,0xF0,0x00,0x00,}}, {0x9EE0,2,{0xF7,0xEF,0x00,0x00,}}, {0x9EE1,2,{0xFC,0x64,0x00,0x00,}}, {0x9EE2,2,{0xF7,0xF1,0x00,0x00,}}, {0x9EE3,2,{0xFC,0x65,0x00,0x00,}}, {0x9EE4,2,{0xFC,0x66,0x00,0x00,}}, {0x9EE5,2,{0xF7,0xF4,0x00,0x00,}}, {0x9EE6,2,{0xFC,0x67,0x00,0x00,}}, {0x9EE7,2,{0xF7,0xF3,0x00,0x00,}}, {0x9EE8,2,{0xFC,0x68,0x00,0x00,}}, {0x9EE9,2,{0xF7,0xF2,0x00,0x00,}}, {0x9EEA,2,{0xF7,0xF5,0x00,0x00,}}, {0x9EEB,2,{0xFC,0x69,0x00,0x00,}}, {0x9EEC,2,{0xFC,0x6A,0x00,0x00,}}, {0x9EED,2,{0xFC,0x6B,0x00,0x00,}}, {0x9EEE,2,{0xFC,0x6C,0x00,0x00,}}, {0x9EEF,2,{0xF7,0xF6,0x00,0x00,}}, {0x9EF0,2,{0xFC,0x6D,0x00,0x00,}}, {0x9EF1,2,{0xFC,0x6E,0x00,0x00,}}, {0x9EF2,2,{0xFC,0x6F,0x00,0x00,}}, {0x9EF3,2,{0xFC,0x70,0x00,0x00,}}, {0x9EF4,2,{0xFC,0x71,0x00,0x00,}}, {0x9EF5,2,{0xFC,0x72,0x00,0x00,}}, {0x9EF6,2,{0xFC,0x73,0x00,0x00,}}, {0x9EF7,2,{0xFC,0x74,0x00,0x00,}}, {0x9EF8,2,{0xFC,0x75,0x00,0x00,}}, {0x9EF9,2,{0xED,0xE9,0x00,0x00,}}, {0x9EFA,2,{0xFC,0x76,0x00,0x00,}}, {0x9EFB,2,{0xED,0xEA,0x00,0x00,}}, {0x9EFC,2,{0xED,0xEB,0x00,0x00,}}, {0x9EFD,2,{0xFC,0x77,0x00,0x00,}}, {0x9EFE,2,{0xF6,0xBC,0x00,0x00,}}, {0x9EFF,2,{0xFC,0x78,0x00,0x00,}}, {0x9F00,2,{0xFC,0x79,0x00,0x00,}}, {0x9F01,2,{0xFC,0x7A,0x00,0x00,}}, {0x9F02,2,{0xFC,0x7B,0x00,0x00,}}, {0x9F03,2,{0xFC,0x7C,0x00,0x00,}}, {0x9F04,2,{0xFC,0x7D,0x00,0x00,}}, {0x9F05,2,{0xFC,0x7E,0x00,0x00,}}, {0x9F06,2,{0xFC,0x80,0x00,0x00,}}, {0x9F07,2,{0xFC,0x81,0x00,0x00,}}, {0x9F08,2,{0xFC,0x82,0x00,0x00,}}, {0x9F09,2,{0xFC,0x83,0x00,0x00,}}, {0x9F0A,2,{0xFC,0x84,0x00,0x00,}}, {0x9F0B,2,{0xF6,0xBD,0x00,0x00,}}, {0x9F0C,2,{0xFC,0x85,0x00,0x00,}}, {0x9F0D,2,{0xF6,0xBE,0x00,0x00,}}, {0x9F0E,2,{0xB6,0xA6,0x00,0x00,}}, {0x9F0F,2,{0xFC,0x86,0x00,0x00,}}, {0x9F10,2,{0xD8,0xBE,0x00,0x00,}}, {0x9F11,2,{0xFC,0x87,0x00,0x00,}}, {0x9F12,2,{0xFC,0x88,0x00,0x00,}}, {0x9F13,2,{0xB9,0xC4,0x00,0x00,}}, {0x9F14,2,{0xFC,0x89,0x00,0x00,}}, {0x9F15,2,{0xFC,0x8A,0x00,0x00,}}, {0x9F16,2,{0xFC,0x8B,0x00,0x00,}}, {0x9F17,2,{0xD8,0xBB,0x00,0x00,}}, {0x9F18,2,{0xFC,0x8C,0x00,0x00,}}, {0x9F19,2,{0xDC,0xB1,0x00,0x00,}}, {0x9F1A,2,{0xFC,0x8D,0x00,0x00,}}, {0x9F1B,2,{0xFC,0x8E,0x00,0x00,}}, {0x9F1C,2,{0xFC,0x8F,0x00,0x00,}}, {0x9F1D,2,{0xFC,0x90,0x00,0x00,}}, {0x9F1E,2,{0xFC,0x91,0x00,0x00,}}, {0x9F1F,2,{0xFC,0x92,0x00,0x00,}}, {0x9F20,2,{0xCA,0xF3,0x00,0x00,}}, {0x9F21,2,{0xFC,0x93,0x00,0x00,}}, {0x9F22,2,{0xF7,0xF7,0x00,0x00,}}, {0x9F23,2,{0xFC,0x94,0x00,0x00,}}, {0x9F24,2,{0xFC,0x95,0x00,0x00,}}, {0x9F25,2,{0xFC,0x96,0x00,0x00,}}, {0x9F26,2,{0xFC,0x97,0x00,0x00,}}, {0x9F27,2,{0xFC,0x98,0x00,0x00,}}, {0x9F28,2,{0xFC,0x99,0x00,0x00,}}, {0x9F29,2,{0xFC,0x9A,0x00,0x00,}}, {0x9F2A,2,{0xFC,0x9B,0x00,0x00,}}, {0x9F2B,2,{0xFC,0x9C,0x00,0x00,}}, {0x9F2C,2,{0xF7,0xF8,0x00,0x00,}}, {0x9F2D,2,{0xFC,0x9D,0x00,0x00,}}, {0x9F2E,2,{0xFC,0x9E,0x00,0x00,}}, {0x9F2F,2,{0xF7,0xF9,0x00,0x00,}}, {0x9F30,2,{0xFC,0x9F,0x00,0x00,}}, {0x9F31,2,{0xFC,0xA0,0x00,0x00,}}, {0x9F32,2,{0xFD,0x40,0x00,0x00,}}, {0x9F33,2,{0xFD,0x41,0x00,0x00,}}, {0x9F34,2,{0xFD,0x42,0x00,0x00,}}, {0x9F35,2,{0xFD,0x43,0x00,0x00,}}, {0x9F36,2,{0xFD,0x44,0x00,0x00,}}, {0x9F37,2,{0xF7,0xFB,0x00,0x00,}}, {0x9F38,2,{0xFD,0x45,0x00,0x00,}}, {0x9F39,2,{0xF7,0xFA,0x00,0x00,}}, {0x9F3A,2,{0xFD,0x46,0x00,0x00,}}, {0x9F3B,2,{0xB1,0xC7,0x00,0x00,}}, {0x9F3C,2,{0xFD,0x47,0x00,0x00,}}, {0x9F3D,2,{0xF7,0xFC,0x00,0x00,}}, {0x9F3E,2,{0xF7,0xFD,0x00,0x00,}}, {0x9F3F,2,{0xFD,0x48,0x00,0x00,}}, {0x9F40,2,{0xFD,0x49,0x00,0x00,}}, {0x9F41,2,{0xFD,0x4A,0x00,0x00,}}, {0x9F42,2,{0xFD,0x4B,0x00,0x00,}}, {0x9F43,2,{0xFD,0x4C,0x00,0x00,}}, {0x9F44,2,{0xF7,0xFE,0x00,0x00,}}, {0x9F45,2,{0xFD,0x4D,0x00,0x00,}}, {0x9F46,2,{0xFD,0x4E,0x00,0x00,}}, {0x9F47,2,{0xFD,0x4F,0x00,0x00,}}, {0x9F48,2,{0xFD,0x50,0x00,0x00,}}, {0x9F49,2,{0xFD,0x51,0x00,0x00,}}, {0x9F4A,2,{0xFD,0x52,0x00,0x00,}}, {0x9F4B,2,{0xFD,0x53,0x00,0x00,}}, {0x9F4C,2,{0xFD,0x54,0x00,0x00,}}, {0x9F4D,2,{0xFD,0x55,0x00,0x00,}}, {0x9F4E,2,{0xFD,0x56,0x00,0x00,}}, {0x9F4F,2,{0xFD,0x57,0x00,0x00,}}, {0x9F50,2,{0xC6,0xEB,0x00,0x00,}}, {0x9F51,2,{0xEC,0xB4,0x00,0x00,}}, {0x9F52,2,{0xFD,0x58,0x00,0x00,}}, {0x9F53,2,{0xFD,0x59,0x00,0x00,}}, {0x9F54,2,{0xFD,0x5A,0x00,0x00,}}, {0x9F55,2,{0xFD,0x5B,0x00,0x00,}}, {0x9F56,2,{0xFD,0x5C,0x00,0x00,}}, {0x9F57,2,{0xFD,0x5D,0x00,0x00,}}, {0x9F58,2,{0xFD,0x5E,0x00,0x00,}}, {0x9F59,2,{0xFD,0x5F,0x00,0x00,}}, {0x9F5A,2,{0xFD,0x60,0x00,0x00,}}, {0x9F5B,2,{0xFD,0x61,0x00,0x00,}}, {0x9F5C,2,{0xFD,0x62,0x00,0x00,}}, {0x9F5D,2,{0xFD,0x63,0x00,0x00,}}, {0x9F5E,2,{0xFD,0x64,0x00,0x00,}}, {0x9F5F,2,{0xFD,0x65,0x00,0x00,}}, {0x9F60,2,{0xFD,0x66,0x00,0x00,}}, {0x9F61,2,{0xFD,0x67,0x00,0x00,}}, {0x9F62,2,{0xFD,0x68,0x00,0x00,}}, {0x9F63,2,{0xFD,0x69,0x00,0x00,}}, {0x9F64,2,{0xFD,0x6A,0x00,0x00,}}, {0x9F65,2,{0xFD,0x6B,0x00,0x00,}}, {0x9F66,2,{0xFD,0x6C,0x00,0x00,}}, {0x9F67,2,{0xFD,0x6D,0x00,0x00,}}, {0x9F68,2,{0xFD,0x6E,0x00,0x00,}}, {0x9F69,2,{0xFD,0x6F,0x00,0x00,}}, {0x9F6A,2,{0xFD,0x70,0x00,0x00,}}, {0x9F6B,2,{0xFD,0x71,0x00,0x00,}}, {0x9F6C,2,{0xFD,0x72,0x00,0x00,}}, {0x9F6D,2,{0xFD,0x73,0x00,0x00,}}, {0x9F6E,2,{0xFD,0x74,0x00,0x00,}}, {0x9F6F,2,{0xFD,0x75,0x00,0x00,}}, {0x9F70,2,{0xFD,0x76,0x00,0x00,}}, {0x9F71,2,{0xFD,0x77,0x00,0x00,}}, {0x9F72,2,{0xFD,0x78,0x00,0x00,}}, {0x9F73,2,{0xFD,0x79,0x00,0x00,}}, {0x9F74,2,{0xFD,0x7A,0x00,0x00,}}, {0x9F75,2,{0xFD,0x7B,0x00,0x00,}}, {0x9F76,2,{0xFD,0x7C,0x00,0x00,}}, {0x9F77,2,{0xFD,0x7D,0x00,0x00,}}, {0x9F78,2,{0xFD,0x7E,0x00,0x00,}}, {0x9F79,2,{0xFD,0x80,0x00,0x00,}}, {0x9F7A,2,{0xFD,0x81,0x00,0x00,}}, {0x9F7B,2,{0xFD,0x82,0x00,0x00,}}, {0x9F7C,2,{0xFD,0x83,0x00,0x00,}}, {0x9F7D,2,{0xFD,0x84,0x00,0x00,}}, {0x9F7E,2,{0xFD,0x85,0x00,0x00,}}, {0x9F7F,2,{0xB3,0xDD,0x00,0x00,}}, {0x9F80,2,{0xF6,0xB3,0x00,0x00,}}, {0x9F81,2,{0xFD,0x86,0x00,0x00,}}, {0x9F82,2,{0xFD,0x87,0x00,0x00,}}, {0x9F83,2,{0xF6,0xB4,0x00,0x00,}}, {0x9F84,2,{0xC1,0xE4,0x00,0x00,}}, {0x9F85,2,{0xF6,0xB5,0x00,0x00,}}, {0x9F86,2,{0xF6,0xB6,0x00,0x00,}}, {0x9F87,2,{0xF6,0xB7,0x00,0x00,}}, {0x9F88,2,{0xF6,0xB8,0x00,0x00,}}, {0x9F89,2,{0xF6,0xB9,0x00,0x00,}}, {0x9F8A,2,{0xF6,0xBA,0x00,0x00,}}, {0x9F8B,2,{0xC8,0xA3,0x00,0x00,}}, {0x9F8C,2,{0xF6,0xBB,0x00,0x00,}}, {0x9F8D,2,{0xFD,0x88,0x00,0x00,}}, {0x9F8E,2,{0xFD,0x89,0x00,0x00,}}, {0x9F8F,2,{0xFD,0x8A,0x00,0x00,}}, {0x9F90,2,{0xFD,0x8B,0x00,0x00,}}, {0x9F91,2,{0xFD,0x8C,0x00,0x00,}}, {0x9F92,2,{0xFD,0x8D,0x00,0x00,}}, {0x9F93,2,{0xFD,0x8E,0x00,0x00,}}, {0x9F94,2,{0xFD,0x8F,0x00,0x00,}}, {0x9F95,2,{0xFD,0x90,0x00,0x00,}}, {0x9F96,2,{0xFD,0x91,0x00,0x00,}}, {0x9F97,2,{0xFD,0x92,0x00,0x00,}}, {0x9F98,2,{0xFD,0x93,0x00,0x00,}}, {0x9F99,2,{0xC1,0xFA,0x00,0x00,}}, {0x9F9A,2,{0xB9,0xA8,0x00,0x00,}}, {0x9F9B,2,{0xED,0xE8,0x00,0x00,}}, {0x9F9C,2,{0xFD,0x94,0x00,0x00,}}, {0x9F9D,2,{0xFD,0x95,0x00,0x00,}}, {0x9F9E,2,{0xFD,0x96,0x00,0x00,}}, {0x9F9F,2,{0xB9,0xEA,0x00,0x00,}}, {0x9FA0,2,{0xD9,0xDF,0x00,0x00,}}, {0x9FA1,2,{0xFD,0x97,0x00,0x00,}}, {0x9FA2,2,{0xFD,0x98,0x00,0x00,}}, {0x9FA3,2,{0xFD,0x99,0x00,0x00,}}, {0x9FA4,2,{0xFD,0x9A,0x00,0x00,}}, {0x9FA5,2,{0xFD,0x9B,0x00,0x00,}}, {0xE000,2,{0xAA,0xA1,0x00,0x00,}}, {0xE001,2,{0xAA,0xA2,0x00,0x00,}}, {0xE002,2,{0xAA,0xA3,0x00,0x00,}}, {0xE003,2,{0xAA,0xA4,0x00,0x00,}}, {0xE004,2,{0xAA,0xA5,0x00,0x00,}}, {0xE005,2,{0xAA,0xA6,0x00,0x00,}}, {0xE006,2,{0xAA,0xA7,0x00,0x00,}}, {0xE007,2,{0xAA,0xA8,0x00,0x00,}}, {0xE008,2,{0xAA,0xA9,0x00,0x00,}}, {0xE009,2,{0xAA,0xAA,0x00,0x00,}}, {0xE00A,2,{0xAA,0xAB,0x00,0x00,}}, {0xE00B,2,{0xAA,0xAC,0x00,0x00,}}, {0xE00C,2,{0xAA,0xAD,0x00,0x00,}}, {0xE00D,2,{0xAA,0xAE,0x00,0x00,}}, {0xE00E,2,{0xAA,0xAF,0x00,0x00,}}, {0xE00F,2,{0xAA,0xB0,0x00,0x00,}}, {0xE010,2,{0xAA,0xB1,0x00,0x00,}}, {0xE011,2,{0xAA,0xB2,0x00,0x00,}}, {0xE012,2,{0xAA,0xB3,0x00,0x00,}}, {0xE013,2,{0xAA,0xB4,0x00,0x00,}}, {0xE014,2,{0xAA,0xB5,0x00,0x00,}}, {0xE015,2,{0xAA,0xB6,0x00,0x00,}}, {0xE016,2,{0xAA,0xB7,0x00,0x00,}}, {0xE017,2,{0xAA,0xB8,0x00,0x00,}}, {0xE018,2,{0xAA,0xB9,0x00,0x00,}}, {0xE019,2,{0xAA,0xBA,0x00,0x00,}}, {0xE01A,2,{0xAA,0xBB,0x00,0x00,}}, {0xE01B,2,{0xAA,0xBC,0x00,0x00,}}, {0xE01C,2,{0xAA,0xBD,0x00,0x00,}}, {0xE01D,2,{0xAA,0xBE,0x00,0x00,}}, {0xE01E,2,{0xAA,0xBF,0x00,0x00,}}, {0xE01F,2,{0xAA,0xC0,0x00,0x00,}}, {0xE020,2,{0xAA,0xC1,0x00,0x00,}}, {0xE021,2,{0xAA,0xC2,0x00,0x00,}}, {0xE022,2,{0xAA,0xC3,0x00,0x00,}}, {0xE023,2,{0xAA,0xC4,0x00,0x00,}}, {0xE024,2,{0xAA,0xC5,0x00,0x00,}}, {0xE025,2,{0xAA,0xC6,0x00,0x00,}}, {0xE026,2,{0xAA,0xC7,0x00,0x00,}}, {0xE027,2,{0xAA,0xC8,0x00,0x00,}}, {0xE028,2,{0xAA,0xC9,0x00,0x00,}}, {0xE029,2,{0xAA,0xCA,0x00,0x00,}}, {0xE02A,2,{0xAA,0xCB,0x00,0x00,}}, {0xE02B,2,{0xAA,0xCC,0x00,0x00,}}, {0xE02C,2,{0xAA,0xCD,0x00,0x00,}}, {0xE02D,2,{0xAA,0xCE,0x00,0x00,}}, {0xE02E,2,{0xAA,0xCF,0x00,0x00,}}, {0xE02F,2,{0xAA,0xD0,0x00,0x00,}}, {0xE030,2,{0xAA,0xD1,0x00,0x00,}}, {0xE031,2,{0xAA,0xD2,0x00,0x00,}}, {0xE032,2,{0xAA,0xD3,0x00,0x00,}}, {0xE033,2,{0xAA,0xD4,0x00,0x00,}}, {0xE034,2,{0xAA,0xD5,0x00,0x00,}}, {0xE035,2,{0xAA,0xD6,0x00,0x00,}}, {0xE036,2,{0xAA,0xD7,0x00,0x00,}}, {0xE037,2,{0xAA,0xD8,0x00,0x00,}}, {0xE038,2,{0xAA,0xD9,0x00,0x00,}}, {0xE039,2,{0xAA,0xDA,0x00,0x00,}}, {0xE03A,2,{0xAA,0xDB,0x00,0x00,}}, {0xE03B,2,{0xAA,0xDC,0x00,0x00,}}, {0xE03C,2,{0xAA,0xDD,0x00,0x00,}}, {0xE03D,2,{0xAA,0xDE,0x00,0x00,}}, {0xE03E,2,{0xAA,0xDF,0x00,0x00,}}, {0xE03F,2,{0xAA,0xE0,0x00,0x00,}}, {0xE040,2,{0xAA,0xE1,0x00,0x00,}}, {0xE041,2,{0xAA,0xE2,0x00,0x00,}}, {0xE042,2,{0xAA,0xE3,0x00,0x00,}}, {0xE043,2,{0xAA,0xE4,0x00,0x00,}}, {0xE044,2,{0xAA,0xE5,0x00,0x00,}}, {0xE045,2,{0xAA,0xE6,0x00,0x00,}}, {0xE046,2,{0xAA,0xE7,0x00,0x00,}}, {0xE047,2,{0xAA,0xE8,0x00,0x00,}}, {0xE048,2,{0xAA,0xE9,0x00,0x00,}}, {0xE049,2,{0xAA,0xEA,0x00,0x00,}}, {0xE04A,2,{0xAA,0xEB,0x00,0x00,}}, {0xE04B,2,{0xAA,0xEC,0x00,0x00,}}, {0xE04C,2,{0xAA,0xED,0x00,0x00,}}, {0xE04D,2,{0xAA,0xEE,0x00,0x00,}}, {0xE04E,2,{0xAA,0xEF,0x00,0x00,}}, {0xE04F,2,{0xAA,0xF0,0x00,0x00,}}, {0xE050,2,{0xAA,0xF1,0x00,0x00,}}, {0xE051,2,{0xAA,0xF2,0x00,0x00,}}, {0xE052,2,{0xAA,0xF3,0x00,0x00,}}, {0xE053,2,{0xAA,0xF4,0x00,0x00,}}, {0xE054,2,{0xAA,0xF5,0x00,0x00,}}, {0xE055,2,{0xAA,0xF6,0x00,0x00,}}, {0xE056,2,{0xAA,0xF7,0x00,0x00,}}, {0xE057,2,{0xAA,0xF8,0x00,0x00,}}, {0xE058,2,{0xAA,0xF9,0x00,0x00,}}, {0xE059,2,{0xAA,0xFA,0x00,0x00,}}, {0xE05A,2,{0xAA,0xFB,0x00,0x00,}}, {0xE05B,2,{0xAA,0xFC,0x00,0x00,}}, {0xE05C,2,{0xAA,0xFD,0x00,0x00,}}, {0xE05D,2,{0xAA,0xFE,0x00,0x00,}}, {0xE05E,2,{0xAB,0xA1,0x00,0x00,}}, {0xE05F,2,{0xAB,0xA2,0x00,0x00,}}, {0xE060,2,{0xAB,0xA3,0x00,0x00,}}, {0xE061,2,{0xAB,0xA4,0x00,0x00,}}, {0xE062,2,{0xAB,0xA5,0x00,0x00,}}, {0xE063,2,{0xAB,0xA6,0x00,0x00,}}, {0xE064,2,{0xAB,0xA7,0x00,0x00,}}, {0xE065,2,{0xAB,0xA8,0x00,0x00,}}, {0xE066,2,{0xAB,0xA9,0x00,0x00,}}, {0xE067,2,{0xAB,0xAA,0x00,0x00,}}, {0xE068,2,{0xAB,0xAB,0x00,0x00,}}, {0xE069,2,{0xAB,0xAC,0x00,0x00,}}, {0xE06A,2,{0xAB,0xAD,0x00,0x00,}}, {0xE06B,2,{0xAB,0xAE,0x00,0x00,}}, {0xE06C,2,{0xAB,0xAF,0x00,0x00,}}, {0xE06D,2,{0xAB,0xB0,0x00,0x00,}}, {0xE06E,2,{0xAB,0xB1,0x00,0x00,}}, {0xE06F,2,{0xAB,0xB2,0x00,0x00,}}, {0xE070,2,{0xAB,0xB3,0x00,0x00,}}, {0xE071,2,{0xAB,0xB4,0x00,0x00,}}, {0xE072,2,{0xAB,0xB5,0x00,0x00,}}, {0xE073,2,{0xAB,0xB6,0x00,0x00,}}, {0xE074,2,{0xAB,0xB7,0x00,0x00,}}, {0xE075,2,{0xAB,0xB8,0x00,0x00,}}, {0xE076,2,{0xAB,0xB9,0x00,0x00,}}, {0xE077,2,{0xAB,0xBA,0x00,0x00,}}, {0xE078,2,{0xAB,0xBB,0x00,0x00,}}, {0xE079,2,{0xAB,0xBC,0x00,0x00,}}, {0xE07A,2,{0xAB,0xBD,0x00,0x00,}}, {0xE07B,2,{0xAB,0xBE,0x00,0x00,}}, {0xE07C,2,{0xAB,0xBF,0x00,0x00,}}, {0xE07D,2,{0xAB,0xC0,0x00,0x00,}}, {0xE07E,2,{0xAB,0xC1,0x00,0x00,}}, {0xE07F,2,{0xAB,0xC2,0x00,0x00,}}, {0xE080,2,{0xAB,0xC3,0x00,0x00,}}, {0xE081,2,{0xAB,0xC4,0x00,0x00,}}, {0xE082,2,{0xAB,0xC5,0x00,0x00,}}, {0xE083,2,{0xAB,0xC6,0x00,0x00,}}, {0xE084,2,{0xAB,0xC7,0x00,0x00,}}, {0xE085,2,{0xAB,0xC8,0x00,0x00,}}, {0xE086,2,{0xAB,0xC9,0x00,0x00,}}, {0xE087,2,{0xAB,0xCA,0x00,0x00,}}, {0xE088,2,{0xAB,0xCB,0x00,0x00,}}, {0xE089,2,{0xAB,0xCC,0x00,0x00,}}, {0xE08A,2,{0xAB,0xCD,0x00,0x00,}}, {0xE08B,2,{0xAB,0xCE,0x00,0x00,}}, {0xE08C,2,{0xAB,0xCF,0x00,0x00,}}, {0xE08D,2,{0xAB,0xD0,0x00,0x00,}}, {0xE08E,2,{0xAB,0xD1,0x00,0x00,}}, {0xE08F,2,{0xAB,0xD2,0x00,0x00,}}, {0xE090,2,{0xAB,0xD3,0x00,0x00,}}, {0xE091,2,{0xAB,0xD4,0x00,0x00,}}, {0xE092,2,{0xAB,0xD5,0x00,0x00,}}, {0xE093,2,{0xAB,0xD6,0x00,0x00,}}, {0xE094,2,{0xAB,0xD7,0x00,0x00,}}, {0xE095,2,{0xAB,0xD8,0x00,0x00,}}, {0xE096,2,{0xAB,0xD9,0x00,0x00,}}, {0xE097,2,{0xAB,0xDA,0x00,0x00,}}, {0xE098,2,{0xAB,0xDB,0x00,0x00,}}, {0xE099,2,{0xAB,0xDC,0x00,0x00,}}, {0xE09A,2,{0xAB,0xDD,0x00,0x00,}}, {0xE09B,2,{0xAB,0xDE,0x00,0x00,}}, {0xE09C,2,{0xAB,0xDF,0x00,0x00,}}, {0xE09D,2,{0xAB,0xE0,0x00,0x00,}}, {0xE09E,2,{0xAB,0xE1,0x00,0x00,}}, {0xE09F,2,{0xAB,0xE2,0x00,0x00,}}, {0xE0A0,2,{0xAB,0xE3,0x00,0x00,}}, {0xE0A1,2,{0xAB,0xE4,0x00,0x00,}}, {0xE0A2,2,{0xAB,0xE5,0x00,0x00,}}, {0xE0A3,2,{0xAB,0xE6,0x00,0x00,}}, {0xE0A4,2,{0xAB,0xE7,0x00,0x00,}}, {0xE0A5,2,{0xAB,0xE8,0x00,0x00,}}, {0xE0A6,2,{0xAB,0xE9,0x00,0x00,}}, {0xE0A7,2,{0xAB,0xEA,0x00,0x00,}}, {0xE0A8,2,{0xAB,0xEB,0x00,0x00,}}, {0xE0A9,2,{0xAB,0xEC,0x00,0x00,}}, {0xE0AA,2,{0xAB,0xED,0x00,0x00,}}, {0xE0AB,2,{0xAB,0xEE,0x00,0x00,}}, {0xE0AC,2,{0xAB,0xEF,0x00,0x00,}}, {0xE0AD,2,{0xAB,0xF0,0x00,0x00,}}, {0xE0AE,2,{0xAB,0xF1,0x00,0x00,}}, {0xE0AF,2,{0xAB,0xF2,0x00,0x00,}}, {0xE0B0,2,{0xAB,0xF3,0x00,0x00,}}, {0xE0B1,2,{0xAB,0xF4,0x00,0x00,}}, {0xE0B2,2,{0xAB,0xF5,0x00,0x00,}}, {0xE0B3,2,{0xAB,0xF6,0x00,0x00,}}, {0xE0B4,2,{0xAB,0xF7,0x00,0x00,}}, {0xE0B5,2,{0xAB,0xF8,0x00,0x00,}}, {0xE0B6,2,{0xAB,0xF9,0x00,0x00,}}, {0xE0B7,2,{0xAB,0xFA,0x00,0x00,}}, {0xE0B8,2,{0xAB,0xFB,0x00,0x00,}}, {0xE0B9,2,{0xAB,0xFC,0x00,0x00,}}, {0xE0BA,2,{0xAB,0xFD,0x00,0x00,}}, {0xE0BB,2,{0xAB,0xFE,0x00,0x00,}}, {0xE0BC,2,{0xAC,0xA1,0x00,0x00,}}, {0xE0BD,2,{0xAC,0xA2,0x00,0x00,}}, {0xE0BE,2,{0xAC,0xA3,0x00,0x00,}}, {0xE0BF,2,{0xAC,0xA4,0x00,0x00,}}, {0xE0C0,2,{0xAC,0xA5,0x00,0x00,}}, {0xE0C1,2,{0xAC,0xA6,0x00,0x00,}}, {0xE0C2,2,{0xAC,0xA7,0x00,0x00,}}, {0xE0C3,2,{0xAC,0xA8,0x00,0x00,}}, {0xE0C4,2,{0xAC,0xA9,0x00,0x00,}}, {0xE0C5,2,{0xAC,0xAA,0x00,0x00,}}, {0xE0C6,2,{0xAC,0xAB,0x00,0x00,}}, {0xE0C7,2,{0xAC,0xAC,0x00,0x00,}}, {0xE0C8,2,{0xAC,0xAD,0x00,0x00,}}, {0xE0C9,2,{0xAC,0xAE,0x00,0x00,}}, {0xE0CA,2,{0xAC,0xAF,0x00,0x00,}}, {0xE0CB,2,{0xAC,0xB0,0x00,0x00,}}, {0xE0CC,2,{0xAC,0xB1,0x00,0x00,}}, {0xE0CD,2,{0xAC,0xB2,0x00,0x00,}}, {0xE0CE,2,{0xAC,0xB3,0x00,0x00,}}, {0xE0CF,2,{0xAC,0xB4,0x00,0x00,}}, {0xE0D0,2,{0xAC,0xB5,0x00,0x00,}}, {0xE0D1,2,{0xAC,0xB6,0x00,0x00,}}, {0xE0D2,2,{0xAC,0xB7,0x00,0x00,}}, {0xE0D3,2,{0xAC,0xB8,0x00,0x00,}}, {0xE0D4,2,{0xAC,0xB9,0x00,0x00,}}, {0xE0D5,2,{0xAC,0xBA,0x00,0x00,}}, {0xE0D6,2,{0xAC,0xBB,0x00,0x00,}}, {0xE0D7,2,{0xAC,0xBC,0x00,0x00,}}, {0xE0D8,2,{0xAC,0xBD,0x00,0x00,}}, {0xE0D9,2,{0xAC,0xBE,0x00,0x00,}}, {0xE0DA,2,{0xAC,0xBF,0x00,0x00,}}, {0xE0DB,2,{0xAC,0xC0,0x00,0x00,}}, {0xE0DC,2,{0xAC,0xC1,0x00,0x00,}}, {0xE0DD,2,{0xAC,0xC2,0x00,0x00,}}, {0xE0DE,2,{0xAC,0xC3,0x00,0x00,}}, {0xE0DF,2,{0xAC,0xC4,0x00,0x00,}}, {0xE0E0,2,{0xAC,0xC5,0x00,0x00,}}, {0xE0E1,2,{0xAC,0xC6,0x00,0x00,}}, {0xE0E2,2,{0xAC,0xC7,0x00,0x00,}}, {0xE0E3,2,{0xAC,0xC8,0x00,0x00,}}, {0xE0E4,2,{0xAC,0xC9,0x00,0x00,}}, {0xE0E5,2,{0xAC,0xCA,0x00,0x00,}}, {0xE0E6,2,{0xAC,0xCB,0x00,0x00,}}, {0xE0E7,2,{0xAC,0xCC,0x00,0x00,}}, {0xE0E8,2,{0xAC,0xCD,0x00,0x00,}}, {0xE0E9,2,{0xAC,0xCE,0x00,0x00,}}, {0xE0EA,2,{0xAC,0xCF,0x00,0x00,}}, {0xE0EB,2,{0xAC,0xD0,0x00,0x00,}}, {0xE0EC,2,{0xAC,0xD1,0x00,0x00,}}, {0xE0ED,2,{0xAC,0xD2,0x00,0x00,}}, {0xE0EE,2,{0xAC,0xD3,0x00,0x00,}}, {0xE0EF,2,{0xAC,0xD4,0x00,0x00,}}, {0xE0F0,2,{0xAC,0xD5,0x00,0x00,}}, {0xE0F1,2,{0xAC,0xD6,0x00,0x00,}}, {0xE0F2,2,{0xAC,0xD7,0x00,0x00,}}, {0xE0F3,2,{0xAC,0xD8,0x00,0x00,}}, {0xE0F4,2,{0xAC,0xD9,0x00,0x00,}}, {0xE0F5,2,{0xAC,0xDA,0x00,0x00,}}, {0xE0F6,2,{0xAC,0xDB,0x00,0x00,}}, {0xE0F7,2,{0xAC,0xDC,0x00,0x00,}}, {0xE0F8,2,{0xAC,0xDD,0x00,0x00,}}, {0xE0F9,2,{0xAC,0xDE,0x00,0x00,}}, {0xE0FA,2,{0xAC,0xDF,0x00,0x00,}}, {0xE0FB,2,{0xAC,0xE0,0x00,0x00,}}, {0xE0FC,2,{0xAC,0xE1,0x00,0x00,}}, {0xE0FD,2,{0xAC,0xE2,0x00,0x00,}}, {0xE0FE,2,{0xAC,0xE3,0x00,0x00,}}, {0xE0FF,2,{0xAC,0xE4,0x00,0x00,}}, {0xE100,2,{0xAC,0xE5,0x00,0x00,}}, {0xE101,2,{0xAC,0xE6,0x00,0x00,}}, {0xE102,2,{0xAC,0xE7,0x00,0x00,}}, {0xE103,2,{0xAC,0xE8,0x00,0x00,}}, {0xE104,2,{0xAC,0xE9,0x00,0x00,}}, {0xE105,2,{0xAC,0xEA,0x00,0x00,}}, {0xE106,2,{0xAC,0xEB,0x00,0x00,}}, {0xE107,2,{0xAC,0xEC,0x00,0x00,}}, {0xE108,2,{0xAC,0xED,0x00,0x00,}}, {0xE109,2,{0xAC,0xEE,0x00,0x00,}}, {0xE10A,2,{0xAC,0xEF,0x00,0x00,}}, {0xE10B,2,{0xAC,0xF0,0x00,0x00,}}, {0xE10C,2,{0xAC,0xF1,0x00,0x00,}}, {0xE10D,2,{0xAC,0xF2,0x00,0x00,}}, {0xE10E,2,{0xAC,0xF3,0x00,0x00,}}, {0xE10F,2,{0xAC,0xF4,0x00,0x00,}}, {0xE110,2,{0xAC,0xF5,0x00,0x00,}}, {0xE111,2,{0xAC,0xF6,0x00,0x00,}}, {0xE112,2,{0xAC,0xF7,0x00,0x00,}}, {0xE113,2,{0xAC,0xF8,0x00,0x00,}}, {0xE114,2,{0xAC,0xF9,0x00,0x00,}}, {0xE115,2,{0xAC,0xFA,0x00,0x00,}}, {0xE116,2,{0xAC,0xFB,0x00,0x00,}}, {0xE117,2,{0xAC,0xFC,0x00,0x00,}}, {0xE118,2,{0xAC,0xFD,0x00,0x00,}}, {0xE119,2,{0xAC,0xFE,0x00,0x00,}}, {0xE11A,2,{0xAD,0xA1,0x00,0x00,}}, {0xE11B,2,{0xAD,0xA2,0x00,0x00,}}, {0xE11C,2,{0xAD,0xA3,0x00,0x00,}}, {0xE11D,2,{0xAD,0xA4,0x00,0x00,}}, {0xE11E,2,{0xAD,0xA5,0x00,0x00,}}, {0xE11F,2,{0xAD,0xA6,0x00,0x00,}}, {0xE120,2,{0xAD,0xA7,0x00,0x00,}}, {0xE121,2,{0xAD,0xA8,0x00,0x00,}}, {0xE122,2,{0xAD,0xA9,0x00,0x00,}}, {0xE123,2,{0xAD,0xAA,0x00,0x00,}}, {0xE124,2,{0xAD,0xAB,0x00,0x00,}}, {0xE125,2,{0xAD,0xAC,0x00,0x00,}}, {0xE126,2,{0xAD,0xAD,0x00,0x00,}}, {0xE127,2,{0xAD,0xAE,0x00,0x00,}}, {0xE128,2,{0xAD,0xAF,0x00,0x00,}}, {0xE129,2,{0xAD,0xB0,0x00,0x00,}}, {0xE12A,2,{0xAD,0xB1,0x00,0x00,}}, {0xE12B,2,{0xAD,0xB2,0x00,0x00,}}, {0xE12C,2,{0xAD,0xB3,0x00,0x00,}}, {0xE12D,2,{0xAD,0xB4,0x00,0x00,}}, {0xE12E,2,{0xAD,0xB5,0x00,0x00,}}, {0xE12F,2,{0xAD,0xB6,0x00,0x00,}}, {0xE130,2,{0xAD,0xB7,0x00,0x00,}}, {0xE131,2,{0xAD,0xB8,0x00,0x00,}}, {0xE132,2,{0xAD,0xB9,0x00,0x00,}}, {0xE133,2,{0xAD,0xBA,0x00,0x00,}}, {0xE134,2,{0xAD,0xBB,0x00,0x00,}}, {0xE135,2,{0xAD,0xBC,0x00,0x00,}}, {0xE136,2,{0xAD,0xBD,0x00,0x00,}}, {0xE137,2,{0xAD,0xBE,0x00,0x00,}}, {0xE138,2,{0xAD,0xBF,0x00,0x00,}}, {0xE139,2,{0xAD,0xC0,0x00,0x00,}}, {0xE13A,2,{0xAD,0xC1,0x00,0x00,}}, {0xE13B,2,{0xAD,0xC2,0x00,0x00,}}, {0xE13C,2,{0xAD,0xC3,0x00,0x00,}}, {0xE13D,2,{0xAD,0xC4,0x00,0x00,}}, {0xE13E,2,{0xAD,0xC5,0x00,0x00,}}, {0xE13F,2,{0xAD,0xC6,0x00,0x00,}}, {0xE140,2,{0xAD,0xC7,0x00,0x00,}}, {0xE141,2,{0xAD,0xC8,0x00,0x00,}}, {0xE142,2,{0xAD,0xC9,0x00,0x00,}}, {0xE143,2,{0xAD,0xCA,0x00,0x00,}}, {0xE144,2,{0xAD,0xCB,0x00,0x00,}}, {0xE145,2,{0xAD,0xCC,0x00,0x00,}}, {0xE146,2,{0xAD,0xCD,0x00,0x00,}}, {0xE147,2,{0xAD,0xCE,0x00,0x00,}}, {0xE148,2,{0xAD,0xCF,0x00,0x00,}}, {0xE149,2,{0xAD,0xD0,0x00,0x00,}}, {0xE14A,2,{0xAD,0xD1,0x00,0x00,}}, {0xE14B,2,{0xAD,0xD2,0x00,0x00,}}, {0xE14C,2,{0xAD,0xD3,0x00,0x00,}}, {0xE14D,2,{0xAD,0xD4,0x00,0x00,}}, {0xE14E,2,{0xAD,0xD5,0x00,0x00,}}, {0xE14F,2,{0xAD,0xD6,0x00,0x00,}}, {0xE150,2,{0xAD,0xD7,0x00,0x00,}}, {0xE151,2,{0xAD,0xD8,0x00,0x00,}}, {0xE152,2,{0xAD,0xD9,0x00,0x00,}}, {0xE153,2,{0xAD,0xDA,0x00,0x00,}}, {0xE154,2,{0xAD,0xDB,0x00,0x00,}}, {0xE155,2,{0xAD,0xDC,0x00,0x00,}}, {0xE156,2,{0xAD,0xDD,0x00,0x00,}}, {0xE157,2,{0xAD,0xDE,0x00,0x00,}}, {0xE158,2,{0xAD,0xDF,0x00,0x00,}}, {0xE159,2,{0xAD,0xE0,0x00,0x00,}}, {0xE15A,2,{0xAD,0xE1,0x00,0x00,}}, {0xE15B,2,{0xAD,0xE2,0x00,0x00,}}, {0xE15C,2,{0xAD,0xE3,0x00,0x00,}}, {0xE15D,2,{0xAD,0xE4,0x00,0x00,}}, {0xE15E,2,{0xAD,0xE5,0x00,0x00,}}, {0xE15F,2,{0xAD,0xE6,0x00,0x00,}}, {0xE160,2,{0xAD,0xE7,0x00,0x00,}}, {0xE161,2,{0xAD,0xE8,0x00,0x00,}}, {0xE162,2,{0xAD,0xE9,0x00,0x00,}}, {0xE163,2,{0xAD,0xEA,0x00,0x00,}}, {0xE164,2,{0xAD,0xEB,0x00,0x00,}}, {0xE165,2,{0xAD,0xEC,0x00,0x00,}}, {0xE166,2,{0xAD,0xED,0x00,0x00,}}, {0xE167,2,{0xAD,0xEE,0x00,0x00,}}, {0xE168,2,{0xAD,0xEF,0x00,0x00,}}, {0xE169,2,{0xAD,0xF0,0x00,0x00,}}, {0xE16A,2,{0xAD,0xF1,0x00,0x00,}}, {0xE16B,2,{0xAD,0xF2,0x00,0x00,}}, {0xE16C,2,{0xAD,0xF3,0x00,0x00,}}, {0xE16D,2,{0xAD,0xF4,0x00,0x00,}}, {0xE16E,2,{0xAD,0xF5,0x00,0x00,}}, {0xE16F,2,{0xAD,0xF6,0x00,0x00,}}, {0xE170,2,{0xAD,0xF7,0x00,0x00,}}, {0xE171,2,{0xAD,0xF8,0x00,0x00,}}, {0xE172,2,{0xAD,0xF9,0x00,0x00,}}, {0xE173,2,{0xAD,0xFA,0x00,0x00,}}, {0xE174,2,{0xAD,0xFB,0x00,0x00,}}, {0xE175,2,{0xAD,0xFC,0x00,0x00,}}, {0xE176,2,{0xAD,0xFD,0x00,0x00,}}, {0xE177,2,{0xAD,0xFE,0x00,0x00,}}, {0xE178,2,{0xAE,0xA1,0x00,0x00,}}, {0xE179,2,{0xAE,0xA2,0x00,0x00,}}, {0xE17A,2,{0xAE,0xA3,0x00,0x00,}}, {0xE17B,2,{0xAE,0xA4,0x00,0x00,}}, {0xE17C,2,{0xAE,0xA5,0x00,0x00,}}, {0xE17D,2,{0xAE,0xA6,0x00,0x00,}}, {0xE17E,2,{0xAE,0xA7,0x00,0x00,}}, {0xE17F,2,{0xAE,0xA8,0x00,0x00,}}, {0xE180,2,{0xAE,0xA9,0x00,0x00,}}, {0xE181,2,{0xAE,0xAA,0x00,0x00,}}, {0xE182,2,{0xAE,0xAB,0x00,0x00,}}, {0xE183,2,{0xAE,0xAC,0x00,0x00,}}, {0xE184,2,{0xAE,0xAD,0x00,0x00,}}, {0xE185,2,{0xAE,0xAE,0x00,0x00,}}, {0xE186,2,{0xAE,0xAF,0x00,0x00,}}, {0xE187,2,{0xAE,0xB0,0x00,0x00,}}, {0xE188,2,{0xAE,0xB1,0x00,0x00,}}, {0xE189,2,{0xAE,0xB2,0x00,0x00,}}, {0xE18A,2,{0xAE,0xB3,0x00,0x00,}}, {0xE18B,2,{0xAE,0xB4,0x00,0x00,}}, {0xE18C,2,{0xAE,0xB5,0x00,0x00,}}, {0xE18D,2,{0xAE,0xB6,0x00,0x00,}}, {0xE18E,2,{0xAE,0xB7,0x00,0x00,}}, {0xE18F,2,{0xAE,0xB8,0x00,0x00,}}, {0xE190,2,{0xAE,0xB9,0x00,0x00,}}, {0xE191,2,{0xAE,0xBA,0x00,0x00,}}, {0xE192,2,{0xAE,0xBB,0x00,0x00,}}, {0xE193,2,{0xAE,0xBC,0x00,0x00,}}, {0xE194,2,{0xAE,0xBD,0x00,0x00,}}, {0xE195,2,{0xAE,0xBE,0x00,0x00,}}, {0xE196,2,{0xAE,0xBF,0x00,0x00,}}, {0xE197,2,{0xAE,0xC0,0x00,0x00,}}, {0xE198,2,{0xAE,0xC1,0x00,0x00,}}, {0xE199,2,{0xAE,0xC2,0x00,0x00,}}, {0xE19A,2,{0xAE,0xC3,0x00,0x00,}}, {0xE19B,2,{0xAE,0xC4,0x00,0x00,}}, {0xE19C,2,{0xAE,0xC5,0x00,0x00,}}, {0xE19D,2,{0xAE,0xC6,0x00,0x00,}}, {0xE19E,2,{0xAE,0xC7,0x00,0x00,}}, {0xE19F,2,{0xAE,0xC8,0x00,0x00,}}, {0xE1A0,2,{0xAE,0xC9,0x00,0x00,}}, {0xE1A1,2,{0xAE,0xCA,0x00,0x00,}}, {0xE1A2,2,{0xAE,0xCB,0x00,0x00,}}, {0xE1A3,2,{0xAE,0xCC,0x00,0x00,}}, {0xE1A4,2,{0xAE,0xCD,0x00,0x00,}}, {0xE1A5,2,{0xAE,0xCE,0x00,0x00,}}, {0xE1A6,2,{0xAE,0xCF,0x00,0x00,}}, {0xE1A7,2,{0xAE,0xD0,0x00,0x00,}}, {0xE1A8,2,{0xAE,0xD1,0x00,0x00,}}, {0xE1A9,2,{0xAE,0xD2,0x00,0x00,}}, {0xE1AA,2,{0xAE,0xD3,0x00,0x00,}}, {0xE1AB,2,{0xAE,0xD4,0x00,0x00,}}, {0xE1AC,2,{0xAE,0xD5,0x00,0x00,}}, {0xE1AD,2,{0xAE,0xD6,0x00,0x00,}}, {0xE1AE,2,{0xAE,0xD7,0x00,0x00,}}, {0xE1AF,2,{0xAE,0xD8,0x00,0x00,}}, {0xE1B0,2,{0xAE,0xD9,0x00,0x00,}}, {0xE1B1,2,{0xAE,0xDA,0x00,0x00,}}, {0xE1B2,2,{0xAE,0xDB,0x00,0x00,}}, {0xE1B3,2,{0xAE,0xDC,0x00,0x00,}}, {0xE1B4,2,{0xAE,0xDD,0x00,0x00,}}, {0xE1B5,2,{0xAE,0xDE,0x00,0x00,}}, {0xE1B6,2,{0xAE,0xDF,0x00,0x00,}}, {0xE1B7,2,{0xAE,0xE0,0x00,0x00,}}, {0xE1B8,2,{0xAE,0xE1,0x00,0x00,}}, {0xE1B9,2,{0xAE,0xE2,0x00,0x00,}}, {0xE1BA,2,{0xAE,0xE3,0x00,0x00,}}, {0xE1BB,2,{0xAE,0xE4,0x00,0x00,}}, {0xE1BC,2,{0xAE,0xE5,0x00,0x00,}}, {0xE1BD,2,{0xAE,0xE6,0x00,0x00,}}, {0xE1BE,2,{0xAE,0xE7,0x00,0x00,}}, {0xE1BF,2,{0xAE,0xE8,0x00,0x00,}}, {0xE1C0,2,{0xAE,0xE9,0x00,0x00,}}, {0xE1C1,2,{0xAE,0xEA,0x00,0x00,}}, {0xE1C2,2,{0xAE,0xEB,0x00,0x00,}}, {0xE1C3,2,{0xAE,0xEC,0x00,0x00,}}, {0xE1C4,2,{0xAE,0xED,0x00,0x00,}}, {0xE1C5,2,{0xAE,0xEE,0x00,0x00,}}, {0xE1C6,2,{0xAE,0xEF,0x00,0x00,}}, {0xE1C7,2,{0xAE,0xF0,0x00,0x00,}}, {0xE1C8,2,{0xAE,0xF1,0x00,0x00,}}, {0xE1C9,2,{0xAE,0xF2,0x00,0x00,}}, {0xE1CA,2,{0xAE,0xF3,0x00,0x00,}}, {0xE1CB,2,{0xAE,0xF4,0x00,0x00,}}, {0xE1CC,2,{0xAE,0xF5,0x00,0x00,}}, {0xE1CD,2,{0xAE,0xF6,0x00,0x00,}}, {0xE1CE,2,{0xAE,0xF7,0x00,0x00,}}, {0xE1CF,2,{0xAE,0xF8,0x00,0x00,}}, {0xE1D0,2,{0xAE,0xF9,0x00,0x00,}}, {0xE1D1,2,{0xAE,0xFA,0x00,0x00,}}, {0xE1D2,2,{0xAE,0xFB,0x00,0x00,}}, {0xE1D3,2,{0xAE,0xFC,0x00,0x00,}}, {0xE1D4,2,{0xAE,0xFD,0x00,0x00,}}, {0xE1D5,2,{0xAE,0xFE,0x00,0x00,}}, {0xE1D6,2,{0xAF,0xA1,0x00,0x00,}}, {0xE1D7,2,{0xAF,0xA2,0x00,0x00,}}, {0xE1D8,2,{0xAF,0xA3,0x00,0x00,}}, {0xE1D9,2,{0xAF,0xA4,0x00,0x00,}}, {0xE1DA,2,{0xAF,0xA5,0x00,0x00,}}, {0xE1DB,2,{0xAF,0xA6,0x00,0x00,}}, {0xE1DC,2,{0xAF,0xA7,0x00,0x00,}}, {0xE1DD,2,{0xAF,0xA8,0x00,0x00,}}, {0xE1DE,2,{0xAF,0xA9,0x00,0x00,}}, {0xE1DF,2,{0xAF,0xAA,0x00,0x00,}}, {0xE1E0,2,{0xAF,0xAB,0x00,0x00,}}, {0xE1E1,2,{0xAF,0xAC,0x00,0x00,}}, {0xE1E2,2,{0xAF,0xAD,0x00,0x00,}}, {0xE1E3,2,{0xAF,0xAE,0x00,0x00,}}, {0xE1E4,2,{0xAF,0xAF,0x00,0x00,}}, {0xE1E5,2,{0xAF,0xB0,0x00,0x00,}}, {0xE1E6,2,{0xAF,0xB1,0x00,0x00,}}, {0xE1E7,2,{0xAF,0xB2,0x00,0x00,}}, {0xE1E8,2,{0xAF,0xB3,0x00,0x00,}}, {0xE1E9,2,{0xAF,0xB4,0x00,0x00,}}, {0xE1EA,2,{0xAF,0xB5,0x00,0x00,}}, {0xE1EB,2,{0xAF,0xB6,0x00,0x00,}}, {0xE1EC,2,{0xAF,0xB7,0x00,0x00,}}, {0xE1ED,2,{0xAF,0xB8,0x00,0x00,}}, {0xE1EE,2,{0xAF,0xB9,0x00,0x00,}}, {0xE1EF,2,{0xAF,0xBA,0x00,0x00,}}, {0xE1F0,2,{0xAF,0xBB,0x00,0x00,}}, {0xE1F1,2,{0xAF,0xBC,0x00,0x00,}}, {0xE1F2,2,{0xAF,0xBD,0x00,0x00,}}, {0xE1F3,2,{0xAF,0xBE,0x00,0x00,}}, {0xE1F4,2,{0xAF,0xBF,0x00,0x00,}}, {0xE1F5,2,{0xAF,0xC0,0x00,0x00,}}, {0xE1F6,2,{0xAF,0xC1,0x00,0x00,}}, {0xE1F7,2,{0xAF,0xC2,0x00,0x00,}}, {0xE1F8,2,{0xAF,0xC3,0x00,0x00,}}, {0xE1F9,2,{0xAF,0xC4,0x00,0x00,}}, {0xE1FA,2,{0xAF,0xC5,0x00,0x00,}}, {0xE1FB,2,{0xAF,0xC6,0x00,0x00,}}, {0xE1FC,2,{0xAF,0xC7,0x00,0x00,}}, {0xE1FD,2,{0xAF,0xC8,0x00,0x00,}}, {0xE1FE,2,{0xAF,0xC9,0x00,0x00,}}, {0xE1FF,2,{0xAF,0xCA,0x00,0x00,}}, {0xE200,2,{0xAF,0xCB,0x00,0x00,}}, {0xE201,2,{0xAF,0xCC,0x00,0x00,}}, {0xE202,2,{0xAF,0xCD,0x00,0x00,}}, {0xE203,2,{0xAF,0xCE,0x00,0x00,}}, {0xE204,2,{0xAF,0xCF,0x00,0x00,}}, {0xE205,2,{0xAF,0xD0,0x00,0x00,}}, {0xE206,2,{0xAF,0xD1,0x00,0x00,}}, {0xE207,2,{0xAF,0xD2,0x00,0x00,}}, {0xE208,2,{0xAF,0xD3,0x00,0x00,}}, {0xE209,2,{0xAF,0xD4,0x00,0x00,}}, {0xE20A,2,{0xAF,0xD5,0x00,0x00,}}, {0xE20B,2,{0xAF,0xD6,0x00,0x00,}}, {0xE20C,2,{0xAF,0xD7,0x00,0x00,}}, {0xE20D,2,{0xAF,0xD8,0x00,0x00,}}, {0xE20E,2,{0xAF,0xD9,0x00,0x00,}}, {0xE20F,2,{0xAF,0xDA,0x00,0x00,}}, {0xE210,2,{0xAF,0xDB,0x00,0x00,}}, {0xE211,2,{0xAF,0xDC,0x00,0x00,}}, {0xE212,2,{0xAF,0xDD,0x00,0x00,}}, {0xE213,2,{0xAF,0xDE,0x00,0x00,}}, {0xE214,2,{0xAF,0xDF,0x00,0x00,}}, {0xE215,2,{0xAF,0xE0,0x00,0x00,}}, {0xE216,2,{0xAF,0xE1,0x00,0x00,}}, {0xE217,2,{0xAF,0xE2,0x00,0x00,}}, {0xE218,2,{0xAF,0xE3,0x00,0x00,}}, {0xE219,2,{0xAF,0xE4,0x00,0x00,}}, {0xE21A,2,{0xAF,0xE5,0x00,0x00,}}, {0xE21B,2,{0xAF,0xE6,0x00,0x00,}}, {0xE21C,2,{0xAF,0xE7,0x00,0x00,}}, {0xE21D,2,{0xAF,0xE8,0x00,0x00,}}, {0xE21E,2,{0xAF,0xE9,0x00,0x00,}}, {0xE21F,2,{0xAF,0xEA,0x00,0x00,}}, {0xE220,2,{0xAF,0xEB,0x00,0x00,}}, {0xE221,2,{0xAF,0xEC,0x00,0x00,}}, {0xE222,2,{0xAF,0xED,0x00,0x00,}}, {0xE223,2,{0xAF,0xEE,0x00,0x00,}}, {0xE224,2,{0xAF,0xEF,0x00,0x00,}}, {0xE225,2,{0xAF,0xF0,0x00,0x00,}}, {0xE226,2,{0xAF,0xF1,0x00,0x00,}}, {0xE227,2,{0xAF,0xF2,0x00,0x00,}}, {0xE228,2,{0xAF,0xF3,0x00,0x00,}}, {0xE229,2,{0xAF,0xF4,0x00,0x00,}}, {0xE22A,2,{0xAF,0xF5,0x00,0x00,}}, {0xE22B,2,{0xAF,0xF6,0x00,0x00,}}, {0xE22C,2,{0xAF,0xF7,0x00,0x00,}}, {0xE22D,2,{0xAF,0xF8,0x00,0x00,}}, {0xE22E,2,{0xAF,0xF9,0x00,0x00,}}, {0xE22F,2,{0xAF,0xFA,0x00,0x00,}}, {0xE230,2,{0xAF,0xFB,0x00,0x00,}}, {0xE231,2,{0xAF,0xFC,0x00,0x00,}}, {0xE232,2,{0xAF,0xFD,0x00,0x00,}}, {0xE233,2,{0xAF,0xFE,0x00,0x00,}}, {0xE234,2,{0xF8,0xA1,0x00,0x00,}}, {0xE235,2,{0xF8,0xA2,0x00,0x00,}}, {0xE236,2,{0xF8,0xA3,0x00,0x00,}}, {0xE237,2,{0xF8,0xA4,0x00,0x00,}}, {0xE238,2,{0xF8,0xA5,0x00,0x00,}}, {0xE239,2,{0xF8,0xA6,0x00,0x00,}}, {0xE23A,2,{0xF8,0xA7,0x00,0x00,}}, {0xE23B,2,{0xF8,0xA8,0x00,0x00,}}, {0xE23C,2,{0xF8,0xA9,0x00,0x00,}}, {0xE23D,2,{0xF8,0xAA,0x00,0x00,}}, {0xE23E,2,{0xF8,0xAB,0x00,0x00,}}, {0xE23F,2,{0xF8,0xAC,0x00,0x00,}}, {0xE240,2,{0xF8,0xAD,0x00,0x00,}}, {0xE241,2,{0xF8,0xAE,0x00,0x00,}}, {0xE242,2,{0xF8,0xAF,0x00,0x00,}}, {0xE243,2,{0xF8,0xB0,0x00,0x00,}}, {0xE244,2,{0xF8,0xB1,0x00,0x00,}}, {0xE245,2,{0xF8,0xB2,0x00,0x00,}}, {0xE246,2,{0xF8,0xB3,0x00,0x00,}}, {0xE247,2,{0xF8,0xB4,0x00,0x00,}}, {0xE248,2,{0xF8,0xB5,0x00,0x00,}}, {0xE249,2,{0xF8,0xB6,0x00,0x00,}}, {0xE24A,2,{0xF8,0xB7,0x00,0x00,}}, {0xE24B,2,{0xF8,0xB8,0x00,0x00,}}, {0xE24C,2,{0xF8,0xB9,0x00,0x00,}}, {0xE24D,2,{0xF8,0xBA,0x00,0x00,}}, {0xE24E,2,{0xF8,0xBB,0x00,0x00,}}, {0xE24F,2,{0xF8,0xBC,0x00,0x00,}}, {0xE250,2,{0xF8,0xBD,0x00,0x00,}}, {0xE251,2,{0xF8,0xBE,0x00,0x00,}}, {0xE252,2,{0xF8,0xBF,0x00,0x00,}}, {0xE253,2,{0xF8,0xC0,0x00,0x00,}}, {0xE254,2,{0xF8,0xC1,0x00,0x00,}}, {0xE255,2,{0xF8,0xC2,0x00,0x00,}}, {0xE256,2,{0xF8,0xC3,0x00,0x00,}}, {0xE257,2,{0xF8,0xC4,0x00,0x00,}}, {0xE258,2,{0xF8,0xC5,0x00,0x00,}}, {0xE259,2,{0xF8,0xC6,0x00,0x00,}}, {0xE25A,2,{0xF8,0xC7,0x00,0x00,}}, {0xE25B,2,{0xF8,0xC8,0x00,0x00,}}, {0xE25C,2,{0xF8,0xC9,0x00,0x00,}}, {0xE25D,2,{0xF8,0xCA,0x00,0x00,}}, {0xE25E,2,{0xF8,0xCB,0x00,0x00,}}, {0xE25F,2,{0xF8,0xCC,0x00,0x00,}}, {0xE260,2,{0xF8,0xCD,0x00,0x00,}}, {0xE261,2,{0xF8,0xCE,0x00,0x00,}}, {0xE262,2,{0xF8,0xCF,0x00,0x00,}}, {0xE263,2,{0xF8,0xD0,0x00,0x00,}}, {0xE264,2,{0xF8,0xD1,0x00,0x00,}}, {0xE265,2,{0xF8,0xD2,0x00,0x00,}}, {0xE266,2,{0xF8,0xD3,0x00,0x00,}}, {0xE267,2,{0xF8,0xD4,0x00,0x00,}}, {0xE268,2,{0xF8,0xD5,0x00,0x00,}}, {0xE269,2,{0xF8,0xD6,0x00,0x00,}}, {0xE26A,2,{0xF8,0xD7,0x00,0x00,}}, {0xE26B,2,{0xF8,0xD8,0x00,0x00,}}, {0xE26C,2,{0xF8,0xD9,0x00,0x00,}}, {0xE26D,2,{0xF8,0xDA,0x00,0x00,}}, {0xE26E,2,{0xF8,0xDB,0x00,0x00,}}, {0xE26F,2,{0xF8,0xDC,0x00,0x00,}}, {0xE270,2,{0xF8,0xDD,0x00,0x00,}}, {0xE271,2,{0xF8,0xDE,0x00,0x00,}}, {0xE272,2,{0xF8,0xDF,0x00,0x00,}}, {0xE273,2,{0xF8,0xE0,0x00,0x00,}}, {0xE274,2,{0xF8,0xE1,0x00,0x00,}}, {0xE275,2,{0xF8,0xE2,0x00,0x00,}}, {0xE276,2,{0xF8,0xE3,0x00,0x00,}}, {0xE277,2,{0xF8,0xE4,0x00,0x00,}}, {0xE278,2,{0xF8,0xE5,0x00,0x00,}}, {0xE279,2,{0xF8,0xE6,0x00,0x00,}}, {0xE27A,2,{0xF8,0xE7,0x00,0x00,}}, {0xE27B,2,{0xF8,0xE8,0x00,0x00,}}, {0xE27C,2,{0xF8,0xE9,0x00,0x00,}}, {0xE27D,2,{0xF8,0xEA,0x00,0x00,}}, {0xE27E,2,{0xF8,0xEB,0x00,0x00,}}, {0xE27F,2,{0xF8,0xEC,0x00,0x00,}}, {0xE280,2,{0xF8,0xED,0x00,0x00,}}, {0xE281,2,{0xF8,0xEE,0x00,0x00,}}, {0xE282,2,{0xF8,0xEF,0x00,0x00,}}, {0xE283,2,{0xF8,0xF0,0x00,0x00,}}, {0xE284,2,{0xF8,0xF1,0x00,0x00,}}, {0xE285,2,{0xF8,0xF2,0x00,0x00,}}, {0xE286,2,{0xF8,0xF3,0x00,0x00,}}, {0xE287,2,{0xF8,0xF4,0x00,0x00,}}, {0xE288,2,{0xF8,0xF5,0x00,0x00,}}, {0xE289,2,{0xF8,0xF6,0x00,0x00,}}, {0xE28A,2,{0xF8,0xF7,0x00,0x00,}}, {0xE28B,2,{0xF8,0xF8,0x00,0x00,}}, {0xE28C,2,{0xF8,0xF9,0x00,0x00,}}, {0xE28D,2,{0xF8,0xFA,0x00,0x00,}}, {0xE28E,2,{0xF8,0xFB,0x00,0x00,}}, {0xE28F,2,{0xF8,0xFC,0x00,0x00,}}, {0xE290,2,{0xF8,0xFD,0x00,0x00,}}, {0xE291,2,{0xF8,0xFE,0x00,0x00,}}, {0xE292,2,{0xF9,0xA1,0x00,0x00,}}, {0xE293,2,{0xF9,0xA2,0x00,0x00,}}, {0xE294,2,{0xF9,0xA3,0x00,0x00,}}, {0xE295,2,{0xF9,0xA4,0x00,0x00,}}, {0xE296,2,{0xF9,0xA5,0x00,0x00,}}, {0xE297,2,{0xF9,0xA6,0x00,0x00,}}, {0xE298,2,{0xF9,0xA7,0x00,0x00,}}, {0xE299,2,{0xF9,0xA8,0x00,0x00,}}, {0xE29A,2,{0xF9,0xA9,0x00,0x00,}}, {0xE29B,2,{0xF9,0xAA,0x00,0x00,}}, {0xE29C,2,{0xF9,0xAB,0x00,0x00,}}, {0xE29D,2,{0xF9,0xAC,0x00,0x00,}}, {0xE29E,2,{0xF9,0xAD,0x00,0x00,}}, {0xE29F,2,{0xF9,0xAE,0x00,0x00,}}, {0xE2A0,2,{0xF9,0xAF,0x00,0x00,}}, {0xE2A1,2,{0xF9,0xB0,0x00,0x00,}}, {0xE2A2,2,{0xF9,0xB1,0x00,0x00,}}, {0xE2A3,2,{0xF9,0xB2,0x00,0x00,}}, {0xE2A4,2,{0xF9,0xB3,0x00,0x00,}}, {0xE2A5,2,{0xF9,0xB4,0x00,0x00,}}, {0xE2A6,2,{0xF9,0xB5,0x00,0x00,}}, {0xE2A7,2,{0xF9,0xB6,0x00,0x00,}}, {0xE2A8,2,{0xF9,0xB7,0x00,0x00,}}, {0xE2A9,2,{0xF9,0xB8,0x00,0x00,}}, {0xE2AA,2,{0xF9,0xB9,0x00,0x00,}}, {0xE2AB,2,{0xF9,0xBA,0x00,0x00,}}, {0xE2AC,2,{0xF9,0xBB,0x00,0x00,}}, {0xE2AD,2,{0xF9,0xBC,0x00,0x00,}}, {0xE2AE,2,{0xF9,0xBD,0x00,0x00,}}, {0xE2AF,2,{0xF9,0xBE,0x00,0x00,}}, {0xE2B0,2,{0xF9,0xBF,0x00,0x00,}}, {0xE2B1,2,{0xF9,0xC0,0x00,0x00,}}, {0xE2B2,2,{0xF9,0xC1,0x00,0x00,}}, {0xE2B3,2,{0xF9,0xC2,0x00,0x00,}}, {0xE2B4,2,{0xF9,0xC3,0x00,0x00,}}, {0xE2B5,2,{0xF9,0xC4,0x00,0x00,}}, {0xE2B6,2,{0xF9,0xC5,0x00,0x00,}}, {0xE2B7,2,{0xF9,0xC6,0x00,0x00,}}, {0xE2B8,2,{0xF9,0xC7,0x00,0x00,}}, {0xE2B9,2,{0xF9,0xC8,0x00,0x00,}}, {0xE2BA,2,{0xF9,0xC9,0x00,0x00,}}, {0xE2BB,2,{0xF9,0xCA,0x00,0x00,}}, {0xE2BC,2,{0xF9,0xCB,0x00,0x00,}}, {0xE2BD,2,{0xF9,0xCC,0x00,0x00,}}, {0xE2BE,2,{0xF9,0xCD,0x00,0x00,}}, {0xE2BF,2,{0xF9,0xCE,0x00,0x00,}}, {0xE2C0,2,{0xF9,0xCF,0x00,0x00,}}, {0xE2C1,2,{0xF9,0xD0,0x00,0x00,}}, {0xE2C2,2,{0xF9,0xD1,0x00,0x00,}}, {0xE2C3,2,{0xF9,0xD2,0x00,0x00,}}, {0xE2C4,2,{0xF9,0xD3,0x00,0x00,}}, {0xE2C5,2,{0xF9,0xD4,0x00,0x00,}}, {0xE2C6,2,{0xF9,0xD5,0x00,0x00,}}, {0xE2C7,2,{0xF9,0xD6,0x00,0x00,}}, {0xE2C8,2,{0xF9,0xD7,0x00,0x00,}}, {0xE2C9,2,{0xF9,0xD8,0x00,0x00,}}, {0xE2CA,2,{0xF9,0xD9,0x00,0x00,}}, {0xE2CB,2,{0xF9,0xDA,0x00,0x00,}}, {0xE2CC,2,{0xF9,0xDB,0x00,0x00,}}, {0xE2CD,2,{0xF9,0xDC,0x00,0x00,}}, {0xE2CE,2,{0xF9,0xDD,0x00,0x00,}}, {0xE2CF,2,{0xF9,0xDE,0x00,0x00,}}, {0xE2D0,2,{0xF9,0xDF,0x00,0x00,}}, {0xE2D1,2,{0xF9,0xE0,0x00,0x00,}}, {0xE2D2,2,{0xF9,0xE1,0x00,0x00,}}, {0xE2D3,2,{0xF9,0xE2,0x00,0x00,}}, {0xE2D4,2,{0xF9,0xE3,0x00,0x00,}}, {0xE2D5,2,{0xF9,0xE4,0x00,0x00,}}, {0xE2D6,2,{0xF9,0xE5,0x00,0x00,}}, {0xE2D7,2,{0xF9,0xE6,0x00,0x00,}}, {0xE2D8,2,{0xF9,0xE7,0x00,0x00,}}, {0xE2D9,2,{0xF9,0xE8,0x00,0x00,}}, {0xE2DA,2,{0xF9,0xE9,0x00,0x00,}}, {0xE2DB,2,{0xF9,0xEA,0x00,0x00,}}, {0xE2DC,2,{0xF9,0xEB,0x00,0x00,}}, {0xE2DD,2,{0xF9,0xEC,0x00,0x00,}}, {0xE2DE,2,{0xF9,0xED,0x00,0x00,}}, {0xE2DF,2,{0xF9,0xEE,0x00,0x00,}}, {0xE2E0,2,{0xF9,0xEF,0x00,0x00,}}, {0xE2E1,2,{0xF9,0xF0,0x00,0x00,}}, {0xE2E2,2,{0xF9,0xF1,0x00,0x00,}}, {0xE2E3,2,{0xF9,0xF2,0x00,0x00,}}, {0xE2E4,2,{0xF9,0xF3,0x00,0x00,}}, {0xE2E5,2,{0xF9,0xF4,0x00,0x00,}}, {0xE2E6,2,{0xF9,0xF5,0x00,0x00,}}, {0xE2E7,2,{0xF9,0xF6,0x00,0x00,}}, {0xE2E8,2,{0xF9,0xF7,0x00,0x00,}}, {0xE2E9,2,{0xF9,0xF8,0x00,0x00,}}, {0xE2EA,2,{0xF9,0xF9,0x00,0x00,}}, {0xE2EB,2,{0xF9,0xFA,0x00,0x00,}}, {0xE2EC,2,{0xF9,0xFB,0x00,0x00,}}, {0xE2ED,2,{0xF9,0xFC,0x00,0x00,}}, {0xE2EE,2,{0xF9,0xFD,0x00,0x00,}}, {0xE2EF,2,{0xF9,0xFE,0x00,0x00,}}, {0xE2F0,2,{0xFA,0xA1,0x00,0x00,}}, {0xE2F1,2,{0xFA,0xA2,0x00,0x00,}}, {0xE2F2,2,{0xFA,0xA3,0x00,0x00,}}, {0xE2F3,2,{0xFA,0xA4,0x00,0x00,}}, {0xE2F4,2,{0xFA,0xA5,0x00,0x00,}}, {0xE2F5,2,{0xFA,0xA6,0x00,0x00,}}, {0xE2F6,2,{0xFA,0xA7,0x00,0x00,}}, {0xE2F7,2,{0xFA,0xA8,0x00,0x00,}}, {0xE2F8,2,{0xFA,0xA9,0x00,0x00,}}, {0xE2F9,2,{0xFA,0xAA,0x00,0x00,}}, {0xE2FA,2,{0xFA,0xAB,0x00,0x00,}}, {0xE2FB,2,{0xFA,0xAC,0x00,0x00,}}, {0xE2FC,2,{0xFA,0xAD,0x00,0x00,}}, {0xE2FD,2,{0xFA,0xAE,0x00,0x00,}}, {0xE2FE,2,{0xFA,0xAF,0x00,0x00,}}, {0xE2FF,2,{0xFA,0xB0,0x00,0x00,}}, {0xE300,2,{0xFA,0xB1,0x00,0x00,}}, {0xE301,2,{0xFA,0xB2,0x00,0x00,}}, {0xE302,2,{0xFA,0xB3,0x00,0x00,}}, {0xE303,2,{0xFA,0xB4,0x00,0x00,}}, {0xE304,2,{0xFA,0xB5,0x00,0x00,}}, {0xE305,2,{0xFA,0xB6,0x00,0x00,}}, {0xE306,2,{0xFA,0xB7,0x00,0x00,}}, {0xE307,2,{0xFA,0xB8,0x00,0x00,}}, {0xE308,2,{0xFA,0xB9,0x00,0x00,}}, {0xE309,2,{0xFA,0xBA,0x00,0x00,}}, {0xE30A,2,{0xFA,0xBB,0x00,0x00,}}, {0xE30B,2,{0xFA,0xBC,0x00,0x00,}}, {0xE30C,2,{0xFA,0xBD,0x00,0x00,}}, {0xE30D,2,{0xFA,0xBE,0x00,0x00,}}, {0xE30E,2,{0xFA,0xBF,0x00,0x00,}}, {0xE30F,2,{0xFA,0xC0,0x00,0x00,}}, {0xE310,2,{0xFA,0xC1,0x00,0x00,}}, {0xE311,2,{0xFA,0xC2,0x00,0x00,}}, {0xE312,2,{0xFA,0xC3,0x00,0x00,}}, {0xE313,2,{0xFA,0xC4,0x00,0x00,}}, {0xE314,2,{0xFA,0xC5,0x00,0x00,}}, {0xE315,2,{0xFA,0xC6,0x00,0x00,}}, {0xE316,2,{0xFA,0xC7,0x00,0x00,}}, {0xE317,2,{0xFA,0xC8,0x00,0x00,}}, {0xE318,2,{0xFA,0xC9,0x00,0x00,}}, {0xE319,2,{0xFA,0xCA,0x00,0x00,}}, {0xE31A,2,{0xFA,0xCB,0x00,0x00,}}, {0xE31B,2,{0xFA,0xCC,0x00,0x00,}}, {0xE31C,2,{0xFA,0xCD,0x00,0x00,}}, {0xE31D,2,{0xFA,0xCE,0x00,0x00,}}, {0xE31E,2,{0xFA,0xCF,0x00,0x00,}}, {0xE31F,2,{0xFA,0xD0,0x00,0x00,}}, {0xE320,2,{0xFA,0xD1,0x00,0x00,}}, {0xE321,2,{0xFA,0xD2,0x00,0x00,}}, {0xE322,2,{0xFA,0xD3,0x00,0x00,}}, {0xE323,2,{0xFA,0xD4,0x00,0x00,}}, {0xE324,2,{0xFA,0xD5,0x00,0x00,}}, {0xE325,2,{0xFA,0xD6,0x00,0x00,}}, {0xE326,2,{0xFA,0xD7,0x00,0x00,}}, {0xE327,2,{0xFA,0xD8,0x00,0x00,}}, {0xE328,2,{0xFA,0xD9,0x00,0x00,}}, {0xE329,2,{0xFA,0xDA,0x00,0x00,}}, {0xE32A,2,{0xFA,0xDB,0x00,0x00,}}, {0xE32B,2,{0xFA,0xDC,0x00,0x00,}}, {0xE32C,2,{0xFA,0xDD,0x00,0x00,}}, {0xE32D,2,{0xFA,0xDE,0x00,0x00,}}, {0xE32E,2,{0xFA,0xDF,0x00,0x00,}}, {0xE32F,2,{0xFA,0xE0,0x00,0x00,}}, {0xE330,2,{0xFA,0xE1,0x00,0x00,}}, {0xE331,2,{0xFA,0xE2,0x00,0x00,}}, {0xE332,2,{0xFA,0xE3,0x00,0x00,}}, {0xE333,2,{0xFA,0xE4,0x00,0x00,}}, {0xE334,2,{0xFA,0xE5,0x00,0x00,}}, {0xE335,2,{0xFA,0xE6,0x00,0x00,}}, {0xE336,2,{0xFA,0xE7,0x00,0x00,}}, {0xE337,2,{0xFA,0xE8,0x00,0x00,}}, {0xE338,2,{0xFA,0xE9,0x00,0x00,}}, {0xE339,2,{0xFA,0xEA,0x00,0x00,}}, {0xE33A,2,{0xFA,0xEB,0x00,0x00,}}, {0xE33B,2,{0xFA,0xEC,0x00,0x00,}}, {0xE33C,2,{0xFA,0xED,0x00,0x00,}}, {0xE33D,2,{0xFA,0xEE,0x00,0x00,}}, {0xE33E,2,{0xFA,0xEF,0x00,0x00,}}, {0xE33F,2,{0xFA,0xF0,0x00,0x00,}}, {0xE340,2,{0xFA,0xF1,0x00,0x00,}}, {0xE341,2,{0xFA,0xF2,0x00,0x00,}}, {0xE342,2,{0xFA,0xF3,0x00,0x00,}}, {0xE343,2,{0xFA,0xF4,0x00,0x00,}}, {0xE344,2,{0xFA,0xF5,0x00,0x00,}}, {0xE345,2,{0xFA,0xF6,0x00,0x00,}}, {0xE346,2,{0xFA,0xF7,0x00,0x00,}}, {0xE347,2,{0xFA,0xF8,0x00,0x00,}}, {0xE348,2,{0xFA,0xF9,0x00,0x00,}}, {0xE349,2,{0xFA,0xFA,0x00,0x00,}}, {0xE34A,2,{0xFA,0xFB,0x00,0x00,}}, {0xE34B,2,{0xFA,0xFC,0x00,0x00,}}, {0xE34C,2,{0xFA,0xFD,0x00,0x00,}}, {0xE34D,2,{0xFA,0xFE,0x00,0x00,}}, {0xE34E,2,{0xFB,0xA1,0x00,0x00,}}, {0xE34F,2,{0xFB,0xA2,0x00,0x00,}}, {0xE350,2,{0xFB,0xA3,0x00,0x00,}}, {0xE351,2,{0xFB,0xA4,0x00,0x00,}}, {0xE352,2,{0xFB,0xA5,0x00,0x00,}}, {0xE353,2,{0xFB,0xA6,0x00,0x00,}}, {0xE354,2,{0xFB,0xA7,0x00,0x00,}}, {0xE355,2,{0xFB,0xA8,0x00,0x00,}}, {0xE356,2,{0xFB,0xA9,0x00,0x00,}}, {0xE357,2,{0xFB,0xAA,0x00,0x00,}}, {0xE358,2,{0xFB,0xAB,0x00,0x00,}}, {0xE359,2,{0xFB,0xAC,0x00,0x00,}}, {0xE35A,2,{0xFB,0xAD,0x00,0x00,}}, {0xE35B,2,{0xFB,0xAE,0x00,0x00,}}, {0xE35C,2,{0xFB,0xAF,0x00,0x00,}}, {0xE35D,2,{0xFB,0xB0,0x00,0x00,}}, {0xE35E,2,{0xFB,0xB1,0x00,0x00,}}, {0xE35F,2,{0xFB,0xB2,0x00,0x00,}}, {0xE360,2,{0xFB,0xB3,0x00,0x00,}}, {0xE361,2,{0xFB,0xB4,0x00,0x00,}}, {0xE362,2,{0xFB,0xB5,0x00,0x00,}}, {0xE363,2,{0xFB,0xB6,0x00,0x00,}}, {0xE364,2,{0xFB,0xB7,0x00,0x00,}}, {0xE365,2,{0xFB,0xB8,0x00,0x00,}}, {0xE366,2,{0xFB,0xB9,0x00,0x00,}}, {0xE367,2,{0xFB,0xBA,0x00,0x00,}}, {0xE368,2,{0xFB,0xBB,0x00,0x00,}}, {0xE369,2,{0xFB,0xBC,0x00,0x00,}}, {0xE36A,2,{0xFB,0xBD,0x00,0x00,}}, {0xE36B,2,{0xFB,0xBE,0x00,0x00,}}, {0xE36C,2,{0xFB,0xBF,0x00,0x00,}}, {0xE36D,2,{0xFB,0xC0,0x00,0x00,}}, {0xE36E,2,{0xFB,0xC1,0x00,0x00,}}, {0xE36F,2,{0xFB,0xC2,0x00,0x00,}}, {0xE370,2,{0xFB,0xC3,0x00,0x00,}}, {0xE371,2,{0xFB,0xC4,0x00,0x00,}}, {0xE372,2,{0xFB,0xC5,0x00,0x00,}}, {0xE373,2,{0xFB,0xC6,0x00,0x00,}}, {0xE374,2,{0xFB,0xC7,0x00,0x00,}}, {0xE375,2,{0xFB,0xC8,0x00,0x00,}}, {0xE376,2,{0xFB,0xC9,0x00,0x00,}}, {0xE377,2,{0xFB,0xCA,0x00,0x00,}}, {0xE378,2,{0xFB,0xCB,0x00,0x00,}}, {0xE379,2,{0xFB,0xCC,0x00,0x00,}}, {0xE37A,2,{0xFB,0xCD,0x00,0x00,}}, {0xE37B,2,{0xFB,0xCE,0x00,0x00,}}, {0xE37C,2,{0xFB,0xCF,0x00,0x00,}}, {0xE37D,2,{0xFB,0xD0,0x00,0x00,}}, {0xE37E,2,{0xFB,0xD1,0x00,0x00,}}, {0xE37F,2,{0xFB,0xD2,0x00,0x00,}}, {0xE380,2,{0xFB,0xD3,0x00,0x00,}}, {0xE381,2,{0xFB,0xD4,0x00,0x00,}}, {0xE382,2,{0xFB,0xD5,0x00,0x00,}}, {0xE383,2,{0xFB,0xD6,0x00,0x00,}}, {0xE384,2,{0xFB,0xD7,0x00,0x00,}}, {0xE385,2,{0xFB,0xD8,0x00,0x00,}}, {0xE386,2,{0xFB,0xD9,0x00,0x00,}}, {0xE387,2,{0xFB,0xDA,0x00,0x00,}}, {0xE388,2,{0xFB,0xDB,0x00,0x00,}}, {0xE389,2,{0xFB,0xDC,0x00,0x00,}}, {0xE38A,2,{0xFB,0xDD,0x00,0x00,}}, {0xE38B,2,{0xFB,0xDE,0x00,0x00,}}, {0xE38C,2,{0xFB,0xDF,0x00,0x00,}}, {0xE38D,2,{0xFB,0xE0,0x00,0x00,}}, {0xE38E,2,{0xFB,0xE1,0x00,0x00,}}, {0xE38F,2,{0xFB,0xE2,0x00,0x00,}}, {0xE390,2,{0xFB,0xE3,0x00,0x00,}}, {0xE391,2,{0xFB,0xE4,0x00,0x00,}}, {0xE392,2,{0xFB,0xE5,0x00,0x00,}}, {0xE393,2,{0xFB,0xE6,0x00,0x00,}}, {0xE394,2,{0xFB,0xE7,0x00,0x00,}}, {0xE395,2,{0xFB,0xE8,0x00,0x00,}}, {0xE396,2,{0xFB,0xE9,0x00,0x00,}}, {0xE397,2,{0xFB,0xEA,0x00,0x00,}}, {0xE398,2,{0xFB,0xEB,0x00,0x00,}}, {0xE399,2,{0xFB,0xEC,0x00,0x00,}}, {0xE39A,2,{0xFB,0xED,0x00,0x00,}}, {0xE39B,2,{0xFB,0xEE,0x00,0x00,}}, {0xE39C,2,{0xFB,0xEF,0x00,0x00,}}, {0xE39D,2,{0xFB,0xF0,0x00,0x00,}}, {0xE39E,2,{0xFB,0xF1,0x00,0x00,}}, {0xE39F,2,{0xFB,0xF2,0x00,0x00,}}, {0xE3A0,2,{0xFB,0xF3,0x00,0x00,}}, {0xE3A1,2,{0xFB,0xF4,0x00,0x00,}}, {0xE3A2,2,{0xFB,0xF5,0x00,0x00,}}, {0xE3A3,2,{0xFB,0xF6,0x00,0x00,}}, {0xE3A4,2,{0xFB,0xF7,0x00,0x00,}}, {0xE3A5,2,{0xFB,0xF8,0x00,0x00,}}, {0xE3A6,2,{0xFB,0xF9,0x00,0x00,}}, {0xE3A7,2,{0xFB,0xFA,0x00,0x00,}}, {0xE3A8,2,{0xFB,0xFB,0x00,0x00,}}, {0xE3A9,2,{0xFB,0xFC,0x00,0x00,}}, {0xE3AA,2,{0xFB,0xFD,0x00,0x00,}}, {0xE3AB,2,{0xFB,0xFE,0x00,0x00,}}, {0xE3AC,2,{0xFC,0xA1,0x00,0x00,}}, {0xE3AD,2,{0xFC,0xA2,0x00,0x00,}}, {0xE3AE,2,{0xFC,0xA3,0x00,0x00,}}, {0xE3AF,2,{0xFC,0xA4,0x00,0x00,}}, {0xE3B0,2,{0xFC,0xA5,0x00,0x00,}}, {0xE3B1,2,{0xFC,0xA6,0x00,0x00,}}, {0xE3B2,2,{0xFC,0xA7,0x00,0x00,}}, {0xE3B3,2,{0xFC,0xA8,0x00,0x00,}}, {0xE3B4,2,{0xFC,0xA9,0x00,0x00,}}, {0xE3B5,2,{0xFC,0xAA,0x00,0x00,}}, {0xE3B6,2,{0xFC,0xAB,0x00,0x00,}}, {0xE3B7,2,{0xFC,0xAC,0x00,0x00,}}, {0xE3B8,2,{0xFC,0xAD,0x00,0x00,}}, {0xE3B9,2,{0xFC,0xAE,0x00,0x00,}}, {0xE3BA,2,{0xFC,0xAF,0x00,0x00,}}, {0xE3BB,2,{0xFC,0xB0,0x00,0x00,}}, {0xE3BC,2,{0xFC,0xB1,0x00,0x00,}}, {0xE3BD,2,{0xFC,0xB2,0x00,0x00,}}, {0xE3BE,2,{0xFC,0xB3,0x00,0x00,}}, {0xE3BF,2,{0xFC,0xB4,0x00,0x00,}}, {0xE3C0,2,{0xFC,0xB5,0x00,0x00,}}, {0xE3C1,2,{0xFC,0xB6,0x00,0x00,}}, {0xE3C2,2,{0xFC,0xB7,0x00,0x00,}}, {0xE3C3,2,{0xFC,0xB8,0x00,0x00,}}, {0xE3C4,2,{0xFC,0xB9,0x00,0x00,}}, {0xE3C5,2,{0xFC,0xBA,0x00,0x00,}}, {0xE3C6,2,{0xFC,0xBB,0x00,0x00,}}, {0xE3C7,2,{0xFC,0xBC,0x00,0x00,}}, {0xE3C8,2,{0xFC,0xBD,0x00,0x00,}}, {0xE3C9,2,{0xFC,0xBE,0x00,0x00,}}, {0xE3CA,2,{0xFC,0xBF,0x00,0x00,}}, {0xE3CB,2,{0xFC,0xC0,0x00,0x00,}}, {0xE3CC,2,{0xFC,0xC1,0x00,0x00,}}, {0xE3CD,2,{0xFC,0xC2,0x00,0x00,}}, {0xE3CE,2,{0xFC,0xC3,0x00,0x00,}}, {0xE3CF,2,{0xFC,0xC4,0x00,0x00,}}, {0xE3D0,2,{0xFC,0xC5,0x00,0x00,}}, {0xE3D1,2,{0xFC,0xC6,0x00,0x00,}}, {0xE3D2,2,{0xFC,0xC7,0x00,0x00,}}, {0xE3D3,2,{0xFC,0xC8,0x00,0x00,}}, {0xE3D4,2,{0xFC,0xC9,0x00,0x00,}}, {0xE3D5,2,{0xFC,0xCA,0x00,0x00,}}, {0xE3D6,2,{0xFC,0xCB,0x00,0x00,}}, {0xE3D7,2,{0xFC,0xCC,0x00,0x00,}}, {0xE3D8,2,{0xFC,0xCD,0x00,0x00,}}, {0xE3D9,2,{0xFC,0xCE,0x00,0x00,}}, {0xE3DA,2,{0xFC,0xCF,0x00,0x00,}}, {0xE3DB,2,{0xFC,0xD0,0x00,0x00,}}, {0xE3DC,2,{0xFC,0xD1,0x00,0x00,}}, {0xE3DD,2,{0xFC,0xD2,0x00,0x00,}}, {0xE3DE,2,{0xFC,0xD3,0x00,0x00,}}, {0xE3DF,2,{0xFC,0xD4,0x00,0x00,}}, {0xE3E0,2,{0xFC,0xD5,0x00,0x00,}}, {0xE3E1,2,{0xFC,0xD6,0x00,0x00,}}, {0xE3E2,2,{0xFC,0xD7,0x00,0x00,}}, {0xE3E3,2,{0xFC,0xD8,0x00,0x00,}}, {0xE3E4,2,{0xFC,0xD9,0x00,0x00,}}, {0xE3E5,2,{0xFC,0xDA,0x00,0x00,}}, {0xE3E6,2,{0xFC,0xDB,0x00,0x00,}}, {0xE3E7,2,{0xFC,0xDC,0x00,0x00,}}, {0xE3E8,2,{0xFC,0xDD,0x00,0x00,}}, {0xE3E9,2,{0xFC,0xDE,0x00,0x00,}}, {0xE3EA,2,{0xFC,0xDF,0x00,0x00,}}, {0xE3EB,2,{0xFC,0xE0,0x00,0x00,}}, {0xE3EC,2,{0xFC,0xE1,0x00,0x00,}}, {0xE3ED,2,{0xFC,0xE2,0x00,0x00,}}, {0xE3EE,2,{0xFC,0xE3,0x00,0x00,}}, {0xE3EF,2,{0xFC,0xE4,0x00,0x00,}}, {0xE3F0,2,{0xFC,0xE5,0x00,0x00,}}, {0xE3F1,2,{0xFC,0xE6,0x00,0x00,}}, {0xE3F2,2,{0xFC,0xE7,0x00,0x00,}}, {0xE3F3,2,{0xFC,0xE8,0x00,0x00,}}, {0xE3F4,2,{0xFC,0xE9,0x00,0x00,}}, {0xE3F5,2,{0xFC,0xEA,0x00,0x00,}}, {0xE3F6,2,{0xFC,0xEB,0x00,0x00,}}, {0xE3F7,2,{0xFC,0xEC,0x00,0x00,}}, {0xE3F8,2,{0xFC,0xED,0x00,0x00,}}, {0xE3F9,2,{0xFC,0xEE,0x00,0x00,}}, {0xE3FA,2,{0xFC,0xEF,0x00,0x00,}}, {0xE3FB,2,{0xFC,0xF0,0x00,0x00,}}, {0xE3FC,2,{0xFC,0xF1,0x00,0x00,}}, {0xE3FD,2,{0xFC,0xF2,0x00,0x00,}}, {0xE3FE,2,{0xFC,0xF3,0x00,0x00,}}, {0xE3FF,2,{0xFC,0xF4,0x00,0x00,}}, {0xE400,2,{0xFC,0xF5,0x00,0x00,}}, {0xE401,2,{0xFC,0xF6,0x00,0x00,}}, {0xE402,2,{0xFC,0xF7,0x00,0x00,}}, {0xE403,2,{0xFC,0xF8,0x00,0x00,}}, {0xE404,2,{0xFC,0xF9,0x00,0x00,}}, {0xE405,2,{0xFC,0xFA,0x00,0x00,}}, {0xE406,2,{0xFC,0xFB,0x00,0x00,}}, {0xE407,2,{0xFC,0xFC,0x00,0x00,}}, {0xE408,2,{0xFC,0xFD,0x00,0x00,}}, {0xE409,2,{0xFC,0xFE,0x00,0x00,}}, {0xE40A,2,{0xFD,0xA1,0x00,0x00,}}, {0xE40B,2,{0xFD,0xA2,0x00,0x00,}}, {0xE40C,2,{0xFD,0xA3,0x00,0x00,}}, {0xE40D,2,{0xFD,0xA4,0x00,0x00,}}, {0xE40E,2,{0xFD,0xA5,0x00,0x00,}}, {0xE40F,2,{0xFD,0xA6,0x00,0x00,}}, {0xE410,2,{0xFD,0xA7,0x00,0x00,}}, {0xE411,2,{0xFD,0xA8,0x00,0x00,}}, {0xE412,2,{0xFD,0xA9,0x00,0x00,}}, {0xE413,2,{0xFD,0xAA,0x00,0x00,}}, {0xE414,2,{0xFD,0xAB,0x00,0x00,}}, {0xE415,2,{0xFD,0xAC,0x00,0x00,}}, {0xE416,2,{0xFD,0xAD,0x00,0x00,}}, {0xE417,2,{0xFD,0xAE,0x00,0x00,}}, {0xE418,2,{0xFD,0xAF,0x00,0x00,}}, {0xE419,2,{0xFD,0xB0,0x00,0x00,}}, {0xE41A,2,{0xFD,0xB1,0x00,0x00,}}, {0xE41B,2,{0xFD,0xB2,0x00,0x00,}}, {0xE41C,2,{0xFD,0xB3,0x00,0x00,}}, {0xE41D,2,{0xFD,0xB4,0x00,0x00,}}, {0xE41E,2,{0xFD,0xB5,0x00,0x00,}}, {0xE41F,2,{0xFD,0xB6,0x00,0x00,}}, {0xE420,2,{0xFD,0xB7,0x00,0x00,}}, {0xE421,2,{0xFD,0xB8,0x00,0x00,}}, {0xE422,2,{0xFD,0xB9,0x00,0x00,}}, {0xE423,2,{0xFD,0xBA,0x00,0x00,}}, {0xE424,2,{0xFD,0xBB,0x00,0x00,}}, {0xE425,2,{0xFD,0xBC,0x00,0x00,}}, {0xE426,2,{0xFD,0xBD,0x00,0x00,}}, {0xE427,2,{0xFD,0xBE,0x00,0x00,}}, {0xE428,2,{0xFD,0xBF,0x00,0x00,}}, {0xE429,2,{0xFD,0xC0,0x00,0x00,}}, {0xE42A,2,{0xFD,0xC1,0x00,0x00,}}, {0xE42B,2,{0xFD,0xC2,0x00,0x00,}}, {0xE42C,2,{0xFD,0xC3,0x00,0x00,}}, {0xE42D,2,{0xFD,0xC4,0x00,0x00,}}, {0xE42E,2,{0xFD,0xC5,0x00,0x00,}}, {0xE42F,2,{0xFD,0xC6,0x00,0x00,}}, {0xE430,2,{0xFD,0xC7,0x00,0x00,}}, {0xE431,2,{0xFD,0xC8,0x00,0x00,}}, {0xE432,2,{0xFD,0xC9,0x00,0x00,}}, {0xE433,2,{0xFD,0xCA,0x00,0x00,}}, {0xE434,2,{0xFD,0xCB,0x00,0x00,}}, {0xE435,2,{0xFD,0xCC,0x00,0x00,}}, {0xE436,2,{0xFD,0xCD,0x00,0x00,}}, {0xE437,2,{0xFD,0xCE,0x00,0x00,}}, {0xE438,2,{0xFD,0xCF,0x00,0x00,}}, {0xE439,2,{0xFD,0xD0,0x00,0x00,}}, {0xE43A,2,{0xFD,0xD1,0x00,0x00,}}, {0xE43B,2,{0xFD,0xD2,0x00,0x00,}}, {0xE43C,2,{0xFD,0xD3,0x00,0x00,}}, {0xE43D,2,{0xFD,0xD4,0x00,0x00,}}, {0xE43E,2,{0xFD,0xD5,0x00,0x00,}}, {0xE43F,2,{0xFD,0xD6,0x00,0x00,}}, {0xE440,2,{0xFD,0xD7,0x00,0x00,}}, {0xE441,2,{0xFD,0xD8,0x00,0x00,}}, {0xE442,2,{0xFD,0xD9,0x00,0x00,}}, {0xE443,2,{0xFD,0xDA,0x00,0x00,}}, {0xE444,2,{0xFD,0xDB,0x00,0x00,}}, {0xE445,2,{0xFD,0xDC,0x00,0x00,}}, {0xE446,2,{0xFD,0xDD,0x00,0x00,}}, {0xE447,2,{0xFD,0xDE,0x00,0x00,}}, {0xE448,2,{0xFD,0xDF,0x00,0x00,}}, {0xE449,2,{0xFD,0xE0,0x00,0x00,}}, {0xE44A,2,{0xFD,0xE1,0x00,0x00,}}, {0xE44B,2,{0xFD,0xE2,0x00,0x00,}}, {0xE44C,2,{0xFD,0xE3,0x00,0x00,}}, {0xE44D,2,{0xFD,0xE4,0x00,0x00,}}, {0xE44E,2,{0xFD,0xE5,0x00,0x00,}}, {0xE44F,2,{0xFD,0xE6,0x00,0x00,}}, {0xE450,2,{0xFD,0xE7,0x00,0x00,}}, {0xE451,2,{0xFD,0xE8,0x00,0x00,}}, {0xE452,2,{0xFD,0xE9,0x00,0x00,}}, {0xE453,2,{0xFD,0xEA,0x00,0x00,}}, {0xE454,2,{0xFD,0xEB,0x00,0x00,}}, {0xE455,2,{0xFD,0xEC,0x00,0x00,}}, {0xE456,2,{0xFD,0xED,0x00,0x00,}}, {0xE457,2,{0xFD,0xEE,0x00,0x00,}}, {0xE458,2,{0xFD,0xEF,0x00,0x00,}}, {0xE459,2,{0xFD,0xF0,0x00,0x00,}}, {0xE45A,2,{0xFD,0xF1,0x00,0x00,}}, {0xE45B,2,{0xFD,0xF2,0x00,0x00,}}, {0xE45C,2,{0xFD,0xF3,0x00,0x00,}}, {0xE45D,2,{0xFD,0xF4,0x00,0x00,}}, {0xE45E,2,{0xFD,0xF5,0x00,0x00,}}, {0xE45F,2,{0xFD,0xF6,0x00,0x00,}}, {0xE460,2,{0xFD,0xF7,0x00,0x00,}}, {0xE461,2,{0xFD,0xF8,0x00,0x00,}}, {0xE462,2,{0xFD,0xF9,0x00,0x00,}}, {0xE463,2,{0xFD,0xFA,0x00,0x00,}}, {0xE464,2,{0xFD,0xFB,0x00,0x00,}}, {0xE465,2,{0xFD,0xFC,0x00,0x00,}}, {0xE466,2,{0xFD,0xFD,0x00,0x00,}}, {0xE467,2,{0xFD,0xFE,0x00,0x00,}}, {0xE468,2,{0xFE,0xA1,0x00,0x00,}}, {0xE469,2,{0xFE,0xA2,0x00,0x00,}}, {0xE46A,2,{0xFE,0xA3,0x00,0x00,}}, {0xE46B,2,{0xFE,0xA4,0x00,0x00,}}, {0xE46C,2,{0xFE,0xA5,0x00,0x00,}}, {0xE46D,2,{0xFE,0xA6,0x00,0x00,}}, {0xE46E,2,{0xFE,0xA7,0x00,0x00,}}, {0xE46F,2,{0xFE,0xA8,0x00,0x00,}}, {0xE470,2,{0xFE,0xA9,0x00,0x00,}}, {0xE471,2,{0xFE,0xAA,0x00,0x00,}}, {0xE472,2,{0xFE,0xAB,0x00,0x00,}}, {0xE473,2,{0xFE,0xAC,0x00,0x00,}}, {0xE474,2,{0xFE,0xAD,0x00,0x00,}}, {0xE475,2,{0xFE,0xAE,0x00,0x00,}}, {0xE476,2,{0xFE,0xAF,0x00,0x00,}}, {0xE477,2,{0xFE,0xB0,0x00,0x00,}}, {0xE478,2,{0xFE,0xB1,0x00,0x00,}}, {0xE479,2,{0xFE,0xB2,0x00,0x00,}}, {0xE47A,2,{0xFE,0xB3,0x00,0x00,}}, {0xE47B,2,{0xFE,0xB4,0x00,0x00,}}, {0xE47C,2,{0xFE,0xB5,0x00,0x00,}}, {0xE47D,2,{0xFE,0xB6,0x00,0x00,}}, {0xE47E,2,{0xFE,0xB7,0x00,0x00,}}, {0xE47F,2,{0xFE,0xB8,0x00,0x00,}}, {0xE480,2,{0xFE,0xB9,0x00,0x00,}}, {0xE481,2,{0xFE,0xBA,0x00,0x00,}}, {0xE482,2,{0xFE,0xBB,0x00,0x00,}}, {0xE483,2,{0xFE,0xBC,0x00,0x00,}}, {0xE484,2,{0xFE,0xBD,0x00,0x00,}}, {0xE485,2,{0xFE,0xBE,0x00,0x00,}}, {0xE486,2,{0xFE,0xBF,0x00,0x00,}}, {0xE487,2,{0xFE,0xC0,0x00,0x00,}}, {0xE488,2,{0xFE,0xC1,0x00,0x00,}}, {0xE489,2,{0xFE,0xC2,0x00,0x00,}}, {0xE48A,2,{0xFE,0xC3,0x00,0x00,}}, {0xE48B,2,{0xFE,0xC4,0x00,0x00,}}, {0xE48C,2,{0xFE,0xC5,0x00,0x00,}}, {0xE48D,2,{0xFE,0xC6,0x00,0x00,}}, {0xE48E,2,{0xFE,0xC7,0x00,0x00,}}, {0xE48F,2,{0xFE,0xC8,0x00,0x00,}}, {0xE490,2,{0xFE,0xC9,0x00,0x00,}}, {0xE491,2,{0xFE,0xCA,0x00,0x00,}}, {0xE492,2,{0xFE,0xCB,0x00,0x00,}}, {0xE493,2,{0xFE,0xCC,0x00,0x00,}}, {0xE494,2,{0xFE,0xCD,0x00,0x00,}}, {0xE495,2,{0xFE,0xCE,0x00,0x00,}}, {0xE496,2,{0xFE,0xCF,0x00,0x00,}}, {0xE497,2,{0xFE,0xD0,0x00,0x00,}}, {0xE498,2,{0xFE,0xD1,0x00,0x00,}}, {0xE499,2,{0xFE,0xD2,0x00,0x00,}}, {0xE49A,2,{0xFE,0xD3,0x00,0x00,}}, {0xE49B,2,{0xFE,0xD4,0x00,0x00,}}, {0xE49C,2,{0xFE,0xD5,0x00,0x00,}}, {0xE49D,2,{0xFE,0xD6,0x00,0x00,}}, {0xE49E,2,{0xFE,0xD7,0x00,0x00,}}, {0xE49F,2,{0xFE,0xD8,0x00,0x00,}}, {0xE4A0,2,{0xFE,0xD9,0x00,0x00,}}, {0xE4A1,2,{0xFE,0xDA,0x00,0x00,}}, {0xE4A2,2,{0xFE,0xDB,0x00,0x00,}}, {0xE4A3,2,{0xFE,0xDC,0x00,0x00,}}, {0xE4A4,2,{0xFE,0xDD,0x00,0x00,}}, {0xE4A5,2,{0xFE,0xDE,0x00,0x00,}}, {0xE4A6,2,{0xFE,0xDF,0x00,0x00,}}, {0xE4A7,2,{0xFE,0xE0,0x00,0x00,}}, {0xE4A8,2,{0xFE,0xE1,0x00,0x00,}}, {0xE4A9,2,{0xFE,0xE2,0x00,0x00,}}, {0xE4AA,2,{0xFE,0xE3,0x00,0x00,}}, {0xE4AB,2,{0xFE,0xE4,0x00,0x00,}}, {0xE4AC,2,{0xFE,0xE5,0x00,0x00,}}, {0xE4AD,2,{0xFE,0xE6,0x00,0x00,}}, {0xE4AE,2,{0xFE,0xE7,0x00,0x00,}}, {0xE4AF,2,{0xFE,0xE8,0x00,0x00,}}, {0xE4B0,2,{0xFE,0xE9,0x00,0x00,}}, {0xE4B1,2,{0xFE,0xEA,0x00,0x00,}}, {0xE4B2,2,{0xFE,0xEB,0x00,0x00,}}, {0xE4B3,2,{0xFE,0xEC,0x00,0x00,}}, {0xE4B4,2,{0xFE,0xED,0x00,0x00,}}, {0xE4B5,2,{0xFE,0xEE,0x00,0x00,}}, {0xE4B6,2,{0xFE,0xEF,0x00,0x00,}}, {0xE4B7,2,{0xFE,0xF0,0x00,0x00,}}, {0xE4B8,2,{0xFE,0xF1,0x00,0x00,}}, {0xE4B9,2,{0xFE,0xF2,0x00,0x00,}}, {0xE4BA,2,{0xFE,0xF3,0x00,0x00,}}, {0xE4BB,2,{0xFE,0xF4,0x00,0x00,}}, {0xE4BC,2,{0xFE,0xF5,0x00,0x00,}}, {0xE4BD,2,{0xFE,0xF6,0x00,0x00,}}, {0xE4BE,2,{0xFE,0xF7,0x00,0x00,}}, {0xE4BF,2,{0xFE,0xF8,0x00,0x00,}}, {0xE4C0,2,{0xFE,0xF9,0x00,0x00,}}, {0xE4C1,2,{0xFE,0xFA,0x00,0x00,}}, {0xE4C2,2,{0xFE,0xFB,0x00,0x00,}}, {0xE4C3,2,{0xFE,0xFC,0x00,0x00,}}, {0xE4C4,2,{0xFE,0xFD,0x00,0x00,}}, {0xE4C5,2,{0xFE,0xFE,0x00,0x00,}}, {0xE4C6,2,{0xA1,0x40,0x00,0x00,}}, {0xE4C7,2,{0xA1,0x41,0x00,0x00,}}, {0xE4C8,2,{0xA1,0x42,0x00,0x00,}}, {0xE4C9,2,{0xA1,0x43,0x00,0x00,}}, {0xE4CA,2,{0xA1,0x44,0x00,0x00,}}, {0xE4CB,2,{0xA1,0x45,0x00,0x00,}}, {0xE4CC,2,{0xA1,0x46,0x00,0x00,}}, {0xE4CD,2,{0xA1,0x47,0x00,0x00,}}, {0xE4CE,2,{0xA1,0x48,0x00,0x00,}}, {0xE4CF,2,{0xA1,0x49,0x00,0x00,}}, {0xE4D0,2,{0xA1,0x4A,0x00,0x00,}}, {0xE4D1,2,{0xA1,0x4B,0x00,0x00,}}, {0xE4D2,2,{0xA1,0x4C,0x00,0x00,}}, {0xE4D3,2,{0xA1,0x4D,0x00,0x00,}}, {0xE4D4,2,{0xA1,0x4E,0x00,0x00,}}, {0xE4D5,2,{0xA1,0x4F,0x00,0x00,}}, {0xE4D6,2,{0xA1,0x50,0x00,0x00,}}, {0xE4D7,2,{0xA1,0x51,0x00,0x00,}}, {0xE4D8,2,{0xA1,0x52,0x00,0x00,}}, {0xE4D9,2,{0xA1,0x53,0x00,0x00,}}, {0xE4DA,2,{0xA1,0x54,0x00,0x00,}}, {0xE4DB,2,{0xA1,0x55,0x00,0x00,}}, {0xE4DC,2,{0xA1,0x56,0x00,0x00,}}, {0xE4DD,2,{0xA1,0x57,0x00,0x00,}}, {0xE4DE,2,{0xA1,0x58,0x00,0x00,}}, {0xE4DF,2,{0xA1,0x59,0x00,0x00,}}, {0xE4E0,2,{0xA1,0x5A,0x00,0x00,}}, {0xE4E1,2,{0xA1,0x5B,0x00,0x00,}}, {0xE4E2,2,{0xA1,0x5C,0x00,0x00,}}, {0xE4E3,2,{0xA1,0x5D,0x00,0x00,}}, {0xE4E4,2,{0xA1,0x5E,0x00,0x00,}}, {0xE4E5,2,{0xA1,0x5F,0x00,0x00,}}, {0xE4E6,2,{0xA1,0x60,0x00,0x00,}}, {0xE4E7,2,{0xA1,0x61,0x00,0x00,}}, {0xE4E8,2,{0xA1,0x62,0x00,0x00,}}, {0xE4E9,2,{0xA1,0x63,0x00,0x00,}}, {0xE4EA,2,{0xA1,0x64,0x00,0x00,}}, {0xE4EB,2,{0xA1,0x65,0x00,0x00,}}, {0xE4EC,2,{0xA1,0x66,0x00,0x00,}}, {0xE4ED,2,{0xA1,0x67,0x00,0x00,}}, {0xE4EE,2,{0xA1,0x68,0x00,0x00,}}, {0xE4EF,2,{0xA1,0x69,0x00,0x00,}}, {0xE4F0,2,{0xA1,0x6A,0x00,0x00,}}, {0xE4F1,2,{0xA1,0x6B,0x00,0x00,}}, {0xE4F2,2,{0xA1,0x6C,0x00,0x00,}}, {0xE4F3,2,{0xA1,0x6D,0x00,0x00,}}, {0xE4F4,2,{0xA1,0x6E,0x00,0x00,}}, {0xE4F5,2,{0xA1,0x6F,0x00,0x00,}}, {0xE4F6,2,{0xA1,0x70,0x00,0x00,}}, {0xE4F7,2,{0xA1,0x71,0x00,0x00,}}, {0xE4F8,2,{0xA1,0x72,0x00,0x00,}}, {0xE4F9,2,{0xA1,0x73,0x00,0x00,}}, {0xE4FA,2,{0xA1,0x74,0x00,0x00,}}, {0xE4FB,2,{0xA1,0x75,0x00,0x00,}}, {0xE4FC,2,{0xA1,0x76,0x00,0x00,}}, {0xE4FD,2,{0xA1,0x77,0x00,0x00,}}, {0xE4FE,2,{0xA1,0x78,0x00,0x00,}}, {0xE4FF,2,{0xA1,0x79,0x00,0x00,}}, {0xE500,2,{0xA1,0x7A,0x00,0x00,}}, {0xE501,2,{0xA1,0x7B,0x00,0x00,}}, {0xE502,2,{0xA1,0x7C,0x00,0x00,}}, {0xE503,2,{0xA1,0x7D,0x00,0x00,}}, {0xE504,2,{0xA1,0x7E,0x00,0x00,}}, {0xE505,2,{0xA1,0x80,0x00,0x00,}}, {0xE506,2,{0xA1,0x81,0x00,0x00,}}, {0xE507,2,{0xA1,0x82,0x00,0x00,}}, {0xE508,2,{0xA1,0x83,0x00,0x00,}}, {0xE509,2,{0xA1,0x84,0x00,0x00,}}, {0xE50A,2,{0xA1,0x85,0x00,0x00,}}, {0xE50B,2,{0xA1,0x86,0x00,0x00,}}, {0xE50C,2,{0xA1,0x87,0x00,0x00,}}, {0xE50D,2,{0xA1,0x88,0x00,0x00,}}, {0xE50E,2,{0xA1,0x89,0x00,0x00,}}, {0xE50F,2,{0xA1,0x8A,0x00,0x00,}}, {0xE510,2,{0xA1,0x8B,0x00,0x00,}}, {0xE511,2,{0xA1,0x8C,0x00,0x00,}}, {0xE512,2,{0xA1,0x8D,0x00,0x00,}}, {0xE513,2,{0xA1,0x8E,0x00,0x00,}}, {0xE514,2,{0xA1,0x8F,0x00,0x00,}}, {0xE515,2,{0xA1,0x90,0x00,0x00,}}, {0xE516,2,{0xA1,0x91,0x00,0x00,}}, {0xE517,2,{0xA1,0x92,0x00,0x00,}}, {0xE518,2,{0xA1,0x93,0x00,0x00,}}, {0xE519,2,{0xA1,0x94,0x00,0x00,}}, {0xE51A,2,{0xA1,0x95,0x00,0x00,}}, {0xE51B,2,{0xA1,0x96,0x00,0x00,}}, {0xE51C,2,{0xA1,0x97,0x00,0x00,}}, {0xE51D,2,{0xA1,0x98,0x00,0x00,}}, {0xE51E,2,{0xA1,0x99,0x00,0x00,}}, {0xE51F,2,{0xA1,0x9A,0x00,0x00,}}, {0xE520,2,{0xA1,0x9B,0x00,0x00,}}, {0xE521,2,{0xA1,0x9C,0x00,0x00,}}, {0xE522,2,{0xA1,0x9D,0x00,0x00,}}, {0xE523,2,{0xA1,0x9E,0x00,0x00,}}, {0xE524,2,{0xA1,0x9F,0x00,0x00,}}, {0xE525,2,{0xA1,0xA0,0x00,0x00,}}, {0xE526,2,{0xA2,0x40,0x00,0x00,}}, {0xE527,2,{0xA2,0x41,0x00,0x00,}}, {0xE528,2,{0xA2,0x42,0x00,0x00,}}, {0xE529,2,{0xA2,0x43,0x00,0x00,}}, {0xE52A,2,{0xA2,0x44,0x00,0x00,}}, {0xE52B,2,{0xA2,0x45,0x00,0x00,}}, {0xE52C,2,{0xA2,0x46,0x00,0x00,}}, {0xE52D,2,{0xA2,0x47,0x00,0x00,}}, {0xE52E,2,{0xA2,0x48,0x00,0x00,}}, {0xE52F,2,{0xA2,0x49,0x00,0x00,}}, {0xE530,2,{0xA2,0x4A,0x00,0x00,}}, {0xE531,2,{0xA2,0x4B,0x00,0x00,}}, {0xE532,2,{0xA2,0x4C,0x00,0x00,}}, {0xE533,2,{0xA2,0x4D,0x00,0x00,}}, {0xE534,2,{0xA2,0x4E,0x00,0x00,}}, {0xE535,2,{0xA2,0x4F,0x00,0x00,}}, {0xE536,2,{0xA2,0x50,0x00,0x00,}}, {0xE537,2,{0xA2,0x51,0x00,0x00,}}, {0xE538,2,{0xA2,0x52,0x00,0x00,}}, {0xE539,2,{0xA2,0x53,0x00,0x00,}}, {0xE53A,2,{0xA2,0x54,0x00,0x00,}}, {0xE53B,2,{0xA2,0x55,0x00,0x00,}}, {0xE53C,2,{0xA2,0x56,0x00,0x00,}}, {0xE53D,2,{0xA2,0x57,0x00,0x00,}}, {0xE53E,2,{0xA2,0x58,0x00,0x00,}}, {0xE53F,2,{0xA2,0x59,0x00,0x00,}}, {0xE540,2,{0xA2,0x5A,0x00,0x00,}}, {0xE541,2,{0xA2,0x5B,0x00,0x00,}}, {0xE542,2,{0xA2,0x5C,0x00,0x00,}}, {0xE543,2,{0xA2,0x5D,0x00,0x00,}}, {0xE544,2,{0xA2,0x5E,0x00,0x00,}}, {0xE545,2,{0xA2,0x5F,0x00,0x00,}}, {0xE546,2,{0xA2,0x60,0x00,0x00,}}, {0xE547,2,{0xA2,0x61,0x00,0x00,}}, {0xE548,2,{0xA2,0x62,0x00,0x00,}}, {0xE549,2,{0xA2,0x63,0x00,0x00,}}, {0xE54A,2,{0xA2,0x64,0x00,0x00,}}, {0xE54B,2,{0xA2,0x65,0x00,0x00,}}, {0xE54C,2,{0xA2,0x66,0x00,0x00,}}, {0xE54D,2,{0xA2,0x67,0x00,0x00,}}, {0xE54E,2,{0xA2,0x68,0x00,0x00,}}, {0xE54F,2,{0xA2,0x69,0x00,0x00,}}, {0xE550,2,{0xA2,0x6A,0x00,0x00,}}, {0xE551,2,{0xA2,0x6B,0x00,0x00,}}, {0xE552,2,{0xA2,0x6C,0x00,0x00,}}, {0xE553,2,{0xA2,0x6D,0x00,0x00,}}, {0xE554,2,{0xA2,0x6E,0x00,0x00,}}, {0xE555,2,{0xA2,0x6F,0x00,0x00,}}, {0xE556,2,{0xA2,0x70,0x00,0x00,}}, {0xE557,2,{0xA2,0x71,0x00,0x00,}}, {0xE558,2,{0xA2,0x72,0x00,0x00,}}, {0xE559,2,{0xA2,0x73,0x00,0x00,}}, {0xE55A,2,{0xA2,0x74,0x00,0x00,}}, {0xE55B,2,{0xA2,0x75,0x00,0x00,}}, {0xE55C,2,{0xA2,0x76,0x00,0x00,}}, {0xE55D,2,{0xA2,0x77,0x00,0x00,}}, {0xE55E,2,{0xA2,0x78,0x00,0x00,}}, {0xE55F,2,{0xA2,0x79,0x00,0x00,}}, {0xE560,2,{0xA2,0x7A,0x00,0x00,}}, {0xE561,2,{0xA2,0x7B,0x00,0x00,}}, {0xE562,2,{0xA2,0x7C,0x00,0x00,}}, {0xE563,2,{0xA2,0x7D,0x00,0x00,}}, {0xE564,2,{0xA2,0x7E,0x00,0x00,}}, {0xE565,2,{0xA2,0x80,0x00,0x00,}}, {0xE566,2,{0xA2,0x81,0x00,0x00,}}, {0xE567,2,{0xA2,0x82,0x00,0x00,}}, {0xE568,2,{0xA2,0x83,0x00,0x00,}}, {0xE569,2,{0xA2,0x84,0x00,0x00,}}, {0xE56A,2,{0xA2,0x85,0x00,0x00,}}, {0xE56B,2,{0xA2,0x86,0x00,0x00,}}, {0xE56C,2,{0xA2,0x87,0x00,0x00,}}, {0xE56D,2,{0xA2,0x88,0x00,0x00,}}, {0xE56E,2,{0xA2,0x89,0x00,0x00,}}, {0xE56F,2,{0xA2,0x8A,0x00,0x00,}}, {0xE570,2,{0xA2,0x8B,0x00,0x00,}}, {0xE571,2,{0xA2,0x8C,0x00,0x00,}}, {0xE572,2,{0xA2,0x8D,0x00,0x00,}}, {0xE573,2,{0xA2,0x8E,0x00,0x00,}}, {0xE574,2,{0xA2,0x8F,0x00,0x00,}}, {0xE575,2,{0xA2,0x90,0x00,0x00,}}, {0xE576,2,{0xA2,0x91,0x00,0x00,}}, {0xE577,2,{0xA2,0x92,0x00,0x00,}}, {0xE578,2,{0xA2,0x93,0x00,0x00,}}, {0xE579,2,{0xA2,0x94,0x00,0x00,}}, {0xE57A,2,{0xA2,0x95,0x00,0x00,}}, {0xE57B,2,{0xA2,0x96,0x00,0x00,}}, {0xE57C,2,{0xA2,0x97,0x00,0x00,}}, {0xE57D,2,{0xA2,0x98,0x00,0x00,}}, {0xE57E,2,{0xA2,0x99,0x00,0x00,}}, {0xE57F,2,{0xA2,0x9A,0x00,0x00,}}, {0xE580,2,{0xA2,0x9B,0x00,0x00,}}, {0xE581,2,{0xA2,0x9C,0x00,0x00,}}, {0xE582,2,{0xA2,0x9D,0x00,0x00,}}, {0xE583,2,{0xA2,0x9E,0x00,0x00,}}, {0xE584,2,{0xA2,0x9F,0x00,0x00,}}, {0xE585,2,{0xA2,0xA0,0x00,0x00,}}, {0xE586,2,{0xA3,0x40,0x00,0x00,}}, {0xE587,2,{0xA3,0x41,0x00,0x00,}}, {0xE588,2,{0xA3,0x42,0x00,0x00,}}, {0xE589,2,{0xA3,0x43,0x00,0x00,}}, {0xE58A,2,{0xA3,0x44,0x00,0x00,}}, {0xE58B,2,{0xA3,0x45,0x00,0x00,}}, {0xE58C,2,{0xA3,0x46,0x00,0x00,}}, {0xE58D,2,{0xA3,0x47,0x00,0x00,}}, {0xE58E,2,{0xA3,0x48,0x00,0x00,}}, {0xE58F,2,{0xA3,0x49,0x00,0x00,}}, {0xE590,2,{0xA3,0x4A,0x00,0x00,}}, {0xE591,2,{0xA3,0x4B,0x00,0x00,}}, {0xE592,2,{0xA3,0x4C,0x00,0x00,}}, {0xE593,2,{0xA3,0x4D,0x00,0x00,}}, {0xE594,2,{0xA3,0x4E,0x00,0x00,}}, {0xE595,2,{0xA3,0x4F,0x00,0x00,}}, {0xE596,2,{0xA3,0x50,0x00,0x00,}}, {0xE597,2,{0xA3,0x51,0x00,0x00,}}, {0xE598,2,{0xA3,0x52,0x00,0x00,}}, {0xE599,2,{0xA3,0x53,0x00,0x00,}}, {0xE59A,2,{0xA3,0x54,0x00,0x00,}}, {0xE59B,2,{0xA3,0x55,0x00,0x00,}}, {0xE59C,2,{0xA3,0x56,0x00,0x00,}}, {0xE59D,2,{0xA3,0x57,0x00,0x00,}}, {0xE59E,2,{0xA3,0x58,0x00,0x00,}}, {0xE59F,2,{0xA3,0x59,0x00,0x00,}}, {0xE5A0,2,{0xA3,0x5A,0x00,0x00,}}, {0xE5A1,2,{0xA3,0x5B,0x00,0x00,}}, {0xE5A2,2,{0xA3,0x5C,0x00,0x00,}}, {0xE5A3,2,{0xA3,0x5D,0x00,0x00,}}, {0xE5A4,2,{0xA3,0x5E,0x00,0x00,}}, {0xE5A5,2,{0xA3,0x5F,0x00,0x00,}}, {0xE5A6,2,{0xA3,0x60,0x00,0x00,}}, {0xE5A7,2,{0xA3,0x61,0x00,0x00,}}, {0xE5A8,2,{0xA3,0x62,0x00,0x00,}}, {0xE5A9,2,{0xA3,0x63,0x00,0x00,}}, {0xE5AA,2,{0xA3,0x64,0x00,0x00,}}, {0xE5AB,2,{0xA3,0x65,0x00,0x00,}}, {0xE5AC,2,{0xA3,0x66,0x00,0x00,}}, {0xE5AD,2,{0xA3,0x67,0x00,0x00,}}, {0xE5AE,2,{0xA3,0x68,0x00,0x00,}}, {0xE5AF,2,{0xA3,0x69,0x00,0x00,}}, {0xE5B0,2,{0xA3,0x6A,0x00,0x00,}}, {0xE5B1,2,{0xA3,0x6B,0x00,0x00,}}, {0xE5B2,2,{0xA3,0x6C,0x00,0x00,}}, {0xE5B3,2,{0xA3,0x6D,0x00,0x00,}}, {0xE5B4,2,{0xA3,0x6E,0x00,0x00,}}, {0xE5B5,2,{0xA3,0x6F,0x00,0x00,}}, {0xE5B6,2,{0xA3,0x70,0x00,0x00,}}, {0xE5B7,2,{0xA3,0x71,0x00,0x00,}}, {0xE5B8,2,{0xA3,0x72,0x00,0x00,}}, {0xE5B9,2,{0xA3,0x73,0x00,0x00,}}, {0xE5BA,2,{0xA3,0x74,0x00,0x00,}}, {0xE5BB,2,{0xA3,0x75,0x00,0x00,}}, {0xE5BC,2,{0xA3,0x76,0x00,0x00,}}, {0xE5BD,2,{0xA3,0x77,0x00,0x00,}}, {0xE5BE,2,{0xA3,0x78,0x00,0x00,}}, {0xE5BF,2,{0xA3,0x79,0x00,0x00,}}, {0xE5C0,2,{0xA3,0x7A,0x00,0x00,}}, {0xE5C1,2,{0xA3,0x7B,0x00,0x00,}}, {0xE5C2,2,{0xA3,0x7C,0x00,0x00,}}, {0xE5C3,2,{0xA3,0x7D,0x00,0x00,}}, {0xE5C4,2,{0xA3,0x7E,0x00,0x00,}}, {0xE5C5,2,{0xA3,0x80,0x00,0x00,}}, {0xE5C6,2,{0xA3,0x81,0x00,0x00,}}, {0xE5C7,2,{0xA3,0x82,0x00,0x00,}}, {0xE5C8,2,{0xA3,0x83,0x00,0x00,}}, {0xE5C9,2,{0xA3,0x84,0x00,0x00,}}, {0xE5CA,2,{0xA3,0x85,0x00,0x00,}}, {0xE5CB,2,{0xA3,0x86,0x00,0x00,}}, {0xE5CC,2,{0xA3,0x87,0x00,0x00,}}, {0xE5CD,2,{0xA3,0x88,0x00,0x00,}}, {0xE5CE,2,{0xA3,0x89,0x00,0x00,}}, {0xE5CF,2,{0xA3,0x8A,0x00,0x00,}}, {0xE5D0,2,{0xA3,0x8B,0x00,0x00,}}, {0xE5D1,2,{0xA3,0x8C,0x00,0x00,}}, {0xE5D2,2,{0xA3,0x8D,0x00,0x00,}}, {0xE5D3,2,{0xA3,0x8E,0x00,0x00,}}, {0xE5D4,2,{0xA3,0x8F,0x00,0x00,}}, {0xE5D5,2,{0xA3,0x90,0x00,0x00,}}, {0xE5D6,2,{0xA3,0x91,0x00,0x00,}}, {0xE5D7,2,{0xA3,0x92,0x00,0x00,}}, {0xE5D8,2,{0xA3,0x93,0x00,0x00,}}, {0xE5D9,2,{0xA3,0x94,0x00,0x00,}}, {0xE5DA,2,{0xA3,0x95,0x00,0x00,}}, {0xE5DB,2,{0xA3,0x96,0x00,0x00,}}, {0xE5DC,2,{0xA3,0x97,0x00,0x00,}}, {0xE5DD,2,{0xA3,0x98,0x00,0x00,}}, {0xE5DE,2,{0xA3,0x99,0x00,0x00,}}, {0xE5DF,2,{0xA3,0x9A,0x00,0x00,}}, {0xE5E0,2,{0xA3,0x9B,0x00,0x00,}}, {0xE5E1,2,{0xA3,0x9C,0x00,0x00,}}, {0xE5E2,2,{0xA3,0x9D,0x00,0x00,}}, {0xE5E3,2,{0xA3,0x9E,0x00,0x00,}}, {0xE5E4,2,{0xA3,0x9F,0x00,0x00,}}, {0xE5E5,2,{0xA3,0xA0,0x00,0x00,}}, {0xE5E6,2,{0xA4,0x40,0x00,0x00,}}, {0xE5E7,2,{0xA4,0x41,0x00,0x00,}}, {0xE5E8,2,{0xA4,0x42,0x00,0x00,}}, {0xE5E9,2,{0xA4,0x43,0x00,0x00,}}, {0xE5EA,2,{0xA4,0x44,0x00,0x00,}}, {0xE5EB,2,{0xA4,0x45,0x00,0x00,}}, {0xE5EC,2,{0xA4,0x46,0x00,0x00,}}, {0xE5ED,2,{0xA4,0x47,0x00,0x00,}}, {0xE5EE,2,{0xA4,0x48,0x00,0x00,}}, {0xE5EF,2,{0xA4,0x49,0x00,0x00,}}, {0xE5F0,2,{0xA4,0x4A,0x00,0x00,}}, {0xE5F1,2,{0xA4,0x4B,0x00,0x00,}}, {0xE5F2,2,{0xA4,0x4C,0x00,0x00,}}, {0xE5F3,2,{0xA4,0x4D,0x00,0x00,}}, {0xE5F4,2,{0xA4,0x4E,0x00,0x00,}}, {0xE5F5,2,{0xA4,0x4F,0x00,0x00,}}, {0xE5F6,2,{0xA4,0x50,0x00,0x00,}}, {0xE5F7,2,{0xA4,0x51,0x00,0x00,}}, {0xE5F8,2,{0xA4,0x52,0x00,0x00,}}, {0xE5F9,2,{0xA4,0x53,0x00,0x00,}}, {0xE5FA,2,{0xA4,0x54,0x00,0x00,}}, {0xE5FB,2,{0xA4,0x55,0x00,0x00,}}, {0xE5FC,2,{0xA4,0x56,0x00,0x00,}}, {0xE5FD,2,{0xA4,0x57,0x00,0x00,}}, {0xE5FE,2,{0xA4,0x58,0x00,0x00,}}, {0xE5FF,2,{0xA4,0x59,0x00,0x00,}}, {0xE600,2,{0xA4,0x5A,0x00,0x00,}}, {0xE601,2,{0xA4,0x5B,0x00,0x00,}}, {0xE602,2,{0xA4,0x5C,0x00,0x00,}}, {0xE603,2,{0xA4,0x5D,0x00,0x00,}}, {0xE604,2,{0xA4,0x5E,0x00,0x00,}}, {0xE605,2,{0xA4,0x5F,0x00,0x00,}}, {0xE606,2,{0xA4,0x60,0x00,0x00,}}, {0xE607,2,{0xA4,0x61,0x00,0x00,}}, {0xE608,2,{0xA4,0x62,0x00,0x00,}}, {0xE609,2,{0xA4,0x63,0x00,0x00,}}, {0xE60A,2,{0xA4,0x64,0x00,0x00,}}, {0xE60B,2,{0xA4,0x65,0x00,0x00,}}, {0xE60C,2,{0xA4,0x66,0x00,0x00,}}, {0xE60D,2,{0xA4,0x67,0x00,0x00,}}, {0xE60E,2,{0xA4,0x68,0x00,0x00,}}, {0xE60F,2,{0xA4,0x69,0x00,0x00,}}, {0xE610,2,{0xA4,0x6A,0x00,0x00,}}, {0xE611,2,{0xA4,0x6B,0x00,0x00,}}, {0xE612,2,{0xA4,0x6C,0x00,0x00,}}, {0xE613,2,{0xA4,0x6D,0x00,0x00,}}, {0xE614,2,{0xA4,0x6E,0x00,0x00,}}, {0xE615,2,{0xA4,0x6F,0x00,0x00,}}, {0xE616,2,{0xA4,0x70,0x00,0x00,}}, {0xE617,2,{0xA4,0x71,0x00,0x00,}}, {0xE618,2,{0xA4,0x72,0x00,0x00,}}, {0xE619,2,{0xA4,0x73,0x00,0x00,}}, {0xE61A,2,{0xA4,0x74,0x00,0x00,}}, {0xE61B,2,{0xA4,0x75,0x00,0x00,}}, {0xE61C,2,{0xA4,0x76,0x00,0x00,}}, {0xE61D,2,{0xA4,0x77,0x00,0x00,}}, {0xE61E,2,{0xA4,0x78,0x00,0x00,}}, {0xE61F,2,{0xA4,0x79,0x00,0x00,}}, {0xE620,2,{0xA4,0x7A,0x00,0x00,}}, {0xE621,2,{0xA4,0x7B,0x00,0x00,}}, {0xE622,2,{0xA4,0x7C,0x00,0x00,}}, {0xE623,2,{0xA4,0x7D,0x00,0x00,}}, {0xE624,2,{0xA4,0x7E,0x00,0x00,}}, {0xE625,2,{0xA4,0x80,0x00,0x00,}}, {0xE626,2,{0xA4,0x81,0x00,0x00,}}, {0xE627,2,{0xA4,0x82,0x00,0x00,}}, {0xE628,2,{0xA4,0x83,0x00,0x00,}}, {0xE629,2,{0xA4,0x84,0x00,0x00,}}, {0xE62A,2,{0xA4,0x85,0x00,0x00,}}, {0xE62B,2,{0xA4,0x86,0x00,0x00,}}, {0xE62C,2,{0xA4,0x87,0x00,0x00,}}, {0xE62D,2,{0xA4,0x88,0x00,0x00,}}, {0xE62E,2,{0xA4,0x89,0x00,0x00,}}, {0xE62F,2,{0xA4,0x8A,0x00,0x00,}}, {0xE630,2,{0xA4,0x8B,0x00,0x00,}}, {0xE631,2,{0xA4,0x8C,0x00,0x00,}}, {0xE632,2,{0xA4,0x8D,0x00,0x00,}}, {0xE633,2,{0xA4,0x8E,0x00,0x00,}}, {0xE634,2,{0xA4,0x8F,0x00,0x00,}}, {0xE635,2,{0xA4,0x90,0x00,0x00,}}, {0xE636,2,{0xA4,0x91,0x00,0x00,}}, {0xE637,2,{0xA4,0x92,0x00,0x00,}}, {0xE638,2,{0xA4,0x93,0x00,0x00,}}, {0xE639,2,{0xA4,0x94,0x00,0x00,}}, {0xE63A,2,{0xA4,0x95,0x00,0x00,}}, {0xE63B,2,{0xA4,0x96,0x00,0x00,}}, {0xE63C,2,{0xA4,0x97,0x00,0x00,}}, {0xE63D,2,{0xA4,0x98,0x00,0x00,}}, {0xE63E,2,{0xA4,0x99,0x00,0x00,}}, {0xE63F,2,{0xA4,0x9A,0x00,0x00,}}, {0xE640,2,{0xA4,0x9B,0x00,0x00,}}, {0xE641,2,{0xA4,0x9C,0x00,0x00,}}, {0xE642,2,{0xA4,0x9D,0x00,0x00,}}, {0xE643,2,{0xA4,0x9E,0x00,0x00,}}, {0xE644,2,{0xA4,0x9F,0x00,0x00,}}, {0xE645,2,{0xA4,0xA0,0x00,0x00,}}, {0xE646,2,{0xA5,0x40,0x00,0x00,}}, {0xE647,2,{0xA5,0x41,0x00,0x00,}}, {0xE648,2,{0xA5,0x42,0x00,0x00,}}, {0xE649,2,{0xA5,0x43,0x00,0x00,}}, {0xE64A,2,{0xA5,0x44,0x00,0x00,}}, {0xE64B,2,{0xA5,0x45,0x00,0x00,}}, {0xE64C,2,{0xA5,0x46,0x00,0x00,}}, {0xE64D,2,{0xA5,0x47,0x00,0x00,}}, {0xE64E,2,{0xA5,0x48,0x00,0x00,}}, {0xE64F,2,{0xA5,0x49,0x00,0x00,}}, {0xE650,2,{0xA5,0x4A,0x00,0x00,}}, {0xE651,2,{0xA5,0x4B,0x00,0x00,}}, {0xE652,2,{0xA5,0x4C,0x00,0x00,}}, {0xE653,2,{0xA5,0x4D,0x00,0x00,}}, {0xE654,2,{0xA5,0x4E,0x00,0x00,}}, {0xE655,2,{0xA5,0x4F,0x00,0x00,}}, {0xE656,2,{0xA5,0x50,0x00,0x00,}}, {0xE657,2,{0xA5,0x51,0x00,0x00,}}, {0xE658,2,{0xA5,0x52,0x00,0x00,}}, {0xE659,2,{0xA5,0x53,0x00,0x00,}}, {0xE65A,2,{0xA5,0x54,0x00,0x00,}}, {0xE65B,2,{0xA5,0x55,0x00,0x00,}}, {0xE65C,2,{0xA5,0x56,0x00,0x00,}}, {0xE65D,2,{0xA5,0x57,0x00,0x00,}}, {0xE65E,2,{0xA5,0x58,0x00,0x00,}}, {0xE65F,2,{0xA5,0x59,0x00,0x00,}}, {0xE660,2,{0xA5,0x5A,0x00,0x00,}}, {0xE661,2,{0xA5,0x5B,0x00,0x00,}}, {0xE662,2,{0xA5,0x5C,0x00,0x00,}}, {0xE663,2,{0xA5,0x5D,0x00,0x00,}}, {0xE664,2,{0xA5,0x5E,0x00,0x00,}}, {0xE665,2,{0xA5,0x5F,0x00,0x00,}}, {0xE666,2,{0xA5,0x60,0x00,0x00,}}, {0xE667,2,{0xA5,0x61,0x00,0x00,}}, {0xE668,2,{0xA5,0x62,0x00,0x00,}}, {0xE669,2,{0xA5,0x63,0x00,0x00,}}, {0xE66A,2,{0xA5,0x64,0x00,0x00,}}, {0xE66B,2,{0xA5,0x65,0x00,0x00,}}, {0xE66C,2,{0xA5,0x66,0x00,0x00,}}, {0xE66D,2,{0xA5,0x67,0x00,0x00,}}, {0xE66E,2,{0xA5,0x68,0x00,0x00,}}, {0xE66F,2,{0xA5,0x69,0x00,0x00,}}, {0xE670,2,{0xA5,0x6A,0x00,0x00,}}, {0xE671,2,{0xA5,0x6B,0x00,0x00,}}, {0xE672,2,{0xA5,0x6C,0x00,0x00,}}, {0xE673,2,{0xA5,0x6D,0x00,0x00,}}, {0xE674,2,{0xA5,0x6E,0x00,0x00,}}, {0xE675,2,{0xA5,0x6F,0x00,0x00,}}, {0xE676,2,{0xA5,0x70,0x00,0x00,}}, {0xE677,2,{0xA5,0x71,0x00,0x00,}}, {0xE678,2,{0xA5,0x72,0x00,0x00,}}, {0xE679,2,{0xA5,0x73,0x00,0x00,}}, {0xE67A,2,{0xA5,0x74,0x00,0x00,}}, {0xE67B,2,{0xA5,0x75,0x00,0x00,}}, {0xE67C,2,{0xA5,0x76,0x00,0x00,}}, {0xE67D,2,{0xA5,0x77,0x00,0x00,}}, {0xE67E,2,{0xA5,0x78,0x00,0x00,}}, {0xE67F,2,{0xA5,0x79,0x00,0x00,}}, {0xE680,2,{0xA5,0x7A,0x00,0x00,}}, {0xE681,2,{0xA5,0x7B,0x00,0x00,}}, {0xE682,2,{0xA5,0x7C,0x00,0x00,}}, {0xE683,2,{0xA5,0x7D,0x00,0x00,}}, {0xE684,2,{0xA5,0x7E,0x00,0x00,}}, {0xE685,2,{0xA5,0x80,0x00,0x00,}}, {0xE686,2,{0xA5,0x81,0x00,0x00,}}, {0xE687,2,{0xA5,0x82,0x00,0x00,}}, {0xE688,2,{0xA5,0x83,0x00,0x00,}}, {0xE689,2,{0xA5,0x84,0x00,0x00,}}, {0xE68A,2,{0xA5,0x85,0x00,0x00,}}, {0xE68B,2,{0xA5,0x86,0x00,0x00,}}, {0xE68C,2,{0xA5,0x87,0x00,0x00,}}, {0xE68D,2,{0xA5,0x88,0x00,0x00,}}, {0xE68E,2,{0xA5,0x89,0x00,0x00,}}, {0xE68F,2,{0xA5,0x8A,0x00,0x00,}}, {0xE690,2,{0xA5,0x8B,0x00,0x00,}}, {0xE691,2,{0xA5,0x8C,0x00,0x00,}}, {0xE692,2,{0xA5,0x8D,0x00,0x00,}}, {0xE693,2,{0xA5,0x8E,0x00,0x00,}}, {0xE694,2,{0xA5,0x8F,0x00,0x00,}}, {0xE695,2,{0xA5,0x90,0x00,0x00,}}, {0xE696,2,{0xA5,0x91,0x00,0x00,}}, {0xE697,2,{0xA5,0x92,0x00,0x00,}}, {0xE698,2,{0xA5,0x93,0x00,0x00,}}, {0xE699,2,{0xA5,0x94,0x00,0x00,}}, {0xE69A,2,{0xA5,0x95,0x00,0x00,}}, {0xE69B,2,{0xA5,0x96,0x00,0x00,}}, {0xE69C,2,{0xA5,0x97,0x00,0x00,}}, {0xE69D,2,{0xA5,0x98,0x00,0x00,}}, {0xE69E,2,{0xA5,0x99,0x00,0x00,}}, {0xE69F,2,{0xA5,0x9A,0x00,0x00,}}, {0xE6A0,2,{0xA5,0x9B,0x00,0x00,}}, {0xE6A1,2,{0xA5,0x9C,0x00,0x00,}}, {0xE6A2,2,{0xA5,0x9D,0x00,0x00,}}, {0xE6A3,2,{0xA5,0x9E,0x00,0x00,}}, {0xE6A4,2,{0xA5,0x9F,0x00,0x00,}}, {0xE6A5,2,{0xA5,0xA0,0x00,0x00,}}, {0xE6A6,2,{0xA6,0x40,0x00,0x00,}}, {0xE6A7,2,{0xA6,0x41,0x00,0x00,}}, {0xE6A8,2,{0xA6,0x42,0x00,0x00,}}, {0xE6A9,2,{0xA6,0x43,0x00,0x00,}}, {0xE6AA,2,{0xA6,0x44,0x00,0x00,}}, {0xE6AB,2,{0xA6,0x45,0x00,0x00,}}, {0xE6AC,2,{0xA6,0x46,0x00,0x00,}}, {0xE6AD,2,{0xA6,0x47,0x00,0x00,}}, {0xE6AE,2,{0xA6,0x48,0x00,0x00,}}, {0xE6AF,2,{0xA6,0x49,0x00,0x00,}}, {0xE6B0,2,{0xA6,0x4A,0x00,0x00,}}, {0xE6B1,2,{0xA6,0x4B,0x00,0x00,}}, {0xE6B2,2,{0xA6,0x4C,0x00,0x00,}}, {0xE6B3,2,{0xA6,0x4D,0x00,0x00,}}, {0xE6B4,2,{0xA6,0x4E,0x00,0x00,}}, {0xE6B5,2,{0xA6,0x4F,0x00,0x00,}}, {0xE6B6,2,{0xA6,0x50,0x00,0x00,}}, {0xE6B7,2,{0xA6,0x51,0x00,0x00,}}, {0xE6B8,2,{0xA6,0x52,0x00,0x00,}}, {0xE6B9,2,{0xA6,0x53,0x00,0x00,}}, {0xE6BA,2,{0xA6,0x54,0x00,0x00,}}, {0xE6BB,2,{0xA6,0x55,0x00,0x00,}}, {0xE6BC,2,{0xA6,0x56,0x00,0x00,}}, {0xE6BD,2,{0xA6,0x57,0x00,0x00,}}, {0xE6BE,2,{0xA6,0x58,0x00,0x00,}}, {0xE6BF,2,{0xA6,0x59,0x00,0x00,}}, {0xE6C0,2,{0xA6,0x5A,0x00,0x00,}}, {0xE6C1,2,{0xA6,0x5B,0x00,0x00,}}, {0xE6C2,2,{0xA6,0x5C,0x00,0x00,}}, {0xE6C3,2,{0xA6,0x5D,0x00,0x00,}}, {0xE6C4,2,{0xA6,0x5E,0x00,0x00,}}, {0xE6C5,2,{0xA6,0x5F,0x00,0x00,}}, {0xE6C6,2,{0xA6,0x60,0x00,0x00,}}, {0xE6C7,2,{0xA6,0x61,0x00,0x00,}}, {0xE6C8,2,{0xA6,0x62,0x00,0x00,}}, {0xE6C9,2,{0xA6,0x63,0x00,0x00,}}, {0xE6CA,2,{0xA6,0x64,0x00,0x00,}}, {0xE6CB,2,{0xA6,0x65,0x00,0x00,}}, {0xE6CC,2,{0xA6,0x66,0x00,0x00,}}, {0xE6CD,2,{0xA6,0x67,0x00,0x00,}}, {0xE6CE,2,{0xA6,0x68,0x00,0x00,}}, {0xE6CF,2,{0xA6,0x69,0x00,0x00,}}, {0xE6D0,2,{0xA6,0x6A,0x00,0x00,}}, {0xE6D1,2,{0xA6,0x6B,0x00,0x00,}}, {0xE6D2,2,{0xA6,0x6C,0x00,0x00,}}, {0xE6D3,2,{0xA6,0x6D,0x00,0x00,}}, {0xE6D4,2,{0xA6,0x6E,0x00,0x00,}}, {0xE6D5,2,{0xA6,0x6F,0x00,0x00,}}, {0xE6D6,2,{0xA6,0x70,0x00,0x00,}}, {0xE6D7,2,{0xA6,0x71,0x00,0x00,}}, {0xE6D8,2,{0xA6,0x72,0x00,0x00,}}, {0xE6D9,2,{0xA6,0x73,0x00,0x00,}}, {0xE6DA,2,{0xA6,0x74,0x00,0x00,}}, {0xE6DB,2,{0xA6,0x75,0x00,0x00,}}, {0xE6DC,2,{0xA6,0x76,0x00,0x00,}}, {0xE6DD,2,{0xA6,0x77,0x00,0x00,}}, {0xE6DE,2,{0xA6,0x78,0x00,0x00,}}, {0xE6DF,2,{0xA6,0x79,0x00,0x00,}}, {0xE6E0,2,{0xA6,0x7A,0x00,0x00,}}, {0xE6E1,2,{0xA6,0x7B,0x00,0x00,}}, {0xE6E2,2,{0xA6,0x7C,0x00,0x00,}}, {0xE6E3,2,{0xA6,0x7D,0x00,0x00,}}, {0xE6E4,2,{0xA6,0x7E,0x00,0x00,}}, {0xE6E5,2,{0xA6,0x80,0x00,0x00,}}, {0xE6E6,2,{0xA6,0x81,0x00,0x00,}}, {0xE6E7,2,{0xA6,0x82,0x00,0x00,}}, {0xE6E8,2,{0xA6,0x83,0x00,0x00,}}, {0xE6E9,2,{0xA6,0x84,0x00,0x00,}}, {0xE6EA,2,{0xA6,0x85,0x00,0x00,}}, {0xE6EB,2,{0xA6,0x86,0x00,0x00,}}, {0xE6EC,2,{0xA6,0x87,0x00,0x00,}}, {0xE6ED,2,{0xA6,0x88,0x00,0x00,}}, {0xE6EE,2,{0xA6,0x89,0x00,0x00,}}, {0xE6EF,2,{0xA6,0x8A,0x00,0x00,}}, {0xE6F0,2,{0xA6,0x8B,0x00,0x00,}}, {0xE6F1,2,{0xA6,0x8C,0x00,0x00,}}, {0xE6F2,2,{0xA6,0x8D,0x00,0x00,}}, {0xE6F3,2,{0xA6,0x8E,0x00,0x00,}}, {0xE6F4,2,{0xA6,0x8F,0x00,0x00,}}, {0xE6F5,2,{0xA6,0x90,0x00,0x00,}}, {0xE6F6,2,{0xA6,0x91,0x00,0x00,}}, {0xE6F7,2,{0xA6,0x92,0x00,0x00,}}, {0xE6F8,2,{0xA6,0x93,0x00,0x00,}}, {0xE6F9,2,{0xA6,0x94,0x00,0x00,}}, {0xE6FA,2,{0xA6,0x95,0x00,0x00,}}, {0xE6FB,2,{0xA6,0x96,0x00,0x00,}}, {0xE6FC,2,{0xA6,0x97,0x00,0x00,}}, {0xE6FD,2,{0xA6,0x98,0x00,0x00,}}, {0xE6FE,2,{0xA6,0x99,0x00,0x00,}}, {0xE6FF,2,{0xA6,0x9A,0x00,0x00,}}, {0xE700,2,{0xA6,0x9B,0x00,0x00,}}, {0xE701,2,{0xA6,0x9C,0x00,0x00,}}, {0xE702,2,{0xA6,0x9D,0x00,0x00,}}, {0xE703,2,{0xA6,0x9E,0x00,0x00,}}, {0xE704,2,{0xA6,0x9F,0x00,0x00,}}, {0xE705,2,{0xA6,0xA0,0x00,0x00,}}, {0xE706,2,{0xA7,0x40,0x00,0x00,}}, {0xE707,2,{0xA7,0x41,0x00,0x00,}}, {0xE708,2,{0xA7,0x42,0x00,0x00,}}, {0xE709,2,{0xA7,0x43,0x00,0x00,}}, {0xE70A,2,{0xA7,0x44,0x00,0x00,}}, {0xE70B,2,{0xA7,0x45,0x00,0x00,}}, {0xE70C,2,{0xA7,0x46,0x00,0x00,}}, {0xE70D,2,{0xA7,0x47,0x00,0x00,}}, {0xE70E,2,{0xA7,0x48,0x00,0x00,}}, {0xE70F,2,{0xA7,0x49,0x00,0x00,}}, {0xE710,2,{0xA7,0x4A,0x00,0x00,}}, {0xE711,2,{0xA7,0x4B,0x00,0x00,}}, {0xE712,2,{0xA7,0x4C,0x00,0x00,}}, {0xE713,2,{0xA7,0x4D,0x00,0x00,}}, {0xE714,2,{0xA7,0x4E,0x00,0x00,}}, {0xE715,2,{0xA7,0x4F,0x00,0x00,}}, {0xE716,2,{0xA7,0x50,0x00,0x00,}}, {0xE717,2,{0xA7,0x51,0x00,0x00,}}, {0xE718,2,{0xA7,0x52,0x00,0x00,}}, {0xE719,2,{0xA7,0x53,0x00,0x00,}}, {0xE71A,2,{0xA7,0x54,0x00,0x00,}}, {0xE71B,2,{0xA7,0x55,0x00,0x00,}}, {0xE71C,2,{0xA7,0x56,0x00,0x00,}}, {0xE71D,2,{0xA7,0x57,0x00,0x00,}}, {0xE71E,2,{0xA7,0x58,0x00,0x00,}}, {0xE71F,2,{0xA7,0x59,0x00,0x00,}}, {0xE720,2,{0xA7,0x5A,0x00,0x00,}}, {0xE721,2,{0xA7,0x5B,0x00,0x00,}}, {0xE722,2,{0xA7,0x5C,0x00,0x00,}}, {0xE723,2,{0xA7,0x5D,0x00,0x00,}}, {0xE724,2,{0xA7,0x5E,0x00,0x00,}}, {0xE725,2,{0xA7,0x5F,0x00,0x00,}}, {0xE726,2,{0xA7,0x60,0x00,0x00,}}, {0xE727,2,{0xA7,0x61,0x00,0x00,}}, {0xE728,2,{0xA7,0x62,0x00,0x00,}}, {0xE729,2,{0xA7,0x63,0x00,0x00,}}, {0xE72A,2,{0xA7,0x64,0x00,0x00,}}, {0xE72B,2,{0xA7,0x65,0x00,0x00,}}, {0xE72C,2,{0xA7,0x66,0x00,0x00,}}, {0xE72D,2,{0xA7,0x67,0x00,0x00,}}, {0xE72E,2,{0xA7,0x68,0x00,0x00,}}, {0xE72F,2,{0xA7,0x69,0x00,0x00,}}, {0xE730,2,{0xA7,0x6A,0x00,0x00,}}, {0xE731,2,{0xA7,0x6B,0x00,0x00,}}, {0xE732,2,{0xA7,0x6C,0x00,0x00,}}, {0xE733,2,{0xA7,0x6D,0x00,0x00,}}, {0xE734,2,{0xA7,0x6E,0x00,0x00,}}, {0xE735,2,{0xA7,0x6F,0x00,0x00,}}, {0xE736,2,{0xA7,0x70,0x00,0x00,}}, {0xE737,2,{0xA7,0x71,0x00,0x00,}}, {0xE738,2,{0xA7,0x72,0x00,0x00,}}, {0xE739,2,{0xA7,0x73,0x00,0x00,}}, {0xE73A,2,{0xA7,0x74,0x00,0x00,}}, {0xE73B,2,{0xA7,0x75,0x00,0x00,}}, {0xE73C,2,{0xA7,0x76,0x00,0x00,}}, {0xE73D,2,{0xA7,0x77,0x00,0x00,}}, {0xE73E,2,{0xA7,0x78,0x00,0x00,}}, {0xE73F,2,{0xA7,0x79,0x00,0x00,}}, {0xE740,2,{0xA7,0x7A,0x00,0x00,}}, {0xE741,2,{0xA7,0x7B,0x00,0x00,}}, {0xE742,2,{0xA7,0x7C,0x00,0x00,}}, {0xE743,2,{0xA7,0x7D,0x00,0x00,}}, {0xE744,2,{0xA7,0x7E,0x00,0x00,}}, {0xE745,2,{0xA7,0x80,0x00,0x00,}}, {0xE746,2,{0xA7,0x81,0x00,0x00,}}, {0xE747,2,{0xA7,0x82,0x00,0x00,}}, {0xE748,2,{0xA7,0x83,0x00,0x00,}}, {0xE749,2,{0xA7,0x84,0x00,0x00,}}, {0xE74A,2,{0xA7,0x85,0x00,0x00,}}, {0xE74B,2,{0xA7,0x86,0x00,0x00,}}, {0xE74C,2,{0xA7,0x87,0x00,0x00,}}, {0xE74D,2,{0xA7,0x88,0x00,0x00,}}, {0xE74E,2,{0xA7,0x89,0x00,0x00,}}, {0xE74F,2,{0xA7,0x8A,0x00,0x00,}}, {0xE750,2,{0xA7,0x8B,0x00,0x00,}}, {0xE751,2,{0xA7,0x8C,0x00,0x00,}}, {0xE752,2,{0xA7,0x8D,0x00,0x00,}}, {0xE753,2,{0xA7,0x8E,0x00,0x00,}}, {0xE754,2,{0xA7,0x8F,0x00,0x00,}}, {0xE755,2,{0xA7,0x90,0x00,0x00,}}, {0xE756,2,{0xA7,0x91,0x00,0x00,}}, {0xE757,2,{0xA7,0x92,0x00,0x00,}}, {0xE758,2,{0xA7,0x93,0x00,0x00,}}, {0xE759,2,{0xA7,0x94,0x00,0x00,}}, {0xE75A,2,{0xA7,0x95,0x00,0x00,}}, {0xE75B,2,{0xA7,0x96,0x00,0x00,}}, {0xE75C,2,{0xA7,0x97,0x00,0x00,}}, {0xE75D,2,{0xA7,0x98,0x00,0x00,}}, {0xE75E,2,{0xA7,0x99,0x00,0x00,}}, {0xE75F,2,{0xA7,0x9A,0x00,0x00,}}, {0xE760,2,{0xA7,0x9B,0x00,0x00,}}, {0xE761,2,{0xA7,0x9C,0x00,0x00,}}, {0xE762,2,{0xA7,0x9D,0x00,0x00,}}, {0xE763,2,{0xA7,0x9E,0x00,0x00,}}, {0xE764,2,{0xA7,0x9F,0x00,0x00,}}, {0xE765,2,{0xA7,0xA0,0x00,0x00,}}, {0xE766,2,{0xA2,0xAB,0x00,0x00,}}, {0xE767,2,{0xA2,0xAC,0x00,0x00,}}, {0xE768,2,{0xA2,0xAD,0x00,0x00,}}, {0xE769,2,{0xA2,0xAE,0x00,0x00,}}, {0xE76A,2,{0xA2,0xAF,0x00,0x00,}}, {0xE76B,2,{0xA2,0xB0,0x00,0x00,}}, {0xE76C,4,{0x83,0x36,0xC7,0x39,}}, {0xE76D,2,{0xA2,0xE4,0x00,0x00,}}, {0xE76E,2,{0xA2,0xEF,0x00,0x00,}}, {0xE76F,2,{0xA2,0xF0,0x00,0x00,}}, {0xE770,2,{0xA2,0xFD,0x00,0x00,}}, {0xE771,2,{0xA2,0xFE,0x00,0x00,}}, {0xE772,2,{0xA4,0xF4,0x00,0x00,}}, {0xE773,2,{0xA4,0xF5,0x00,0x00,}}, {0xE774,2,{0xA4,0xF6,0x00,0x00,}}, {0xE775,2,{0xA4,0xF7,0x00,0x00,}}, {0xE776,2,{0xA4,0xF8,0x00,0x00,}}, {0xE777,2,{0xA4,0xF9,0x00,0x00,}}, {0xE778,2,{0xA4,0xFA,0x00,0x00,}}, {0xE779,2,{0xA4,0xFB,0x00,0x00,}}, {0xE77A,2,{0xA4,0xFC,0x00,0x00,}}, {0xE77B,2,{0xA4,0xFD,0x00,0x00,}}, {0xE77C,2,{0xA4,0xFE,0x00,0x00,}}, {0xE77D,2,{0xA5,0xF7,0x00,0x00,}}, {0xE77E,2,{0xA5,0xF8,0x00,0x00,}}, {0xE77F,2,{0xA5,0xF9,0x00,0x00,}}, {0xE780,2,{0xA5,0xFA,0x00,0x00,}}, {0xE781,2,{0xA5,0xFB,0x00,0x00,}}, {0xE782,2,{0xA5,0xFC,0x00,0x00,}}, {0xE783,2,{0xA5,0xFD,0x00,0x00,}}, {0xE784,2,{0xA5,0xFE,0x00,0x00,}}, {0xE785,2,{0xA6,0xB9,0x00,0x00,}}, {0xE786,2,{0xA6,0xBA,0x00,0x00,}}, {0xE787,2,{0xA6,0xBB,0x00,0x00,}}, {0xE788,2,{0xA6,0xBC,0x00,0x00,}}, {0xE789,2,{0xA6,0xBD,0x00,0x00,}}, {0xE78A,2,{0xA6,0xBE,0x00,0x00,}}, {0xE78B,2,{0xA6,0xBF,0x00,0x00,}}, {0xE78C,2,{0xA6,0xC0,0x00,0x00,}}, {0xE78D,2,{0xA6,0xD9,0x00,0x00,}}, {0xE78E,2,{0xA6,0xDA,0x00,0x00,}}, {0xE78F,2,{0xA6,0xDB,0x00,0x00,}}, {0xE790,2,{0xA6,0xDC,0x00,0x00,}}, {0xE791,2,{0xA6,0xDD,0x00,0x00,}}, {0xE792,2,{0xA6,0xDE,0x00,0x00,}}, {0xE793,2,{0xA6,0xDF,0x00,0x00,}}, {0xE794,2,{0xA6,0xEC,0x00,0x00,}}, {0xE795,2,{0xA6,0xED,0x00,0x00,}}, {0xE796,2,{0xA6,0xF3,0x00,0x00,}}, {0xE797,2,{0xA6,0xF6,0x00,0x00,}}, {0xE798,2,{0xA6,0xF7,0x00,0x00,}}, {0xE799,2,{0xA6,0xF8,0x00,0x00,}}, {0xE79A,2,{0xA6,0xF9,0x00,0x00,}}, {0xE79B,2,{0xA6,0xFA,0x00,0x00,}}, {0xE79C,2,{0xA6,0xFB,0x00,0x00,}}, {0xE79D,2,{0xA6,0xFC,0x00,0x00,}}, {0xE79E,2,{0xA6,0xFD,0x00,0x00,}}, {0xE79F,2,{0xA6,0xFE,0x00,0x00,}}, {0xE7A0,2,{0xA7,0xC2,0x00,0x00,}}, {0xE7A1,2,{0xA7,0xC3,0x00,0x00,}}, {0xE7A2,2,{0xA7,0xC4,0x00,0x00,}}, {0xE7A3,2,{0xA7,0xC5,0x00,0x00,}}, {0xE7A4,2,{0xA7,0xC6,0x00,0x00,}}, {0xE7A5,2,{0xA7,0xC7,0x00,0x00,}}, {0xE7A6,2,{0xA7,0xC8,0x00,0x00,}}, {0xE7A7,2,{0xA7,0xC9,0x00,0x00,}}, {0xE7A8,2,{0xA7,0xCA,0x00,0x00,}}, {0xE7A9,2,{0xA7,0xCB,0x00,0x00,}}, {0xE7AA,2,{0xA7,0xCC,0x00,0x00,}}, {0xE7AB,2,{0xA7,0xCD,0x00,0x00,}}, {0xE7AC,2,{0xA7,0xCE,0x00,0x00,}}, {0xE7AD,2,{0xA7,0xCF,0x00,0x00,}}, {0xE7AE,2,{0xA7,0xD0,0x00,0x00,}}, {0xE7AF,2,{0xA7,0xF2,0x00,0x00,}}, {0xE7B0,2,{0xA7,0xF3,0x00,0x00,}}, {0xE7B1,2,{0xA7,0xF4,0x00,0x00,}}, {0xE7B2,2,{0xA7,0xF5,0x00,0x00,}}, {0xE7B3,2,{0xA7,0xF6,0x00,0x00,}}, {0xE7B4,2,{0xA7,0xF7,0x00,0x00,}}, {0xE7B5,2,{0xA7,0xF8,0x00,0x00,}}, {0xE7B6,2,{0xA7,0xF9,0x00,0x00,}}, {0xE7B7,2,{0xA7,0xFA,0x00,0x00,}}, {0xE7B8,2,{0xA7,0xFB,0x00,0x00,}}, {0xE7B9,2,{0xA7,0xFC,0x00,0x00,}}, {0xE7BA,2,{0xA7,0xFD,0x00,0x00,}}, {0xE7BB,2,{0xA7,0xFE,0x00,0x00,}}, {0xE7BC,2,{0xA8,0x96,0x00,0x00,}}, {0xE7BD,2,{0xA8,0x97,0x00,0x00,}}, {0xE7BE,2,{0xA8,0x98,0x00,0x00,}}, {0xE7BF,2,{0xA8,0x99,0x00,0x00,}}, {0xE7C0,2,{0xA8,0x9A,0x00,0x00,}}, {0xE7C1,2,{0xA8,0x9B,0x00,0x00,}}, {0xE7C2,2,{0xA8,0x9C,0x00,0x00,}}, {0xE7C3,2,{0xA8,0x9D,0x00,0x00,}}, {0xE7C4,2,{0xA8,0x9E,0x00,0x00,}}, {0xE7C5,2,{0xA8,0x9F,0x00,0x00,}}, {0xE7C6,2,{0xA8,0xA0,0x00,0x00,}}, {0xE7C7,2,{0xA8,0xBC,0x00,0x00,}}, {0xE7C8,4,{0x83,0x36,0xC8,0x30,}}, {0xE7C9,2,{0xA8,0xC1,0x00,0x00,}}, {0xE7CA,2,{0xA8,0xC2,0x00,0x00,}}, {0xE7CB,2,{0xA8,0xC3,0x00,0x00,}}, {0xE7CC,2,{0xA8,0xC4,0x00,0x00,}}, {0xE7CD,2,{0xA8,0xEA,0x00,0x00,}}, {0xE7CE,2,{0xA8,0xEB,0x00,0x00,}}, {0xE7CF,2,{0xA8,0xEC,0x00,0x00,}}, {0xE7D0,2,{0xA8,0xED,0x00,0x00,}}, {0xE7D1,2,{0xA8,0xEE,0x00,0x00,}}, {0xE7D2,2,{0xA8,0xEF,0x00,0x00,}}, {0xE7D3,2,{0xA8,0xF0,0x00,0x00,}}, {0xE7D4,2,{0xA8,0xF1,0x00,0x00,}}, {0xE7D5,2,{0xA8,0xF2,0x00,0x00,}}, {0xE7D6,2,{0xA8,0xF3,0x00,0x00,}}, {0xE7D7,2,{0xA8,0xF4,0x00,0x00,}}, {0xE7D8,2,{0xA8,0xF5,0x00,0x00,}}, {0xE7D9,2,{0xA8,0xF6,0x00,0x00,}}, {0xE7DA,2,{0xA8,0xF7,0x00,0x00,}}, {0xE7DB,2,{0xA8,0xF8,0x00,0x00,}}, {0xE7DC,2,{0xA8,0xF9,0x00,0x00,}}, {0xE7DD,2,{0xA8,0xFA,0x00,0x00,}}, {0xE7DE,2,{0xA8,0xFB,0x00,0x00,}}, {0xE7DF,2,{0xA8,0xFC,0x00,0x00,}}, {0xE7E0,2,{0xA8,0xFD,0x00,0x00,}}, {0xE7E1,2,{0xA8,0xFE,0x00,0x00,}}, {0xE7E2,2,{0xA9,0x58,0x00,0x00,}}, {0xE7E3,2,{0xA9,0x5B,0x00,0x00,}}, {0xE7E4,2,{0xA9,0x5D,0x00,0x00,}}, {0xE7E5,2,{0xA9,0x5E,0x00,0x00,}}, {0xE7E6,2,{0xA9,0x5F,0x00,0x00,}}, {0xE7E7,4,{0x83,0x36,0xC8,0x31,}}, {0xE7E8,4,{0x83,0x36,0xC8,0x32,}}, {0xE7E9,4,{0x83,0x36,0xC8,0x33,}}, {0xE7EA,4,{0x83,0x36,0xC8,0x34,}}, {0xE7EB,4,{0x83,0x36,0xC8,0x35,}}, {0xE7EC,4,{0x83,0x36,0xC8,0x36,}}, {0xE7ED,4,{0x83,0x36,0xC8,0x37,}}, {0xE7EE,4,{0x83,0x36,0xC8,0x38,}}, {0xE7EF,4,{0x83,0x36,0xC8,0x39,}}, {0xE7F0,4,{0x83,0x36,0xC9,0x30,}}, {0xE7F1,4,{0x83,0x36,0xC9,0x31,}}, {0xE7F2,4,{0x83,0x36,0xC9,0x32,}}, {0xE7F3,4,{0x83,0x36,0xC9,0x33,}}, {0xE7F4,2,{0xA9,0x97,0x00,0x00,}}, {0xE7F5,2,{0xA9,0x98,0x00,0x00,}}, {0xE7F6,2,{0xA9,0x99,0x00,0x00,}}, {0xE7F7,2,{0xA9,0x9A,0x00,0x00,}}, {0xE7F8,2,{0xA9,0x9B,0x00,0x00,}}, {0xE7F9,2,{0xA9,0x9C,0x00,0x00,}}, {0xE7FA,2,{0xA9,0x9D,0x00,0x00,}}, {0xE7FB,2,{0xA9,0x9E,0x00,0x00,}}, {0xE7FC,2,{0xA9,0x9F,0x00,0x00,}}, {0xE7FD,2,{0xA9,0xA0,0x00,0x00,}}, {0xE7FE,2,{0xA9,0xA1,0x00,0x00,}}, {0xE7FF,2,{0xA9,0xA2,0x00,0x00,}}, {0xE800,2,{0xA9,0xA3,0x00,0x00,}}, {0xE801,2,{0xA9,0xF0,0x00,0x00,}}, {0xE802,2,{0xA9,0xF1,0x00,0x00,}}, {0xE803,2,{0xA9,0xF2,0x00,0x00,}}, {0xE804,2,{0xA9,0xF3,0x00,0x00,}}, {0xE805,2,{0xA9,0xF4,0x00,0x00,}}, {0xE806,2,{0xA9,0xF5,0x00,0x00,}}, {0xE807,2,{0xA9,0xF6,0x00,0x00,}}, {0xE808,2,{0xA9,0xF7,0x00,0x00,}}, {0xE809,2,{0xA9,0xF8,0x00,0x00,}}, {0xE80A,2,{0xA9,0xF9,0x00,0x00,}}, {0xE80B,2,{0xA9,0xFA,0x00,0x00,}}, {0xE80C,2,{0xA9,0xFB,0x00,0x00,}}, {0xE80D,2,{0xA9,0xFC,0x00,0x00,}}, {0xE80E,2,{0xA9,0xFD,0x00,0x00,}}, {0xE80F,2,{0xA9,0xFE,0x00,0x00,}}, {0xE810,2,{0xD7,0xFA,0x00,0x00,}}, {0xE811,2,{0xD7,0xFB,0x00,0x00,}}, {0xE812,2,{0xD7,0xFC,0x00,0x00,}}, {0xE813,2,{0xD7,0xFD,0x00,0x00,}}, {0xE814,2,{0xD7,0xFE,0x00,0x00,}}, {0xE815,4,{0x83,0x36,0xC9,0x34,}}, {0xE816,2,{0xFE,0x51,0x00,0x00,}}, {0xE817,2,{0xFE,0x52,0x00,0x00,}}, {0xE818,2,{0xFE,0x53,0x00,0x00,}}, {0xE819,4,{0x83,0x36,0xC9,0x35,}}, {0xE81A,4,{0x83,0x36,0xC9,0x36,}}, {0xE81B,4,{0x83,0x36,0xC9,0x37,}}, {0xE81C,4,{0x83,0x36,0xC9,0x38,}}, {0xE81D,4,{0x83,0x36,0xC9,0x39,}}, {0xE81E,2,{0xFE,0x59,0x00,0x00,}}, {0xE81F,4,{0x83,0x36,0xCA,0x30,}}, {0xE820,4,{0x83,0x36,0xCA,0x31,}}, {0xE821,4,{0x83,0x36,0xCA,0x32,}}, {0xE822,4,{0x83,0x36,0xCA,0x33,}}, {0xE823,4,{0x83,0x36,0xCA,0x34,}}, {0xE824,4,{0x83,0x36,0xCA,0x35,}}, {0xE825,4,{0x83,0x36,0xCA,0x36,}}, {0xE826,2,{0xFE,0x61,0x00,0x00,}}, {0xE827,4,{0x83,0x36,0xCA,0x37,}}, {0xE828,4,{0x83,0x36,0xCA,0x38,}}, {0xE829,4,{0x83,0x36,0xCA,0x39,}}, {0xE82A,4,{0x83,0x36,0xCB,0x30,}}, {0xE82B,2,{0xFE,0x66,0x00,0x00,}}, {0xE82C,2,{0xFE,0x67,0x00,0x00,}}, {0xE82D,4,{0x83,0x36,0xCB,0x31,}}, {0xE82E,4,{0x83,0x36,0xCB,0x32,}}, {0xE82F,4,{0x83,0x36,0xCB,0x33,}}, {0xE830,4,{0x83,0x36,0xCB,0x34,}}, {0xE831,2,{0xFE,0x6C,0x00,0x00,}}, {0xE832,2,{0xFE,0x6D,0x00,0x00,}}, {0xE833,4,{0x83,0x36,0xCB,0x35,}}, {0xE834,4,{0x83,0x36,0xCB,0x36,}}, {0xE835,4,{0x83,0x36,0xCB,0x37,}}, {0xE836,4,{0x83,0x36,0xCB,0x38,}}, {0xE837,4,{0x83,0x36,0xCB,0x39,}}, {0xE838,4,{0x83,0x36,0xCC,0x30,}}, {0xE839,4,{0x83,0x36,0xCC,0x31,}}, {0xE83A,4,{0x83,0x36,0xCC,0x32,}}, {0xE83B,2,{0xFE,0x76,0x00,0x00,}}, {0xE83C,4,{0x83,0x36,0xCC,0x33,}}, {0xE83D,4,{0x83,0x36,0xCC,0x34,}}, {0xE83E,4,{0x83,0x36,0xCC,0x35,}}, {0xE83F,4,{0x83,0x36,0xCC,0x36,}}, {0xE840,4,{0x83,0x36,0xCC,0x37,}}, {0xE841,4,{0x83,0x36,0xCC,0x38,}}, {0xE842,4,{0x83,0x36,0xCC,0x39,}}, {0xE843,2,{0xFE,0x7E,0x00,0x00,}}, {0xE844,4,{0x83,0x36,0xCD,0x30,}}, {0xE845,4,{0x83,0x36,0xCD,0x31,}}, {0xE846,4,{0x83,0x36,0xCD,0x32,}}, {0xE847,4,{0x83,0x36,0xCD,0x33,}}, {0xE848,4,{0x83,0x36,0xCD,0x34,}}, {0xE849,4,{0x83,0x36,0xCD,0x35,}}, {0xE84A,4,{0x83,0x36,0xCD,0x36,}}, {0xE84B,4,{0x83,0x36,0xCD,0x37,}}, {0xE84C,4,{0x83,0x36,0xCD,0x38,}}, {0xE84D,4,{0x83,0x36,0xCD,0x39,}}, {0xE84E,4,{0x83,0x36,0xCE,0x30,}}, {0xE84F,4,{0x83,0x36,0xCE,0x31,}}, {0xE850,4,{0x83,0x36,0xCE,0x32,}}, {0xE851,4,{0x83,0x36,0xCE,0x33,}}, {0xE852,4,{0x83,0x36,0xCE,0x34,}}, {0xE853,4,{0x83,0x36,0xCE,0x35,}}, {0xE854,2,{0xFE,0x90,0x00,0x00,}}, {0xE855,2,{0xFE,0x91,0x00,0x00,}}, {0xE856,4,{0x83,0x36,0xCE,0x36,}}, {0xE857,4,{0x83,0x36,0xCE,0x37,}}, {0xE858,4,{0x83,0x36,0xCE,0x38,}}, {0xE859,4,{0x83,0x36,0xCE,0x39,}}, {0xE85A,4,{0x83,0x36,0xCF,0x30,}}, {0xE85B,4,{0x83,0x36,0xCF,0x31,}}, {0xE85C,4,{0x83,0x36,0xCF,0x32,}}, {0xE85D,4,{0x83,0x36,0xCF,0x33,}}, {0xE85E,4,{0x83,0x36,0xCF,0x34,}}, {0xE85F,4,{0x83,0x36,0xCF,0x35,}}, {0xE860,4,{0x83,0x36,0xCF,0x36,}}, {0xE861,4,{0x83,0x36,0xCF,0x37,}}, {0xE862,4,{0x83,0x36,0xCF,0x38,}}, {0xE863,4,{0x83,0x36,0xCF,0x39,}}, {0xE864,2,{0xFE,0xA0,0x00,0x00,}}, {0xF92C,2,{0xFD,0x9C,0x00,0x00,}}, {0xF92D,4,{0x84,0x30,0x85,0x35,}}, {0xF92E,4,{0x84,0x30,0x85,0x36,}}, {0xF92F,4,{0x84,0x30,0x85,0x37,}}, {0xF930,4,{0x84,0x30,0x85,0x38,}}, {0xF931,4,{0x84,0x30,0x85,0x39,}}, {0xF932,4,{0x84,0x30,0x86,0x30,}}, {0xF933,4,{0x84,0x30,0x86,0x31,}}, {0xF934,4,{0x84,0x30,0x86,0x32,}}, {0xF935,4,{0x84,0x30,0x86,0x33,}}, {0xF936,4,{0x84,0x30,0x86,0x34,}}, {0xF937,4,{0x84,0x30,0x86,0x35,}}, {0xF938,4,{0x84,0x30,0x86,0x36,}}, {0xF939,4,{0x84,0x30,0x86,0x37,}}, {0xF93A,4,{0x84,0x30,0x86,0x38,}}, {0xF93B,4,{0x84,0x30,0x86,0x39,}}, {0xF93C,4,{0x84,0x30,0x87,0x30,}}, {0xF93D,4,{0x84,0x30,0x87,0x31,}}, {0xF93E,4,{0x84,0x30,0x87,0x32,}}, {0xF93F,4,{0x84,0x30,0x87,0x33,}}, {0xF940,4,{0x84,0x30,0x87,0x34,}}, {0xF941,4,{0x84,0x30,0x87,0x35,}}, {0xF942,4,{0x84,0x30,0x87,0x36,}}, {0xF943,4,{0x84,0x30,0x87,0x37,}}, {0xF944,4,{0x84,0x30,0x87,0x38,}}, {0xF945,4,{0x84,0x30,0x87,0x39,}}, {0xF946,4,{0x84,0x30,0x88,0x30,}}, {0xF947,4,{0x84,0x30,0x88,0x31,}}, {0xF948,4,{0x84,0x30,0x88,0x32,}}, {0xF949,4,{0x84,0x30,0x88,0x33,}}, {0xF94A,4,{0x84,0x30,0x88,0x34,}}, {0xF94B,4,{0x84,0x30,0x88,0x35,}}, {0xF94C,4,{0x84,0x30,0x88,0x36,}}, {0xF94D,4,{0x84,0x30,0x88,0x37,}}, {0xF94E,4,{0x84,0x30,0x88,0x38,}}, {0xF94F,4,{0x84,0x30,0x88,0x39,}}, {0xF950,4,{0x84,0x30,0x89,0x30,}}, {0xF951,4,{0x84,0x30,0x89,0x31,}}, {0xF952,4,{0x84,0x30,0x89,0x32,}}, {0xF953,4,{0x84,0x30,0x89,0x33,}}, {0xF954,4,{0x84,0x30,0x89,0x34,}}, {0xF955,4,{0x84,0x30,0x89,0x35,}}, {0xF956,4,{0x84,0x30,0x89,0x36,}}, {0xF957,4,{0x84,0x30,0x89,0x37,}}, {0xF958,4,{0x84,0x30,0x89,0x38,}}, {0xF959,4,{0x84,0x30,0x89,0x39,}}, {0xF95A,4,{0x84,0x30,0x8A,0x30,}}, {0xF95B,4,{0x84,0x30,0x8A,0x31,}}, {0xF95C,4,{0x84,0x30,0x8A,0x32,}}, {0xF95D,4,{0x84,0x30,0x8A,0x33,}}, {0xF95E,4,{0x84,0x30,0x8A,0x34,}}, {0xF95F,4,{0x84,0x30,0x8A,0x35,}}, {0xF960,4,{0x84,0x30,0x8A,0x36,}}, {0xF961,4,{0x84,0x30,0x8A,0x37,}}, {0xF962,4,{0x84,0x30,0x8A,0x38,}}, {0xF963,4,{0x84,0x30,0x8A,0x39,}}, {0xF964,4,{0x84,0x30,0x8B,0x30,}}, {0xF965,4,{0x84,0x30,0x8B,0x31,}}, {0xF966,4,{0x84,0x30,0x8B,0x32,}}, {0xF967,4,{0x84,0x30,0x8B,0x33,}}, {0xF968,4,{0x84,0x30,0x8B,0x34,}}, {0xF969,4,{0x84,0x30,0x8B,0x35,}}, {0xF96A,4,{0x84,0x30,0x8B,0x36,}}, {0xF96B,4,{0x84,0x30,0x8B,0x37,}}, {0xF96C,4,{0x84,0x30,0x8B,0x38,}}, {0xF96D,4,{0x84,0x30,0x8B,0x39,}}, {0xF96E,4,{0x84,0x30,0x8C,0x30,}}, {0xF96F,4,{0x84,0x30,0x8C,0x31,}}, {0xF970,4,{0x84,0x30,0x8C,0x32,}}, {0xF971,4,{0x84,0x30,0x8C,0x33,}}, {0xF972,4,{0x84,0x30,0x8C,0x34,}}, {0xF973,4,{0x84,0x30,0x8C,0x35,}}, {0xF974,4,{0x84,0x30,0x8C,0x36,}}, {0xF975,4,{0x84,0x30,0x8C,0x37,}}, {0xF976,4,{0x84,0x30,0x8C,0x38,}}, {0xF977,4,{0x84,0x30,0x8C,0x39,}}, {0xF978,4,{0x84,0x30,0x8D,0x30,}}, {0xF979,2,{0xFD,0x9D,0x00,0x00,}}, {0xF97A,4,{0x84,0x30,0x8D,0x31,}}, {0xF97B,4,{0x84,0x30,0x8D,0x32,}}, {0xF97C,4,{0x84,0x30,0x8D,0x33,}}, {0xF97D,4,{0x84,0x30,0x8D,0x34,}}, {0xF97E,4,{0x84,0x30,0x8D,0x35,}}, {0xF97F,4,{0x84,0x30,0x8D,0x36,}}, {0xF980,4,{0x84,0x30,0x8D,0x37,}}, {0xF981,4,{0x84,0x30,0x8D,0x38,}}, {0xF982,4,{0x84,0x30,0x8D,0x39,}}, {0xF983,4,{0x84,0x30,0x8E,0x30,}}, {0xF984,4,{0x84,0x30,0x8E,0x31,}}, {0xF985,4,{0x84,0x30,0x8E,0x32,}}, {0xF986,4,{0x84,0x30,0x8E,0x33,}}, {0xF987,4,{0x84,0x30,0x8E,0x34,}}, {0xF988,4,{0x84,0x30,0x8E,0x35,}}, {0xF989,4,{0x84,0x30,0x8E,0x36,}}, {0xF98A,4,{0x84,0x30,0x8E,0x37,}}, {0xF98B,4,{0x84,0x30,0x8E,0x38,}}, {0xF98C,4,{0x84,0x30,0x8E,0x39,}}, {0xF98D,4,{0x84,0x30,0x8F,0x30,}}, {0xF98E,4,{0x84,0x30,0x8F,0x31,}}, {0xF98F,4,{0x84,0x30,0x8F,0x32,}}, {0xF990,4,{0x84,0x30,0x8F,0x33,}}, {0xF991,4,{0x84,0x30,0x8F,0x34,}}, {0xF992,4,{0x84,0x30,0x8F,0x35,}}, {0xF993,4,{0x84,0x30,0x8F,0x36,}}, {0xF994,4,{0x84,0x30,0x8F,0x37,}}, {0xF995,2,{0xFD,0x9E,0x00,0x00,}}, {0xF996,4,{0x84,0x30,0x8F,0x38,}}, {0xF997,4,{0x84,0x30,0x8F,0x39,}}, {0xF998,4,{0x84,0x30,0x90,0x30,}}, {0xF999,4,{0x84,0x30,0x90,0x31,}}, {0xF99A,4,{0x84,0x30,0x90,0x32,}}, {0xF99B,4,{0x84,0x30,0x90,0x33,}}, {0xF99C,4,{0x84,0x30,0x90,0x34,}}, {0xF99D,4,{0x84,0x30,0x90,0x35,}}, {0xF99E,4,{0x84,0x30,0x90,0x36,}}, {0xF99F,4,{0x84,0x30,0x90,0x37,}}, {0xF9A0,4,{0x84,0x30,0x90,0x38,}}, {0xF9A1,4,{0x84,0x30,0x90,0x39,}}, {0xF9A2,4,{0x84,0x30,0x91,0x30,}}, {0xF9A3,4,{0x84,0x30,0x91,0x31,}}, {0xF9A4,4,{0x84,0x30,0x91,0x32,}}, {0xF9A5,4,{0x84,0x30,0x91,0x33,}}, {0xF9A6,4,{0x84,0x30,0x91,0x34,}}, {0xF9A7,4,{0x84,0x30,0x91,0x35,}}, {0xF9A8,4,{0x84,0x30,0x91,0x36,}}, {0xF9A9,4,{0x84,0x30,0x91,0x37,}}, {0xF9AA,4,{0x84,0x30,0x91,0x38,}}, {0xF9AB,4,{0x84,0x30,0x91,0x39,}}, {0xF9AC,4,{0x84,0x30,0x92,0x30,}}, {0xF9AD,4,{0x84,0x30,0x92,0x31,}}, {0xF9AE,4,{0x84,0x30,0x92,0x32,}}, {0xF9AF,4,{0x84,0x30,0x92,0x33,}}, {0xF9B0,4,{0x84,0x30,0x92,0x34,}}, {0xF9B1,4,{0x84,0x30,0x92,0x35,}}, {0xF9B2,4,{0x84,0x30,0x92,0x36,}}, {0xF9B3,4,{0x84,0x30,0x92,0x37,}}, {0xF9B4,4,{0x84,0x30,0x92,0x38,}}, {0xF9B5,4,{0x84,0x30,0x92,0x39,}}, {0xF9B6,4,{0x84,0x30,0x93,0x30,}}, {0xF9B7,4,{0x84,0x30,0x93,0x31,}}, {0xF9B8,4,{0x84,0x30,0x93,0x32,}}, {0xF9B9,4,{0x84,0x30,0x93,0x33,}}, {0xF9BA,4,{0x84,0x30,0x93,0x34,}}, {0xF9BB,4,{0x84,0x30,0x93,0x35,}}, {0xF9BC,4,{0x84,0x30,0x93,0x36,}}, {0xF9BD,4,{0x84,0x30,0x93,0x37,}}, {0xF9BE,4,{0x84,0x30,0x93,0x38,}}, {0xF9BF,4,{0x84,0x30,0x93,0x39,}}, {0xF9C0,4,{0x84,0x30,0x94,0x30,}}, {0xF9C1,4,{0x84,0x30,0x94,0x31,}}, {0xF9C2,4,{0x84,0x30,0x94,0x32,}}, {0xF9C3,4,{0x84,0x30,0x94,0x33,}}, {0xF9C4,4,{0x84,0x30,0x94,0x34,}}, {0xF9C5,4,{0x84,0x30,0x94,0x35,}}, {0xF9C6,4,{0x84,0x30,0x94,0x36,}}, {0xF9C7,4,{0x84,0x30,0x94,0x37,}}, {0xF9C8,4,{0x84,0x30,0x94,0x38,}}, {0xF9C9,4,{0x84,0x30,0x94,0x39,}}, {0xF9CA,4,{0x84,0x30,0x95,0x30,}}, {0xF9CB,4,{0x84,0x30,0x95,0x31,}}, {0xF9CC,4,{0x84,0x30,0x95,0x32,}}, {0xF9CD,4,{0x84,0x30,0x95,0x33,}}, {0xF9CE,4,{0x84,0x30,0x95,0x34,}}, {0xF9CF,4,{0x84,0x30,0x95,0x35,}}, {0xF9D0,4,{0x84,0x30,0x95,0x36,}}, {0xF9D1,4,{0x84,0x30,0x95,0x37,}}, {0xF9D2,4,{0x84,0x30,0x95,0x38,}}, {0xF9D3,4,{0x84,0x30,0x95,0x39,}}, {0xF9D4,4,{0x84,0x30,0x96,0x30,}}, {0xF9D5,4,{0x84,0x30,0x96,0x31,}}, {0xF9D6,4,{0x84,0x30,0x96,0x32,}}, {0xF9D7,4,{0x84,0x30,0x96,0x33,}}, {0xF9D8,4,{0x84,0x30,0x96,0x34,}}, {0xF9D9,4,{0x84,0x30,0x96,0x35,}}, {0xF9DA,4,{0x84,0x30,0x96,0x36,}}, {0xF9DB,4,{0x84,0x30,0x96,0x37,}}, {0xF9DC,4,{0x84,0x30,0x96,0x38,}}, {0xF9DD,4,{0x84,0x30,0x96,0x39,}}, {0xF9DE,4,{0x84,0x30,0x97,0x30,}}, {0xF9DF,4,{0x84,0x30,0x97,0x31,}}, {0xF9E0,4,{0x84,0x30,0x97,0x32,}}, {0xF9E1,4,{0x84,0x30,0x97,0x33,}}, {0xF9E2,4,{0x84,0x30,0x97,0x34,}}, {0xF9E3,4,{0x84,0x30,0x97,0x35,}}, {0xF9E4,4,{0x84,0x30,0x97,0x36,}}, {0xF9E5,4,{0x84,0x30,0x97,0x37,}}, {0xF9E6,4,{0x84,0x30,0x97,0x38,}}, {0xF9E7,2,{0xFD,0x9F,0x00,0x00,}}, {0xF9E8,4,{0x84,0x30,0x97,0x39,}}, {0xF9E9,4,{0x84,0x30,0x98,0x30,}}, {0xF9EA,4,{0x84,0x30,0x98,0x31,}}, {0xF9EB,4,{0x84,0x30,0x98,0x32,}}, {0xF9EC,4,{0x84,0x30,0x98,0x33,}}, {0xF9ED,4,{0x84,0x30,0x98,0x34,}}, {0xF9EE,4,{0x84,0x30,0x98,0x35,}}, {0xF9EF,4,{0x84,0x30,0x98,0x36,}}, {0xF9F0,4,{0x84,0x30,0x98,0x37,}}, {0xF9F1,2,{0xFD,0xA0,0x00,0x00,}}, {0xF9F2,4,{0x84,0x30,0x98,0x38,}}, {0xF9F3,4,{0x84,0x30,0x98,0x39,}}, {0xF9F4,4,{0x84,0x30,0x99,0x30,}}, {0xF9F5,4,{0x84,0x30,0x99,0x31,}}, {0xF9F6,4,{0x84,0x30,0x99,0x32,}}, {0xF9F7,4,{0x84,0x30,0x99,0x33,}}, {0xF9F8,4,{0x84,0x30,0x99,0x34,}}, {0xF9F9,4,{0x84,0x30,0x99,0x35,}}, {0xF9FA,4,{0x84,0x30,0x99,0x36,}}, {0xF9FB,4,{0x84,0x30,0x99,0x37,}}, {0xF9FC,4,{0x84,0x30,0x99,0x38,}}, {0xF9FD,4,{0x84,0x30,0x99,0x39,}}, {0xF9FE,4,{0x84,0x30,0x9A,0x30,}}, {0xF9FF,4,{0x84,0x30,0x9A,0x31,}}, {0xFA00,4,{0x84,0x30,0x9A,0x32,}}, {0xFA01,4,{0x84,0x30,0x9A,0x33,}}, {0xFA02,4,{0x84,0x30,0x9A,0x34,}}, {0xFA03,4,{0x84,0x30,0x9A,0x35,}}, {0xFA04,4,{0x84,0x30,0x9A,0x36,}}, {0xFA05,4,{0x84,0x30,0x9A,0x37,}}, {0xFA06,4,{0x84,0x30,0x9A,0x38,}}, {0xFA07,4,{0x84,0x30,0x9A,0x39,}}, {0xFA08,4,{0x84,0x30,0x9B,0x30,}}, {0xFA09,4,{0x84,0x30,0x9B,0x31,}}, {0xFA0A,4,{0x84,0x30,0x9B,0x32,}}, {0xFA0B,4,{0x84,0x30,0x9B,0x33,}}, {0xFA0C,2,{0xFE,0x40,0x00,0x00,}}, {0xFA0D,2,{0xFE,0x41,0x00,0x00,}}, {0xFA0E,2,{0xFE,0x42,0x00,0x00,}}, {0xFA0F,2,{0xFE,0x43,0x00,0x00,}}, {0xFA10,4,{0x84,0x30,0x9B,0x34,}}, {0xFA11,2,{0xFE,0x44,0x00,0x00,}}, {0xFA12,4,{0x84,0x30,0x9B,0x35,}}, {0xFA13,2,{0xFE,0x45,0x00,0x00,}}, {0xFA14,2,{0xFE,0x46,0x00,0x00,}}, {0xFA15,4,{0x84,0x30,0x9B,0x36,}}, {0xFA16,4,{0x84,0x30,0x9B,0x37,}}, {0xFA17,4,{0x84,0x30,0x9B,0x38,}}, {0xFA18,2,{0xFE,0x47,0x00,0x00,}}, {0xFA19,4,{0x84,0x30,0x9B,0x39,}}, {0xFA1A,4,{0x84,0x30,0x9C,0x30,}}, {0xFA1B,4,{0x84,0x30,0x9C,0x31,}}, {0xFA1C,4,{0x84,0x30,0x9C,0x32,}}, {0xFA1D,4,{0x84,0x30,0x9C,0x33,}}, {0xFA1E,4,{0x84,0x30,0x9C,0x34,}}, {0xFA1F,2,{0xFE,0x48,0x00,0x00,}}, {0xFA20,2,{0xFE,0x49,0x00,0x00,}}, {0xFA21,2,{0xFE,0x4A,0x00,0x00,}}, {0xFA22,4,{0x84,0x30,0x9C,0x35,}}, {0xFA23,2,{0xFE,0x4B,0x00,0x00,}}, {0xFA24,2,{0xFE,0x4C,0x00,0x00,}}, {0xFA25,4,{0x84,0x30,0x9C,0x36,}}, {0xFA26,4,{0x84,0x30,0x9C,0x37,}}, {0xFA27,2,{0xFE,0x4D,0x00,0x00,}}, {0xFA28,2,{0xFE,0x4E,0x00,0x00,}}, {0xFA29,2,{0xFE,0x4F,0x00,0x00,}}, {0xFE30,2,{0xA9,0x55,0x00,0x00,}}, {0xFE31,2,{0xA6,0xF2,0x00,0x00,}}, {0xFE32,4,{0x84,0x31,0x85,0x38,}}, {0xFE33,2,{0xA6,0xF4,0x00,0x00,}}, {0xFE34,2,{0xA6,0xF5,0x00,0x00,}}, {0xFE35,2,{0xA6,0xE0,0x00,0x00,}}, {0xFE36,2,{0xA6,0xE1,0x00,0x00,}}, {0xFE37,2,{0xA6,0xF0,0x00,0x00,}}, {0xFE38,2,{0xA6,0xF1,0x00,0x00,}}, {0xFE39,2,{0xA6,0xE2,0x00,0x00,}}, {0xFE3A,2,{0xA6,0xE3,0x00,0x00,}}, {0xFE3B,2,{0xA6,0xEE,0x00,0x00,}}, {0xFE3C,2,{0xA6,0xEF,0x00,0x00,}}, {0xFE3D,2,{0xA6,0xE6,0x00,0x00,}}, {0xFE3E,2,{0xA6,0xE7,0x00,0x00,}}, {0xFE3F,2,{0xA6,0xE4,0x00,0x00,}}, {0xFE40,2,{0xA6,0xE5,0x00,0x00,}}, {0xFE41,2,{0xA6,0xE8,0x00,0x00,}}, {0xFE42,2,{0xA6,0xE9,0x00,0x00,}}, {0xFE43,2,{0xA6,0xEA,0x00,0x00,}}, {0xFE44,2,{0xA6,0xEB,0x00,0x00,}}, {0xFE45,4,{0x84,0x31,0x85,0x39,}}, {0xFE46,4,{0x84,0x31,0x86,0x30,}}, {0xFE47,4,{0x84,0x31,0x86,0x31,}}, {0xFE48,4,{0x84,0x31,0x86,0x32,}}, {0xFE49,2,{0xA9,0x68,0x00,0x00,}}, {0xFE4A,2,{0xA9,0x69,0x00,0x00,}}, {0xFE4B,2,{0xA9,0x6A,0x00,0x00,}}, {0xFE4C,2,{0xA9,0x6B,0x00,0x00,}}, {0xFE4D,2,{0xA9,0x6C,0x00,0x00,}}, {0xFE4E,2,{0xA9,0x6D,0x00,0x00,}}, {0xFE4F,2,{0xA9,0x6E,0x00,0x00,}}, {0xFE50,2,{0xA9,0x6F,0x00,0x00,}}, {0xFE51,2,{0xA9,0x70,0x00,0x00,}}, {0xFE52,2,{0xA9,0x71,0x00,0x00,}}, {0xFE53,4,{0x84,0x31,0x86,0x33,}}, {0xFE54,2,{0xA9,0x72,0x00,0x00,}}, {0xFE55,2,{0xA9,0x73,0x00,0x00,}}, {0xFE56,2,{0xA9,0x74,0x00,0x00,}}, {0xFE57,2,{0xA9,0x75,0x00,0x00,}}, {0xFE58,4,{0x84,0x31,0x86,0x34,}}, {0xFE59,2,{0xA9,0x76,0x00,0x00,}}, {0xFE5A,2,{0xA9,0x77,0x00,0x00,}}, {0xFE5B,2,{0xA9,0x78,0x00,0x00,}}, {0xFE5C,2,{0xA9,0x79,0x00,0x00,}}, {0xFE5D,2,{0xA9,0x7A,0x00,0x00,}}, {0xFE5E,2,{0xA9,0x7B,0x00,0x00,}}, {0xFE5F,2,{0xA9,0x7C,0x00,0x00,}}, {0xFE60,2,{0xA9,0x7D,0x00,0x00,}}, {0xFE61,2,{0xA9,0x7E,0x00,0x00,}}, {0xFE62,2,{0xA9,0x80,0x00,0x00,}}, {0xFE63,2,{0xA9,0x81,0x00,0x00,}}, {0xFE64,2,{0xA9,0x82,0x00,0x00,}}, {0xFE65,2,{0xA9,0x83,0x00,0x00,}}, {0xFE66,2,{0xA9,0x84,0x00,0x00,}}, {0xFE67,4,{0x84,0x31,0x86,0x35,}}, {0xFE68,2,{0xA9,0x85,0x00,0x00,}}, {0xFE69,2,{0xA9,0x86,0x00,0x00,}}, {0xFE6A,2,{0xA9,0x87,0x00,0x00,}}, {0xFE6B,2,{0xA9,0x88,0x00,0x00,}}, {0xFE6C,4,{0x84,0x31,0x86,0x36,}}, {0xFE6D,4,{0x84,0x31,0x86,0x37,}}, {0xFE6E,4,{0x84,0x31,0x86,0x38,}}, {0xFE6F,4,{0x84,0x31,0x86,0x39,}}, {0xFE70,4,{0x84,0x31,0x87,0x30,}}, {0xFE71,4,{0x84,0x31,0x87,0x31,}}, {0xFE72,4,{0x84,0x31,0x87,0x32,}}, {0xFE73,4,{0x84,0x31,0x87,0x33,}}, {0xFE74,4,{0x84,0x31,0x87,0x34,}}, {0xFE75,4,{0x84,0x31,0x87,0x35,}}, {0xFE76,4,{0x84,0x31,0x87,0x36,}}, {0xFE77,4,{0x84,0x31,0x87,0x37,}}, {0xFE78,4,{0x84,0x31,0x87,0x38,}}, {0xFE79,4,{0x84,0x31,0x87,0x39,}}, {0xFE7A,4,{0x84,0x31,0x88,0x30,}}, {0xFE7B,4,{0x84,0x31,0x88,0x31,}}, {0xFE7C,4,{0x84,0x31,0x88,0x32,}}, {0xFE7D,4,{0x84,0x31,0x88,0x33,}}, {0xFE7E,4,{0x84,0x31,0x88,0x34,}}, {0xFE7F,4,{0x84,0x31,0x88,0x35,}}, {0xFE80,4,{0x84,0x31,0x88,0x36,}}, {0xFE81,4,{0x84,0x31,0x88,0x37,}}, {0xFE82,4,{0x84,0x31,0x88,0x38,}}, {0xFE83,4,{0x84,0x31,0x88,0x39,}}, {0xFE84,4,{0x84,0x31,0x89,0x30,}}, {0xFE85,4,{0x84,0x31,0x89,0x31,}}, {0xFE86,4,{0x84,0x31,0x89,0x32,}}, {0xFE87,4,{0x84,0x31,0x89,0x33,}}, {0xFE88,4,{0x84,0x31,0x89,0x34,}}, {0xFE89,4,{0x84,0x31,0x89,0x35,}}, {0xFE8A,4,{0x84,0x31,0x89,0x36,}}, {0xFE8B,4,{0x84,0x31,0x89,0x37,}}, {0xFE8C,4,{0x84,0x31,0x89,0x38,}}, {0xFE8D,4,{0x84,0x31,0x89,0x39,}}, {0xFE8E,4,{0x84,0x31,0x8A,0x30,}}, {0xFE8F,4,{0x84,0x31,0x8A,0x31,}}, {0xFE90,4,{0x84,0x31,0x8A,0x32,}}, {0xFE91,4,{0x84,0x31,0x8A,0x33,}}, {0xFE92,4,{0x84,0x31,0x8A,0x34,}}, {0xFE93,4,{0x84,0x31,0x8A,0x35,}}, {0xFE94,4,{0x84,0x31,0x8A,0x36,}}, {0xFE95,4,{0x84,0x31,0x8A,0x37,}}, {0xFE96,4,{0x84,0x31,0x8A,0x38,}}, {0xFE97,4,{0x84,0x31,0x8A,0x39,}}, {0xFE98,4,{0x84,0x31,0x8B,0x30,}}, {0xFE99,4,{0x84,0x31,0x8B,0x31,}}, {0xFE9A,4,{0x84,0x31,0x8B,0x32,}}, {0xFE9B,4,{0x84,0x31,0x8B,0x33,}}, {0xFE9C,4,{0x84,0x31,0x8B,0x34,}}, {0xFE9D,4,{0x84,0x31,0x8B,0x35,}}, {0xFE9E,4,{0x84,0x31,0x8B,0x36,}}, {0xFE9F,4,{0x84,0x31,0x8B,0x37,}}, {0xFEA0,4,{0x84,0x31,0x8B,0x38,}}, {0xFEA1,4,{0x84,0x31,0x8B,0x39,}}, {0xFEA2,4,{0x84,0x31,0x8C,0x30,}}, {0xFEA3,4,{0x84,0x31,0x8C,0x31,}}, {0xFEA4,4,{0x84,0x31,0x8C,0x32,}}, {0xFEA5,4,{0x84,0x31,0x8C,0x33,}}, {0xFEA6,4,{0x84,0x31,0x8C,0x34,}}, {0xFEA7,4,{0x84,0x31,0x8C,0x35,}}, {0xFEA8,4,{0x84,0x31,0x8C,0x36,}}, {0xFEA9,4,{0x84,0x31,0x8C,0x37,}}, {0xFEAA,4,{0x84,0x31,0x8C,0x38,}}, {0xFEAB,4,{0x84,0x31,0x8C,0x39,}}, {0xFEAC,4,{0x84,0x31,0x8D,0x30,}}, {0xFEAD,4,{0x84,0x31,0x8D,0x31,}}, {0xFEAE,4,{0x84,0x31,0x8D,0x32,}}, {0xFEAF,4,{0x84,0x31,0x8D,0x33,}}, {0xFEB0,4,{0x84,0x31,0x8D,0x34,}}, {0xFEB1,4,{0x84,0x31,0x8D,0x35,}}, {0xFEB2,4,{0x84,0x31,0x8D,0x36,}}, {0xFEB3,4,{0x84,0x31,0x8D,0x37,}}, {0xFEB4,4,{0x84,0x31,0x8D,0x38,}}, {0xFEB5,4,{0x84,0x31,0x8D,0x39,}}, {0xFEB6,4,{0x84,0x31,0x8E,0x30,}}, {0xFEB7,4,{0x84,0x31,0x8E,0x31,}}, {0xFEB8,4,{0x84,0x31,0x8E,0x32,}}, {0xFEB9,4,{0x84,0x31,0x8E,0x33,}}, {0xFEBA,4,{0x84,0x31,0x8E,0x34,}}, {0xFEBB,4,{0x84,0x31,0x8E,0x35,}}, {0xFEBC,4,{0x84,0x31,0x8E,0x36,}}, {0xFEBD,4,{0x84,0x31,0x8E,0x37,}}, {0xFEBE,4,{0x84,0x31,0x8E,0x38,}}, {0xFEBF,4,{0x84,0x31,0x8E,0x39,}}, {0xFEC0,4,{0x84,0x31,0x8F,0x30,}}, {0xFEC1,4,{0x84,0x31,0x8F,0x31,}}, {0xFEC2,4,{0x84,0x31,0x8F,0x32,}}, {0xFEC3,4,{0x84,0x31,0x8F,0x33,}}, {0xFEC4,4,{0x84,0x31,0x8F,0x34,}}, {0xFEC5,4,{0x84,0x31,0x8F,0x35,}}, {0xFEC6,4,{0x84,0x31,0x8F,0x36,}}, {0xFEC7,4,{0x84,0x31,0x8F,0x37,}}, {0xFEC8,4,{0x84,0x31,0x8F,0x38,}}, {0xFEC9,4,{0x84,0x31,0x8F,0x39,}}, {0xFECA,4,{0x84,0x31,0x90,0x30,}}, {0xFECB,4,{0x84,0x31,0x90,0x31,}}, {0xFECC,4,{0x84,0x31,0x90,0x32,}}, {0xFECD,4,{0x84,0x31,0x90,0x33,}}, {0xFECE,4,{0x84,0x31,0x90,0x34,}}, {0xFECF,4,{0x84,0x31,0x90,0x35,}}, {0xFED0,4,{0x84,0x31,0x90,0x36,}}, {0xFED1,4,{0x84,0x31,0x90,0x37,}}, {0xFED2,4,{0x84,0x31,0x90,0x38,}}, {0xFED3,4,{0x84,0x31,0x90,0x39,}}, {0xFED4,4,{0x84,0x31,0x91,0x30,}}, {0xFED5,4,{0x84,0x31,0x91,0x31,}}, {0xFED6,4,{0x84,0x31,0x91,0x32,}}, {0xFED7,4,{0x84,0x31,0x91,0x33,}}, {0xFED8,4,{0x84,0x31,0x91,0x34,}}, {0xFED9,4,{0x84,0x31,0x91,0x35,}}, {0xFEDA,4,{0x84,0x31,0x91,0x36,}}, {0xFEDB,4,{0x84,0x31,0x91,0x37,}}, {0xFEDC,4,{0x84,0x31,0x91,0x38,}}, {0xFEDD,4,{0x84,0x31,0x91,0x39,}}, {0xFEDE,4,{0x84,0x31,0x92,0x30,}}, {0xFEDF,4,{0x84,0x31,0x92,0x31,}}, {0xFEE0,4,{0x84,0x31,0x92,0x32,}}, {0xFEE1,4,{0x84,0x31,0x92,0x33,}}, {0xFEE2,4,{0x84,0x31,0x92,0x34,}}, {0xFEE3,4,{0x84,0x31,0x92,0x35,}}, {0xFEE4,4,{0x84,0x31,0x92,0x36,}}, {0xFEE5,4,{0x84,0x31,0x92,0x37,}}, {0xFEE6,4,{0x84,0x31,0x92,0x38,}}, {0xFEE7,4,{0x84,0x31,0x92,0x39,}}, {0xFEE8,4,{0x84,0x31,0x93,0x30,}}, {0xFEE9,4,{0x84,0x31,0x93,0x31,}}, {0xFEEA,4,{0x84,0x31,0x93,0x32,}}, {0xFEEB,4,{0x84,0x31,0x93,0x33,}}, {0xFEEC,4,{0x84,0x31,0x93,0x34,}}, {0xFEED,4,{0x84,0x31,0x93,0x35,}}, {0xFEEE,4,{0x84,0x31,0x93,0x36,}}, {0xFEEF,4,{0x84,0x31,0x93,0x37,}}, {0xFEF0,4,{0x84,0x31,0x93,0x38,}}, {0xFEF1,4,{0x84,0x31,0x93,0x39,}}, {0xFEF2,4,{0x84,0x31,0x94,0x30,}}, {0xFEF3,4,{0x84,0x31,0x94,0x31,}}, {0xFEF4,4,{0x84,0x31,0x94,0x32,}}, {0xFEF5,4,{0x84,0x31,0x94,0x33,}}, {0xFEF6,4,{0x84,0x31,0x94,0x34,}}, {0xFEF7,4,{0x84,0x31,0x94,0x35,}}, {0xFEF8,4,{0x84,0x31,0x94,0x36,}}, {0xFEF9,4,{0x84,0x31,0x94,0x37,}}, {0xFEFA,4,{0x84,0x31,0x94,0x38,}}, {0xFEFB,4,{0x84,0x31,0x94,0x39,}}, {0xFEFC,4,{0x84,0x31,0x95,0x30,}}, {0xFEFD,4,{0x84,0x31,0x95,0x31,}}, {0xFEFE,4,{0x84,0x31,0x95,0x32,}}, {0xFEFF,4,{0x84,0x31,0x95,0x33,}}, {0xFF00,4,{0x84,0x31,0x95,0x34,}}, {0xFF01,2,{0xA3,0xA1,0x00,0x00,}}, {0xFF02,2,{0xA3,0xA2,0x00,0x00,}}, {0xFF03,2,{0xA3,0xA3,0x00,0x00,}}, {0xFF04,2,{0xA1,0xE7,0x00,0x00,}}, {0xFF05,2,{0xA3,0xA5,0x00,0x00,}}, {0xFF06,2,{0xA3,0xA6,0x00,0x00,}}, {0xFF07,2,{0xA3,0xA7,0x00,0x00,}}, {0xFF08,2,{0xA3,0xA8,0x00,0x00,}}, {0xFF09,2,{0xA3,0xA9,0x00,0x00,}}, {0xFF0A,2,{0xA3,0xAA,0x00,0x00,}}, {0xFF0B,2,{0xA3,0xAB,0x00,0x00,}}, {0xFF0C,2,{0xA3,0xAC,0x00,0x00,}}, {0xFF0D,2,{0xA3,0xAD,0x00,0x00,}}, {0xFF0E,2,{0xA3,0xAE,0x00,0x00,}}, {0xFF0F,2,{0xA3,0xAF,0x00,0x00,}}, {0xFF10,2,{0xA3,0xB0,0x00,0x00,}}, {0xFF11,2,{0xA3,0xB1,0x00,0x00,}}, {0xFF12,2,{0xA3,0xB2,0x00,0x00,}}, {0xFF13,2,{0xA3,0xB3,0x00,0x00,}}, {0xFF14,2,{0xA3,0xB4,0x00,0x00,}}, {0xFF15,2,{0xA3,0xB5,0x00,0x00,}}, {0xFF16,2,{0xA3,0xB6,0x00,0x00,}}, {0xFF17,2,{0xA3,0xB7,0x00,0x00,}}, {0xFF18,2,{0xA3,0xB8,0x00,0x00,}}, {0xFF19,2,{0xA3,0xB9,0x00,0x00,}}, {0xFF1A,2,{0xA3,0xBA,0x00,0x00,}}, {0xFF1B,2,{0xA3,0xBB,0x00,0x00,}}, {0xFF1C,2,{0xA3,0xBC,0x00,0x00,}}, {0xFF1D,2,{0xA3,0xBD,0x00,0x00,}}, {0xFF1E,2,{0xA3,0xBE,0x00,0x00,}}, {0xFF1F,2,{0xA3,0xBF,0x00,0x00,}}, {0xFF20,2,{0xA3,0xC0,0x00,0x00,}}, {0xFF21,2,{0xA3,0xC1,0x00,0x00,}}, {0xFF22,2,{0xA3,0xC2,0x00,0x00,}}, {0xFF23,2,{0xA3,0xC3,0x00,0x00,}}, {0xFF24,2,{0xA3,0xC4,0x00,0x00,}}, {0xFF25,2,{0xA3,0xC5,0x00,0x00,}}, {0xFF26,2,{0xA3,0xC6,0x00,0x00,}}, {0xFF27,2,{0xA3,0xC7,0x00,0x00,}}, {0xFF28,2,{0xA3,0xC8,0x00,0x00,}}, {0xFF29,2,{0xA3,0xC9,0x00,0x00,}}, {0xFF2A,2,{0xA3,0xCA,0x00,0x00,}}, {0xFF2B,2,{0xA3,0xCB,0x00,0x00,}}, {0xFF2C,2,{0xA3,0xCC,0x00,0x00,}}, {0xFF2D,2,{0xA3,0xCD,0x00,0x00,}}, {0xFF2E,2,{0xA3,0xCE,0x00,0x00,}}, {0xFF2F,2,{0xA3,0xCF,0x00,0x00,}}, {0xFF30,2,{0xA3,0xD0,0x00,0x00,}}, {0xFF31,2,{0xA3,0xD1,0x00,0x00,}}, {0xFF32,2,{0xA3,0xD2,0x00,0x00,}}, {0xFF33,2,{0xA3,0xD3,0x00,0x00,}}, {0xFF34,2,{0xA3,0xD4,0x00,0x00,}}, {0xFF35,2,{0xA3,0xD5,0x00,0x00,}}, {0xFF36,2,{0xA3,0xD6,0x00,0x00,}}, {0xFF37,2,{0xA3,0xD7,0x00,0x00,}}, {0xFF38,2,{0xA3,0xD8,0x00,0x00,}}, {0xFF39,2,{0xA3,0xD9,0x00,0x00,}}, {0xFF3A,2,{0xA3,0xDA,0x00,0x00,}}, {0xFF3B,2,{0xA3,0xDB,0x00,0x00,}}, {0xFF3C,2,{0xA3,0xDC,0x00,0x00,}}, {0xFF3D,2,{0xA3,0xDD,0x00,0x00,}}, {0xFF3E,2,{0xA3,0xDE,0x00,0x00,}}, {0xFF3F,2,{0xA3,0xDF,0x00,0x00,}}, {0xFF40,2,{0xA3,0xE0,0x00,0x00,}}, {0xFF41,2,{0xA3,0xE1,0x00,0x00,}}, {0xFF42,2,{0xA3,0xE2,0x00,0x00,}}, {0xFF43,2,{0xA3,0xE3,0x00,0x00,}}, {0xFF44,2,{0xA3,0xE4,0x00,0x00,}}, {0xFF45,2,{0xA3,0xE5,0x00,0x00,}}, {0xFF46,2,{0xA3,0xE6,0x00,0x00,}}, {0xFF47,2,{0xA3,0xE7,0x00,0x00,}}, {0xFF48,2,{0xA3,0xE8,0x00,0x00,}}, {0xFF49,2,{0xA3,0xE9,0x00,0x00,}}, {0xFF4A,2,{0xA3,0xEA,0x00,0x00,}}, {0xFF4B,2,{0xA3,0xEB,0x00,0x00,}}, {0xFF4C,2,{0xA3,0xEC,0x00,0x00,}}, {0xFF4D,2,{0xA3,0xED,0x00,0x00,}}, {0xFF4E,2,{0xA3,0xEE,0x00,0x00,}}, {0xFF4F,2,{0xA3,0xEF,0x00,0x00,}}, {0xFF50,2,{0xA3,0xF0,0x00,0x00,}}, {0xFF51,2,{0xA3,0xF1,0x00,0x00,}}, {0xFF52,2,{0xA3,0xF2,0x00,0x00,}}, {0xFF53,2,{0xA3,0xF3,0x00,0x00,}}, {0xFF54,2,{0xA3,0xF4,0x00,0x00,}}, {0xFF55,2,{0xA3,0xF5,0x00,0x00,}}, {0xFF56,2,{0xA3,0xF6,0x00,0x00,}}, {0xFF57,2,{0xA3,0xF7,0x00,0x00,}}, {0xFF58,2,{0xA3,0xF8,0x00,0x00,}}, {0xFF59,2,{0xA3,0xF9,0x00,0x00,}}, {0xFF5A,2,{0xA3,0xFA,0x00,0x00,}}, {0xFF5B,2,{0xA3,0xFB,0x00,0x00,}}, {0xFF5C,2,{0xA3,0xFC,0x00,0x00,}}, {0xFF5D,2,{0xA3,0xFD,0x00,0x00,}}, {0xFF5E,2,{0xA1,0xAB,0x00,0x00,}}, {0xFF5F,4,{0x84,0x31,0x95,0x35,}}, {0xFF60,4,{0x84,0x31,0x95,0x36,}}, {0xFF61,4,{0x84,0x31,0x95,0x37,}}, {0xFF62,4,{0x84,0x31,0x95,0x38,}}, {0xFF63,4,{0x84,0x31,0x95,0x39,}}, {0xFF64,4,{0x84,0x31,0x96,0x30,}}, {0xFF65,4,{0x84,0x31,0x96,0x31,}}, {0xFF66,4,{0x84,0x31,0x96,0x32,}}, {0xFF67,4,{0x84,0x31,0x96,0x33,}}, {0xFF68,4,{0x84,0x31,0x96,0x34,}}, {0xFF69,4,{0x84,0x31,0x96,0x35,}}, {0xFF6A,4,{0x84,0x31,0x96,0x36,}}, {0xFF6B,4,{0x84,0x31,0x96,0x37,}}, {0xFF6C,4,{0x84,0x31,0x96,0x38,}}, {0xFF6D,4,{0x84,0x31,0x96,0x39,}}, {0xFF6E,4,{0x84,0x31,0x97,0x30,}}, {0xFF6F,4,{0x84,0x31,0x97,0x31,}}, {0xFF70,4,{0x84,0x31,0x97,0x32,}}, {0xFF71,4,{0x84,0x31,0x97,0x33,}}, {0xFF72,4,{0x84,0x31,0x97,0x34,}}, {0xFF73,4,{0x84,0x31,0x97,0x35,}}, {0xFF74,4,{0x84,0x31,0x97,0x36,}}, {0xFF75,4,{0x84,0x31,0x97,0x37,}}, {0xFF76,4,{0x84,0x31,0x97,0x38,}}, {0xFF77,4,{0x84,0x31,0x97,0x39,}}, {0xFF78,4,{0x84,0x31,0x98,0x30,}}, {0xFF79,4,{0x84,0x31,0x98,0x31,}}, {0xFF7A,4,{0x84,0x31,0x98,0x32,}}, {0xFF7B,4,{0x84,0x31,0x98,0x33,}}, {0xFF7C,4,{0x84,0x31,0x98,0x34,}}, {0xFF7D,4,{0x84,0x31,0x98,0x35,}}, {0xFF7E,4,{0x84,0x31,0x98,0x36,}}, {0xFF7F,4,{0x84,0x31,0x98,0x37,}}, {0xFF80,4,{0x84,0x31,0x98,0x38,}}, {0xFF81,4,{0x84,0x31,0x98,0x39,}}, {0xFF82,4,{0x84,0x31,0x99,0x30,}}, {0xFF83,4,{0x84,0x31,0x99,0x31,}}, {0xFF84,4,{0x84,0x31,0x99,0x32,}}, {0xFF85,4,{0x84,0x31,0x99,0x33,}}, {0xFF86,4,{0x84,0x31,0x99,0x34,}}, {0xFF87,4,{0x84,0x31,0x99,0x35,}}, {0xFF88,4,{0x84,0x31,0x99,0x36,}}, {0xFF89,4,{0x84,0x31,0x99,0x37,}}, {0xFF8A,4,{0x84,0x31,0x99,0x38,}}, {0xFF8B,4,{0x84,0x31,0x99,0x39,}}, {0xFF8C,4,{0x84,0x31,0x9A,0x30,}}, {0xFF8D,4,{0x84,0x31,0x9A,0x31,}}, {0xFF8E,4,{0x84,0x31,0x9A,0x32,}}, {0xFF8F,4,{0x84,0x31,0x9A,0x33,}}, {0xFF90,4,{0x84,0x31,0x9A,0x34,}}, {0xFF91,4,{0x84,0x31,0x9A,0x35,}}, {0xFF92,4,{0x84,0x31,0x9A,0x36,}}, {0xFF93,4,{0x84,0x31,0x9A,0x37,}}, {0xFF94,4,{0x84,0x31,0x9A,0x38,}}, {0xFF95,4,{0x84,0x31,0x9A,0x39,}}, {0xFF96,4,{0x84,0x31,0x9B,0x30,}}, {0xFF97,4,{0x84,0x31,0x9B,0x31,}}, {0xFF98,4,{0x84,0x31,0x9B,0x32,}}, {0xFF99,4,{0x84,0x31,0x9B,0x33,}}, {0xFF9A,4,{0x84,0x31,0x9B,0x34,}}, {0xFF9B,4,{0x84,0x31,0x9B,0x35,}}, {0xFF9C,4,{0x84,0x31,0x9B,0x36,}}, {0xFF9D,4,{0x84,0x31,0x9B,0x37,}}, {0xFF9E,4,{0x84,0x31,0x9B,0x38,}}, {0xFF9F,4,{0x84,0x31,0x9B,0x39,}}, {0xFFA0,4,{0x84,0x31,0x9C,0x30,}}, {0xFFA1,4,{0x84,0x31,0x9C,0x31,}}, {0xFFA2,4,{0x84,0x31,0x9C,0x32,}}, {0xFFA3,4,{0x84,0x31,0x9C,0x33,}}, {0xFFA4,4,{0x84,0x31,0x9C,0x34,}}, {0xFFA5,4,{0x84,0x31,0x9C,0x35,}}, {0xFFA6,4,{0x84,0x31,0x9C,0x36,}}, {0xFFA7,4,{0x84,0x31,0x9C,0x37,}}, {0xFFA8,4,{0x84,0x31,0x9C,0x38,}}, {0xFFA9,4,{0x84,0x31,0x9C,0x39,}}, {0xFFAA,4,{0x84,0x31,0x9D,0x30,}}, {0xFFAB,4,{0x84,0x31,0x9D,0x31,}}, {0xFFAC,4,{0x84,0x31,0x9D,0x32,}}, {0xFFAD,4,{0x84,0x31,0x9D,0x33,}}, {0xFFAE,4,{0x84,0x31,0x9D,0x34,}}, {0xFFAF,4,{0x84,0x31,0x9D,0x35,}}, {0xFFB0,4,{0x84,0x31,0x9D,0x36,}}, {0xFFB1,4,{0x84,0x31,0x9D,0x37,}}, {0xFFB2,4,{0x84,0x31,0x9D,0x38,}}, {0xFFB3,4,{0x84,0x31,0x9D,0x39,}}, {0xFFB4,4,{0x84,0x31,0x9E,0x30,}}, {0xFFB5,4,{0x84,0x31,0x9E,0x31,}}, {0xFFB6,4,{0x84,0x31,0x9E,0x32,}}, {0xFFB7,4,{0x84,0x31,0x9E,0x33,}}, {0xFFB8,4,{0x84,0x31,0x9E,0x34,}}, {0xFFB9,4,{0x84,0x31,0x9E,0x35,}}, {0xFFBA,4,{0x84,0x31,0x9E,0x36,}}, {0xFFBB,4,{0x84,0x31,0x9E,0x37,}}, {0xFFBC,4,{0x84,0x31,0x9E,0x38,}}, {0xFFBD,4,{0x84,0x31,0x9E,0x39,}}, {0xFFBE,4,{0x84,0x31,0x9F,0x30,}}, {0xFFBF,4,{0x84,0x31,0x9F,0x31,}}, {0xFFC0,4,{0x84,0x31,0x9F,0x32,}}, {0xFFC1,4,{0x84,0x31,0x9F,0x33,}}, {0xFFC2,4,{0x84,0x31,0x9F,0x34,}}, {0xFFC3,4,{0x84,0x31,0x9F,0x35,}}, {0xFFC4,4,{0x84,0x31,0x9F,0x36,}}, {0xFFC5,4,{0x84,0x31,0x9F,0x37,}}, {0xFFC6,4,{0x84,0x31,0x9F,0x38,}}, {0xFFC7,4,{0x84,0x31,0x9F,0x39,}}, {0xFFC8,4,{0x84,0x31,0xA0,0x30,}}, {0xFFC9,4,{0x84,0x31,0xA0,0x31,}}, {0xFFCA,4,{0x84,0x31,0xA0,0x32,}}, {0xFFCB,4,{0x84,0x31,0xA0,0x33,}}, {0xFFCC,4,{0x84,0x31,0xA0,0x34,}}, {0xFFCD,4,{0x84,0x31,0xA0,0x35,}}, {0xFFCE,4,{0x84,0x31,0xA0,0x36,}}, {0xFFCF,4,{0x84,0x31,0xA0,0x37,}}, {0xFFD0,4,{0x84,0x31,0xA0,0x38,}}, {0xFFD1,4,{0x84,0x31,0xA0,0x39,}}, {0xFFD2,4,{0x84,0x31,0xA1,0x30,}}, {0xFFD3,4,{0x84,0x31,0xA1,0x31,}}, {0xFFD4,4,{0x84,0x31,0xA1,0x32,}}, {0xFFD5,4,{0x84,0x31,0xA1,0x33,}}, {0xFFD6,4,{0x84,0x31,0xA1,0x34,}}, {0xFFD7,4,{0x84,0x31,0xA1,0x35,}}, {0xFFD8,4,{0x84,0x31,0xA1,0x36,}}, {0xFFD9,4,{0x84,0x31,0xA1,0x37,}}, {0xFFDA,4,{0x84,0x31,0xA1,0x38,}}, {0xFFDB,4,{0x84,0x31,0xA1,0x39,}}, {0xFFDC,4,{0x84,0x31,0xA2,0x30,}}, {0xFFDD,4,{0x84,0x31,0xA2,0x31,}}, {0xFFDE,4,{0x84,0x31,0xA2,0x32,}}, {0xFFDF,4,{0x84,0x31,0xA2,0x33,}}, {0xFFE0,2,{0xA1,0xE9,0x00,0x00,}}, {0xFFE1,2,{0xA1,0xEA,0x00,0x00,}}, {0xFFE2,2,{0xA9,0x56,0x00,0x00,}}, {0xFFE3,2,{0xA3,0xFE,0x00,0x00,}}, {0xFFE4,2,{0xA9,0x57,0x00,0x00,}}, {0xFFE5,2,{0xA3,0xA4,0x00,0x00,}}, }; unsigned int ngb18030_enums = sizeof( gb18030_enums ) / sizeof( gb18030_enums[0] ); hs-bibutils-6.7.0.0/bibutils/generic.c0000644000000000000000000000603300000000000015635 0ustar0000000000000000/* generic.c * * Copyright (c) Chris Putnam 2016-2018 * * Source code released under GPL version 2 * * xxxx_convertf() stubs that can be shared. */ #include "bu_auth.h" #include "marc_auth.h" #include "name.h" #include "notes.h" #include "pages.h" #include "serialno.h" #include "title.h" #include "url.h" #include "generic.h" /* stub for processtypes that aren't used, such as DEFAULT and ALWAYS handled by bibcore.c */ int generic_null( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return BIBL_OK; } int generic_url( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return urls_split_and_add( str_cstr( invalue ), bibout, level ); } int generic_notes( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( notes_add( bibout, invalue, level ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_pages( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( pages_add( bibout, outtag, invalue, level ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( name_add( bibout, outtag, str_cstr( invalue ), level, &(pm->asis), &(pm->corps) ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_serialno( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( addsn( bibout, str_cstr( invalue ), level ) ) return BIBL_OK; return BIBL_ERR_MEMERR; } /* SIMPLE = just copy */ int generic_simple( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( fields_add( bibout, outtag, str_cstr( invalue ), level ) == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* just like generic_null(), but useful if we need one that isn't identical to generic_null() ala biblatexin.c */ int generic_skip( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { fields_setused( bibin, n ); return BIBL_OK; } int generic_title( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( title_process( bibout, outtag, str_cstr( invalue ), level, pm->nosplittitle ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_genre( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int status; if ( is_marc_genre( str_cstr( invalue ) ) ) status = fields_add( bibout, "GENRE:MARC", str_cstr( invalue ), level ); else if ( is_bu_genre( str_cstr( invalue ) ) ) status = fields_add( bibout, "GENRE:BIBUTILS", str_cstr( invalue ), level ); else status = fields_add( bibout, "GENRE:UNKNOWN", str_cstr( invalue ), level ); if ( status == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } hs-bibutils-6.7.0.0/bibutils/generic.c0000755000000000000000000000603300000000000015640 0ustar0000000000000000/* generic.c * * Copyright (c) Chris Putnam 2016-2018 * * Source code released under GPL version 2 * * xxxx_convertf() stubs that can be shared. */ #include "bu_auth.h" #include "marc_auth.h" #include "name.h" #include "notes.h" #include "pages.h" #include "serialno.h" #include "title.h" #include "url.h" #include "generic.h" /* stub for processtypes that aren't used, such as DEFAULT and ALWAYS handled by bibcore.c */ int generic_null( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return BIBL_OK; } int generic_url( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { return urls_split_and_add( str_cstr( invalue ), bibout, level ); } int generic_notes( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( notes_add( bibout, invalue, level ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_pages( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( pages_add( bibout, outtag, invalue, level ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( name_add( bibout, outtag, str_cstr( invalue ), level, &(pm->asis), &(pm->corps) ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_serialno( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( addsn( bibout, str_cstr( invalue ), level ) ) return BIBL_OK; return BIBL_ERR_MEMERR; } /* SIMPLE = just copy */ int generic_simple( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( fields_add( bibout, outtag, str_cstr( invalue ), level ) == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* just like generic_null(), but useful if we need one that isn't identical to generic_null() ala biblatexin.c */ int generic_skip( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { fields_setused( bibin, n ); return BIBL_OK; } int generic_title( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { if ( title_process( bibout, outtag, str_cstr( invalue ), level, pm->nosplittitle ) ) return BIBL_OK; else return BIBL_ERR_MEMERR; } int generic_genre( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int status; if ( is_marc_genre( str_cstr( invalue ) ) ) status = fields_add( bibout, "GENRE:MARC", str_cstr( invalue ), level ); else if ( is_bu_genre( str_cstr( invalue ) ) ) status = fields_add( bibout, "GENRE:BIBUTILS", str_cstr( invalue ), level ); else status = fields_add( bibout, "GENRE:UNKNOWN", str_cstr( invalue ), level ); if ( status == FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } hs-bibutils-6.7.0.0/bibutils/generic.h0000755000000000000000000000261200000000000015644 0ustar0000000000000000/* generic.h * * Copyright (c) Chris Putnam 2016-2018 * * Source code released under GPL version 2 * */ #ifndef GENERIC_H #define GENERIC_H #include "bibutils.h" int generic_null ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_url ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_notes ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_pages ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_person ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_serialno( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_simple ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_skip ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_title ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); int generic_genre ( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ); #endif hs-bibutils-6.7.0.0/bibutils/intlist.c0000644000000000000000000002175300000000000015715 0ustar0000000000000000/* * intlist.c * * Copyright (c) Chris Putnam 2007-2018 * * Version 1/12/2017 * * Source code released under the GPL version 2 * * Implements a simple managed array of ints * */ #include #include #include "intlist.h" #define INTLIST_MINALLOC (20) static int intlist_validn( intlist *il, int n ) { if ( n < 0 || n >= il->n ) return 0; return 1; } int intlist_wasfound( intlist *il, int n ) { if ( n!=-1 ) return 1; else return 0; } int intlist_wasnotfound( intlist *il, int n ) { if ( n==-1 ) return 1; else return 0; } static int intlist_alloc( intlist *il, int alloc_size ) { il->data = ( int * ) calloc( alloc_size, sizeof( int ) ); if ( !(il->data) ) return INTLIST_MEMERR; il->max = alloc_size; il->n = 0; return INTLIST_OK; } static int intlist_realloc( intlist *il, int alloc_size ) { int i, *more; more = ( int * ) realloc( il->data, sizeof( int ) * alloc_size ); if ( !more ) return INTLIST_MEMERR; il->data = more; il->max = alloc_size; for ( i=il->max; idata[i] = 0; return INTLIST_OK; } static int intlist_ensure_space( intlist *il, int n ) { int alloc = n; if ( il->max == 0 ) { if ( alloc < INTLIST_MINALLOC ) alloc = INTLIST_MINALLOC; return intlist_alloc( il, alloc ); } else if ( il->max <= n ) { if ( alloc < il->max * 2 ) alloc = il->max * 2; return intlist_realloc( il, alloc ); } return INTLIST_OK; } /* intlist_add() * * Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_add( intlist *il, int value ) { int status; assert( il ); status = intlist_ensure_space( il, il->n+1 ); if ( status == INTLIST_OK ) { il->data[ il->n ] = value; il->n++; } return status; } /* intlist_add_unique() * * Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_add_unique( intlist *il, int value ) { int n; assert( il ); n = intlist_find( il, value ); if ( intlist_wasnotfound( il, n ) ) return intlist_add( il, value ); else return INTLIST_OK; } int intlist_find_or_add( intlist *il, int value ) { int n, status; n = intlist_find( il, value ); if ( intlist_wasfound( il, n ) ) { return n; } else { status = intlist_add( il, value ); if ( status!=INTLIST_OK ) return -1; else return il->n - 1; } } /* intlist_find() * * Returns position of value in range [0,n), or -1 if * value cannot be found */ int intlist_find( intlist *il, int value ) { int i; assert( il ); for ( i=0; in; ++i ) if ( il->data[i]==value ) return i; return -1; } static int intlist_remove_pos_core( intlist *il, int pos ) { int i; assert( il ); for ( i=pos; in-1; ++i ) il->data[i] = il->data[i+1]; il->n -= 1; return INTLIST_OK; } /* intlist_remove_pos() * * Returns INTLIST_OK on success. */ int intlist_remove_pos( intlist *il, int pos ) { assert( il ); assert( intlist_validn( il, pos ) ); return intlist_remove_pos_core( il, pos ); } /* intlist_remove() * * Removes first instance of value from the intlist. * Returns INTLIST_OK/INTLIST_VALUE_MISSING */ int intlist_remove( intlist *il, int value ) { int pos; assert( il ); pos = intlist_find( il, value ); if ( pos==-1 ) return INTLIST_VALUE_MISSING; return intlist_remove_pos_core( il, pos ); } /* don't actually free space, just reset counter */ void intlist_empty( intlist *il ) { assert( il ); il->n = 0; } void intlist_free( intlist *il ) { assert( il ); if ( il->data ) free( il->data ); intlist_init( il ); } void intlist_delete( intlist *il ) { assert( il ); if ( il->data ) free( il->data ); free( il ); } void intlist_init( intlist *il ) { assert( il ); il->data = NULL; il->max = 0; il->n = 0; } /* Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_init_fill( intlist *il, int n, int v ) { intlist_init( il ); return intlist_fill( il, n, v ); } /* intlist_init_range() * * Initializes intlist to values from [low,high) with step step. * Returns INTLIST_OK/INTLIST_MEMERR. */ int intlist_init_range( intlist *il, int low, int high, int step ) { intlist_init( il ); return intlist_fill_range( il, low, high, step ); } /* intlist_new() * * Allocates an empty intlist. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new( void ) { intlist *il; il = ( intlist * ) malloc( sizeof( intlist ) ); if ( il ) intlist_init( il ); return il; } /* intlist_new_range() * * Allocates a intlist initialized to values from [low,high) in increments of step. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new_range( int low, int high, int step ) { intlist *il; int status; il = intlist_new(); if ( il ) { status = intlist_fill_range( il, low, high, step ); if ( status==INTLIST_MEMERR ) { intlist_free( il ); free( il ); il = NULL; } } return il; } /* intlist_new_range() * * Allocates a intlist initialized to n elements with value v. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new_fill( int n, int v ) { intlist *il; int status; il = intlist_new(); if ( il ) { status = intlist_fill( il, n, v ); if ( status==INTLIST_MEMERR ) { intlist_free( il ); free( il ); il = NULL; } } return il; } /* intlist_fill() * * Fill an intlist with n elements of value v. * * Returns INTLIST_OK or INTLIST_MEMERR. */ int intlist_fill( intlist *il, int n, int v ) { int i, status; assert ( n > 0 ); status = intlist_ensure_space( il, n ); if ( status==INTLIST_OK ) { for ( i=0; idata[i] = v; il->n = n; } return status; } /* intlist_fill_range() * * Fill an intlist with the values [low,high) in increments of step * * Returns INTLIST_OK or INTLIST_MEMERR. */ int intlist_fill_range( intlist *il, int low, int high, int step ) { int i, n, status; n = ( high - low ) / step + 1; assert ( n > 0 ); status = intlist_ensure_space( il, n ); if ( status==INTLIST_OK ) { il->n = 0; /* ...fill intlist with range */ if ( step > 0 ) { for ( i=low; idata[il->n] = i; il->n += 1; } } else { for ( i=low; i>high; i+=step ) { il->data[il->n] = i; il->n += 1; } } } return status; } static int intcomp( const void *v1, const void *v2 ) { int *i1 = ( int * ) v1; int *i2 = ( int * ) v2; if ( *i1 < *i2 ) return -1; else if ( *i1 > *i2 ) return 1; return 0; } void intlist_sort( intlist *il ) { assert( il ); qsort( il->data, il->n, sizeof( int ), intcomp ); } /* Returns random integer in the range [floor,ceil) */ static int randomint( int floor, int ceil ) { int len = ceil - floor; return floor + rand() % len; } static void swap( int *a, int *b ) { int tmp; tmp = *a; *a = *b; *b = tmp; } void intlist_randomize( intlist *il ) { int i, j; assert( il ); if ( il->n < 2 ) return; for ( i=0; in; ++i ) { j = randomint( i, il->n ); if ( i==j ) continue; swap( &(il->data[i]), &(il->data[j]) ); } } /* Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_copy( intlist *to, intlist *from ) { int i, status; assert( to ); assert( from ); status = intlist_ensure_space( to, from->n ); if ( status==INTLIST_OK ) { to->n = from->n; for ( i=0; in; ++i ) to->data[i] = from->data[i]; } return status; } /* Returns pointer on success, NULL on error */ intlist * intlist_dup( intlist *il ) { intlist *l; int status; assert( il ); l = intlist_new(); if ( l ) { status = intlist_copy( l, il ); if ( status==INTLIST_MEMERR ) { intlist_delete( l ); l = NULL; } } return l; } int intlist_append( intlist *to, intlist *from ) { int i, status; assert( to ); assert( from ); status = intlist_ensure_space( to, to->n + from->n ); if ( status == INTLIST_OK ) { for ( i=0; in; ++i ) to->data[ to->n + i ] = from->data[ i ]; to->n += from->n; } return status; } int intlist_append_unique( intlist *to, intlist *from ) { int i, nsave, status = INTLIST_OK; assert( to ); assert( from ); nsave = to->n; for ( i=0; in; ++i ) { if ( intlist_find( to, from->data[i] )!=-1 ) continue; status = intlist_add( to, from->data[i] ); if ( status==INTLIST_MEMERR ) { to->n = nsave; } } return status; } int intlist_get( intlist *il, int pos ) { assert( il ); assert( intlist_validn( il, pos ) ); return il->data[pos]; } /* intlist_set() * * Returns INTLIST_OK */ int intlist_set( intlist *il, int pos, int value ) { assert( il ); assert( intlist_validn( il, pos ) ); il->data[pos] = value; return INTLIST_OK; } float intlist_median( intlist *il ) { intlist *tmp; float median; int m1, m2; assert( il ); if ( il->n==0 ) return 0.0; tmp = intlist_dup( il ); if ( !tmp ) return 0.0; intlist_sort( tmp ); if ( tmp->n % 2 == 1 ) { median = intlist_get( tmp, tmp->n / 2 ); } else { m1 = intlist_get( tmp, tmp->n / 2 ); m2 = intlist_get( tmp, tmp->n / 2 - 1); median = ( m1 + m2 ) / 2.0; } intlist_delete( tmp ); return median; } float intlist_mean( intlist *il ) { float sum = 0.0; int i; assert( il ); if ( il->n==0 ) return 0.0; for ( i=0; in; ++i ) sum += intlist_get( il, i ); return sum / il->n; } hs-bibutils-6.7.0.0/bibutils/intlist.c0000755000000000000000000002175300000000000015720 0ustar0000000000000000/* * intlist.c * * Copyright (c) Chris Putnam 2007-2018 * * Version 1/12/2017 * * Source code released under the GPL version 2 * * Implements a simple managed array of ints * */ #include #include #include "intlist.h" #define INTLIST_MINALLOC (20) static int intlist_validn( intlist *il, int n ) { if ( n < 0 || n >= il->n ) return 0; return 1; } int intlist_wasfound( intlist *il, int n ) { if ( n!=-1 ) return 1; else return 0; } int intlist_wasnotfound( intlist *il, int n ) { if ( n==-1 ) return 1; else return 0; } static int intlist_alloc( intlist *il, int alloc_size ) { il->data = ( int * ) calloc( alloc_size, sizeof( int ) ); if ( !(il->data) ) return INTLIST_MEMERR; il->max = alloc_size; il->n = 0; return INTLIST_OK; } static int intlist_realloc( intlist *il, int alloc_size ) { int i, *more; more = ( int * ) realloc( il->data, sizeof( int ) * alloc_size ); if ( !more ) return INTLIST_MEMERR; il->data = more; il->max = alloc_size; for ( i=il->max; idata[i] = 0; return INTLIST_OK; } static int intlist_ensure_space( intlist *il, int n ) { int alloc = n; if ( il->max == 0 ) { if ( alloc < INTLIST_MINALLOC ) alloc = INTLIST_MINALLOC; return intlist_alloc( il, alloc ); } else if ( il->max <= n ) { if ( alloc < il->max * 2 ) alloc = il->max * 2; return intlist_realloc( il, alloc ); } return INTLIST_OK; } /* intlist_add() * * Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_add( intlist *il, int value ) { int status; assert( il ); status = intlist_ensure_space( il, il->n+1 ); if ( status == INTLIST_OK ) { il->data[ il->n ] = value; il->n++; } return status; } /* intlist_add_unique() * * Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_add_unique( intlist *il, int value ) { int n; assert( il ); n = intlist_find( il, value ); if ( intlist_wasnotfound( il, n ) ) return intlist_add( il, value ); else return INTLIST_OK; } int intlist_find_or_add( intlist *il, int value ) { int n, status; n = intlist_find( il, value ); if ( intlist_wasfound( il, n ) ) { return n; } else { status = intlist_add( il, value ); if ( status!=INTLIST_OK ) return -1; else return il->n - 1; } } /* intlist_find() * * Returns position of value in range [0,n), or -1 if * value cannot be found */ int intlist_find( intlist *il, int value ) { int i; assert( il ); for ( i=0; in; ++i ) if ( il->data[i]==value ) return i; return -1; } static int intlist_remove_pos_core( intlist *il, int pos ) { int i; assert( il ); for ( i=pos; in-1; ++i ) il->data[i] = il->data[i+1]; il->n -= 1; return INTLIST_OK; } /* intlist_remove_pos() * * Returns INTLIST_OK on success. */ int intlist_remove_pos( intlist *il, int pos ) { assert( il ); assert( intlist_validn( il, pos ) ); return intlist_remove_pos_core( il, pos ); } /* intlist_remove() * * Removes first instance of value from the intlist. * Returns INTLIST_OK/INTLIST_VALUE_MISSING */ int intlist_remove( intlist *il, int value ) { int pos; assert( il ); pos = intlist_find( il, value ); if ( pos==-1 ) return INTLIST_VALUE_MISSING; return intlist_remove_pos_core( il, pos ); } /* don't actually free space, just reset counter */ void intlist_empty( intlist *il ) { assert( il ); il->n = 0; } void intlist_free( intlist *il ) { assert( il ); if ( il->data ) free( il->data ); intlist_init( il ); } void intlist_delete( intlist *il ) { assert( il ); if ( il->data ) free( il->data ); free( il ); } void intlist_init( intlist *il ) { assert( il ); il->data = NULL; il->max = 0; il->n = 0; } /* Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_init_fill( intlist *il, int n, int v ) { intlist_init( il ); return intlist_fill( il, n, v ); } /* intlist_init_range() * * Initializes intlist to values from [low,high) with step step. * Returns INTLIST_OK/INTLIST_MEMERR. */ int intlist_init_range( intlist *il, int low, int high, int step ) { intlist_init( il ); return intlist_fill_range( il, low, high, step ); } /* intlist_new() * * Allocates an empty intlist. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new( void ) { intlist *il; il = ( intlist * ) malloc( sizeof( intlist ) ); if ( il ) intlist_init( il ); return il; } /* intlist_new_range() * * Allocates a intlist initialized to values from [low,high) in increments of step. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new_range( int low, int high, int step ) { intlist *il; int status; il = intlist_new(); if ( il ) { status = intlist_fill_range( il, low, high, step ); if ( status==INTLIST_MEMERR ) { intlist_free( il ); free( il ); il = NULL; } } return il; } /* intlist_new_range() * * Allocates a intlist initialized to n elements with value v. * Returns pointer to intlist on success, NULL on memory error. */ intlist * intlist_new_fill( int n, int v ) { intlist *il; int status; il = intlist_new(); if ( il ) { status = intlist_fill( il, n, v ); if ( status==INTLIST_MEMERR ) { intlist_free( il ); free( il ); il = NULL; } } return il; } /* intlist_fill() * * Fill an intlist with n elements of value v. * * Returns INTLIST_OK or INTLIST_MEMERR. */ int intlist_fill( intlist *il, int n, int v ) { int i, status; assert ( n > 0 ); status = intlist_ensure_space( il, n ); if ( status==INTLIST_OK ) { for ( i=0; idata[i] = v; il->n = n; } return status; } /* intlist_fill_range() * * Fill an intlist with the values [low,high) in increments of step * * Returns INTLIST_OK or INTLIST_MEMERR. */ int intlist_fill_range( intlist *il, int low, int high, int step ) { int i, n, status; n = ( high - low ) / step + 1; assert ( n > 0 ); status = intlist_ensure_space( il, n ); if ( status==INTLIST_OK ) { il->n = 0; /* ...fill intlist with range */ if ( step > 0 ) { for ( i=low; idata[il->n] = i; il->n += 1; } } else { for ( i=low; i>high; i+=step ) { il->data[il->n] = i; il->n += 1; } } } return status; } static int intcomp( const void *v1, const void *v2 ) { int *i1 = ( int * ) v1; int *i2 = ( int * ) v2; if ( *i1 < *i2 ) return -1; else if ( *i1 > *i2 ) return 1; return 0; } void intlist_sort( intlist *il ) { assert( il ); qsort( il->data, il->n, sizeof( int ), intcomp ); } /* Returns random integer in the range [floor,ceil) */ static int randomint( int floor, int ceil ) { int len = ceil - floor; return floor + rand() % len; } static void swap( int *a, int *b ) { int tmp; tmp = *a; *a = *b; *b = tmp; } void intlist_randomize( intlist *il ) { int i, j; assert( il ); if ( il->n < 2 ) return; for ( i=0; in; ++i ) { j = randomint( i, il->n ); if ( i==j ) continue; swap( &(il->data[i]), &(il->data[j]) ); } } /* Returns INTLIST_OK/INTLIST_MEMERR */ int intlist_copy( intlist *to, intlist *from ) { int i, status; assert( to ); assert( from ); status = intlist_ensure_space( to, from->n ); if ( status==INTLIST_OK ) { to->n = from->n; for ( i=0; in; ++i ) to->data[i] = from->data[i]; } return status; } /* Returns pointer on success, NULL on error */ intlist * intlist_dup( intlist *il ) { intlist *l; int status; assert( il ); l = intlist_new(); if ( l ) { status = intlist_copy( l, il ); if ( status==INTLIST_MEMERR ) { intlist_delete( l ); l = NULL; } } return l; } int intlist_append( intlist *to, intlist *from ) { int i, status; assert( to ); assert( from ); status = intlist_ensure_space( to, to->n + from->n ); if ( status == INTLIST_OK ) { for ( i=0; in; ++i ) to->data[ to->n + i ] = from->data[ i ]; to->n += from->n; } return status; } int intlist_append_unique( intlist *to, intlist *from ) { int i, nsave, status = INTLIST_OK; assert( to ); assert( from ); nsave = to->n; for ( i=0; in; ++i ) { if ( intlist_find( to, from->data[i] )!=-1 ) continue; status = intlist_add( to, from->data[i] ); if ( status==INTLIST_MEMERR ) { to->n = nsave; } } return status; } int intlist_get( intlist *il, int pos ) { assert( il ); assert( intlist_validn( il, pos ) ); return il->data[pos]; } /* intlist_set() * * Returns INTLIST_OK */ int intlist_set( intlist *il, int pos, int value ) { assert( il ); assert( intlist_validn( il, pos ) ); il->data[pos] = value; return INTLIST_OK; } float intlist_median( intlist *il ) { intlist *tmp; float median; int m1, m2; assert( il ); if ( il->n==0 ) return 0.0; tmp = intlist_dup( il ); if ( !tmp ) return 0.0; intlist_sort( tmp ); if ( tmp->n % 2 == 1 ) { median = intlist_get( tmp, tmp->n / 2 ); } else { m1 = intlist_get( tmp, tmp->n / 2 ); m2 = intlist_get( tmp, tmp->n / 2 - 1); median = ( m1 + m2 ) / 2.0; } intlist_delete( tmp ); return median; } float intlist_mean( intlist *il ) { float sum = 0.0; int i; assert( il ); if ( il->n==0 ) return 0.0; for ( i=0; in; ++i ) sum += intlist_get( il, i ); return sum / il->n; } hs-bibutils-6.7.0.0/bibutils/intlist.h0000755000000000000000000000331100000000000015713 0ustar0000000000000000/* * intlist.h * * Copyright (c) Chris Putnam 2007-2018 * * Version 01/12/2017 * * Source code released under the GPL version 2 * */ #ifndef INTLIST_H #define INTLIST_H #define INTLIST_OK (0) #define INTLIST_MEMERR (-1) #define INTLIST_VALUE_MISSING (-2) typedef struct intlist { int n, max; int *data; } intlist; void intlist_init( intlist *il ); int intlist_init_fill( intlist *il, int n, int value ); int intlist_init_range( intlist *il, int low, int high, int step ); intlist * intlist_new( void ); intlist * intlist_new_fill( int n, int value ); intlist * intlist_new_range( int low, int high, int step ); void intlist_delete( intlist *il ); void intlist_sort( intlist *il ); void intlist_randomize( intlist *il ); int intlist_add( intlist *il, int value ); int intlist_add_unique( intlist *il, int value ); int intlist_fill( intlist *il, int n, int value ); int intlist_fill_range( intlist *il, int low, int high, int step ); int intlist_find( intlist *il, int searchvalue ); int intlist_find_or_add( intlist *il, int searchvalue ); void intlist_empty( intlist *il ); void intlist_free( intlist *il ); int intlist_copy( intlist *to, intlist *from ); intlist * intlist_dup( intlist *from ); int intlist_get( intlist *il, int pos ); int intlist_set( intlist *il, int pos, int value ); int intlist_remove( intlist *il, int searchvalue ); int intlist_remove_pos( intlist *il, int pos ); int intlist_append( intlist *to, intlist *from ); int intlist_append_unique( intlist *to, intlist *from ); float intlist_median( intlist *il ); float intlist_mean( intlist *il ); #endif hs-bibutils-6.7.0.0/bibutils/is_ws.c0000644000000000000000000000070100000000000015341 0ustar0000000000000000/* * is_ws.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include "is_ws.h" /* is_ws(), is whitespace */ int is_ws( char ch ) { if (ch==' ' || ch=='\n' || ch=='\t' || ch=='\r' ) return 1; else return 0; } char * skip_ws( char *p ) { if ( p ) { while ( is_ws( *p ) ) p++; } return p; } char * skip_notws( char *p ) { if ( p ) { while ( *p && !is_ws( *p ) ) p++; } return p; } hs-bibutils-6.7.0.0/bibutils/is_ws.c0000755000000000000000000000070100000000000015344 0ustar0000000000000000/* * is_ws.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include "is_ws.h" /* is_ws(), is whitespace */ int is_ws( char ch ) { if (ch==' ' || ch=='\n' || ch=='\t' || ch=='\r' ) return 1; else return 0; } char * skip_ws( char *p ) { if ( p ) { while ( is_ws( *p ) ) p++; } return p; } char * skip_notws( char *p ) { if ( p ) { while ( *p && !is_ws( *p ) ) p++; } return p; } hs-bibutils-6.7.0.0/bibutils/is_ws.h0000755000000000000000000000037700000000000015362 0ustar0000000000000000/* * is_ws.h * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #ifndef IS_WS_H #define IS_WS_H extern int is_ws( char ch ); extern char *skip_ws( char *p ); extern char *skip_notws( char *p ); #endif hs-bibutils-6.7.0.0/bibutils/isiin.c0000644000000000000000000002474400000000000015345 0ustar0000000000000000/* * isiin.c * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "name.h" #include "fields.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants isi_all[]; extern int isi_nall; static int isiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int isiin_typef( fields *isiin, char *filename, int nref, param *p ); static int isiin_convertf( fields *isiin, fields *info, int reftype, param *p ); static int isiin_processf( fields *isiin, char *p, char *filename, long nref, param *pm ); /***************************************************** PUBLIC: void isiin_initparams() *****************************************************/ void isiin_initparams( param *p, const char *progname ) { p->readformat = BIBL_ISIIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = isiin_readf; p->processf = isiin_processf; p->cleanf = NULL; p->typef = isiin_typef; p->convertf = isiin_convertf; p->all = isi_all; p->nall = isi_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int isiin_readf() *****************************************************/ /* ISI definition of a tag is strict: * char 1 = uppercase alphabetic character * char 2 = uppercase alphabetic character or digit */ static int is_isi_tag( char *buf ) { if ( ! (buf[0]>='A' && buf[0]<='Z') ) return 0; if ( ! (((buf[1]>='A' && buf[1]<='Z'))||(buf[1]>='0'&&buf[1]<='9'))) return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int isiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( !line->data ) continue; p = &(line->data[0]); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } /* Each reference ends with 'ER ' */ if ( is_isi_tag( p ) ) { if ( !strncmp( p, "FN ", 3 ) ) { if (strncasecmp( p, "FN ISI Export Format",20)){ fprintf( stderr, ": warning file FN type not '%s' not recognized.\n", /*r->progname,*/ p ); } } else if ( !strncmp( p, "VR ", 3 ) ) { if ( strncasecmp( p, "VR 1.0", 6 ) ) { fprintf(stderr,": warning file version number '%s' not recognized, expected 'VR 1.0'\n", /*r->progname,*/ p ); } } else if ( !strncmp( p, "ER", 2 ) ) haveref = 1; else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); inref = 1; } str_empty( line ); } /* not a tag, but we'll append to the last values */ else if ( inref ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); str_empty( line ); } else { str_empty( line ); } } return haveref; } /***************************************************** PUBLIC: int isiin_processf() *****************************************************/ static char * process_tagged_line( str *tag, str *data, char *p ) { int i; /* collect tag and skip past it */ i = 0; while ( i<2 && *p && *p!='\r' && *p!='\n') { str_addchar( tag, *p++ ); i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static char * process_untagged_line( str *data, char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static int add_tag_value( fields *isiin, str *tag, str *value, int *tag_added ) { int status; if ( str_has_value( tag ) && str_has_value( value ) ) { status = fields_add( isiin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } else { *tag_added = 0; } return BIBL_OK; } static int merge_tag_value( fields *isiin, str *tag, str *value, int *tag_added ) { int n, status; if ( str_has_value( value ) ) { if ( *tag_added==1 ) { n = fields_num( isiin ); if ( n==0 ) return BIBL_OK; /* only one AU or AF for list of authors */ if ( !strcmp( str_cstr( tag ), "AU" ) ) { status = fields_add( isiin, "AU", str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strcmp( str_cstr( tag ), "AF" ) ) { status = fields_add( isiin, "AF", str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } /* otherwise append multiline data */ else { str_addchar( &(isiin->data[n-1]),' '); str_strcat( &(isiin->data[n-1]), value ); if ( str_memerr( &(isiin->data[n-1]) ) ) return BIBL_ERR_MEMERR; } } else { status = fields_add( isiin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } } return BIBL_OK; } static int isiin_processf( fields *isiin, char *p, char *filename, long nref, param *pm ) { int status, tag_added = 0, ret = 1; str tag, value; strs_init( &tag, &value, NULL ); while ( *p ) { /* ...with tag, add */ if ( is_isi_tag( p ) ) { str_empty( &tag ); str_empty( &value ); p = process_tagged_line( &tag, &value, p ); status = add_tag_value( isiin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } /* ...untagged, merge -- one AU or AF for list of authors */ else { str_empty( &value ); p = process_untagged_line( &value, p ); status = merge_tag_value( isiin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } } out: strs_free( &value, &tag, NULL ); return ret; } /***************************************************** PUBLIC: int isiin_typef() *****************************************************/ static int isiin_typef( fields *isiin, char *filename, int nref, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename=""; ntypename = fields_find( isiin, "PT", LEVEL_MAIN ); nrefname = fields_find( isiin, "UT", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( isiin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( isiin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int isiin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* pull off authors first--use AF before AU */ static int isiin_addauthors( fields *isiin, fields *info, int reftype, variants *all, int nall, slist *asis, slist *corps ) { char *newtag, *authortype, use_af[]="AF", use_au[]="AU"; int level, i, n, has_af=0, has_au=0, nfields, ok; str *t, *d; nfields = fields_num( isiin ); for ( i=0; idata, "AU" ) ) has_au++; if ( !strcasecmp( t->data, "AF" ) ) has_af++; } if ( has_af ) authortype = use_af; else if ( has_au ) authortype = use_au; else return BIBL_OK; /* no authors */ for ( i=0; idata, authortype ) ) continue; d = fields_value( isiin, i, FIELDS_STRP ); n = process_findoldtag( authortype, reftype, all, nall ); level = ((all[reftype]).tags[n]).level; newtag = all[reftype].tags[n].newstr; ok = name_add( info, newtag, d->data, level, asis, corps ); if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int isiin_keyword( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; char *p = invalue->data; str keyword; str_init( &keyword ); while ( *p ) { p = str_cpytodelim( &keyword, skip_ws( p ), ";", 1 ); if ( str_memerr( &keyword ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &keyword ) ) { fstatus = fields_add( bibout, outtag, keyword.data, level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: str_free( &keyword ); return status; } static void isiin_report_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "PT" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify ISI tag '%s'\n", tag ); } } static int isiin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SERIALNO ] = generic_serialno, [ DATE ] = generic_simple, [ NOTES ] = generic_notes, [ KEYWORD ] = isiin_keyword, }; int process, level, i, nfields, status; str *intag, *invalue; char *outtag; status = isiin_addauthors( bibin, bibout, reftype, p->all, p->nall, &(p->asis), &(p->corps) ); if ( status!=BIBL_OK ) return status; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { isiin_report_notag( p, str_cstr( intag ) ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.7.0.0/bibutils/isiin.c0000755000000000000000000002474400000000000015350 0ustar0000000000000000/* * isiin.c * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "name.h" #include "fields.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants isi_all[]; extern int isi_nall; static int isiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int isiin_typef( fields *isiin, char *filename, int nref, param *p ); static int isiin_convertf( fields *isiin, fields *info, int reftype, param *p ); static int isiin_processf( fields *isiin, char *p, char *filename, long nref, param *pm ); /***************************************************** PUBLIC: void isiin_initparams() *****************************************************/ void isiin_initparams( param *p, const char *progname ) { p->readformat = BIBL_ISIIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = isiin_readf; p->processf = isiin_processf; p->cleanf = NULL; p->typef = isiin_typef; p->convertf = isiin_convertf; p->all = isi_all; p->nall = isi_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int isiin_readf() *****************************************************/ /* ISI definition of a tag is strict: * char 1 = uppercase alphabetic character * char 2 = uppercase alphabetic character or digit */ static int is_isi_tag( char *buf ) { if ( ! (buf[0]>='A' && buf[0]<='Z') ) return 0; if ( ! (((buf[1]>='A' && buf[1]<='Z'))||(buf[1]>='0'&&buf[1]<='9'))) return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int isiin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( !line->data ) continue; p = &(line->data[0]); /* Recognize UTF8 BOM */ if ( line->len > 2 && (unsigned char)(p[0])==0xEF && (unsigned char)(p[1])==0xBB && (unsigned char)(p[2])==0xBF ) { *fcharset = CHARSET_UNICODE; p += 3; } /* Each reference ends with 'ER ' */ if ( is_isi_tag( p ) ) { if ( !strncmp( p, "FN ", 3 ) ) { if (strncasecmp( p, "FN ISI Export Format",20)){ fprintf( stderr, ": warning file FN type not '%s' not recognized.\n", /*r->progname,*/ p ); } } else if ( !strncmp( p, "VR ", 3 ) ) { if ( strncasecmp( p, "VR 1.0", 6 ) ) { fprintf(stderr,": warning file version number '%s' not recognized, expected 'VR 1.0'\n", /*r->progname,*/ p ); } } else if ( !strncmp( p, "ER", 2 ) ) haveref = 1; else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); inref = 1; } str_empty( line ); } /* not a tag, but we'll append to the last values */ else if ( inref ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); str_empty( line ); } else { str_empty( line ); } } return haveref; } /***************************************************** PUBLIC: int isiin_processf() *****************************************************/ static char * process_tagged_line( str *tag, str *data, char *p ) { int i; /* collect tag and skip past it */ i = 0; while ( i<2 && *p && *p!='\r' && *p!='\n') { str_addchar( tag, *p++ ); i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static char * process_untagged_line( str *data, char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static int add_tag_value( fields *isiin, str *tag, str *value, int *tag_added ) { int status; if ( str_has_value( tag ) && str_has_value( value ) ) { status = fields_add( isiin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } else { *tag_added = 0; } return BIBL_OK; } static int merge_tag_value( fields *isiin, str *tag, str *value, int *tag_added ) { int n, status; if ( str_has_value( value ) ) { if ( *tag_added==1 ) { n = fields_num( isiin ); if ( n==0 ) return BIBL_OK; /* only one AU or AF for list of authors */ if ( !strcmp( str_cstr( tag ), "AU" ) ) { status = fields_add( isiin, "AU", str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( !strcmp( str_cstr( tag ), "AF" ) ) { status = fields_add( isiin, "AF", str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } /* otherwise append multiline data */ else { str_addchar( &(isiin->data[n-1]),' '); str_strcat( &(isiin->data[n-1]), value ); if ( str_memerr( &(isiin->data[n-1]) ) ) return BIBL_ERR_MEMERR; } } else { status = fields_add( isiin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } } return BIBL_OK; } static int isiin_processf( fields *isiin, char *p, char *filename, long nref, param *pm ) { int status, tag_added = 0, ret = 1; str tag, value; strs_init( &tag, &value, NULL ); while ( *p ) { /* ...with tag, add */ if ( is_isi_tag( p ) ) { str_empty( &tag ); str_empty( &value ); p = process_tagged_line( &tag, &value, p ); status = add_tag_value( isiin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } /* ...untagged, merge -- one AU or AF for list of authors */ else { str_empty( &value ); p = process_untagged_line( &value, p ); status = merge_tag_value( isiin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } } out: strs_free( &value, &tag, NULL ); return ret; } /***************************************************** PUBLIC: int isiin_typef() *****************************************************/ static int isiin_typef( fields *isiin, char *filename, int nref, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename=""; ntypename = fields_find( isiin, "PT", LEVEL_MAIN ); nrefname = fields_find( isiin, "UT", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( isiin, nrefname, FIELDS_CHRP_NOUSE ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( isiin, ntypename, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int isiin_convertf(), returns BIBL_OK or BIBL_ERR_MEMERR *****************************************************/ /* pull off authors first--use AF before AU */ static int isiin_addauthors( fields *isiin, fields *info, int reftype, variants *all, int nall, slist *asis, slist *corps ) { char *newtag, *authortype, use_af[]="AF", use_au[]="AU"; int level, i, n, has_af=0, has_au=0, nfields, ok; str *t, *d; nfields = fields_num( isiin ); for ( i=0; idata, "AU" ) ) has_au++; if ( !strcasecmp( t->data, "AF" ) ) has_af++; } if ( has_af ) authortype = use_af; else if ( has_au ) authortype = use_au; else return BIBL_OK; /* no authors */ for ( i=0; idata, authortype ) ) continue; d = fields_value( isiin, i, FIELDS_STRP ); n = process_findoldtag( authortype, reftype, all, nall ); level = ((all[reftype]).tags[n]).level; newtag = all[reftype].tags[n].newstr; ok = name_add( info, newtag, d->data, level, asis, corps ); if ( !ok ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int isiin_keyword( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; char *p = invalue->data; str keyword; str_init( &keyword ); while ( *p ) { p = str_cpytodelim( &keyword, skip_ws( p ), ";", 1 ); if ( str_memerr( &keyword ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &keyword ) ) { fstatus = fields_add( bibout, outtag, keyword.data, level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: str_free( &keyword ); return status; } static void isiin_report_notag( param *p, char *tag ) { if ( p->verbose && strcmp( tag, "PT" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify ISI tag '%s'\n", tag ); } } static int isiin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SERIALNO ] = generic_serialno, [ DATE ] = generic_simple, [ NOTES ] = generic_notes, [ KEYWORD ] = isiin_keyword, }; int process, level, i, nfields, status; str *intag, *invalue; char *outtag; status = isiin_addauthors( bibin, bibout, reftype, p->all, p->nall, &(p->asis), &(p->corps) ); if ( status!=BIBL_OK ) return status; nfields = fields_num( bibin ); for ( i=0; iall, p->nall, &process, &level, &outtag ) ) { isiin_report_notag( p, str_cstr( intag ) ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.7.0.0/bibutils/isiout.c0000644000000000000000000002416700000000000015545 0ustar0000000000000000/* * isiout.c * * Copyright (c) Chris Putnam 2008-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "title.h" #include "bibutils.h" #include "bibformats.h" static int isiout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); static void isiout_writeheader( FILE *outptr, param *p ); void isiout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_ISIOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; if ( p->charsetout == BIBL_CHARSET_UNICODE ) { p->utf8out = p->utf8bom = 1; } p->headerf = isiout_writeheader; p->footerf = NULL; p->writef = isiout_write; } enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE = 1, TYPE_INBOOK = 2, TYPE_BOOK = 3, }; static int get_type( fields *in ) { int type = TYPE_UNKNOWN, i, n, level; char *tag, *value; n = fields_num( in ); for ( i=0; i0 ) str_strcatc( &keywords, "; " ); str_strcat( &keywords, (str *) vplist_get( &kw, i ) ); } if ( str_memerr( &keywords ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, "DE", str_cstr( &keywords ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } } out: vplist_free( &kw ); str_free( &keywords ); } static void process_person( str *person, char *name ) { str family, given, suffix; char *p = name; str_empty( person ); strs_init( &family, &given, &suffix, NULL ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); while ( *p=='|' && *(p+1)!='|' ) { p++; if ( *p!='|' ) str_addchar( &given, *p++ ); while ( *p && *p!='|' ) p++; } if ( *p=='|' && *(p+1)=='|' ) { p += 2; while ( *p && *p!='|' ) str_addchar( &suffix, *p++ ); } if ( str_has_value( &family ) ) str_strcat( person, &family ); if ( str_has_value( &suffix ) ) { if ( str_has_value( &family ) ) str_strcatc( person, " " ); str_strcat( person, &suffix ); } if ( str_has_value( &given ) ) { if ( str_has_value( person ) ) str_strcatc( person, ", " ); str_strcat( person, &given ); } strs_free( &family, &given, &suffix, NULL ); } static void append_people( fields *f, char *tag, char *isitag, int level, fields *out, int *status ) { vplist_index i; vplist people; str person; int fstatus; str_init( &person ); vplist_init( &people ); fields_findv_each( f, level, FIELDS_CHRP, &people, tag ); for ( i=0; in; ++i ) { fprintf( fp, "%s %s\n", ( char * ) fields_tag ( out, i, FIELDS_CHRP ), ( char * ) fields_value( out, i, FIELDS_CHRP ) ); } fprintf( fp, "ER\n\n" ); fflush( fp ); } static int isiout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( in, "IN", refnum ); status = append_data( in, &out ); if ( status==BIBL_OK ) output( fp, &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( &out, "OUT", refnum ); fields_free( &out ); return status; } static void isiout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/isiout.c0000755000000000000000000002416700000000000015550 0ustar0000000000000000/* * isiout.c * * Copyright (c) Chris Putnam 2008-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "title.h" #include "bibutils.h" #include "bibformats.h" static int isiout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); static void isiout_writeheader( FILE *outptr, param *p ); void isiout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_ISIOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; if ( p->charsetout == BIBL_CHARSET_UNICODE ) { p->utf8out = p->utf8bom = 1; } p->headerf = isiout_writeheader; p->footerf = NULL; p->writef = isiout_write; } enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE = 1, TYPE_INBOOK = 2, TYPE_BOOK = 3, }; static int get_type( fields *in ) { int type = TYPE_UNKNOWN, i, n, level; char *tag, *value; n = fields_num( in ); for ( i=0; i0 ) str_strcatc( &keywords, "; " ); str_strcat( &keywords, (str *) vplist_get( &kw, i ) ); } if ( str_memerr( &keywords ) ) { *status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( out, "DE", str_cstr( &keywords ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { *status = BIBL_ERR_MEMERR; goto out; } } out: vplist_free( &kw ); str_free( &keywords ); } static void process_person( str *person, char *name ) { str family, given, suffix; char *p = name; str_empty( person ); strs_init( &family, &given, &suffix, NULL ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); while ( *p=='|' && *(p+1)!='|' ) { p++; if ( *p!='|' ) str_addchar( &given, *p++ ); while ( *p && *p!='|' ) p++; } if ( *p=='|' && *(p+1)=='|' ) { p += 2; while ( *p && *p!='|' ) str_addchar( &suffix, *p++ ); } if ( str_has_value( &family ) ) str_strcat( person, &family ); if ( str_has_value( &suffix ) ) { if ( str_has_value( &family ) ) str_strcatc( person, " " ); str_strcat( person, &suffix ); } if ( str_has_value( &given ) ) { if ( str_has_value( person ) ) str_strcatc( person, ", " ); str_strcat( person, &given ); } strs_free( &family, &given, &suffix, NULL ); } static void append_people( fields *f, char *tag, char *isitag, int level, fields *out, int *status ) { vplist_index i; vplist people; str person; int fstatus; str_init( &person ); vplist_init( &people ); fields_findv_each( f, level, FIELDS_CHRP, &people, tag ); for ( i=0; in; ++i ) { fprintf( fp, "%s %s\n", ( char * ) fields_tag ( out, i, FIELDS_CHRP ), ( char * ) fields_value( out, i, FIELDS_CHRP ) ); } fprintf( fp, "ER\n\n" ); fflush( fp ); } static int isiout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( in, "IN", refnum ); status = append_data( in, &out ); if ( status==BIBL_OK ) output( fp, &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( &out, "OUT", refnum ); fields_free( &out ); return status; } static void isiout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/isitypes.c0000644000000000000000000002607600000000000016103 0ustar0000000000000000/* * isitypes.c * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" static lookups article[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "AR", "ARTICLENUMBER", SIMPLE, LEVEL_MAIN }, /* AR=article number that Phys. Rev. B uses instead of page numbers */ { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "PI", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_MAIN }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "PT", " ", TYPE, LEVEL_HOST }, { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; static lookups inbook[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_HOST }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; static lookups bookinseries[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_MAIN }, { "SE", "TITLE", TITLE, LEVEL_HOST }, { "BS", "SUBTITLE", TITLE, LEVEL_HOST }, { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_MAIN } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants isi_all[] = { REFTYPE( "Journal", article ), REFTYPE( "J", article ), REFTYPE( "Book", book ), REFTYPE( "B", book ), REFTYPE( "Chapter", inbook ), REFTYPE( "S", bookinseries ), }; int isi_nall = sizeof( isi_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/isitypes.c0000755000000000000000000002607600000000000016106 0ustar0000000000000000/* * isitypes.c * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" static lookups article[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "AR", "ARTICLENUMBER", SIMPLE, LEVEL_MAIN }, /* AR=article number that Phys. Rev. B uses instead of page numbers */ { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_MAIN }, { "PI", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "DATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_MAIN }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "PT", " ", TYPE, LEVEL_HOST }, { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|BOOK", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN } }; static lookups inbook[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_HOST }, /* full journal name */ { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_HOST }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|INBOOK", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST } }; static lookups bookinseries[] = { { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AF", "AUTHOR", PERSON, LEVEL_MAIN }, { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "SO", "TITLE", TITLE, LEVEL_MAIN }, { "SE", "TITLE", TITLE, LEVEL_HOST }, { "BS", "SUBTITLE", TITLE, LEVEL_HOST }, { "JI", "SHORTTITLE", TITLE, LEVEL_HOST }, /* abbr journal name */ { "J9", "SHORTTITLE", TITLE, LEVEL_HOST }, /* 29char journal name */ { "PU", "PUBLISHER", SIMPLE, LEVEL_HOST }, { "PI", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher city */ { "C1", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* author address */ { "PA", "ADDRESS", SIMPLE, LEVEL_HOST }, /* publisher address */ { "RP", "REPRINTADDRESS", SIMPLE, LEVEL_MAIN }, { "PY", "PARTDATE:YEAR", SIMPLE, LEVEL_MAIN }, { "PD", "PARTDATE:MONTH", SIMPLE, LEVEL_MAIN }, { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, { "BP", "PAGES:START", SIMPLE, LEVEL_MAIN }, { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, { "PG", "PAGES:TOTAL", SIMPLE, LEVEL_MAIN }, { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, { "SN", "SERIALNUMBER", SERIALNO, LEVEL_HOST }, { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "NF", "NOTES", NOTES, LEVEL_MAIN }, { "DE", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* author keywords */ { "ID", "KEYWORD", KEYWORD, LEVEL_MAIN }, /* new ISI keywords */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "TC", "TIMESCITED", SIMPLE, LEVEL_MAIN }, { "NR", "NUMBERREFS", SIMPLE, LEVEL_MAIN }, { "CR", "CITEDREFS", SIMPLE, LEVEL_MAIN }, { "PT", " ", TYPE, LEVEL_HOST }, { "DT", "DOCUMENTTYPE", TYPE, LEVEL_MAIN }, { "GA", "ISIDELIVERNUM", SIMPLE, LEVEL_MAIN }, /* ISI document delivery number */ { "UT", "ISIREFNUM", SIMPLE, LEVEL_MAIN }, /* ISI unique article identifer */ { "DI", "DOI", SIMPLE, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|INCOLLECTION", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|collection", ALWAYS, LEVEL_MAIN } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants isi_all[] = { REFTYPE( "Journal", article ), REFTYPE( "J", article ), REFTYPE( "Book", book ), REFTYPE( "B", book ), REFTYPE( "Chapter", inbook ), REFTYPE( "S", bookinseries ), }; int isi_nall = sizeof( isi_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/iso639_1.c0000644000000000000000000001073600000000000015502 0ustar0000000000000000/* * iso639_1.c */ #include #include "iso639_1.h" typedef struct { char *code; char *language; } iso639_1_t; static iso639_1_t iso639_1[] = { { "aa", "Afar" }, { "ab", "Abkhazian" }, { "ae", "Avestan" }, { "af", "Afrikaans" }, { "ak", "Akan" }, { "am", "Amharic" }, { "an", "Aragonese" }, { "ar", "Arabic" }, { "as", "Assamese" }, { "av", "Avaric" }, { "ay", "Aymara" }, { "az", "Azerbaijani" }, { "ba", "Bashkir" }, { "be", "Belarusian" }, { "bg", "Bulgarian" }, { "bh", "Bihari languages" }, { "bi", "Bislama" }, { "bm", "Bambara" }, { "bn", "Bengali" }, { "bo", "Tibetan" }, { "br", "Breton" }, { "bs", "Bosnian" }, { "ca", "Catalan" }, { "ce", "Chechen" }, { "ch", "Chamorro" }, { "co", "Corsican" }, { "cr", "Cree" }, { "cs", "Czech" }, { "cu", "Church Slavic" }, { "cv", "Chuvash" }, { "cy", "Welsh" }, { "da", "Danish" }, { "de", "German" }, { "dv", "Dhivehi" }, { "dz", "Dzongkha" }, { "ee", "Ewe" }, { "el", "Modern Greek" }, { "en", "English" }, { "eo", "Esperanto" }, { "es", "Spanish" }, { "et", "Estonian" }, { "eu", "Basque" }, { "fa", "Persian" }, { "ff", "Fulah" }, { "fi", "Finnish" }, { "fj", "Fijian" }, { "fo", "Faroese" }, { "fr", "French" }, { "fy", "Western Frisian" }, { "ga", "Irish" }, { "gd", "Scottish Gaelic" }, { "gl", "Galician" }, { "gn", "Guarani" }, { "gu", "Gujarati" }, { "gv", "Manx" }, { "ha", "Hausa" }, { "he", "Hebrew" }, { "hi", "Hindi" }, { "ho", "Hiri Motu" }, { "hr", "Croatian" }, { "ht", "Haitian" }, { "hu", "Hungarian" }, { "hy", "Armenian" }, { "hz", "Herero" }, { "ia", "Interlingua" }, { "id", "Indonesian" }, { "ie", "Interlingue" }, { "ig", "Igbo" }, { "ii", "Sichuan Yi" }, { "ik", "Inupiaq" }, { "io", "Ido" }, { "is", "Icelandic" }, { "it", "Italian" }, { "iu", "Inuktitut" }, { "ja", "Japanese" }, { "jv", "Javanese" }, { "ka", "Georgian" }, { "kg", "Kongo" }, { "ki", "Kikuyu" }, { "kj", "Kuanyama" }, { "kk", "Kazakh" }, { "kl", "Kalaallisut" }, { "km", "Central Khmer" }, { "kn", "Kannada" }, { "ko", "Korean" }, { "kr", "Kanuri" }, { "ks", "Kashmiri" }, { "ku", "Kurdish" }, { "kv", "Komi" }, { "kw", "Cornish" }, { "ky", "Kirghiz" }, { "la", "Latin" }, { "lb", "Luxembourgish" }, { "lg", "Ganda" }, { "li", "Limburgan" }, { "ln", "Lingala" }, { "lo", "Lao" }, { "lt", "Lithuanian" }, { "lu", "Luba-Katanga" }, { "lv", "Latvian" }, { "mg", "Malagasy" }, { "mh", "Marshallese" }, { "mi", "Maori" }, { "mk", "Macedonian" }, { "ml", "Malayalam" }, { "mn", "Mongolian" }, { "mr", "Marathi" }, { "ms", "Malay" }, { "mt", "Maltese" }, { "my", "Burmese" }, { "na", "Nauru" }, { "nb", "Norwegian Bokmål" }, { "nd", "North Ndebele" }, { "ne", "Nepali" }, { "ng", "Ndonga" }, { "nl", "Dutch" }, { "nn", "Norwegian Nynorsk" }, { "no", "Norwegian" }, { "nr", "South Ndebele" }, { "nv", "Navajo" }, { "ny", "Nyanja" }, { "oc", "Occitan" }, { "oj", "Ojibwa" }, { "om", "Oromo" }, { "or", "Oriya" }, { "os", "Ossetian" }, { "pa", "Panjabi" }, { "pi", "Pali" }, { "pl", "Polish" }, { "ps", "Pushto" }, { "pt", "Portuguese" }, { "qu", "Quechua" }, { "rm", "Romansh" }, { "rn", "Rundi" }, { "ro", "Romanian" }, { "ru", "Russian" }, { "rw", "Kinyarwanda" }, { "sa", "Sanskrit" }, { "sc", "Sardinian" }, { "sd", "Sindhi" }, { "se", "Northern Sami" }, { "sg", "Sango" }, { "sh", "Serbo-Croatian" }, { "si", "Sinhala" }, { "sk", "Slovak" }, { "sl", "Slovenian" }, { "sm", "Samoan" }, { "sn", "Shona" }, { "so", "Somali" }, { "sq", "Albanian" }, { "sr", "Serbian" }, { "ss", "Swati" }, { "st", "Southern Sotho" }, { "su", "Sundanese" }, { "sv", "Swedish" }, { "sw", "Swahili" }, { "ta", "Tamil" }, { "te", "Telugu" }, { "tg", "Tajik" }, { "th", "Thai" }, { "ti", "Tigrinya" }, { "tk", "Turkmen" }, { "tl", "Tagalog" }, { "tn", "Tswana" }, { "to", "Tonga" }, { "tr", "Turkish" }, { "ts", "Tsonga" }, { "tt", "Tatar" }, { "tw", "Twi" }, { "ty", "Tahitian" }, { "ug", "Uighur" }, { "uk", "Ukrainian" }, { "ur", "Urdu" }, { "uz", "Uzbek" }, { "ve", "Venda" }, { "vi", "Vietnamese" }, { "vo", "Volapük" }, { "wa", "Walloon" }, { "wo", "Wolof" }, { "xh", "Xhosa" }, { "yi", "Yiddish" }, { "yo", "Yoruba" }, { "za", "Zhuang" }, { "zh", "Chinese" }, { "zu", "Zulu" }, }; static int niso639_1= sizeof( iso639_1 ) / sizeof( iso639_1[0] ); char * iso639_1_from_code( const char *code ) { int i; for ( i=0; i #include "iso639_1.h" typedef struct { char *code; char *language; } iso639_1_t; static iso639_1_t iso639_1[] = { { "aa", "Afar" }, { "ab", "Abkhazian" }, { "ae", "Avestan" }, { "af", "Afrikaans" }, { "ak", "Akan" }, { "am", "Amharic" }, { "an", "Aragonese" }, { "ar", "Arabic" }, { "as", "Assamese" }, { "av", "Avaric" }, { "ay", "Aymara" }, { "az", "Azerbaijani" }, { "ba", "Bashkir" }, { "be", "Belarusian" }, { "bg", "Bulgarian" }, { "bh", "Bihari languages" }, { "bi", "Bislama" }, { "bm", "Bambara" }, { "bn", "Bengali" }, { "bo", "Tibetan" }, { "br", "Breton" }, { "bs", "Bosnian" }, { "ca", "Catalan" }, { "ce", "Chechen" }, { "ch", "Chamorro" }, { "co", "Corsican" }, { "cr", "Cree" }, { "cs", "Czech" }, { "cu", "Church Slavic" }, { "cv", "Chuvash" }, { "cy", "Welsh" }, { "da", "Danish" }, { "de", "German" }, { "dv", "Dhivehi" }, { "dz", "Dzongkha" }, { "ee", "Ewe" }, { "el", "Modern Greek" }, { "en", "English" }, { "eo", "Esperanto" }, { "es", "Spanish" }, { "et", "Estonian" }, { "eu", "Basque" }, { "fa", "Persian" }, { "ff", "Fulah" }, { "fi", "Finnish" }, { "fj", "Fijian" }, { "fo", "Faroese" }, { "fr", "French" }, { "fy", "Western Frisian" }, { "ga", "Irish" }, { "gd", "Scottish Gaelic" }, { "gl", "Galician" }, { "gn", "Guarani" }, { "gu", "Gujarati" }, { "gv", "Manx" }, { "ha", "Hausa" }, { "he", "Hebrew" }, { "hi", "Hindi" }, { "ho", "Hiri Motu" }, { "hr", "Croatian" }, { "ht", "Haitian" }, { "hu", "Hungarian" }, { "hy", "Armenian" }, { "hz", "Herero" }, { "ia", "Interlingua" }, { "id", "Indonesian" }, { "ie", "Interlingue" }, { "ig", "Igbo" }, { "ii", "Sichuan Yi" }, { "ik", "Inupiaq" }, { "io", "Ido" }, { "is", "Icelandic" }, { "it", "Italian" }, { "iu", "Inuktitut" }, { "ja", "Japanese" }, { "jv", "Javanese" }, { "ka", "Georgian" }, { "kg", "Kongo" }, { "ki", "Kikuyu" }, { "kj", "Kuanyama" }, { "kk", "Kazakh" }, { "kl", "Kalaallisut" }, { "km", "Central Khmer" }, { "kn", "Kannada" }, { "ko", "Korean" }, { "kr", "Kanuri" }, { "ks", "Kashmiri" }, { "ku", "Kurdish" }, { "kv", "Komi" }, { "kw", "Cornish" }, { "ky", "Kirghiz" }, { "la", "Latin" }, { "lb", "Luxembourgish" }, { "lg", "Ganda" }, { "li", "Limburgan" }, { "ln", "Lingala" }, { "lo", "Lao" }, { "lt", "Lithuanian" }, { "lu", "Luba-Katanga" }, { "lv", "Latvian" }, { "mg", "Malagasy" }, { "mh", "Marshallese" }, { "mi", "Maori" }, { "mk", "Macedonian" }, { "ml", "Malayalam" }, { "mn", "Mongolian" }, { "mr", "Marathi" }, { "ms", "Malay" }, { "mt", "Maltese" }, { "my", "Burmese" }, { "na", "Nauru" }, { "nb", "Norwegian Bokmål" }, { "nd", "North Ndebele" }, { "ne", "Nepali" }, { "ng", "Ndonga" }, { "nl", "Dutch" }, { "nn", "Norwegian Nynorsk" }, { "no", "Norwegian" }, { "nr", "South Ndebele" }, { "nv", "Navajo" }, { "ny", "Nyanja" }, { "oc", "Occitan" }, { "oj", "Ojibwa" }, { "om", "Oromo" }, { "or", "Oriya" }, { "os", "Ossetian" }, { "pa", "Panjabi" }, { "pi", "Pali" }, { "pl", "Polish" }, { "ps", "Pushto" }, { "pt", "Portuguese" }, { "qu", "Quechua" }, { "rm", "Romansh" }, { "rn", "Rundi" }, { "ro", "Romanian" }, { "ru", "Russian" }, { "rw", "Kinyarwanda" }, { "sa", "Sanskrit" }, { "sc", "Sardinian" }, { "sd", "Sindhi" }, { "se", "Northern Sami" }, { "sg", "Sango" }, { "sh", "Serbo-Croatian" }, { "si", "Sinhala" }, { "sk", "Slovak" }, { "sl", "Slovenian" }, { "sm", "Samoan" }, { "sn", "Shona" }, { "so", "Somali" }, { "sq", "Albanian" }, { "sr", "Serbian" }, { "ss", "Swati" }, { "st", "Southern Sotho" }, { "su", "Sundanese" }, { "sv", "Swedish" }, { "sw", "Swahili" }, { "ta", "Tamil" }, { "te", "Telugu" }, { "tg", "Tajik" }, { "th", "Thai" }, { "ti", "Tigrinya" }, { "tk", "Turkmen" }, { "tl", "Tagalog" }, { "tn", "Tswana" }, { "to", "Tonga" }, { "tr", "Turkish" }, { "ts", "Tsonga" }, { "tt", "Tatar" }, { "tw", "Twi" }, { "ty", "Tahitian" }, { "ug", "Uighur" }, { "uk", "Ukrainian" }, { "ur", "Urdu" }, { "uz", "Uzbek" }, { "ve", "Venda" }, { "vi", "Vietnamese" }, { "vo", "Volapük" }, { "wa", "Walloon" }, { "wo", "Wolof" }, { "xh", "Xhosa" }, { "yi", "Yiddish" }, { "yo", "Yoruba" }, { "za", "Zhuang" }, { "zh", "Chinese" }, { "zu", "Zulu" }, }; static int niso639_1= sizeof( iso639_1 ) / sizeof( iso639_1[0] ); char * iso639_1_from_code( const char *code ) { int i; for ( i=0; i #include "iso639_2.h" typedef struct { char *code1; char *code2; unsigned char main; char *language; } iso639_2_t; static iso639_2_t iso639_2[] = { { "abk", "", 1, "Abkhazian" }, { "ace", "", 1, "Achenese" }, { "ace", "", 1, "Achinese" }, { "ach", "", 1, "Acoli" }, { "ada", "", 1, "Adangme" }, { "ady", "", 1, "Adygei" }, { "ady", "", 1, "Adyghe" }, { "aar", "", 1, "Afar" }, { "afh", "", 1, "Afrihili" }, { "afr", "", 1, "Afrikaans" }, { "afa", "", 1, "Afroasiatic languages" }, { "ain", "", 1, "Ainu" }, { "aka", "", 1, "Akan" }, { "akk", "", 1, "Akkadian" }, { "alb", "sqi", 1, "Albanian" }, { "gsw", "", 1, "Alemannic" }, { "ale", "", 1, "Aleut" }, { "alg", "", 1, "Algonquian languages" }, { "gsw", "", 1, "Alsatian" }, { "alt", "", 1, "Altai, Southern" }, { "tut", "", 1, "Altaic languages" }, { "amh", "", 1, "Amharic" }, { "egy", "", 1, "Ancient Egyptian" }, { "grc", "", 1, "Ancient Greek" }, { "anp", "", 1, "Angika" }, { "apa", "", 1, "Apache languages" }, { "arc", "", 1, "Aramaic, Imperial" }, { "arc", "", 1, "Aramaic, Official" }, { "arp", "", 1, "Arapaho" }, { "arw", "", 1, "Arawak" }, { "arg", "", 1, "Argonese" }, { "arm", "hye", 1, "Armenian" }, { "rup", "", 1, "Aromanian" }, { "art", "", 1, "Artificial languages" }, { "rup", "", 1, "Arumanian" }, { "asm", "", 1, "Assamese" }, { "ast", "", 1, "Asturian" }, { "ast", "", 1, "Asturleonese" }, { "ath", "", 1, "Athabaskan languages" }, { "aus", "", 1, "Australian languages" }, { "map", "", 1, "Austronesian languages" }, { "ava", "", 1, "Avaric" }, { "ave", "", 1, "Avestan" }, { "awa", "", 1, "Awadhi" }, { "aze", "", 1, "Azerbaijani" }, { "ast", "", 1, "Bable" }, { "ban", "", 1, "Balinese" }, { "bat", "", 1, "Baltic languages" }, { "bal", "", 1, "Baluchi" }, { "bam", "", 1, "Bambara" }, { "bai", "", 1, "Bamileke languages" }, { "bad", "", 1, "Banda languages" }, { "bnt", "", 1, "Bantu languages" }, { "bas", "", 1, "Basa" }, { "bak", "", 1, "Bashkir" }, { "baq", "eus", 1, "Basque" }, { "bej", "", 1, "Bedawiyet" }, { "bej", "", 1, "Beja" }, { "bel", "", 1, "Belarusian" }, { "bem", "", 1, "Bemba" }, { "ben", "", 1, "Bengali" }, { "ber", "", 1, "Berber languages" }, { "bho", "", 1, "Bhojpuri" }, { "bih", "", 1, "Bihari languages" }, { "bik", "", 1, "Bikol" }, { "byn", "", 1, "Bilin" }, { "bin", "", 1, "Bini" }, { "bis", "", 1, "Bislama" }, { "bla", "", 1, "Blackfoot" }, { "byn", "", 1, "Blin" }, { "zbl", "", 1, "Blissymbols" }, { "bos", "", 1, "Bosnian" }, { "bra", "", 1, "Braj" }, { "btk", "", 1, "Bratak languages" }, { "bre", "", 1, "Breton" }, { "bug", "", 1, "Buginese" }, { "bul", "", 1, "Bulgarian" }, { "bua", "", 1, "Buriat" }, { "bur", "mya", 1, "Burmese" }, { "cad", "", 1, "Caddo" }, { "spa", "", 0, "Castilian" }, { "cat", "", 1, "Catalan" }, { "cau", "", 1, "Caucasian languages" }, { "ceb", "", 1, "Cebuano" }, { "cel", "", 1, "Celtic languages" }, { "cai", "", 1, "Central American Indian languages" }, { "khm", "", 1, "Central Khmer" }, { "chg", "", 1, "Chagatai" }, { "cmc", "", 1, "Chamic languages" }, { "cha", "", 1, "Chamorro" }, { "che", "", 1, "Chechen" }, { "chr", "", 1, "Cherokee" }, { "nya", "", 1, "Chewa" }, { "chy", "", 1, "Cheyenne" }, { "chb", "", 1, "Chibcha" }, { "nya", "", 1, "Chichewa" }, { "chi", "zho", 1, "Chinese" }, { "chn", "", 1, "Chinook Jargon" }, { "chp", "", 1, "Chipewyan" }, { "cho", "", 1, "Choctaw" }, { "zha", "", 1, "Chuang" }, { "chu", "", 1, "Church Slavic" }, { "chu", "", 1, "Church Slavonic" }, { "chk", "", 1, "Chuukese" }, { "chv", "", 1, "Chuvash" }, { "kbd", "", 1, "Circassian" }, { "nwc", "", 1, "Classical Nepal Bhasa" }, { "nwc", "", 1, "Classical Newari" }, { "syc", "", 1, "Classical Syriac" }, { "rar", "", 1, "Cook Islands Maori" }, { "cop", "", 1, "Coptic" }, { "cor", "", 1, "Cornish" }, { "cos", "", 1, "Corsican" }, { "cre", "", 1, "Cree" }, { "mus", "", 1, "Creek" }, { "crp", "", 1, "creoles and pidgins" }, { "cpe", "", 1, "creoles and pidgins, English-based" }, { "cpf", "", 1, "creoles and pidgins, French-based" }, { "cpp", "", 1, "creoles and pidgins, Portuguese-based" }, { "crh", "", 1, "Crimean Tartar" }, { "crh", "", 1, "Crimean Turkish" }, { "hrv", "", 1, "Croatian" }, { "cus", "", 1, "Cushitic languages" }, { "cze", "ces", 1, "Czech" }, { "dak", "", 1, "Dakota" }, { "dan", "", 1, "Danish" }, { "dar", "", 1, "Dargwa" }, { "del", "", 1, "Delaware" }, { "chp", "", 1, "Dene Suline" }, { "div", "", 1, "Dhivehi" }, { "din", "", 1, "Dinka" }, { "div", "", 1, "Divehi" }, { "doi", "", 1, "Dogri" }, { "dgr", "", 1, "Dogrib" }, { "dra", "", 1, "Dravidian languages" }, { "dua", "", 1, "Duala" }, { "dut", "", 1, "Dutch" }, { "dum", "", 1, "Dutch, Middle" }, { "dyu", "", 1, "Dyula" }, { "dzo", "", 1, "Dzongkha" }, { "frs", "", 1, "Eastern Frisian" }, { "bin", "", 1, "Edo" }, { "efi", "", 1, "Efik" }, { "egy", "", 1, "Egyptian (Ancient)" }, { "eka", "", 1, "Ekajuk" }, { "elx", "", 1, "Elamite" }, { "eng", "", 1, "English" }, { "enm", "", 0, "English, Middle" }, { "ang", "", 0, "English, Old" }, { "myv", "", 1, "Erzya" }, { "epo", "", 1, "Esperanto" }, { "est", "", 1, "Estonian" }, { "ewe", "", 1, "Ewe" }, { "ewo", "", 1, "Ewondo" }, { "fan", "", 1, "Fang" }, { "fat", "", 1, "Fanti" }, { "fao", "", 1, "Faroese" }, { "fij", "", 1, "Fijian" }, { "fil", "", 1, "Filipino" }, { "fin", "", 1, "Finnish" }, { "fiu", "", 1, "Finno-Ugric languages" }, { "dut", "", 1, "Flemish" }, { "fon", "", 1, "Fon" }, { "fre", "fra", 1, "French" }, { "frm", "", 0, "French, Middle" }, { "fro", "", 0, "French, Old" }, { "frs", "", 1, "Frisian, Eastern" }, { "frr", "", 1, "Frisian, Northern" }, { "fry", "", 1, "Frisian, Western" }, { "fur", "", 1, "Friulian" }, { "ful", "", 1, "Fulah" }, { "gaa", "", 1, "Ga" }, { "gla", "", 1, "Gaelic" }, { "car", "", 1, "Galibi Carib" }, { "lug", "", 1, "Ganda" }, { "gay", "", 1, "Gayo" }, { "gba", "", 1, "Gbaya" }, { "gez", "", 1, "Ge'ez" }, { "geo", "kat", 1, "Georgian" }, { "ger", "deu", 1, "German" }, { "nds", "", 1, "German, Low" }, { "gmh", "", 1, "German, Middle High" }, { "goh", "", 1, "German, Old High" }, { "gem", "", 1, "Germanic languages" }, { "kik", "", 1, "Gikuyu" }, { "gil", "", 1, "Gilbertese" }, { "gon", "", 1, "Gondi" }, { "gor", "", 1, "Gorontalo" }, { "got", "", 1, "Gothic" }, { "grb", "", 1, "Grebo" }, { "grc", "", 1, "Greek, Ancient" }, { "gre", "ell", 1, "Greek, Modern" }, { "kal", "", 1, "Greenlandic" }, { "grn", "", 1, "Guarani" }, { "guj", "", 1, "Gujarati" }, { "gwi", "", 1, "Gwich'in" }, { "hai", "", 1, "Haida" }, { "hat", "", 1, "Haitian" }, { "hat", "", 1, "Haitian Creole" }, { "hau", "", 1, "Hausa" }, { "haw", "", 1, "Hawaiian" }, { "heb", "", 1, "Hebrew" }, { "hil", "", 1, "Hiligaynon" }, { "him", "", 1, "Himachali languages" }, { "hin", "", 1, "Hindi" }, { "hmo", "", 1, "Hiri Motu" }, { "hit", "", 1, "Hittite" }, { "hmn", "", 1, "Hmong" }, { "hun", "", 1, "Hungarian" }, { "hup", "", 1, "Hupa" }, { "iba", "", 1, "Iban" }, { "ice", "isl", 1, "Icelandic" }, { "ido", "", 1, "Ido" }, { "ibo", "", 1, "Igbo" }, { "ijo", "", 1, "Ijo languages" }, { "ilo", "", 1, "Iloko" }, { "arc", "", 1, "Imperial Aramaic" }, { "smn", "", 1, "Inari Sami" }, { "inc", "", 1, "Indic languages" }, { "ine", "", 1, "Indo-European languages" }, { "ind", "", 1, "Indonesian" }, { "inh", "", 1, "Ingush" }, { "ina", "", 1, "Interlingua" }, { "ile", "", 1, "Interlingue, Occidental" }, { "iku", "", 1, "Inuktitut" }, { "ipk", "", 1, "Inupiaq" }, { "ira", "", 1, "Iranian languages" }, { "mga", "", 1, "Irish, Middle" }, { "sga", "", 1, "Irish, Old" }, { "iro", "", 1, "Iroquoian languages" }, { "ita", "", 1, "Italian" }, { "jpn", "", 1, "Japanese" }, { "jav", "", 1, "Javanese" }, { "kac", "", 1, "Jingpho" }, { "jrb", "", 1, "Judaeo-Arabic" }, { "jpr", "", 1, "Judaeo-Persian" }, { "kab", "", 1, "Kabyle" }, { "kac", "", 1, "Kachin" }, { "kal", "", 1, "Kalaallisut" }, { "xal", "", 1, "Kalmyk" }, { "kam", "", 1, "Kamba" }, { "kan", "", 1, "Kannada" }, { "kau", "", 1, "Kanuri" }, { "pam", "", 1, "Kapampangan" }, { "kaa", "", 1, "Kara-Kalpak" }, { "krc", "", 1, "Karachay-Balkar" }, { "krl", "", 1, "Karelian" }, { "kar", "", 1, "Karen languages" }, { "kas", "", 1, "Kashmiri" }, { "csb", "", 1, "Kashubian" }, { "kaw", "", 1, "Kawi" }, { "kaz", "", 1, "Kazakh" }, { "kha", "", 1, "Khasi" }, { "khi", "", 1, "Khoisan languages" }, { "kho", "", 1, "Khotanese" }, { "kik", "", 1, "Kikuyu" }, { "kmb", "", 1, "Kimbundu" }, { "kin", "", 1, "Kinyarwanda" }, { "kir", "", 1, "Kirghiz" }, { "gil", "", 1, "Kiribati" }, { "tlh", "", 1, "Klingon" }, { "kom", "", 1, "Komi" }, { "kon", "", 1, "Kongo" }, { "kok", "", 1, "Konkani" }, { "kor", "", 1, "Korean" }, { "kos", "", 1, "Kosraean" }, { "kpe", "", 1, "Kpelle" }, { "kro", "", 1, "Kru languages" }, { "kua", "", 1, "Kuanyama" }, { "kum", "", 1, "Kumyk" }, { "kur", "", 1, "Kurdish" }, { "kru", "", 1, "Kurukh" }, { "kut", "", 1, "Kutenai" }, { "kua", "", 1, "Kwanyama" }, { "kir", "", 1, "Kyrgyz" }, { "lad", "", 1, "Ladino" }, { "lah", "", 1, "Lahnda" }, { "lam", "", 1, "Lamba" }, { "day", "", 1, "Land Dayak languages" }, { "lao", "", 1, "Lao" }, { "lat", "", 1, "Latin" }, { "lav", "", 1, "Latvian" }, { "ast", "", 1, "Leonese" }, { "ltz", "", 1, "Letzeburgesch" }, { "lez", "", 1, "Lezghian" }, { "lim", "", 1, "Limburgan" }, { "lim", "", 1, "Limburger" }, { "lim", "", 1, "Limburgish" }, { "lin", "", 1, "Lingala" }, { "lit", "", 1, "Lithuanian" }, { "jbo", "", 1, "Lojban" }, { "nds", "", 1, "Low German" }, { "nds", "", 1, "Low Saxon" }, { "dsb", "", 1, "Lower Sorbian" }, { "loz", "", 1, "Lozi" }, { "lub", "", 1, "Luba-Katanga" }, { "lua", "", 1, "Luba-Lulua" }, { "lui", "", 1, "Luiseno" }, { "smj", "", 1, "Lule Sami" }, { "lun", "", 1, "Lunda" }, { "luo", "", 1, "Luo" }, { "luo", "", 1, "Luo (Kenya and Tanzania)" }, { "lus", "", 1, "Lushai" }, { "ltz", "", 1, "Luxembourgish" }, { "mas", "", 1, "Maasai" }, { "rup", "", 1, "Macedo-Romanian" }, { "mac", "mkd", 1, "Macedonian" }, { "mad", "", 1, "Madurese" }, { "mag", "", 1, "Magahi" }, { "mai", "", 1, "Maithili" }, { "mak", "", 1, "Makasar" }, { "mlg", "", 1, "Malagasy" }, { "may", "msa", 1, "Malay" }, { "mal", "", 1, "Malayalam" }, { "div", "", 1, "Maldivian" }, { "mlt", "", 1, "Maltese" }, { "mnc", "", 1, "Manchu" }, { "mdr", "", 1, "Mandar" }, { "man", "", 1, "Mandingo" }, { "mni", "", 1, "Manipuri" }, { "mno", "", 1, "Manobo languages" }, { "glv", "", 1, "Manx" }, { "mao", "mri", 1, "Maori" }, { "arn", "", 1, "Mapuche" }, { "arn", "", 1, "Mapudungun" }, { "mar", "", 1, "Marathi" }, { "chm", "", 1, "Mari" }, { "mah", "", 1, "Marshallese" }, { "mwr", "", 1, "Marwari" }, { "myn", "", 1, "Mayan languages" }, { "men", "", 1, "Mende" }, { "mic", "", 1, "Mi'kmaq" }, { "mic", "", 1, "Micmac" }, { "dum", "", 1, "Middle Dutch" }, { "enm", "", 1, "Middle English" }, { "frm", "", 1, "Middle French" }, { "gmh", "", 1, "Middle High German" }, { "mga", "", 1, "Middle Irish" }, { "pal", "", 1, "Middle Persian" }, { "min", "", 1, "Minangkabau" }, { "mwl", "", 1, "Mirandese" }, { "gre", "ell", 1, "Modern Greek" }, { "moh", "", 1, "Mohawk" }, { "mdf", "", 1, "Moksha" }, { "mkh", "", 1, "Mon-Khmer languages" }, { "lol", "", 1, "Mongo" }, { "mon", "", 1, "Mongolian" }, { "mos", "", 1, "Mossi" }, { "mul", "", 1, "Multiple languages" }, { "mun", "", 1, "Munda languages" }, { "nqo", "", 1, "N'Ko" }, { "nah", "", 1, "Nahuatl" }, { "nau", "", 1, "Nauruan" }, { "nav", "", 1, "Navaho" }, { "nav", "", 1, "Navajo" }, { "ndo", "", 1, "Ndonga" }, { "nap", "", 1, "Neapolitan" }, { "new", "", 1, "Nepal Bhasa" }, { "nep", "", 1, "Nepali" }, { "new", "", 1, "Newari" }, { "nia", "", 1, "Nias" }, { "nic", "", 1, "Niger-Congo languages" }, { "ssa", "", 1, "Nilo-Saharan languages" }, { "niu", "", 1, "Niuean" }, { "nog", "", 1, "Nogai" }, { "non", "", 0, "Norse, Old" }, { "nai", "", 1, "North American Indian languages" }, { "frr", "", 1, "Northern Frisian" }, { "nde", "", 1, "Northern Ndebele" }, { "sme", "", 1, "Northern Sami" }, { "nso", "", 1, "Northern Sotho" }, { "nob", "", 1, "Norwegian Bokmaal" }, { "nno", "", 1, "Norwegian Nynorsk" }, { "zxx", "", 1, "Not linguistic content; not applicable" }, { "nub", "", 1, "Nubian languages" }, { "iii", "", 1, "Nuosu" }, { "nym", "", 1, "Nyamwezi" }, { "nya", "", 1, "Nyanja" }, { "nyn", "", 1, "Nyankole" }, { "nyr", "", 1, "Nyoro" }, { "nzi", "", 1, "Nzima" }, { "oci", "", 1, "Occitan" }, { "pro", "", 0, "Occitan, Old" }, { "arc", "", 1, "Official Aramaic" }, { "xal", "", 1, "Oirat" }, { "oji", "", 1, "Ojibwa" }, { "chu", "", 1, "Old Bulgarian" }, { "chu", "", 1, "Old Church Slavonic" }, { "ang", "", 1, "Old English" }, { "fro", "", 1, "Old French" }, { "goh", "", 1, "Old High German" }, { "sga", "", 1, "Old Irish" }, { "nwc", "", 1, "Old Newari" }, { "non", "", 1, "Old Norse" }, { "pro", "", 1, "Old Occitan" }, { "peo", "", 1, "Old Persian" }, { "pro", "", 1, "Old Provencal" }, { "chu", "", 1, "Old Slavonic" }, { "ori", "", 1, "Oriya" }, { "orm", "", 1, "Oromo" }, { "osa", "", 1, "Osage" }, { "oss", "", 1, "Ossetian" }, { "oss", "", 1, "Ossetic" }, { "oto", "", 1, "Otomian languages" }, { "ota", "", 1, "Ottoman Turkish" }, { "pal", "", 1, "Pahlavi" }, { "pau", "", 1, "Palauan" }, { "pli", "", 1, "Pali" }, { "pam", "", 1, "Pampanga" }, { "pag", "", 1, "Pangasinan" }, { "pan", "", 1, "Panjabi" }, { "pap", "", 1, "Papiamento" }, { "paa", "", 1, "Papuan languages" }, { "pus", "", 1, "Pashto" }, { "pus", "", 1, "Pashto language" }, { "nso", "", 1, "Pedi" }, { "per", "fas", 1, "Persian" }, { "pal", "", 0, "Persian, Middle" }, { "peo", "", 0, "Persian, Old" }, { "phi", "", 1, "Philippine languages" }, { "phn", "", 1, "Phoenician" }, { "fil", "", 0, "Pilipino" }, { "pon", "", 1, "Pohnpeian" }, { "pol", "", 1, "Polish" }, { "por", "", 1, "Portuguese" }, { "pra", "", 1, "Prakit" }, { "pro", "", 0, "Provencal, Old" }, { "pan", "", 1, "Punjabi" }, { "que", "", 1, "Quechua" }, { "raj", "", 1, "Rajasthani" }, { "rap", "", 1, "Rapanui" }, { "rar", "", 1, "Rarotongan" }, { "roa", "", 1, "Romance languages" }, { "rum", "ron", 1, "Romanian" }, { "roh", "", 1, "Romansh" }, { "rom", "", 1, "Romany" }, { "run", "", 1, "Rundi" }, { "rus", "", 1, "Russian" }, { "kho", "", 1, "Sakan" }, { "sal", "", 1, "Salishan languages" }, { "sam", "", 1, "Samaritan Aramaic" }, { "smi", "", 1, "Sami languages" }, { "smo", "", 1, "Samoan" }, { "sad", "", 1, "Sandawe" }, { "sag", "", 1, "Sango" }, { "san", "", 1, "Sanskrit" }, { "sat", "", 1, "Santali" }, { "srd", "", 1, "Sardinian" }, { "sas", "", 1, "Sasak" }, { "nds", "", 1, "Saxon, Low" }, { "sco", "", 1, "Scots" }, { "gla", "", 1, "Scottish Gaelic" }, { "sel", "", 1, "Selkup" }, { "sem", "", 1, "Semitic languages" }, { "nso", "", 1, "Sepedi" }, { "srp", "", 1, "Serbian" }, { "srr", "", 1, "Serer" }, { "shn", "", 1, "Shan" }, { "sna", "", 1, "Shona" }, { "iii", "", 1, "Sichuan Yi" }, { "scn", "", 1, "Sicilian" }, { "sid", "", 1, "Sidamo" }, { "sgn", "", 1, "Sign languages" }, { "bla", "", 1, "Siksika" }, { "snd", "", 1, "Sindhi" }, { "sin", "", 1, "Sinhala" }, { "sin", "", 1, "Sinhalese" }, { "sit", "", 1, "Sino-Tibetan languages" }, { "sio", "", 1, "Siouan languages" }, { "sms", "", 1, "Skolt Sami" }, { "den", "", 1, "Slave (Athapascan)" }, { "sla", "", 1, "Slavic languages" }, { "slo", "slk", 1, "Slovak" }, { "slv", "", 1, "Slovenian" }, { "sog", "", 1, "Sogdian" }, { "som", "", 1, "Somali" }, { "son", "", 1, "Songhay languages" }, { "snk", "", 1, "Soninke" }, { "wen", "", 1, "Sorbian languages" }, { "dsb", "", 1, "Sorbian, Lower" }, { "hsb", "", 1, "Sorbian, Upper" }, { "sai", "", 1, "South American Indian languages" }, { "alt", "", 1, "Southern Altai" }, { "nbl", "", 1, "Southern Ndebele" }, { "sma", "", 1, "Southern Sami" }, { "sot", "", 1, "Southern Sotho" }, { "spa", "", 1, "Spanish" }, { "srn", "", 1, "Sranan Tongo" }, { "zgh", "", 1, "Standard Moroccan Tamazight" }, { "suk", "", 1, "Sukuma" }, { "sux", "", 1, "Sumerian" }, { "sun", "", 1, "Sundanese" }, { "sus", "", 1, "Susu" }, { "swa", "", 1, "Swahili" }, { "ssw", "", 1, "Swati" }, { "swe", "", 1, "Swedish" }, { "gsw", "", 1, "Swiss German" }, { "syr", "", 1, "Syriac" }, { "tgl", "", 1, "Tagalog" }, { "tah", "", 1, "Tahitian" }, { "tai", "", 1, "Tai languages" }, { "tgk", "", 1, "Tajik" }, { "tmh", "", 1, "Tamashek" }, { "tam", "", 1, "Tamil" }, { "tat", "", 1, "Tatar" }, { "tel", "", 1, "Telugu" }, { "ter", "", 1, "Tereno" }, { "tet", "", 1, "Tetum" }, { "tha", "", 1, "Thai" }, { "tib", "bod", 1, "Tibetan" }, { "tig", "", 1, "Tigre" }, { "tir", "", 1, "Tigrinya" }, { "tem", "", 1, "Time" }, { "tiv", "", 1, "Tiv" }, { "tli", "", 1, "Tlingit" }, { "tpi", "", 1, "Tok Pisin" }, { "tkl", "", 1, "Tokelau" }, { "tog", "", 1, "Tonga (Nyasa)" }, { "ton", "", 1, "Tonga (Tonga Islands)" }, { "tsi", "", 1, "Tsimshian" }, { "tso", "", 1, "Tsonga" }, { "tsn", "", 1, "Tswana" }, { "tum", "", 1, "Tumbuka" }, { "tup", "", 1, "Tupian languages" }, { "tur", "", 1, "Turkish" }, { "ota", "", 1, "Turkish, Ottoman" }, { "tuk", "", 1, "Turkmen" }, { "tvl", "", 1, "Tuvalu" }, { "tyv", "", 1, "Tuvinian" }, { "twi", "", 1, "Twi" }, { "udm", "", 1, "Udmurt" }, { "uga", "", 1, "Ugaritic" }, { "uig", "", 1, "Uighur" }, { "ukr", "", 1, "Ukranian" }, { "umb", "", 1, "Umbundu" }, { "mis", "", 1, "Uncoded languages" }, { "und", "", 1, "Undetermined language" }, { "hsb", "", 1, "Upper Sorbian" }, { "urd", "", 1, "Urdu" }, { "uig", "", 1, "Uyghur" }, { "uzb", "", 1, "Uzbek" }, { "vai", "", 1, "Vai" }, { "cat", "", 1, "Valencian" }, { "ven", "", 1, "Venda" }, { "vie", "", 1, "Vietnamese" }, { "vol", "", 1, "Volapuk" }, { "vot", "", 1, "Voltic" }, { "wak", "", 1, "Wakashan languages" }, { "wln", "", 1, "Walloon" }, { "war", "", 1, "Waray-Waray" }, { "was", "", 1, "Washo" }, { "wel", "cym", 1, "Welsh" }, { "fry", "", 1, "Western Frisian" }, { "wal", "", 1, "Wolaitta" }, { "wal", "", 1, "Wolaytta" }, { "wol", "", 1, "Wolof" }, { "xho", "", 1, "Xhosa" }, { "sah", "", 1, "Yakut" }, { "yao", "", 1, "Yao" }, { "yap", "", 1, "Yapese" }, { "yid", "", 1, "Yidish" }, { "yor", "", 1, "Yoruba" }, { "ypk", "", 1, "Yupik languages" }, { "znd", "", 1, "Zande languages" }, { "zap", "", 1, "Zapotec" }, { "zza", "", 1, "Zaza" }, { "zza", "", 1, "Zazaki" }, { "zen", "", 1, "Zenaga" }, { "zha", "", 1, "Zhuang" }, { "zul", "", 1, "Zulu" }, { "zun", "", 1, "Zuni" }, }; static int niso639_2= sizeof( iso639_2 ) / sizeof( iso639_2[0] ); char * iso639_2_from_code( char *code ) { int i; for ( i=0; i 0 ) return NULL; } return NULL; } #ifdef TEST #include #include static int check_alphabetical( void ) { char *l1, *l2; int i, ret = 1; l1 = iso639_2[0].language; for ( i=0; i= 0 ) { fprintf( stderr, "Swap '%s' and '%s'\n", l1, l2 ); ret = 0; } l1 = l2; } return ret; } int main( int argc, char *argv[] ) { int ok; ok = check_alphabetical(); if ( ok ) return EXIT_SUCCESS; return EXIT_FAILURE; } #endif hs-bibutils-6.7.0.0/bibutils/iso639_2.c0000755000000000000000000005214400000000000015505 0ustar0000000000000000/* * iso639-2 language codes */ #include #include "iso639_2.h" typedef struct { char *code1; char *code2; unsigned char main; char *language; } iso639_2_t; static iso639_2_t iso639_2[] = { { "abk", "", 1, "Abkhazian" }, { "ace", "", 1, "Achenese" }, { "ace", "", 1, "Achinese" }, { "ach", "", 1, "Acoli" }, { "ada", "", 1, "Adangme" }, { "ady", "", 1, "Adygei" }, { "ady", "", 1, "Adyghe" }, { "aar", "", 1, "Afar" }, { "afh", "", 1, "Afrihili" }, { "afr", "", 1, "Afrikaans" }, { "afa", "", 1, "Afroasiatic languages" }, { "ain", "", 1, "Ainu" }, { "aka", "", 1, "Akan" }, { "akk", "", 1, "Akkadian" }, { "alb", "sqi", 1, "Albanian" }, { "gsw", "", 1, "Alemannic" }, { "ale", "", 1, "Aleut" }, { "alg", "", 1, "Algonquian languages" }, { "gsw", "", 1, "Alsatian" }, { "alt", "", 1, "Altai, Southern" }, { "tut", "", 1, "Altaic languages" }, { "amh", "", 1, "Amharic" }, { "egy", "", 1, "Ancient Egyptian" }, { "grc", "", 1, "Ancient Greek" }, { "anp", "", 1, "Angika" }, { "apa", "", 1, "Apache languages" }, { "arc", "", 1, "Aramaic, Imperial" }, { "arc", "", 1, "Aramaic, Official" }, { "arp", "", 1, "Arapaho" }, { "arw", "", 1, "Arawak" }, { "arg", "", 1, "Argonese" }, { "arm", "hye", 1, "Armenian" }, { "rup", "", 1, "Aromanian" }, { "art", "", 1, "Artificial languages" }, { "rup", "", 1, "Arumanian" }, { "asm", "", 1, "Assamese" }, { "ast", "", 1, "Asturian" }, { "ast", "", 1, "Asturleonese" }, { "ath", "", 1, "Athabaskan languages" }, { "aus", "", 1, "Australian languages" }, { "map", "", 1, "Austronesian languages" }, { "ava", "", 1, "Avaric" }, { "ave", "", 1, "Avestan" }, { "awa", "", 1, "Awadhi" }, { "aze", "", 1, "Azerbaijani" }, { "ast", "", 1, "Bable" }, { "ban", "", 1, "Balinese" }, { "bat", "", 1, "Baltic languages" }, { "bal", "", 1, "Baluchi" }, { "bam", "", 1, "Bambara" }, { "bai", "", 1, "Bamileke languages" }, { "bad", "", 1, "Banda languages" }, { "bnt", "", 1, "Bantu languages" }, { "bas", "", 1, "Basa" }, { "bak", "", 1, "Bashkir" }, { "baq", "eus", 1, "Basque" }, { "bej", "", 1, "Bedawiyet" }, { "bej", "", 1, "Beja" }, { "bel", "", 1, "Belarusian" }, { "bem", "", 1, "Bemba" }, { "ben", "", 1, "Bengali" }, { "ber", "", 1, "Berber languages" }, { "bho", "", 1, "Bhojpuri" }, { "bih", "", 1, "Bihari languages" }, { "bik", "", 1, "Bikol" }, { "byn", "", 1, "Bilin" }, { "bin", "", 1, "Bini" }, { "bis", "", 1, "Bislama" }, { "bla", "", 1, "Blackfoot" }, { "byn", "", 1, "Blin" }, { "zbl", "", 1, "Blissymbols" }, { "bos", "", 1, "Bosnian" }, { "bra", "", 1, "Braj" }, { "btk", "", 1, "Bratak languages" }, { "bre", "", 1, "Breton" }, { "bug", "", 1, "Buginese" }, { "bul", "", 1, "Bulgarian" }, { "bua", "", 1, "Buriat" }, { "bur", "mya", 1, "Burmese" }, { "cad", "", 1, "Caddo" }, { "spa", "", 0, "Castilian" }, { "cat", "", 1, "Catalan" }, { "cau", "", 1, "Caucasian languages" }, { "ceb", "", 1, "Cebuano" }, { "cel", "", 1, "Celtic languages" }, { "cai", "", 1, "Central American Indian languages" }, { "khm", "", 1, "Central Khmer" }, { "chg", "", 1, "Chagatai" }, { "cmc", "", 1, "Chamic languages" }, { "cha", "", 1, "Chamorro" }, { "che", "", 1, "Chechen" }, { "chr", "", 1, "Cherokee" }, { "nya", "", 1, "Chewa" }, { "chy", "", 1, "Cheyenne" }, { "chb", "", 1, "Chibcha" }, { "nya", "", 1, "Chichewa" }, { "chi", "zho", 1, "Chinese" }, { "chn", "", 1, "Chinook Jargon" }, { "chp", "", 1, "Chipewyan" }, { "cho", "", 1, "Choctaw" }, { "zha", "", 1, "Chuang" }, { "chu", "", 1, "Church Slavic" }, { "chu", "", 1, "Church Slavonic" }, { "chk", "", 1, "Chuukese" }, { "chv", "", 1, "Chuvash" }, { "kbd", "", 1, "Circassian" }, { "nwc", "", 1, "Classical Nepal Bhasa" }, { "nwc", "", 1, "Classical Newari" }, { "syc", "", 1, "Classical Syriac" }, { "rar", "", 1, "Cook Islands Maori" }, { "cop", "", 1, "Coptic" }, { "cor", "", 1, "Cornish" }, { "cos", "", 1, "Corsican" }, { "cre", "", 1, "Cree" }, { "mus", "", 1, "Creek" }, { "crp", "", 1, "creoles and pidgins" }, { "cpe", "", 1, "creoles and pidgins, English-based" }, { "cpf", "", 1, "creoles and pidgins, French-based" }, { "cpp", "", 1, "creoles and pidgins, Portuguese-based" }, { "crh", "", 1, "Crimean Tartar" }, { "crh", "", 1, "Crimean Turkish" }, { "hrv", "", 1, "Croatian" }, { "cus", "", 1, "Cushitic languages" }, { "cze", "ces", 1, "Czech" }, { "dak", "", 1, "Dakota" }, { "dan", "", 1, "Danish" }, { "dar", "", 1, "Dargwa" }, { "del", "", 1, "Delaware" }, { "chp", "", 1, "Dene Suline" }, { "div", "", 1, "Dhivehi" }, { "din", "", 1, "Dinka" }, { "div", "", 1, "Divehi" }, { "doi", "", 1, "Dogri" }, { "dgr", "", 1, "Dogrib" }, { "dra", "", 1, "Dravidian languages" }, { "dua", "", 1, "Duala" }, { "dut", "", 1, "Dutch" }, { "dum", "", 1, "Dutch, Middle" }, { "dyu", "", 1, "Dyula" }, { "dzo", "", 1, "Dzongkha" }, { "frs", "", 1, "Eastern Frisian" }, { "bin", "", 1, "Edo" }, { "efi", "", 1, "Efik" }, { "egy", "", 1, "Egyptian (Ancient)" }, { "eka", "", 1, "Ekajuk" }, { "elx", "", 1, "Elamite" }, { "eng", "", 1, "English" }, { "enm", "", 0, "English, Middle" }, { "ang", "", 0, "English, Old" }, { "myv", "", 1, "Erzya" }, { "epo", "", 1, "Esperanto" }, { "est", "", 1, "Estonian" }, { "ewe", "", 1, "Ewe" }, { "ewo", "", 1, "Ewondo" }, { "fan", "", 1, "Fang" }, { "fat", "", 1, "Fanti" }, { "fao", "", 1, "Faroese" }, { "fij", "", 1, "Fijian" }, { "fil", "", 1, "Filipino" }, { "fin", "", 1, "Finnish" }, { "fiu", "", 1, "Finno-Ugric languages" }, { "dut", "", 1, "Flemish" }, { "fon", "", 1, "Fon" }, { "fre", "fra", 1, "French" }, { "frm", "", 0, "French, Middle" }, { "fro", "", 0, "French, Old" }, { "frs", "", 1, "Frisian, Eastern" }, { "frr", "", 1, "Frisian, Northern" }, { "fry", "", 1, "Frisian, Western" }, { "fur", "", 1, "Friulian" }, { "ful", "", 1, "Fulah" }, { "gaa", "", 1, "Ga" }, { "gla", "", 1, "Gaelic" }, { "car", "", 1, "Galibi Carib" }, { "lug", "", 1, "Ganda" }, { "gay", "", 1, "Gayo" }, { "gba", "", 1, "Gbaya" }, { "gez", "", 1, "Ge'ez" }, { "geo", "kat", 1, "Georgian" }, { "ger", "deu", 1, "German" }, { "nds", "", 1, "German, Low" }, { "gmh", "", 1, "German, Middle High" }, { "goh", "", 1, "German, Old High" }, { "gem", "", 1, "Germanic languages" }, { "kik", "", 1, "Gikuyu" }, { "gil", "", 1, "Gilbertese" }, { "gon", "", 1, "Gondi" }, { "gor", "", 1, "Gorontalo" }, { "got", "", 1, "Gothic" }, { "grb", "", 1, "Grebo" }, { "grc", "", 1, "Greek, Ancient" }, { "gre", "ell", 1, "Greek, Modern" }, { "kal", "", 1, "Greenlandic" }, { "grn", "", 1, "Guarani" }, { "guj", "", 1, "Gujarati" }, { "gwi", "", 1, "Gwich'in" }, { "hai", "", 1, "Haida" }, { "hat", "", 1, "Haitian" }, { "hat", "", 1, "Haitian Creole" }, { "hau", "", 1, "Hausa" }, { "haw", "", 1, "Hawaiian" }, { "heb", "", 1, "Hebrew" }, { "hil", "", 1, "Hiligaynon" }, { "him", "", 1, "Himachali languages" }, { "hin", "", 1, "Hindi" }, { "hmo", "", 1, "Hiri Motu" }, { "hit", "", 1, "Hittite" }, { "hmn", "", 1, "Hmong" }, { "hun", "", 1, "Hungarian" }, { "hup", "", 1, "Hupa" }, { "iba", "", 1, "Iban" }, { "ice", "isl", 1, "Icelandic" }, { "ido", "", 1, "Ido" }, { "ibo", "", 1, "Igbo" }, { "ijo", "", 1, "Ijo languages" }, { "ilo", "", 1, "Iloko" }, { "arc", "", 1, "Imperial Aramaic" }, { "smn", "", 1, "Inari Sami" }, { "inc", "", 1, "Indic languages" }, { "ine", "", 1, "Indo-European languages" }, { "ind", "", 1, "Indonesian" }, { "inh", "", 1, "Ingush" }, { "ina", "", 1, "Interlingua" }, { "ile", "", 1, "Interlingue, Occidental" }, { "iku", "", 1, "Inuktitut" }, { "ipk", "", 1, "Inupiaq" }, { "ira", "", 1, "Iranian languages" }, { "mga", "", 1, "Irish, Middle" }, { "sga", "", 1, "Irish, Old" }, { "iro", "", 1, "Iroquoian languages" }, { "ita", "", 1, "Italian" }, { "jpn", "", 1, "Japanese" }, { "jav", "", 1, "Javanese" }, { "kac", "", 1, "Jingpho" }, { "jrb", "", 1, "Judaeo-Arabic" }, { "jpr", "", 1, "Judaeo-Persian" }, { "kab", "", 1, "Kabyle" }, { "kac", "", 1, "Kachin" }, { "kal", "", 1, "Kalaallisut" }, { "xal", "", 1, "Kalmyk" }, { "kam", "", 1, "Kamba" }, { "kan", "", 1, "Kannada" }, { "kau", "", 1, "Kanuri" }, { "pam", "", 1, "Kapampangan" }, { "kaa", "", 1, "Kara-Kalpak" }, { "krc", "", 1, "Karachay-Balkar" }, { "krl", "", 1, "Karelian" }, { "kar", "", 1, "Karen languages" }, { "kas", "", 1, "Kashmiri" }, { "csb", "", 1, "Kashubian" }, { "kaw", "", 1, "Kawi" }, { "kaz", "", 1, "Kazakh" }, { "kha", "", 1, "Khasi" }, { "khi", "", 1, "Khoisan languages" }, { "kho", "", 1, "Khotanese" }, { "kik", "", 1, "Kikuyu" }, { "kmb", "", 1, "Kimbundu" }, { "kin", "", 1, "Kinyarwanda" }, { "kir", "", 1, "Kirghiz" }, { "gil", "", 1, "Kiribati" }, { "tlh", "", 1, "Klingon" }, { "kom", "", 1, "Komi" }, { "kon", "", 1, "Kongo" }, { "kok", "", 1, "Konkani" }, { "kor", "", 1, "Korean" }, { "kos", "", 1, "Kosraean" }, { "kpe", "", 1, "Kpelle" }, { "kro", "", 1, "Kru languages" }, { "kua", "", 1, "Kuanyama" }, { "kum", "", 1, "Kumyk" }, { "kur", "", 1, "Kurdish" }, { "kru", "", 1, "Kurukh" }, { "kut", "", 1, "Kutenai" }, { "kua", "", 1, "Kwanyama" }, { "kir", "", 1, "Kyrgyz" }, { "lad", "", 1, "Ladino" }, { "lah", "", 1, "Lahnda" }, { "lam", "", 1, "Lamba" }, { "day", "", 1, "Land Dayak languages" }, { "lao", "", 1, "Lao" }, { "lat", "", 1, "Latin" }, { "lav", "", 1, "Latvian" }, { "ast", "", 1, "Leonese" }, { "ltz", "", 1, "Letzeburgesch" }, { "lez", "", 1, "Lezghian" }, { "lim", "", 1, "Limburgan" }, { "lim", "", 1, "Limburger" }, { "lim", "", 1, "Limburgish" }, { "lin", "", 1, "Lingala" }, { "lit", "", 1, "Lithuanian" }, { "jbo", "", 1, "Lojban" }, { "nds", "", 1, "Low German" }, { "nds", "", 1, "Low Saxon" }, { "dsb", "", 1, "Lower Sorbian" }, { "loz", "", 1, "Lozi" }, { "lub", "", 1, "Luba-Katanga" }, { "lua", "", 1, "Luba-Lulua" }, { "lui", "", 1, "Luiseno" }, { "smj", "", 1, "Lule Sami" }, { "lun", "", 1, "Lunda" }, { "luo", "", 1, "Luo" }, { "luo", "", 1, "Luo (Kenya and Tanzania)" }, { "lus", "", 1, "Lushai" }, { "ltz", "", 1, "Luxembourgish" }, { "mas", "", 1, "Maasai" }, { "rup", "", 1, "Macedo-Romanian" }, { "mac", "mkd", 1, "Macedonian" }, { "mad", "", 1, "Madurese" }, { "mag", "", 1, "Magahi" }, { "mai", "", 1, "Maithili" }, { "mak", "", 1, "Makasar" }, { "mlg", "", 1, "Malagasy" }, { "may", "msa", 1, "Malay" }, { "mal", "", 1, "Malayalam" }, { "div", "", 1, "Maldivian" }, { "mlt", "", 1, "Maltese" }, { "mnc", "", 1, "Manchu" }, { "mdr", "", 1, "Mandar" }, { "man", "", 1, "Mandingo" }, { "mni", "", 1, "Manipuri" }, { "mno", "", 1, "Manobo languages" }, { "glv", "", 1, "Manx" }, { "mao", "mri", 1, "Maori" }, { "arn", "", 1, "Mapuche" }, { "arn", "", 1, "Mapudungun" }, { "mar", "", 1, "Marathi" }, { "chm", "", 1, "Mari" }, { "mah", "", 1, "Marshallese" }, { "mwr", "", 1, "Marwari" }, { "myn", "", 1, "Mayan languages" }, { "men", "", 1, "Mende" }, { "mic", "", 1, "Mi'kmaq" }, { "mic", "", 1, "Micmac" }, { "dum", "", 1, "Middle Dutch" }, { "enm", "", 1, "Middle English" }, { "frm", "", 1, "Middle French" }, { "gmh", "", 1, "Middle High German" }, { "mga", "", 1, "Middle Irish" }, { "pal", "", 1, "Middle Persian" }, { "min", "", 1, "Minangkabau" }, { "mwl", "", 1, "Mirandese" }, { "gre", "ell", 1, "Modern Greek" }, { "moh", "", 1, "Mohawk" }, { "mdf", "", 1, "Moksha" }, { "mkh", "", 1, "Mon-Khmer languages" }, { "lol", "", 1, "Mongo" }, { "mon", "", 1, "Mongolian" }, { "mos", "", 1, "Mossi" }, { "mul", "", 1, "Multiple languages" }, { "mun", "", 1, "Munda languages" }, { "nqo", "", 1, "N'Ko" }, { "nah", "", 1, "Nahuatl" }, { "nau", "", 1, "Nauruan" }, { "nav", "", 1, "Navaho" }, { "nav", "", 1, "Navajo" }, { "ndo", "", 1, "Ndonga" }, { "nap", "", 1, "Neapolitan" }, { "new", "", 1, "Nepal Bhasa" }, { "nep", "", 1, "Nepali" }, { "new", "", 1, "Newari" }, { "nia", "", 1, "Nias" }, { "nic", "", 1, "Niger-Congo languages" }, { "ssa", "", 1, "Nilo-Saharan languages" }, { "niu", "", 1, "Niuean" }, { "nog", "", 1, "Nogai" }, { "non", "", 0, "Norse, Old" }, { "nai", "", 1, "North American Indian languages" }, { "frr", "", 1, "Northern Frisian" }, { "nde", "", 1, "Northern Ndebele" }, { "sme", "", 1, "Northern Sami" }, { "nso", "", 1, "Northern Sotho" }, { "nob", "", 1, "Norwegian Bokmaal" }, { "nno", "", 1, "Norwegian Nynorsk" }, { "zxx", "", 1, "Not linguistic content; not applicable" }, { "nub", "", 1, "Nubian languages" }, { "iii", "", 1, "Nuosu" }, { "nym", "", 1, "Nyamwezi" }, { "nya", "", 1, "Nyanja" }, { "nyn", "", 1, "Nyankole" }, { "nyr", "", 1, "Nyoro" }, { "nzi", "", 1, "Nzima" }, { "oci", "", 1, "Occitan" }, { "pro", "", 0, "Occitan, Old" }, { "arc", "", 1, "Official Aramaic" }, { "xal", "", 1, "Oirat" }, { "oji", "", 1, "Ojibwa" }, { "chu", "", 1, "Old Bulgarian" }, { "chu", "", 1, "Old Church Slavonic" }, { "ang", "", 1, "Old English" }, { "fro", "", 1, "Old French" }, { "goh", "", 1, "Old High German" }, { "sga", "", 1, "Old Irish" }, { "nwc", "", 1, "Old Newari" }, { "non", "", 1, "Old Norse" }, { "pro", "", 1, "Old Occitan" }, { "peo", "", 1, "Old Persian" }, { "pro", "", 1, "Old Provencal" }, { "chu", "", 1, "Old Slavonic" }, { "ori", "", 1, "Oriya" }, { "orm", "", 1, "Oromo" }, { "osa", "", 1, "Osage" }, { "oss", "", 1, "Ossetian" }, { "oss", "", 1, "Ossetic" }, { "oto", "", 1, "Otomian languages" }, { "ota", "", 1, "Ottoman Turkish" }, { "pal", "", 1, "Pahlavi" }, { "pau", "", 1, "Palauan" }, { "pli", "", 1, "Pali" }, { "pam", "", 1, "Pampanga" }, { "pag", "", 1, "Pangasinan" }, { "pan", "", 1, "Panjabi" }, { "pap", "", 1, "Papiamento" }, { "paa", "", 1, "Papuan languages" }, { "pus", "", 1, "Pashto" }, { "pus", "", 1, "Pashto language" }, { "nso", "", 1, "Pedi" }, { "per", "fas", 1, "Persian" }, { "pal", "", 0, "Persian, Middle" }, { "peo", "", 0, "Persian, Old" }, { "phi", "", 1, "Philippine languages" }, { "phn", "", 1, "Phoenician" }, { "fil", "", 0, "Pilipino" }, { "pon", "", 1, "Pohnpeian" }, { "pol", "", 1, "Polish" }, { "por", "", 1, "Portuguese" }, { "pra", "", 1, "Prakit" }, { "pro", "", 0, "Provencal, Old" }, { "pan", "", 1, "Punjabi" }, { "que", "", 1, "Quechua" }, { "raj", "", 1, "Rajasthani" }, { "rap", "", 1, "Rapanui" }, { "rar", "", 1, "Rarotongan" }, { "roa", "", 1, "Romance languages" }, { "rum", "ron", 1, "Romanian" }, { "roh", "", 1, "Romansh" }, { "rom", "", 1, "Romany" }, { "run", "", 1, "Rundi" }, { "rus", "", 1, "Russian" }, { "kho", "", 1, "Sakan" }, { "sal", "", 1, "Salishan languages" }, { "sam", "", 1, "Samaritan Aramaic" }, { "smi", "", 1, "Sami languages" }, { "smo", "", 1, "Samoan" }, { "sad", "", 1, "Sandawe" }, { "sag", "", 1, "Sango" }, { "san", "", 1, "Sanskrit" }, { "sat", "", 1, "Santali" }, { "srd", "", 1, "Sardinian" }, { "sas", "", 1, "Sasak" }, { "nds", "", 1, "Saxon, Low" }, { "sco", "", 1, "Scots" }, { "gla", "", 1, "Scottish Gaelic" }, { "sel", "", 1, "Selkup" }, { "sem", "", 1, "Semitic languages" }, { "nso", "", 1, "Sepedi" }, { "srp", "", 1, "Serbian" }, { "srr", "", 1, "Serer" }, { "shn", "", 1, "Shan" }, { "sna", "", 1, "Shona" }, { "iii", "", 1, "Sichuan Yi" }, { "scn", "", 1, "Sicilian" }, { "sid", "", 1, "Sidamo" }, { "sgn", "", 1, "Sign languages" }, { "bla", "", 1, "Siksika" }, { "snd", "", 1, "Sindhi" }, { "sin", "", 1, "Sinhala" }, { "sin", "", 1, "Sinhalese" }, { "sit", "", 1, "Sino-Tibetan languages" }, { "sio", "", 1, "Siouan languages" }, { "sms", "", 1, "Skolt Sami" }, { "den", "", 1, "Slave (Athapascan)" }, { "sla", "", 1, "Slavic languages" }, { "slo", "slk", 1, "Slovak" }, { "slv", "", 1, "Slovenian" }, { "sog", "", 1, "Sogdian" }, { "som", "", 1, "Somali" }, { "son", "", 1, "Songhay languages" }, { "snk", "", 1, "Soninke" }, { "wen", "", 1, "Sorbian languages" }, { "dsb", "", 1, "Sorbian, Lower" }, { "hsb", "", 1, "Sorbian, Upper" }, { "sai", "", 1, "South American Indian languages" }, { "alt", "", 1, "Southern Altai" }, { "nbl", "", 1, "Southern Ndebele" }, { "sma", "", 1, "Southern Sami" }, { "sot", "", 1, "Southern Sotho" }, { "spa", "", 1, "Spanish" }, { "srn", "", 1, "Sranan Tongo" }, { "zgh", "", 1, "Standard Moroccan Tamazight" }, { "suk", "", 1, "Sukuma" }, { "sux", "", 1, "Sumerian" }, { "sun", "", 1, "Sundanese" }, { "sus", "", 1, "Susu" }, { "swa", "", 1, "Swahili" }, { "ssw", "", 1, "Swati" }, { "swe", "", 1, "Swedish" }, { "gsw", "", 1, "Swiss German" }, { "syr", "", 1, "Syriac" }, { "tgl", "", 1, "Tagalog" }, { "tah", "", 1, "Tahitian" }, { "tai", "", 1, "Tai languages" }, { "tgk", "", 1, "Tajik" }, { "tmh", "", 1, "Tamashek" }, { "tam", "", 1, "Tamil" }, { "tat", "", 1, "Tatar" }, { "tel", "", 1, "Telugu" }, { "ter", "", 1, "Tereno" }, { "tet", "", 1, "Tetum" }, { "tha", "", 1, "Thai" }, { "tib", "bod", 1, "Tibetan" }, { "tig", "", 1, "Tigre" }, { "tir", "", 1, "Tigrinya" }, { "tem", "", 1, "Time" }, { "tiv", "", 1, "Tiv" }, { "tli", "", 1, "Tlingit" }, { "tpi", "", 1, "Tok Pisin" }, { "tkl", "", 1, "Tokelau" }, { "tog", "", 1, "Tonga (Nyasa)" }, { "ton", "", 1, "Tonga (Tonga Islands)" }, { "tsi", "", 1, "Tsimshian" }, { "tso", "", 1, "Tsonga" }, { "tsn", "", 1, "Tswana" }, { "tum", "", 1, "Tumbuka" }, { "tup", "", 1, "Tupian languages" }, { "tur", "", 1, "Turkish" }, { "ota", "", 1, "Turkish, Ottoman" }, { "tuk", "", 1, "Turkmen" }, { "tvl", "", 1, "Tuvalu" }, { "tyv", "", 1, "Tuvinian" }, { "twi", "", 1, "Twi" }, { "udm", "", 1, "Udmurt" }, { "uga", "", 1, "Ugaritic" }, { "uig", "", 1, "Uighur" }, { "ukr", "", 1, "Ukranian" }, { "umb", "", 1, "Umbundu" }, { "mis", "", 1, "Uncoded languages" }, { "und", "", 1, "Undetermined language" }, { "hsb", "", 1, "Upper Sorbian" }, { "urd", "", 1, "Urdu" }, { "uig", "", 1, "Uyghur" }, { "uzb", "", 1, "Uzbek" }, { "vai", "", 1, "Vai" }, { "cat", "", 1, "Valencian" }, { "ven", "", 1, "Venda" }, { "vie", "", 1, "Vietnamese" }, { "vol", "", 1, "Volapuk" }, { "vot", "", 1, "Voltic" }, { "wak", "", 1, "Wakashan languages" }, { "wln", "", 1, "Walloon" }, { "war", "", 1, "Waray-Waray" }, { "was", "", 1, "Washo" }, { "wel", "cym", 1, "Welsh" }, { "fry", "", 1, "Western Frisian" }, { "wal", "", 1, "Wolaitta" }, { "wal", "", 1, "Wolaytta" }, { "wol", "", 1, "Wolof" }, { "xho", "", 1, "Xhosa" }, { "sah", "", 1, "Yakut" }, { "yao", "", 1, "Yao" }, { "yap", "", 1, "Yapese" }, { "yid", "", 1, "Yidish" }, { "yor", "", 1, "Yoruba" }, { "ypk", "", 1, "Yupik languages" }, { "znd", "", 1, "Zande languages" }, { "zap", "", 1, "Zapotec" }, { "zza", "", 1, "Zaza" }, { "zza", "", 1, "Zazaki" }, { "zen", "", 1, "Zenaga" }, { "zha", "", 1, "Zhuang" }, { "zul", "", 1, "Zulu" }, { "zun", "", 1, "Zuni" }, }; static int niso639_2= sizeof( iso639_2 ) / sizeof( iso639_2[0] ); char * iso639_2_from_code( char *code ) { int i; for ( i=0; i 0 ) return NULL; } return NULL; } #ifdef TEST #include #include static int check_alphabetical( void ) { char *l1, *l2; int i, ret = 1; l1 = iso639_2[0].language; for ( i=0; i= 0 ) { fprintf( stderr, "Swap '%s' and '%s'\n", l1, l2 ); ret = 0; } l1 = l2; } return ret; } int main( int argc, char *argv[] ) { int ok; ok = check_alphabetical(); if ( ok ) return EXIT_SUCCESS; return EXIT_FAILURE; } #endif hs-bibutils-6.7.0.0/bibutils/iso639_2.h0000755000000000000000000000024700000000000015507 0ustar0000000000000000/* * iso639-2 language codes */ #ifndef ISO639_2_H #define ISO639_2_H char * iso639_2_from_code( char *code ); char * iso639_2_from_language( char *lang ); #endif hs-bibutils-6.7.0.0/bibutils/iso639_3.c0000644000000000000000000065107400000000000015512 0ustar0000000000000000/* * iso639_3.c */ #include #include "iso639_3.h" typedef struct { char *code; char *language; } iso639_3_t; static iso639_3_t iso639_3[] = { { "aaa", "Ghotuo" }, { "aab", "Alumu-Tesu" }, { "aac", "Ari" }, { "aad", "Amal" }, { "aae", "Arbëreshë Albanian" }, { "aaf", "Aranadan" }, { "aag", "Ambrak" }, { "aah", "Abu' Arapesh" }, { "aai", "Arifama-Miniafia" }, { "aak", "Ankave" }, { "aal", "Afade" }, { "aam", "Aramanik" }, { "aan", "Anambé" }, { "aao", "Algerian Saharan Arabic" }, { "aap", "Pará Arára" }, { "aaq", "Eastern Abnaki" }, { "aar", "Afar" }, { "aas", "Aasáx" }, { "aat", "Arvanitika Albanian" }, { "aau", "Abau" }, { "aaw", "Solong" }, { "aax", "Mandobo Atas" }, { "aaz", "Amarasi" }, { "aba", "Abé" }, { "abb", "Bankon" }, { "abc", "Ambala Ayta" }, { "abd", "Manide" }, { "abe", "Western Abnaki" }, { "abf", "Abai Sungai" }, { "abg", "Abaga" }, { "abh", "Tajiki Arabic" }, { "abi", "Abidji" }, { "abj", "Aka-Bea" }, { "abk", "Abkhazian" }, { "abl", "Lampung Nyo" }, { "abm", "Abanyom" }, { "abn", "Abua" }, { "abo", "Abon" }, { "abp", "Abellen Ayta" }, { "abq", "Abaza" }, { "abr", "Abron" }, { "abs", "Ambonese Malay" }, { "abt", "Ambulas" }, { "abu", "Abure" }, { "abv", "Baharna Arabic" }, { "abw", "Pal" }, { "abx", "Inabaknon" }, { "aby", "Aneme Wake" }, { "abz", "Abui" }, { "aca", "Achagua" }, { "acb", "Áncá" }, { "acd", "Gikyode" }, { "ace", "Achinese" }, { "acf", "Saint Lucian Creole French" }, { "ach", "Acoli" }, { "aci", "Aka-Cari" }, { "ack", "Aka-Kora" }, { "acl", "Akar-Bale" }, { "acm", "Mesopotamian Arabic" }, { "acn", "Achang" }, { "acp", "Eastern Acipa" }, { "acq", "Ta'izzi-Adeni Arabic" }, { "acr", "Achi" }, { "acs", "Acroá" }, { "act", "Achterhoeks" }, { "acu", "Achuar-Shiwiar" }, { "acv", "Achumawi" }, { "acw", "Hijazi Arabic" }, { "acx", "Omani Arabic" }, { "acy", "Cypriot Arabic" }, { "acz", "Acheron" }, { "ada", "Adangme" }, { "adb", "Adabe" }, { "add", "Dzodinka" }, { "ade", "Adele" }, { "adf", "Dhofari Arabic" }, { "adg", "Andegerebinha" }, { "adh", "Adhola" }, { "adi", "Adi" }, { "adj", "Adioukrou" }, { "adl", "Galo" }, { "adn", "Adang" }, { "ado", "Abu" }, { "adp", "Adap" }, { "adq", "Adangbe" }, { "adr", "Adonara" }, { "ads", "Adamorobe Sign Language" }, { "adt", "Adnyamathanha" }, { "adu", "Aduge" }, { "adw", "Amundava" }, { "adx", "Amdo Tibetan" }, { "ady", "Adyghe" }, { "adz", "Adzera" }, { "aea", "Areba" }, { "aeb", "Tunisian Arabic" }, { "aec", "Saidi Arabic" }, { "aed", "Argentine Sign Language" }, { "aee", "Northeast Pashayi" }, { "aek", "Haeke" }, { "ael", "Ambele" }, { "aem", "Arem" }, { "aen", "Armenian Sign Language" }, { "aeq", "Aer" }, { "aer", "Eastern Arrernte" }, { "aes", "Alsea" }, { "aeu", "Akeu" }, { "aew", "Ambakich" }, { "aey", "Amele" }, { "aez", "Aeka" }, { "afb", "Gulf Arabic" }, { "afd", "Andai" }, { "afe", "Putukwam" }, { "afg", "Afghan Sign Language" }, { "afh", "Afrihili" }, { "afi", "Akrukay" }, { "afk", "Nanubae" }, { "afn", "Defaka" }, { "afo", "Eloyi" }, { "afp", "Tapei" }, { "afr", "Afrikaans" }, { "afs", "Afro-Seminole Creole" }, { "aft", "Afitti" }, { "afu", "Awutu" }, { "afz", "Obokuitai" }, { "aga", "Aguano" }, { "agb", "Legbo" }, { "agc", "Agatu" }, { "agd", "Agarabi" }, { "age", "Angal" }, { "agf", "Arguni" }, { "agg", "Angor" }, { "agh", "Ngelima" }, { "agi", "Agariya" }, { "agj", "Argobba" }, { "agk", "Isarog Agta" }, { "agl", "Fembe" }, { "agm", "Angaataha" }, { "agn", "Agutaynen" }, { "ago", "Tainae" }, { "agq", "Aghem" }, { "agr", "Aguaruna" }, { "ags", "Esimbi" }, { "agt", "Central Cagayan Agta" }, { "agu", "Aguacateco" }, { "agv", "Remontado Dumagat" }, { "agw", "Kahua" }, { "agx", "Aghul" }, { "agy", "Southern Alta" }, { "agz", "Mt. Iriga Agta" }, { "aha", "Ahanta" }, { "ahb", "Axamb" }, { "ahg", "Qimant" }, { "ahh", "Aghu" }, { "ahi", "Tiagbamrin Aizi" }, { "ahk", "Akha" }, { "ahl", "Igo" }, { "ahm", "Mobumrin Aizi" }, { "ahn", "Àhàn" }, { "aho", "Ahom" }, { "ahp", "Aproumu Aizi" }, { "ahr", "Ahirani" }, { "ahs", "Ashe" }, { "aht", "Ahtena" }, { "aia", "Arosi" }, { "aib", "Ainu (China)" }, { "aic", "Ainbai" }, { "aid", "Alngith" }, { "aie", "Amara" }, { "aif", "Agi" }, { "aig", "Antigua and Barbuda Creole English" }, { "aih", "Ai-Cham" }, { "aii", "Assyrian Neo-Aramaic" }, { "aij", "Lishanid Noshan" }, { "aik", "Ake" }, { "ail", "Aimele" }, { "aim", "Aimol" }, { "ain", "Ainu (Japan)" }, { "aio", "Aiton" }, { "aip", "Burumakok" }, { "aiq", "Aimaq" }, { "air", "Airoran" }, { "ais", "Nataoran Amis" }, { "ait", "Arikem" }, { "aiw", "Aari" }, { "aix", "Aighon" }, { "aiy", "Ali" }, { "aja", "Aja (Sudan)" }, { "ajg", "Aja (Benin)" }, { "aji", "Ajië" }, { "ajn", "Andajin" }, { "ajp", "South Levantine Arabic" }, { "ajt", "Judeo-Tunisian Arabic" }, { "aju", "Judeo-Moroccan Arabic" }, { "ajw", "Ajawa" }, { "ajz", "Amri Karbi" }, { "aka", "Akan" }, { "akb", "Batak Angkola" }, { "akc", "Mpur" }, { "akd", "Ukpet-Ehom" }, { "ake", "Akawaio" }, { "akf", "Akpa" }, { "akg", "Anakalangu" }, { "akh", "Angal Heneng" }, { "aki", "Aiome" }, { "akj", "Aka-Jeru" }, { "akk", "Akkadian" }, { "akl", "Aklanon" }, { "akm", "Aka-Bo" }, { "ako", "Akurio" }, { "akp", "Siwu" }, { "akq", "Ak" }, { "akr", "Araki" }, { "aks", "Akaselem" }, { "akt", "Akolet" }, { "aku", "Akum" }, { "akv", "Akhvakh" }, { "akw", "Akwa" }, { "akx", "Aka-Kede" }, { "aky", "Aka-Kol" }, { "akz", "Alabama" }, { "ala", "Alago" }, { "alc", "Qawasqar" }, { "ald", "Alladian" }, { "ale", "Aleut" }, { "alf", "Alege" }, { "alh", "Alawa" }, { "ali", "Amaimon" }, { "alj", "Alangan" }, { "alk", "Alak" }, { "all", "Allar" }, { "alm", "Amblong" }, { "aln", "Gheg Albanian" }, { "alo", "Larike-Wakasihu" }, { "alp", "Alune" }, { "alq", "Algonquin" }, { "alr", "Alutor" }, { "als", "Tosk Albanian" }, { "alt", "Southern Altai" }, { "alu", "'Are'are" }, { "alw", "Alaba-K’abeena" }, { "alx", "Amol" }, { "aly", "Alyawarr" }, { "alz", "Alur" }, { "ama", "Amanayé" }, { "amb", "Ambo" }, { "amc", "Amahuaca" }, { "ame", "Yanesha'" }, { "amf", "Hamer-Banna" }, { "amg", "Amurdak" }, { "amh", "Amharic" }, { "ami", "Amis" }, { "amj", "Amdang" }, { "amk", "Ambai" }, { "aml", "War-Jaintia" }, { "amm", "Ama (Papua New Guinea)" }, { "amn", "Amanab" }, { "amo", "Amo" }, { "amp", "Alamblak" }, { "amq", "Amahai" }, { "amr", "Amarakaeri" }, { "ams", "Southern Amami-Oshima" }, { "amt", "Amto" }, { "amu", "Guerrero Amuzgo" }, { "amv", "Ambelau" }, { "amw", "Western Neo-Aramaic" }, { "amx", "Anmatyerre" }, { "amy", "Ami" }, { "amz", "Atampaya" }, { "ana", "Andaqui" }, { "anb", "Andoa" }, { "anc", "Ngas" }, { "and", "Ansus" }, { "ane", "Xârâcùù" }, { "anf", "Animere" }, { "ang", "Old English (ca. 450-1100)" }, { "anh", "Nend" }, { "ani", "Andi" }, { "anj", "Anor" }, { "ank", "Goemai" }, { "anl", "Anu-Hkongso Chin" }, { "anm", "Anal" }, { "ann", "Obolo" }, { "ano", "Andoque" }, { "anp", "Angika" }, { "anq", "Jarawa (India)" }, { "anr", "Andh" }, { "ans", "Anserma" }, { "ant", "Antakarinya" }, { "anu", "Anuak" }, { "anv", "Denya" }, { "anw", "Anaang" }, { "anx", "Andra-Hus" }, { "any", "Anyin" }, { "anz", "Anem" }, { "aoa", "Angolar" }, { "aob", "Abom" }, { "aoc", "Pemon" }, { "aod", "Andarum" }, { "aoe", "Angal Enen" }, { "aof", "Bragat" }, { "aog", "Angoram" }, { "aoh", "Arma" }, { "aoi", "Anindilyakwa" }, { "aoj", "Mufian" }, { "aok", "Arhö" }, { "aol", "Alor" }, { "aom", "Ömie" }, { "aon", "Bumbita Arapesh" }, { "aor", "Aore" }, { "aos", "Taikat" }, { "aot", "A'tong" }, { "aou", "A'ou" }, { "aox", "Atorada" }, { "aoz", "Uab Meto" }, { "apb", "Sa'a" }, { "apc", "North Levantine Arabic" }, { "apd", "Sudanese Arabic" }, { "ape", "Bukiyip" }, { "apf", "Pahanan Agta" }, { "apg", "Ampanang" }, { "aph", "Athpariya" }, { "api", "Apiaká" }, { "apj", "Jicarilla Apache" }, { "apk", "Kiowa Apache" }, { "apl", "Lipan Apache" }, { "apm", "Mescalero-Chiricahua Apache" }, { "apn", "Apinayé" }, { "apo", "Ambul" }, { "app", "Apma" }, { "apq", "A-Pucikwar" }, { "apr", "Arop-Lokep" }, { "aps", "Arop-Sissano" }, { "apt", "Apatani" }, { "apu", "Apurinã" }, { "apv", "Alapmunte" }, { "apw", "Western Apache" }, { "apx", "Aputai" }, { "apy", "Apalaí" }, { "apz", "Safeyoka" }, { "aqc", "Archi" }, { "aqd", "Ampari Dogon" }, { "aqg", "Arigidi" }, { "aqm", "Atohwaim" }, { "aqn", "Northern Alta" }, { "aqp", "Atakapa" }, { "aqr", "Arhâ" }, { "aqz", "Akuntsu" }, { "ara", "Arabic" }, { "arb", "Standard Arabic" }, { "arc", "Official Aramaic (700-300 BCE)" }, { "ard", "Arabana" }, { "are", "Western Arrarnta" }, { "arg", "Aragonese" }, { "arh", "Arhuaco" }, { "ari", "Arikara" }, { "arj", "Arapaso" }, { "ark", "Arikapú" }, { "arl", "Arabela" }, { "arn", "Mapudungun" }, { "aro", "Araona" }, { "arp", "Arapaho" }, { "arq", "Algerian Arabic" }, { "arr", "Karo (Brazil)" }, { "ars", "Najdi Arabic" }, { "aru", "Aruá (Amazonas State)" }, { "arv", "Arbore" }, { "arw", "Arawak" }, { "arx", "Aruá (Rodonia State)" }, { "ary", "Moroccan Arabic" }, { "arz", "Egyptian Arabic" }, { "asa", "Asu (Tanzania)" }, { "asb", "Assiniboine" }, { "asc", "Casuarina Coast Asmat" }, { "asd", "Asas" }, { "ase", "American Sign Language" }, { "asf", "Australian Sign Language" }, { "asg", "Cishingini" }, { "ash", "Abishira" }, { "asi", "Buruwai" }, { "asj", "Sari" }, { "ask", "Ashkun" }, { "asl", "Asilulu" }, { "asm", "Assamese" }, { "asn", "Xingú Asuriní" }, { "aso", "Dano" }, { "asp", "Algerian Sign Language" }, { "asq", "Austrian Sign Language" }, { "asr", "Asuri" }, { "ass", "Ipulo" }, { "ast", "Asturian" }, { "asu", "Tocantins Asurini" }, { "asv", "Asoa" }, { "asw", "Australian Aborigines Sign Language" }, { "asx", "Muratayak" }, { "asy", "Yaosakor Asmat" }, { "asz", "As" }, { "ata", "Pele-Ata" }, { "atb", "Zaiwa" }, { "atc", "Atsahuaca" }, { "atd", "Ata Manobo" }, { "ate", "Atemble" }, { "atg", "Ivbie North-Okpela-Arhe" }, { "ati", "Attié" }, { "atj", "Atikamekw" }, { "atk", "Ati" }, { "atl", "Mt. Iraya Agta" }, { "atm", "Ata" }, { "atn", "Ashtiani" }, { "ato", "Atong" }, { "atp", "Pudtol Atta" }, { "atq", "Aralle-Tabulahan" }, { "atr", "Waimiri-Atroari" }, { "ats", "Gros Ventre" }, { "att", "Pamplona Atta" }, { "atu", "Reel" }, { "atv", "Northern Altai" }, { "atw", "Atsugewi" }, { "atx", "Arutani" }, { "aty", "Aneityum" }, { "atz", "Arta" }, { "aua", "Asumboa" }, { "aub", "Alugu" }, { "auc", "Waorani" }, { "aud", "Anuta" }, { "aue", "=Kx'au'ein" }, { "aug", "Aguna" }, { "auh", "Aushi" }, { "aui", "Anuki" }, { "auj", "Awjilah" }, { "auk", "Heyo" }, { "aul", "Aulua" }, { "aum", "Asu (Nigeria)" }, { "aun", "Molmo One" }, { "auo", "Auyokawa" }, { "aup", "Makayam" }, { "auq", "Anus" }, { "aur", "Aruek" }, { "aut", "Austral" }, { "auu", "Auye" }, { "auw", "Awyi" }, { "aux", "Aurá" }, { "auy", "Awiyaana" }, { "auz", "Uzbeki Arabic" }, { "ava", "Avaric" }, { "avb", "Avau" }, { "avd", "Alviri-Vidari" }, { "ave", "Avestan" }, { "avi", "Avikam" }, { "avk", "Kotava" }, { "avl", "Eastern Egyptian Bedawi Arabic" }, { "avm", "Angkamuthi" }, { "avn", "Avatime" }, { "avo", "Agavotaguerra" }, { "avs", "Aushiri" }, { "avt", "Au" }, { "avu", "Avokaya" }, { "avv", "Avá-Canoeiro" }, { "awa", "Awadhi" }, { "awb", "Awa (Papua New Guinea)" }, { "awc", "Cicipu" }, { "awe", "Awetí" }, { "awg", "Anguthimri" }, { "awh", "Awbono" }, { "awi", "Aekyom" }, { "awk", "Awabakal" }, { "awm", "Arawum" }, { "awn", "Awngi" }, { "awo", "Awak" }, { "awr", "Awera" }, { "aws", "South Awyu" }, { "awt", "Araweté" }, { "awu", "Central Awyu" }, { "awv", "Jair Awyu" }, { "aww", "Awun" }, { "awx", "Awara" }, { "awy", "Edera Awyu" }, { "axb", "Abipon" }, { "axe", "Ayerrerenge" }, { "axg", "Mato Grosso Arára" }, { "axk", "Yaka (Central African Republic)" }, { "axl", "Lower Southern Aranda" }, { "axm", "Middle Armenian" }, { "axx", "Xârâgurè" }, { "aya", "Awar" }, { "ayb", "Ayizo Gbe" }, { "ayc", "Southern Aymara" }, { "ayd", "Ayabadhu" }, { "aye", "Ayere" }, { "ayg", "Ginyanga" }, { "ayh", "Hadrami Arabic" }, { "ayi", "Leyigha" }, { "ayk", "Akuku" }, { "ayl", "Libyan Arabic" }, { "aym", "Aymara" }, { "ayn", "Sanaani Arabic" }, { "ayo", "Ayoreo" }, { "ayp", "North Mesopotamian Arabic" }, { "ayq", "Ayi (Papua New Guinea)" }, { "ayr", "Central Aymara" }, { "ays", "Sorsogon Ayta" }, { "ayt", "Magbukun Ayta" }, { "ayu", "Ayu" }, { "ayy", "Tayabas Ayta" }, { "ayz", "Mai Brat" }, { "aza", "Azha" }, { "azb", "South Azerbaijani" }, { "azd", "Eastern Durango Nahuatl" }, { "aze", "Azerbaijani" }, { "azg", "San Pedro Amuzgos Amuzgo" }, { "azj", "North Azerbaijani" }, { "azm", "Ipalapa Amuzgo" }, { "azn", "Western Durango Nahuatl" }, { "azo", "Awing" }, { "azt", "Faire Atta" }, { "azz", "Highland Puebla Nahuatl" }, { "baa", "Babatana" }, { "bab", "Bainouk-Gunyuño" }, { "bac", "Badui" }, { "bae", "Baré" }, { "baf", "Nubaca" }, { "bag", "Tuki" }, { "bah", "Bahamas Creole English" }, { "baj", "Barakai" }, { "bak", "Bashkir" }, { "bal", "Baluchi" }, { "bam", "Bambara" }, { "ban", "Balinese" }, { "bao", "Waimaha" }, { "bap", "Bantawa" }, { "bar", "Bavarian" }, { "bas", "Basa (Cameroon)" }, { "bau", "Bada (Nigeria)" }, { "bav", "Vengo" }, { "baw", "Bambili-Bambui" }, { "bax", "Bamun" }, { "bay", "Batuley" }, { "bba", "Baatonum" }, { "bbb", "Barai" }, { "bbc", "Batak Toba" }, { "bbd", "Bau" }, { "bbe", "Bangba" }, { "bbf", "Baibai" }, { "bbg", "Barama" }, { "bbh", "Bugan" }, { "bbi", "Barombi" }, { "bbj", "Ghomálá'" }, { "bbk", "Babanki" }, { "bbl", "Bats" }, { "bbm", "Babango" }, { "bbn", "Uneapa" }, { "bbo", "Northern Bobo Madaré" }, { "bbp", "West Central Banda" }, { "bbq", "Bamali" }, { "bbr", "Girawa" }, { "bbs", "Bakpinka" }, { "bbt", "Mburku" }, { "bbu", "Kulung (Nigeria)" }, { "bbv", "Karnai" }, { "bbw", "Baba" }, { "bbx", "Bubia" }, { "bby", "Befang" }, { "bbz", "Babalia Creole Arabic" }, { "bca", "Central Bai" }, { "bcb", "Bainouk-Samik" }, { "bcc", "Southern Balochi" }, { "bcd", "North Babar" }, { "bce", "Bamenyam" }, { "bcf", "Bamu" }, { "bcg", "Baga Binari" }, { "bch", "Bariai" }, { "bci", "Baoulé" }, { "bcj", "Bardi" }, { "bck", "Bunaba" }, { "bcl", "Central Bikol" }, { "bcm", "Bannoni" }, { "bcn", "Bali (Nigeria)" }, { "bco", "Kaluli" }, { "bcp", "Bali (Democratic Republic of Congo)" }, { "bcq", "Bench" }, { "bcr", "Babine" }, { "bcs", "Kohumono" }, { "bct", "Bendi" }, { "bcu", "Awad Bing" }, { "bcv", "Shoo-Minda-Nye" }, { "bcw", "Bana" }, { "bcy", "Bacama" }, { "bcz", "Bainouk-Gunyaamolo" }, { "bda", "Bayot" }, { "bdb", "Basap" }, { "bdc", "Emberá-Baudó" }, { "bdd", "Bunama" }, { "bde", "Bade" }, { "bdf", "Biage" }, { "bdg", "Bonggi" }, { "bdh", "Baka (Sudan)" }, { "bdi", "Burun" }, { "bdj", "Bai" }, { "bdk", "Budukh" }, { "bdl", "Indonesian Bajau" }, { "bdm", "Buduma" }, { "bdn", "Baldemu" }, { "bdo", "Morom" }, { "bdp", "Bende" }, { "bdq", "Bahnar" }, { "bdr", "West Coast Bajau" }, { "bds", "Burunge" }, { "bdt", "Bokoto" }, { "bdu", "Oroko" }, { "bdv", "Bodo Parja" }, { "bdw", "Baham" }, { "bdx", "Budong-Budong" }, { "bdy", "Bandjalang" }, { "bdz", "Badeshi" }, { "bea", "Beaver" }, { "beb", "Bebele" }, { "bec", "Iceve-Maci" }, { "bed", "Bedoanas" }, { "bee", "Byangsi" }, { "bef", "Benabena" }, { "beg", "Belait" }, { "beh", "Biali" }, { "bei", "Bekati'" }, { "bej", "Beja" }, { "bek", "Bebeli" }, { "bel", "Belarusian" }, { "bem", "Bemba (Zambia)" }, { "ben", "Bengali" }, { "beo", "Beami" }, { "bep", "Besoa" }, { "beq", "Beembe" }, { "bes", "Besme" }, { "bet", "Guiberoua Béte" }, { "beu", "Blagar" }, { "bev", "Daloa Bété" }, { "bew", "Betawi" }, { "bex", "Jur Modo" }, { "bey", "Beli (Papua New Guinea)" }, { "bez", "Bena (Tanzania)" }, { "bfa", "Bari" }, { "bfb", "Pauri Bareli" }, { "bfc", "Northern Bai" }, { "bfd", "Bafut" }, { "bfe", "Betaf" }, { "bff", "Bofi" }, { "bfg", "Busang Kayan" }, { "bfh", "Blafe" }, { "bfi", "British Sign Language" }, { "bfj", "Bafanji" }, { "bfk", "Ban Khor Sign Language" }, { "bfl", "Banda-Ndélé" }, { "bfm", "Mmen" }, { "bfn", "Bunak" }, { "bfo", "Malba Birifor" }, { "bfp", "Beba" }, { "bfq", "Badaga" }, { "bfr", "Bazigar" }, { "bfs", "Southern Bai" }, { "bft", "Balti" }, { "bfu", "Gahri" }, { "bfw", "Bondo" }, { "bfx", "Bantayanon" }, { "bfy", "Bagheli" }, { "bfz", "Mahasu Pahari" }, { "bga", "Gwamhi-Wuri" }, { "bgb", "Bobongko" }, { "bgc", "Haryanvi" }, { "bgd", "Rathwi Bareli" }, { "bge", "Bauria" }, { "bgf", "Bangandu" }, { "bgg", "Bugun" }, { "bgi", "Giangan" }, { "bgj", "Bangolan" }, { "bgk", "Bit" }, { "bgl", "Bo (Laos)" }, { "bgm", "Baga Mboteni" }, { "bgn", "Western Balochi" }, { "bgo", "Baga Koga" }, { "bgp", "Eastern Balochi" }, { "bgq", "Bagri" }, { "bgr", "Bawm Chin" }, { "bgs", "Tagabawa" }, { "bgt", "Bughotu" }, { "bgu", "Mbongno" }, { "bgv", "Warkay-Bipim" }, { "bgw", "Bhatri" }, { "bgx", "Balkan Gagauz Turkish" }, { "bgy", "Benggoi" }, { "bgz", "Banggai" }, { "bha", "Bharia" }, { "bhb", "Bhili" }, { "bhc", "Biga" }, { "bhd", "Bhadrawahi" }, { "bhe", "Bhaya" }, { "bhf", "Odiai" }, { "bhg", "Binandere" }, { "bhh", "Bukharic" }, { "bhi", "Bhilali" }, { "bhj", "Bahing" }, { "bhl", "Bimin" }, { "bhm", "Bathari" }, { "bhn", "Bohtan Neo-Aramaic" }, { "bho", "Bhojpuri" }, { "bhp", "Bima" }, { "bhq", "Tukang Besi South" }, { "bhr", "Bara Malagasy" }, { "bhs", "Buwal" }, { "bht", "Bhattiyali" }, { "bhu", "Bhunjia" }, { "bhv", "Bahau" }, { "bhw", "Biak" }, { "bhx", "Bhalay" }, { "bhy", "Bhele" }, { "bhz", "Bada (Indonesia)" }, { "bia", "Badimaya" }, { "bib", "Bissa" }, { "bic", "Bikaru" }, { "bid", "Bidiyo" }, { "bie", "Bepour" }, { "bif", "Biafada" }, { "big", "Biangai" }, { "bij", "Vaghat-Ya-Bijim-Legeri" }, { "bik", "Bikol" }, { "bil", "Bile" }, { "bim", "Bimoba" }, { "bin", "Bini" }, { "bio", "Nai" }, { "bip", "Bila" }, { "biq", "Bipi" }, { "bir", "Bisorio" }, { "bis", "Bislama" }, { "bit", "Berinomo" }, { "biu", "Biete" }, { "biv", "Southern Birifor" }, { "biw", "Kol (Cameroon)" }, { "bix", "Bijori" }, { "biy", "Birhor" }, { "biz", "Baloi" }, { "bja", "Budza" }, { "bjb", "Banggarla" }, { "bjc", "Bariji" }, { "bje", "Biao-Jiao Mien" }, { "bjf", "Barzani Jewish Neo-Aramaic" }, { "bjg", "Bidyogo" }, { "bjh", "Bahinemo" }, { "bji", "Burji" }, { "bjj", "Kanauji" }, { "bjk", "Barok" }, { "bjl", "Bulu (Papua New Guinea)" }, { "bjm", "Bajelani" }, { "bjn", "Banjar" }, { "bjo", "Mid-Southern Banda" }, { "bjp", "Fanamaket" }, { "bjr", "Binumarien" }, { "bjs", "Bajan" }, { "bjt", "Balanta-Ganja" }, { "bju", "Busuu" }, { "bjv", "Bedjond" }, { "bjw", "Bakwé" }, { "bjx", "Banao Itneg" }, { "bjy", "Bayali" }, { "bjz", "Baruga" }, { "bka", "Kyak" }, { "bkc", "Baka (Cameroon)" }, { "bkd", "Binukid" }, { "bkf", "Beeke" }, { "bkg", "Buraka" }, { "bkh", "Bakoko" }, { "bki", "Baki" }, { "bkj", "Pande" }, { "bkk", "Brokskat" }, { "bkl", "Berik" }, { "bkm", "Kom (Cameroon)" }, { "bkn", "Bukitan" }, { "bko", "Kwa'" }, { "bkp", "Boko (Democratic Republic of Congo)" }, { "bkq", "Bakairí" }, { "bkr", "Bakumpai" }, { "bks", "Northern Sorsoganon" }, { "bkt", "Boloki" }, { "bku", "Buhid" }, { "bkv", "Bekwarra" }, { "bkw", "Bekwel" }, { "bkx", "Baikeno" }, { "bky", "Bokyi" }, { "bkz", "Bungku" }, { "bla", "Siksika" }, { "blb", "Bilua" }, { "blc", "Bella Coola" }, { "bld", "Bolango" }, { "ble", "Balanta-Kentohe" }, { "blf", "Buol" }, { "blg", "Balau" }, { "blh", "Kuwaa" }, { "bli", "Bolia" }, { "blj", "Bolongan" }, { "blk", "Pa'o Karen" }, { "bll", "Biloxi" }, { "blm", "Beli (Sudan)" }, { "bln", "Southern Catanduanes Bikol" }, { "blo", "Anii" }, { "blp", "Blablanga" }, { "blq", "Baluan-Pam" }, { "blr", "Blang" }, { "bls", "Balaesang" }, { "blt", "Tai Dam" }, { "blv", "Bolo" }, { "blw", "Balangao" }, { "blx", "Mag-Indi Ayta" }, { "bly", "Notre" }, { "blz", "Balantak" }, { "bma", "Lame" }, { "bmb", "Bembe" }, { "bmc", "Biem" }, { "bmd", "Baga Manduri" }, { "bme", "Limassa" }, { "bmf", "Bom" }, { "bmg", "Bamwe" }, { "bmh", "Kein" }, { "bmi", "Bagirmi" }, { "bmj", "Bote-Majhi" }, { "bmk", "Ghayavi" }, { "bml", "Bomboli" }, { "bmm", "Northern Betsimisaraka Malagasy" }, { "bmn", "Bina (Papua New Guinea)" }, { "bmo", "Bambalang" }, { "bmp", "Bulgebi" }, { "bmq", "Bomu" }, { "bmr", "Muinane" }, { "bms", "Bilma Kanuri" }, { "bmt", "Biao Mon" }, { "bmu", "Somba-Siawari" }, { "bmv", "Bum" }, { "bmw", "Bomwali" }, { "bmx", "Baimak" }, { "bmy", "Bemba (Democratic Republic of Congo)" }, { "bmz", "Baramu" }, { "bna", "Bonerate" }, { "bnb", "Bookan" }, { "bnc", "Bontok" }, { "bnd", "Banda (Indonesia)" }, { "bne", "Bintauna" }, { "bnf", "Masiwang" }, { "bng", "Benga" }, { "bni", "Bangi" }, { "bnj", "Eastern Tawbuid" }, { "bnk", "Bierebo" }, { "bnl", "Boon" }, { "bnm", "Batanga" }, { "bnn", "Bunun" }, { "bno", "Bantoanon" }, { "bnp", "Bola" }, { "bnq", "Bantik" }, { "bnr", "Butmas-Tur" }, { "bns", "Bundeli" }, { "bnu", "Bentong" }, { "bnv", "Bonerif" }, { "bnw", "Bisis" }, { "bnx", "Bangubangu" }, { "bny", "Bintulu" }, { "bnz", "Beezen" }, { "boa", "Bora" }, { "bob", "Aweer" }, { "bod", "Tibetan" }, { "boe", "Mundabli" }, { "bof", "Bolon" }, { "bog", "Bamako Sign Language" }, { "boh", "Boma" }, { "boi", "Barbareño" }, { "boj", "Anjam" }, { "bok", "Bonjo" }, { "bol", "Bole" }, { "bom", "Berom" }, { "bon", "Bine" }, { "boo", "Tiemacèwè Bozo" }, { "bop", "Bonkiman" }, { "boq", "Bogaya" }, { "bor", "Borôro" }, { "bos", "Bosnian" }, { "bot", "Bongo" }, { "bou", "Bondei" }, { "bov", "Tuwuli" }, { "bow", "Rema" }, { "box", "Buamu" }, { "boy", "Bodo (Central African Republic)" }, { "boz", "Tiéyaxo Bozo" }, { "bpa", "Daakaka" }, { "bpb", "Barbacoas" }, { "bpd", "Banda-Banda" }, { "bpg", "Bonggo" }, { "bph", "Botlikh" }, { "bpi", "Bagupi" }, { "bpj", "Binji" }, { "bpk", "Orowe" }, { "bpl", "Broome Pearling Lugger Pidgin" }, { "bpm", "Biyom" }, { "bpn", "Dzao Min" }, { "bpo", "Anasi" }, { "bpp", "Kaure" }, { "bpq", "Banda Malay" }, { "bpr", "Koronadal Blaan" }, { "bps", "Sarangani Blaan" }, { "bpt", "Barrow Point" }, { "bpu", "Bongu" }, { "bpv", "Bian Marind" }, { "bpw", "Bo (Papua New Guinea)" }, { "bpx", "Palya Bareli" }, { "bpy", "Bishnupriya" }, { "bpz", "Bilba" }, { "bqa", "Tchumbuli" }, { "bqb", "Bagusa" }, { "bqc", "Boko (Benin)" }, { "bqd", "Bung" }, { "bqf", "Baga Kaloum" }, { "bqg", "Bago-Kusuntu" }, { "bqh", "Baima" }, { "bqi", "Bakhtiari" }, { "bqj", "Bandial" }, { "bqk", "Banda-Mbrès" }, { "bql", "Bilakura" }, { "bqm", "Wumboko" }, { "bqn", "Bulgarian Sign Language" }, { "bqo", "Balo" }, { "bqp", "Busa" }, { "bqq", "Biritai" }, { "bqr", "Burusu" }, { "bqs", "Bosngun" }, { "bqt", "Bamukumbit" }, { "bqu", "Boguru" }, { "bqv", "Koro Wachi" }, { "bqw", "Buru (Nigeria)" }, { "bqx", "Baangi" }, { "bqy", "Bengkala Sign Language" }, { "bqz", "Bakaka" }, { "bra", "Braj" }, { "brb", "Lave" }, { "brc", "Berbice Creole Dutch" }, { "brd", "Baraamu" }, { "bre", "Breton" }, { "brf", "Bera" }, { "brg", "Baure" }, { "brh", "Brahui" }, { "bri", "Mokpwe" }, { "brj", "Bieria" }, { "brk", "Birked" }, { "brl", "Birwa" }, { "brm", "Barambu" }, { "brn", "Boruca" }, { "bro", "Brokkat" }, { "brp", "Barapasi" }, { "brq", "Breri" }, { "brr", "Birao" }, { "brs", "Baras" }, { "brt", "Bitare" }, { "bru", "Eastern Bru" }, { "brv", "Western Bru" }, { "brw", "Bellari" }, { "brx", "Bodo (India)" }, { "bry", "Burui" }, { "brz", "Bilbil" }, { "bsa", "Abinomn" }, { "bsb", "Brunei Bisaya" }, { "bsc", "Bassari" }, { "bse", "Wushi" }, { "bsf", "Bauchi" }, { "bsg", "Bashkardi" }, { "bsh", "Kati" }, { "bsi", "Bassossi" }, { "bsj", "Bangwinji" }, { "bsk", "Burushaski" }, { "bsl", "Basa-Gumna" }, { "bsm", "Busami" }, { "bsn", "Barasana-Eduria" }, { "bso", "Buso" }, { "bsp", "Baga Sitemu" }, { "bsq", "Bassa" }, { "bsr", "Bassa-Kontagora" }, { "bss", "Akoose" }, { "bst", "Basketo" }, { "bsu", "Bahonsuai" }, { "bsv", "Baga Sobané" }, { "bsw", "Baiso" }, { "bsx", "Yangkam" }, { "bsy", "Sabah Bisaya" }, { "bta", "Bata" }, { "btc", "Bati (Cameroon)" }, { "btd", "Batak Dairi" }, { "bte", "Gamo-Ningi" }, { "btf", "Birgit" }, { "btg", "Gagnoa Bété" }, { "bth", "Biatah Bidayuh" }, { "bti", "Burate" }, { "btj", "Bacanese Malay" }, { "btl", "Bhatola" }, { "btm", "Batak Mandailing" }, { "btn", "Ratagnon" }, { "bto", "Rinconada Bikol" }, { "btp", "Budibud" }, { "btq", "Batek" }, { "btr", "Baetora" }, { "bts", "Batak Simalungun" }, { "btt", "Bete-Bendi" }, { "btu", "Batu" }, { "btv", "Bateri" }, { "btw", "Butuanon" }, { "btx", "Batak Karo" }, { "bty", "Bobot" }, { "btz", "Batak Alas-Kluet" }, { "bua", "Buriat" }, { "bub", "Bua" }, { "buc", "Bushi" }, { "bud", "Ntcham" }, { "bue", "Beothuk" }, { "buf", "Bushoong" }, { "bug", "Buginese" }, { "buh", "Younuo Bunu" }, { "bui", "Bongili" }, { "buj", "Basa-Gurmana" }, { "buk", "Bugawac" }, { "bul", "Bulgarian" }, { "bum", "Bulu (Cameroon)" }, { "bun", "Sherbro" }, { "buo", "Terei" }, { "bup", "Busoa" }, { "buq", "Brem" }, { "bus", "Bokobaru" }, { "but", "Bungain" }, { "buu", "Budu" }, { "buv", "Bun" }, { "buw", "Bubi" }, { "bux", "Boghom" }, { "buy", "Bullom So" }, { "buz", "Bukwen" }, { "bva", "Barein" }, { "bvb", "Bube" }, { "bvc", "Baelelea" }, { "bvd", "Baeggu" }, { "bve", "Berau Malay" }, { "bvf", "Boor" }, { "bvg", "Bonkeng" }, { "bvh", "Bure" }, { "bvi", "Belanda Viri" }, { "bvj", "Baan" }, { "bvk", "Bukat" }, { "bvl", "Bolivian Sign Language" }, { "bvm", "Bamunka" }, { "bvn", "Buna" }, { "bvo", "Bolgo" }, { "bvp", "Bumang" }, { "bvq", "Birri" }, { "bvr", "Burarra" }, { "bvt", "Bati (Indonesia)" }, { "bvu", "Bukit Malay" }, { "bvv", "Baniva" }, { "bvw", "Boga" }, { "bvx", "Dibole" }, { "bvy", "Baybayanon" }, { "bvz", "Bauzi" }, { "bwa", "Bwatoo" }, { "bwb", "Namosi-Naitasiri-Serua" }, { "bwc", "Bwile" }, { "bwd", "Bwaidoka" }, { "bwe", "Bwe Karen" }, { "bwf", "Boselewa" }, { "bwg", "Barwe" }, { "bwh", "Bishuo" }, { "bwi", "Baniwa" }, { "bwj", "Láá Láá Bwamu" }, { "bwk", "Bauwaki" }, { "bwl", "Bwela" }, { "bwm", "Biwat" }, { "bwn", "Wunai Bunu" }, { "bwo", "Boro (Ethiopia)" }, { "bwp", "Mandobo Bawah" }, { "bwq", "Southern Bobo Madaré" }, { "bwr", "Bura-Pabir" }, { "bws", "Bomboma" }, { "bwt", "Bafaw-Balong" }, { "bwu", "Buli (Ghana)" }, { "bww", "Bwa" }, { "bwx", "Bu-Nao Bunu" }, { "bwy", "Cwi Bwamu" }, { "bwz", "Bwisi" }, { "bxa", "Tairaha" }, { "bxb", "Belanda Bor" }, { "bxc", "Molengue" }, { "bxd", "Pela" }, { "bxe", "Birale" }, { "bxf", "Bilur" }, { "bxg", "Bangala" }, { "bxh", "Buhutu" }, { "bxi", "Pirlatapa" }, { "bxj", "Bayungu" }, { "bxk", "Bukusu" }, { "bxl", "Jalkunan" }, { "bxm", "Mongolia Buriat" }, { "bxn", "Burduna" }, { "bxo", "Barikanchi" }, { "bxp", "Bebil" }, { "bxq", "Beele" }, { "bxr", "Russia Buriat" }, { "bxs", "Busam" }, { "bxu", "China Buriat" }, { "bxv", "Berakou" }, { "bxw", "Bankagooma" }, { "bxx", "Borna (Democratic Republic of Congo)" }, { "bxz", "Binahari" }, { "bya", "Batak" }, { "byb", "Bikya" }, { "byc", "Ubaghara" }, { "byd", "Benyadu'" }, { "bye", "Pouye" }, { "byf", "Bete" }, { "byg", "Baygo" }, { "byh", "Bhujel" }, { "byi", "Buyu" }, { "byj", "Bina (Nigeria)" }, { "byk", "Biao" }, { "byl", "Bayono" }, { "bym", "Bidyara" }, { "byn", "Bilin" }, { "byo", "Biyo" }, { "byp", "Bumaji" }, { "byq", "Basay" }, { "byr", "Baruya" }, { "bys", "Burak" }, { "byt", "Berti" }, { "byv", "Medumba" }, { "byw", "Belhariya" }, { "byx", "Qaqet" }, { "byy", "Buya" }, { "byz", "Banaro" }, { "bza", "Bandi" }, { "bzb", "Andio" }, { "bzc", "Southern Betsimisaraka Malagasy" }, { "bzd", "Bribri" }, { "bze", "Jenaama Bozo" }, { "bzf", "Boikin" }, { "bzg", "Babuza" }, { "bzh", "Mapos Buang" }, { "bzi", "Bisu" }, { "bzj", "Belize Kriol English" }, { "bzk", "Nicaragua Creole English" }, { "bzl", "Boano (Sulawesi)" }, { "bzm", "Bolondo" }, { "bzn", "Boano (Maluku)" }, { "bzo", "Bozaba" }, { "bzp", "Kemberano" }, { "bzq", "Buli (Indonesia)" }, { "bzr", "Biri" }, { "bzs", "Brazilian Sign Language" }, { "bzt", "Brithenig" }, { "bzu", "Burmeso" }, { "bzv", "Naami" }, { "bzw", "Basa (Nigeria)" }, { "bzx", "Kɛlɛngaxo Bozo" }, { "bzy", "Obanliku" }, { "bzz", "Evant" }, { "caa", "Chortí" }, { "cab", "Garifuna" }, { "cac", "Chuj" }, { "cad", "Caddo" }, { "cae", "Lehar" }, { "caf", "Southern Carrier" }, { "cag", "Nivaclé" }, { "cah", "Cahuarano" }, { "caj", "Chané" }, { "cak", "Kaqchikel" }, { "cal", "Carolinian" }, { "cam", "Cemuhî" }, { "can", "Chambri" }, { "cao", "Chácobo" }, { "cap", "Chipaya" }, { "caq", "Car Nicobarese" }, { "car", "Galibi Carib" }, { "cas", "Tsimané" }, { "cat", "Catalan" }, { "cav", "Cavineña" }, { "caw", "Callawalla" }, { "cax", "Chiquitano" }, { "cay", "Cayuga" }, { "caz", "Canichana" }, { "cbb", "Cabiyarí" }, { "cbc", "Carapana" }, { "cbd", "Carijona" }, { "cbe", "Chipiajes" }, { "cbg", "Chimila" }, { "cbh", "Cagua" }, { "cbi", "Chachi" }, { "cbj", "Ede Cabe" }, { "cbk", "Chavacano" }, { "cbl", "Bualkhaw Chin" }, { "cbn", "Nyahkur" }, { "cbo", "Izora" }, { "cbr", "Cashibo-Cacataibo" }, { "cbs", "Cashinahua" }, { "cbt", "Chayahuita" }, { "cbu", "Candoshi-Shapra" }, { "cbv", "Cacua" }, { "cbw", "Kinabalian" }, { "cby", "Carabayo" }, { "cca", "Cauca" }, { "ccc", "Chamicuro" }, { "ccd", "Cafundo Creole" }, { "cce", "Chopi" }, { "ccg", "Samba Daka" }, { "cch", "Atsam" }, { "ccj", "Kasanga" }, { "ccl", "Cutchi-Swahili" }, { "ccm", "Malaccan Creole Malay" }, { "cco", "Comaltepec Chinantec" }, { "ccp", "Chakma" }, { "ccr", "Cacaopera" }, { "cda", "Choni" }, { "cde", "Chenchu" }, { "cdf", "Chiru" }, { "cdg", "Chamari" }, { "cdh", "Chambeali" }, { "cdi", "Chodri" }, { "cdj", "Churahi" }, { "cdm", "Chepang" }, { "cdn", "Chaudangsi" }, { "cdo", "Min Dong Chinese" }, { "cdr", "Cinda-Regi-Tiyal" }, { "cds", "Chadian Sign Language" }, { "cdy", "Chadong" }, { "cdz", "Koda" }, { "cea", "Lower Chehalis" }, { "ceb", "Cebuano" }, { "ceg", "Chamacoco" }, { "cek", "Eastern Khumi Chin" }, { "cen", "Cen" }, { "ces", "Czech" }, { "cet", "Centúúm" }, { "cfa", "Dijim-Bwilim" }, { "cfd", "Cara" }, { "cfg", "Como Karim" }, { "cfm", "Falam Chin" }, { "cga", "Changriwa" }, { "cgc", "Kagayanen" }, { "cgg", "Chiga" }, { "cgk", "Chocangacakha" }, { "cha", "Chamorro" }, { "chb", "Chibcha" }, { "chc", "Catawba" }, { "chd", "Highland Oaxaca Chontal" }, { "che", "Chechen" }, { "chf", "Tabasco Chontal" }, { "chg", "Chagatai" }, { "chh", "Chinook" }, { "chj", "Ojitlán Chinantec" }, { "chk", "Chuukese" }, { "chl", "Cahuilla" }, { "chm", "Mari (Russia)" }, { "chn", "Chinook jargon" }, { "cho", "Choctaw" }, { "chp", "Chipewyan" }, { "chq", "Quiotepec Chinantec" }, { "chr", "Cherokee" }, { "cht", "Cholón" }, { "chu", "Church Slavic" }, { "chv", "Chuvash" }, { "chw", "Chuwabu" }, { "chx", "Chantyal" }, { "chy", "Cheyenne" }, { "chz", "Ozumacín Chinantec" }, { "cia", "Cia-Cia" }, { "cib", "Ci Gbe" }, { "cic", "Chickasaw" }, { "cid", "Chimariko" }, { "cie", "Cineni" }, { "cih", "Chinali" }, { "cik", "Chitkuli Kinnauri" }, { "cim", "Cimbrian" }, { "cin", "Cinta Larga" }, { "cip", "Chiapanec" }, { "cir", "Tiri" }, { "ciw", "Chippewa" }, { "ciy", "Chaima" }, { "cja", "Western Cham" }, { "cje", "Chru" }, { "cjh", "Upper Chehalis" }, { "cji", "Chamalal" }, { "cjk", "Chokwe" }, { "cjm", "Eastern Cham" }, { "cjn", "Chenapian" }, { "cjo", "Ashéninka Pajonal" }, { "cjp", "Cabécar" }, { "cjs", "Shor" }, { "cjv", "Chuave" }, { "cjy", "Jinyu Chinese" }, { "ckb", "Central Kurdish" }, { "ckh", "Chak" }, { "ckl", "Cibak" }, { "ckn", "Kaang Chin" }, { "cko", "Anufo" }, { "ckq", "Kajakse" }, { "ckr", "Kairak" }, { "cks", "Tayo" }, { "ckt", "Chukot" }, { "cku", "Koasati" }, { "ckv", "Kavalan" }, { "ckx", "Caka" }, { "cky", "Cakfem-Mushere" }, { "ckz", "Cakchiquel-Quiché Mixed Language" }, { "cla", "Ron" }, { "clc", "Chilcotin" }, { "cld", "Chaldean Neo-Aramaic" }, { "cle", "Lealao Chinantec" }, { "clh", "Chilisso" }, { "cli", "Chakali" }, { "clj", "Laitu Chin" }, { "clk", "Idu-Mishmi" }, { "cll", "Chala" }, { "clm", "Clallam" }, { "clo", "Lowland Oaxaca Chontal" }, { "clt", "Lautu Chin" }, { "clu", "Caluyanun" }, { "clw", "Chulym" }, { "cly", "Eastern Highland Chatino" }, { "cma", "Maa" }, { "cme", "Cerma" }, { "cmg", "Classical Mongolian" }, { "cmi", "Emberá-Chamí" }, { "cml", "Campalagian" }, { "cmm", "Michigamea" }, { "cmn", "Mandarin Chinese" }, { "cmo", "Central Mnong" }, { "cmr", "Mro-Khimi Chin" }, { "cms", "Messapic" }, { "cmt", "Camtho" }, { "cna", "Changthang" }, { "cnb", "Chinbon Chin" }, { "cnc", "Côông" }, { "cng", "Northern Qiang" }, { "cnh", "Haka Chin" }, { "cni", "Asháninka" }, { "cnk", "Khumi Chin" }, { "cnl", "Lalana Chinantec" }, { "cno", "Con" }, { "cns", "Central Asmat" }, { "cnt", "Tepetotutla Chinantec" }, { "cnu", "Chenoua" }, { "cnw", "Ngawn Chin" }, { "cnx", "Middle Cornish" }, { "coa", "Cocos Islands Malay" }, { "cob", "Chicomuceltec" }, { "coc", "Cocopa" }, { "cod", "Cocama-Cocamilla" }, { "coe", "Koreguaje" }, { "cof", "Colorado" }, { "cog", "Chong" }, { "coh", "Chonyi-Dzihana-Kauma" }, { "coj", "Cochimi" }, { "cok", "Santa Teresa Cora" }, { "col", "Columbia-Wenatchi" }, { "com", "Comanche" }, { "con", "Cofán" }, { "coo", "Comox" }, { "cop", "Coptic" }, { "coq", "Coquille" }, { "cor", "Cornish" }, { "cos", "Corsican" }, { "cot", "Caquinte" }, { "cou", "Wamey" }, { "cov", "Cao Miao" }, { "cow", "Cowlitz" }, { "cox", "Nanti" }, { "coy", "Coyaima" }, { "coz", "Chochotec" }, { "cpa", "Palantla Chinantec" }, { "cpb", "Ucayali-Yurúa Ashéninka" }, { "cpc", "Ajyíninka Apurucayali" }, { "cpg", "Cappadocian Greek" }, { "cpi", "Chinese Pidgin English" }, { "cpn", "Cherepon" }, { "cpo", "Kpeego" }, { "cps", "Capiznon" }, { "cpu", "Pichis Ashéninka" }, { "cpx", "Pu-Xian Chinese" }, { "cpy", "South Ucayali Ashéninka" }, { "cqd", "Chuanqiandian Cluster Miao" }, { "cqu", "Chilean Quechua" }, { "cra", "Chara" }, { "crb", "Island Carib" }, { "crc", "Lonwolwol" }, { "crd", "Coeur d'Alene" }, { "cre", "Cree" }, { "crf", "Caramanta" }, { "crg", "Michif" }, { "crh", "Crimean Tatar" }, { "cri", "Sãotomense" }, { "crj", "Southern East Cree" }, { "crk", "Plains Cree" }, { "crl", "Northern East Cree" }, { "crm", "Moose Cree" }, { "crn", "El Nayar Cora" }, { "cro", "Crow" }, { "crq", "Iyo'wujwa Chorote" }, { "crr", "Carolina Algonquian" }, { "crs", "Seselwa Creole French" }, { "crt", "Iyojwa'ja Chorote" }, { "crv", "Chaura" }, { "crw", "Chrau" }, { "crx", "Carrier" }, { "cry", "Cori" }, { "crz", "Cruzeño" }, { "csa", "Chiltepec Chinantec" }, { "csb", "Kashubian" }, { "csc", "Catalan Sign Language" }, { "csd", "Chiangmai Sign Language" }, { "cse", "Czech Sign Language" }, { "csf", "Cuba Sign Language" }, { "csg", "Chilean Sign Language" }, { "csh", "Asho Chin" }, { "csi", "Coast Miwok" }, { "csj", "Songlai Chin" }, { "csk", "Jola-Kasa" }, { "csl", "Chinese Sign Language" }, { "csm", "Central Sierra Miwok" }, { "csn", "Colombian Sign Language" }, { "cso", "Sochiapam Chinantec" }, { "csq", "Croatia Sign Language" }, { "csr", "Costa Rican Sign Language" }, { "css", "Southern Ohlone" }, { "cst", "Northern Ohlone" }, { "csv", "Sumtu Chin" }, { "csw", "Swampy Cree" }, { "csy", "Siyin Chin" }, { "csz", "Coos" }, { "cta", "Tataltepec Chatino" }, { "ctc", "Chetco" }, { "ctd", "Tedim Chin" }, { "cte", "Tepinapa Chinantec" }, { "ctg", "Chittagonian" }, { "cth", "Thaiphum Chin" }, { "ctl", "Tlacoatzintepec Chinantec" }, { "ctm", "Chitimacha" }, { "ctn", "Chhintange" }, { "cto", "Emberá-Catío" }, { "ctp", "Western Highland Chatino" }, { "cts", "Northern Catanduanes Bikol" }, { "ctt", "Wayanad Chetti" }, { "ctu", "Chol" }, { "ctz", "Zacatepec Chatino" }, { "cua", "Cua" }, { "cub", "Cubeo" }, { "cuc", "Usila Chinantec" }, { "cug", "Cung" }, { "cuh", "Chuka" }, { "cui", "Cuiba" }, { "cuj", "Mashco Piro" }, { "cuk", "San Blas Kuna" }, { "cul", "Culina" }, { "cum", "Cumeral" }, { "cuo", "Cumanagoto" }, { "cup", "Cupeño" }, { "cuq", "Cun" }, { "cur", "Chhulung" }, { "cut", "Teutila Cuicatec" }, { "cuu", "Tai Ya" }, { "cuv", "Cuvok" }, { "cuw", "Chukwa" }, { "cux", "Tepeuxila Cuicatec" }, { "cvg", "Chug" }, { "cvn", "Valle Nacional Chinantec" }, { "cwa", "Kabwa" }, { "cwb", "Maindo" }, { "cwd", "Woods Cree" }, { "cwe", "Kwere" }, { "cwg", "Chewong" }, { "cwt", "Kuwaataay" }, { "cya", "Nopala Chatino" }, { "cyb", "Cayubaba" }, { "cym", "Welsh" }, { "cyo", "Cuyonon" }, { "czh", "Huizhou Chinese" }, { "czk", "Knaanic" }, { "czn", "Zenzontepec Chatino" }, { "czo", "Min Zhong Chinese" }, { "czt", "Zotung Chin" }, { "daa", "Dangaléat" }, { "dac", "Dambi" }, { "dad", "Marik" }, { "dae", "Duupa" }, { "dag", "Dagbani" }, { "dah", "Gwahatike" }, { "dai", "Day" }, { "daj", "Dar Fur Daju" }, { "dak", "Dakota" }, { "dal", "Dahalo" }, { "dam", "Damakawa" }, { "dan", "Danish" }, { "dao", "Daai Chin" }, { "daq", "Dandami Maria" }, { "dar", "Dargwa" }, { "das", "Daho-Doo" }, { "dau", "Dar Sila Daju" }, { "dav", "Taita" }, { "daw", "Davawenyo" }, { "dax", "Dayi" }, { "daz", "Dao" }, { "dba", "Bangime" }, { "dbb", "Deno" }, { "dbd", "Dadiya" }, { "dbe", "Dabe" }, { "dbf", "Edopi" }, { "dbg", "Dogul Dom Dogon" }, { "dbi", "Doka" }, { "dbj", "Ida'an" }, { "dbl", "Dyirbal" }, { "dbm", "Duguri" }, { "dbn", "Duriankere" }, { "dbo", "Dulbu" }, { "dbp", "Duwai" }, { "dbq", "Daba" }, { "dbr", "Dabarre" }, { "dbt", "Ben Tey Dogon" }, { "dbu", "Bondum Dom Dogon" }, { "dbv", "Dungu" }, { "dbw", "Bankan Tey Dogon" }, { "dby", "Dibiyaso" }, { "dcc", "Deccan" }, { "dcr", "Negerhollands" }, { "dda", "Dadi Dadi" }, { "ddd", "Dongotono" }, { "dde", "Doondo" }, { "ddg", "Fataluku" }, { "ddi", "West Goodenough" }, { "ddj", "Jaru" }, { "ddn", "Dendi (Benin)" }, { "ddo", "Dido" }, { "ddr", "Dhudhuroa" }, { "dds", "Donno So Dogon" }, { "ddw", "Dawera-Daweloor" }, { "dec", "Dagik" }, { "ded", "Dedua" }, { "dee", "Dewoin" }, { "def", "Dezfuli" }, { "deg", "Degema" }, { "deh", "Dehwari" }, { "dei", "Demisa" }, { "dek", "Dek" }, { "del", "Delaware" }, { "dem", "Dem" }, { "den", "Slave (Athapascan)" }, { "dep", "Pidgin Delaware" }, { "deq", "Dendi (Central African Republic)" }, { "der", "Deori" }, { "des", "Desano" }, { "deu", "German" }, { "dev", "Domung" }, { "dez", "Dengese" }, { "dga", "Southern Dagaare" }, { "dgb", "Bunoge Dogon" }, { "dgc", "Casiguran Dumagat Agta" }, { "dgd", "Dagaari Dioula" }, { "dge", "Degenan" }, { "dgg", "Doga" }, { "dgh", "Dghwede" }, { "dgi", "Northern Dagara" }, { "dgk", "Dagba" }, { "dgl", "Andaandi" }, { "dgn", "Dagoman" }, { "dgo", "Dogri (individual language)" }, { "dgr", "Dogrib" }, { "dgs", "Dogoso" }, { "dgt", "Ndra'ngith" }, { "dgu", "Degaru" }, { "dgw", "Daungwurrung" }, { "dgx", "Doghoro" }, { "dgz", "Daga" }, { "dhd", "Dhundari" }, { "dhg", "Djangu" }, { "dhi", "Dhimal" }, { "dhl", "Dhalandji" }, { "dhm", "Zemba" }, { "dhn", "Dhanki" }, { "dho", "Dhodia" }, { "dhr", "Dhargari" }, { "dhs", "Dhaiso" }, { "dhu", "Dhurga" }, { "dhv", "Dehu" }, { "dhw", "Dhanwar (Nepal)" }, { "dhx", "Dhungaloo" }, { "dia", "Dia" }, { "dib", "South Central Dinka" }, { "dic", "Lakota Dida" }, { "did", "Didinga" }, { "dif", "Dieri" }, { "dig", "Digo" }, { "dih", "Kumiai" }, { "dii", "Dimbong" }, { "dij", "Dai" }, { "dik", "Southwestern Dinka" }, { "dil", "Dilling" }, { "dim", "Dime" }, { "din", "Dinka" }, { "dio", "Dibo" }, { "dip", "Northeastern Dinka" }, { "diq", "Dimli (individual language)" }, { "dir", "Dirim" }, { "dis", "Dimasa" }, { "dit", "Dirari" }, { "diu", "Diriku" }, { "div", "Dhivehi" }, { "diw", "Northwestern Dinka" }, { "dix", "Dixon Reef" }, { "diy", "Diuwe" }, { "diz", "Ding" }, { "dja", "Djadjawurrung" }, { "djb", "Djinba" }, { "djc", "Dar Daju Daju" }, { "djd", "Djamindjung" }, { "dje", "Zarma" }, { "djf", "Djangun" }, { "dji", "Djinang" }, { "djj", "Djeebbana" }, { "djk", "Eastern Maroon Creole" }, { "djm", "Jamsay Dogon" }, { "djn", "Djauan" }, { "djo", "Jangkang" }, { "djr", "Djambarrpuyngu" }, { "dju", "Kapriman" }, { "djw", "Djawi" }, { "dka", "Dakpakha" }, { "dkk", "Dakka" }, { "dkr", "Kuijau" }, { "dks", "Southeastern Dinka" }, { "dkx", "Mazagway" }, { "dlg", "Dolgan" }, { "dlk", "Dahalik" }, { "dlm", "Dalmatian" }, { "dln", "Darlong" }, { "dma", "Duma" }, { "dmb", "Mombo Dogon" }, { "dmc", "Gavak" }, { "dmd", "Madhi Madhi" }, { "dme", "Dugwor" }, { "dmg", "Upper Kinabatangan" }, { "dmk", "Domaaki" }, { "dml", "Dameli" }, { "dmm", "Dama" }, { "dmo", "Kemedzung" }, { "dmr", "East Damar" }, { "dms", "Dampelas" }, { "dmu", "Dubu" }, { "dmv", "Dumpas" }, { "dmw", "Mudburra" }, { "dmx", "Dema" }, { "dmy", "Demta" }, { "dna", "Upper Grand Valley Dani" }, { "dnd", "Daonda" }, { "dne", "Ndendeule" }, { "dng", "Dungan" }, { "dni", "Lower Grand Valley Dani" }, { "dnj", "Dan" }, { "dnk", "Dengka" }, { "dnn", "Dzùùngoo" }, { "dnr", "Danaru" }, { "dnt", "Mid Grand Valley Dani" }, { "dnu", "Danau" }, { "dnv", "Danu" }, { "dnw", "Western Dani" }, { "dny", "Dení" }, { "doa", "Dom" }, { "dob", "Dobu" }, { "doc", "Northern Dong" }, { "doe", "Doe" }, { "dof", "Domu" }, { "doh", "Dong" }, { "doi", "Dogri (macrolanguage)" }, { "dok", "Dondo" }, { "dol", "Doso" }, { "don", "Toura (Papua New Guinea)" }, { "doo", "Dongo" }, { "dop", "Lukpa" }, { "doq", "Dominican Sign Language" }, { "dor", "Dori'o" }, { "dos", "Dogosé" }, { "dot", "Dass" }, { "dov", "Dombe" }, { "dow", "Doyayo" }, { "dox", "Bussa" }, { "doy", "Dompo" }, { "doz", "Dorze" }, { "dpp", "Papar" }, { "drb", "Dair" }, { "drc", "Minderico" }, { "drd", "Darmiya" }, { "dre", "Dolpo" }, { "drg", "Rungus" }, { "dri", "C'lela" }, { "drl", "Paakantyi" }, { "drn", "West Damar" }, { "dro", "Daro-Matu Melanau" }, { "drq", "Dura" }, { "drr", "Dororo" }, { "drs", "Gedeo" }, { "drt", "Drents" }, { "dru", "Rukai" }, { "dry", "Darai" }, { "dsb", "Lower Sorbian" }, { "dse", "Dutch Sign Language" }, { "dsh", "Daasanach" }, { "dsi", "Disa" }, { "dsl", "Danish Sign Language" }, { "dsn", "Dusner" }, { "dso", "Desiya" }, { "dsq", "Tadaksahak" }, { "dta", "Daur" }, { "dtb", "Labuk-Kinabatangan Kadazan" }, { "dtd", "Ditidaht" }, { "dth", "Adithinngithigh" }, { "dti", "Ana Tinga Dogon" }, { "dtk", "Tene Kan Dogon" }, { "dtm", "Tomo Kan Dogon" }, { "dto", "Tommo So Dogon" }, { "dtp", "Central Dusun" }, { "dtr", "Lotud" }, { "dts", "Toro So Dogon" }, { "dtt", "Toro Tegu Dogon" }, { "dtu", "Tebul Ure Dogon" }, { "dty", "Dotyali" }, { "dua", "Duala" }, { "dub", "Dubli" }, { "duc", "Duna" }, { "dud", "Hun-Saare" }, { "due", "Umiray Dumaget Agta" }, { "duf", "Dumbea" }, { "dug", "Duruma" }, { "duh", "Dungra Bhil" }, { "dui", "Dumun" }, { "duj", "Dhuwal" }, { "duk", "Uyajitaya" }, { "dul", "Alabat Island Agta" }, { "dum", "Middle Dutch (ca. 1050-1350)" }, { "dun", "Dusun Deyah" }, { "duo", "Dupaninan Agta" }, { "dup", "Duano" }, { "duq", "Dusun Malang" }, { "dur", "Dii" }, { "dus", "Dumi" }, { "duu", "Drung" }, { "duv", "Duvle" }, { "duw", "Dusun Witu" }, { "dux", "Duungooma" }, { "duy", "Dicamay Agta" }, { "duz", "Duli" }, { "dva", "Duau" }, { "dwa", "Diri" }, { "dwr", "Dawro" }, { "dws", "Dutton World Speedwords" }, { "dww", "Dawawa" }, { "dya", "Dyan" }, { "dyb", "Dyaberdyaber" }, { "dyd", "Dyugun" }, { "dyg", "Villa Viciosa Agta" }, { "dyi", "Djimini Senoufo" }, { "dym", "Yanda Dom Dogon" }, { "dyn", "Dyangadi" }, { "dyo", "Jola-Fonyi" }, { "dyu", "Dyula" }, { "dyy", "Dyaabugay" }, { "dza", "Tunzu" }, { "dzd", "Daza" }, { "dze", "Djiwarli" }, { "dzg", "Dazaga" }, { "dzl", "Dzalakha" }, { "dzn", "Dzando" }, { "dzo", "Dzongkha" }, { "eaa", "Karenggapa" }, { "ebg", "Ebughu" }, { "ebk", "Eastern Bontok" }, { "ebo", "Teke-Ebo" }, { "ebr", "Ebrié" }, { "ebu", "Embu" }, { "ecr", "Eteocretan" }, { "ecs", "Ecuadorian Sign Language" }, { "ecy", "Eteocypriot" }, { "eee", "E" }, { "efa", "Efai" }, { "efe", "Efe" }, { "efi", "Efik" }, { "ega", "Ega" }, { "egl", "Emilian" }, { "ego", "Eggon" }, { "egy", "Egyptian (Ancient)" }, { "ehu", "Ehueun" }, { "eip", "Eipomek" }, { "eit", "Eitiep" }, { "eiv", "Askopan" }, { "eja", "Ejamat" }, { "eka", "Ekajuk" }, { "ekc", "Eastern Karnic" }, { "eke", "Ekit" }, { "ekg", "Ekari" }, { "eki", "Eki" }, { "ekk", "Standard Estonian" }, { "ekl", "Kol (Bangladesh)" }, { "ekm", "Elip" }, { "eko", "Koti" }, { "ekp", "Ekpeye" }, { "ekr", "Yace" }, { "eky", "Eastern Kayah" }, { "ele", "Elepi" }, { "elh", "El Hugeirat" }, { "eli", "Nding" }, { "elk", "Elkei" }, { "ell", "Modern Greek (1453-)" }, { "elm", "Eleme" }, { "elo", "El Molo" }, { "elu", "Elu" }, { "elx", "Elamite" }, { "ema", "Emai-Iuleha-Ora" }, { "emb", "Embaloh" }, { "eme", "Emerillon" }, { "emg", "Eastern Meohang" }, { "emi", "Mussau-Emira" }, { "emk", "Eastern Maninkakan" }, { "emm", "Mamulique" }, { "emn", "Eman" }, { "emo", "Emok" }, { "emp", "Northern Emberá" }, { "ems", "Pacific Gulf Yupik" }, { "emu", "Eastern Muria" }, { "emw", "Emplawas" }, { "emx", "Erromintxela" }, { "emy", "Epigraphic Mayan" }, { "ena", "Apali" }, { "enb", "Markweeta" }, { "enc", "En" }, { "end", "Ende" }, { "enf", "Forest Enets" }, { "eng", "English" }, { "enh", "Tundra Enets" }, { "enm", "Middle English (1100-1500)" }, { "enn", "Engenni" }, { "eno", "Enggano" }, { "enq", "Enga" }, { "enr", "Emumu" }, { "enu", "Enu" }, { "env", "Enwan (Edu State)" }, { "enw", "Enwan (Akwa Ibom State)" }, { "eot", "Beti (Côte d'Ivoire)" }, { "epi", "Epie" }, { "epo", "Esperanto" }, { "era", "Eravallan" }, { "erg", "Sie" }, { "erh", "Eruwa" }, { "eri", "Ogea" }, { "erk", "South Efate" }, { "ero", "Horpa" }, { "err", "Erre" }, { "ers", "Ersu" }, { "ert", "Eritai" }, { "erw", "Erokwanas" }, { "ese", "Ese Ejja" }, { "esh", "Eshtehardi" }, { "esi", "North Alaskan Inupiatun" }, { "esk", "Northwest Alaska Inupiatun" }, { "esl", "Egypt Sign Language" }, { "esm", "Esuma" }, { "esn", "Salvadoran Sign Language" }, { "eso", "Estonian Sign Language" }, { "esq", "Esselen" }, { "ess", "Central Siberian Yupik" }, { "est", "Estonian" }, { "esu", "Central Yupik" }, { "etb", "Etebi" }, { "etc", "Etchemin" }, { "eth", "Ethiopian Sign Language" }, { "etn", "Eton (Vanuatu)" }, { "eto", "Eton (Cameroon)" }, { "etr", "Edolo" }, { "ets", "Yekhee" }, { "ett", "Etruscan" }, { "etu", "Ejagham" }, { "etx", "Eten" }, { "etz", "Semimi" }, { "eus", "Basque" }, { "eve", "Even" }, { "evh", "Uvbie" }, { "evn", "Evenki" }, { "ewe", "Ewe" }, { "ewo", "Ewondo" }, { "ext", "Extremaduran" }, { "eya", "Eyak" }, { "eyo", "Keiyo" }, { "eza", "Ezaa" }, { "eze", "Uzekwe" }, { "faa", "Fasu" }, { "fab", "Fa d'Ambu" }, { "fad", "Wagi" }, { "faf", "Fagani" }, { "fag", "Finongan" }, { "fah", "Baissa Fali" }, { "fai", "Faiwol" }, { "faj", "Faita" }, { "fak", "Fang (Cameroon)" }, { "fal", "South Fali" }, { "fam", "Fam" }, { "fan", "Fang (Equatorial Guinea)" }, { "fao", "Faroese" }, { "fap", "Palor" }, { "far", "Fataleka" }, { "fas", "Persian" }, { "fat", "Fanti" }, { "fau", "Fayu" }, { "fax", "Fala" }, { "fay", "Southwestern Fars" }, { "faz", "Northwestern Fars" }, { "fbl", "West Albay Bikol" }, { "fcs", "Quebec Sign Language" }, { "fer", "Feroge" }, { "ffi", "Foia Foia" }, { "ffm", "Maasina Fulfulde" }, { "fgr", "Fongoro" }, { "fia", "Nobiin" }, { "fie", "Fyer" }, { "fij", "Fijian" }, { "fil", "Filipino" }, { "fin", "Finnish" }, { "fip", "Fipa" }, { "fir", "Firan" }, { "fit", "Tornedalen Finnish" }, { "fiw", "Fiwaga" }, { "fkk", "Kirya-Konzəl" }, { "fkv", "Kven Finnish" }, { "fla", "Kalispel-Pend d'Oreille" }, { "flh", "Foau" }, { "fli", "Fali" }, { "fll", "North Fali" }, { "fln", "Flinders Island" }, { "flr", "Fuliiru" }, { "fly", "Tsotsitaal" }, { "fmp", "Fe'fe'" }, { "fmu", "Far Western Muria" }, { "fng", "Fanagalo" }, { "fni", "Fania" }, { "fod", "Foodo" }, { "foi", "Foi" }, { "fom", "Foma" }, { "fon", "Fon" }, { "for", "Fore" }, { "fos", "Siraya" }, { "fpe", "Fernando Po Creole English" }, { "fqs", "Fas" }, { "fra", "French" }, { "frc", "Cajun French" }, { "frd", "Fordata" }, { "frk", "Frankish" }, { "frm", "Middle French (ca. 1400-1600)" }, { "fro", "Old French (842-ca. 1400)" }, { "frp", "Arpitan" }, { "frq", "Forak" }, { "frr", "Northern Frisian" }, { "frs", "Eastern Frisian" }, { "frt", "Fortsenal" }, { "fry", "Western Frisian" }, { "fse", "Finnish Sign Language" }, { "fsl", "French Sign Language" }, { "fss", "Finland-Swedish Sign Language" }, { "fub", "Adamawa Fulfulde" }, { "fuc", "Pulaar" }, { "fud", "East Futuna" }, { "fue", "Borgu Fulfulde" }, { "fuf", "Pular" }, { "fuh", "Western Niger Fulfulde" }, { "fui", "Bagirmi Fulfulde" }, { "fuj", "Ko" }, { "ful", "Fulah" }, { "fum", "Fum" }, { "fun", "Fulniô" }, { "fuq", "Central-Eastern Niger Fulfulde" }, { "fur", "Friulian" }, { "fut", "Futuna-Aniwa" }, { "fuu", "Furu" }, { "fuv", "Nigerian Fulfulde" }, { "fuy", "Fuyug" }, { "fvr", "Fur" }, { "fwa", "Fwâi" }, { "fwe", "Fwe" }, { "gaa", "Ga" }, { "gab", "Gabri" }, { "gac", "Mixed Great Andamanese" }, { "gad", "Gaddang" }, { "gae", "Guarequena" }, { "gaf", "Gende" }, { "gag", "Gagauz" }, { "gah", "Alekano" }, { "gai", "Borei" }, { "gaj", "Gadsup" }, { "gak", "Gamkonora" }, { "gal", "Galolen" }, { "gam", "Kandawo" }, { "gan", "Gan Chinese" }, { "gao", "Gants" }, { "gap", "Gal" }, { "gaq", "Gata'" }, { "gar", "Galeya" }, { "gas", "Adiwasi Garasia" }, { "gat", "Kenati" }, { "gau", "Mudhili Gadaba" }, { "gaw", "Nobonob" }, { "gax", "Borana-Arsi-Guji Oromo" }, { "gay", "Gayo" }, { "gaz", "West Central Oromo" }, { "gba", "Gbaya (Central African Republic)" }, { "gbb", "Kaytetye" }, { "gbd", "Karadjeri" }, { "gbe", "Niksek" }, { "gbf", "Gaikundi" }, { "gbg", "Gbanziri" }, { "gbh", "Defi Gbe" }, { "gbi", "Galela" }, { "gbj", "Bodo Gadaba" }, { "gbk", "Gaddi" }, { "gbl", "Gamit" }, { "gbm", "Garhwali" }, { "gbn", "Mo'da" }, { "gbo", "Northern Grebo" }, { "gbp", "Gbaya-Bossangoa" }, { "gbq", "Gbaya-Bozoum" }, { "gbr", "Gbagyi" }, { "gbs", "Gbesi Gbe" }, { "gbu", "Gagadu" }, { "gbv", "Gbanu" }, { "gbw", "Gabi-Gabi" }, { "gbx", "Eastern Xwla Gbe" }, { "gby", "Gbari" }, { "gbz", "Zoroastrian Dari" }, { "gcc", "Mali" }, { "gcd", "Ganggalida" }, { "gce", "Galice" }, { "gcf", "Guadeloupean Creole French" }, { "gcl", "Grenadian Creole English" }, { "gcn", "Gaina" }, { "gcr", "Guianese Creole French" }, { "gct", "Colonia Tovar German" }, { "gda", "Gade Lohar" }, { "gdb", "Pottangi Ollar Gadaba" }, { "gdc", "Gugu Badhun" }, { "gdd", "Gedaged" }, { "gde", "Gude" }, { "gdf", "Guduf-Gava" }, { "gdg", "Ga'dang" }, { "gdh", "Gadjerawang" }, { "gdi", "Gundi" }, { "gdj", "Gurdjar" }, { "gdk", "Gadang" }, { "gdl", "Dirasha" }, { "gdm", "Laal" }, { "gdn", "Umanakaina" }, { "gdo", "Ghodoberi" }, { "gdq", "Mehri" }, { "gdr", "Wipi" }, { "gds", "Ghandruk Sign Language" }, { "gdt", "Kungardutyi" }, { "gdu", "Gudu" }, { "gdx", "Godwari" }, { "gea", "Geruma" }, { "geb", "Kire" }, { "gec", "Gboloo Grebo" }, { "ged", "Gade" }, { "geg", "Gengle" }, { "geh", "Hutterite German" }, { "gei", "Gebe" }, { "gej", "Gen" }, { "gek", "Yiwom" }, { "gel", "ut-Ma'in" }, { "geq", "Geme" }, { "ges", "Geser-Gorom" }, { "gew", "Gera" }, { "gex", "Garre" }, { "gey", "Enya" }, { "gez", "Geez" }, { "gfk", "Patpatar" }, { "gft", "Gafat" }, { "gfx", "Mangetti Dune !Xung" }, { "gga", "Gao" }, { "ggb", "Gbii" }, { "ggd", "Gugadj" }, { "gge", "Guragone" }, { "ggg", "Gurgula" }, { "ggk", "Kungarakany" }, { "ggl", "Ganglau" }, { "ggm", "Gugu Mini" }, { "ggn", "Eastern Gurung" }, { "ggo", "Southern Gondi" }, { "ggt", "Gitua" }, { "ggu", "Gagu" }, { "ggw", "Gogodala" }, { "gha", "Ghadamès" }, { "ghc", "Hiberno-Scottish Gaelic" }, { "ghe", "Southern Ghale" }, { "ghh", "Northern Ghale" }, { "ghk", "Geko Karen" }, { "ghl", "Ghulfan" }, { "ghn", "Ghanongga" }, { "gho", "Ghomara" }, { "ghr", "Ghera" }, { "ghs", "Guhu-Samane" }, { "ght", "Kuke" }, { "gia", "Kitja" }, { "gib", "Gibanawa" }, { "gic", "Gail" }, { "gid", "Gidar" }, { "gig", "Goaria" }, { "gih", "Githabul" }, { "gil", "Gilbertese" }, { "gim", "Gimi (Eastern Highlands)" }, { "gin", "Hinukh" }, { "gip", "Gimi (West New Britain)" }, { "giq", "Green Gelao" }, { "gir", "Red Gelao" }, { "gis", "North Giziga" }, { "git", "Gitxsan" }, { "giu", "Mulao" }, { "giw", "White Gelao" }, { "gix", "Gilima" }, { "giy", "Giyug" }, { "giz", "South Giziga" }, { "gji", "Geji" }, { "gjk", "Kachi Koli" }, { "gjm", "Gunditjmara" }, { "gjn", "Gonja" }, { "gju", "Gujari" }, { "gka", "Guya" }, { "gke", "Ndai" }, { "gkn", "Gokana" }, { "gko", "Kok-Nar" }, { "gkp", "Guinea Kpelle" }, { "gla", "Scottish Gaelic" }, { "glc", "Bon Gula" }, { "gld", "Nanai" }, { "gle", "Irish" }, { "glg", "Galician" }, { "glh", "Northwest Pashayi" }, { "gli", "Guliguli" }, { "glj", "Gula Iro" }, { "glk", "Gilaki" }, { "gll", "Garlali" }, { "glo", "Galambu" }, { "glr", "Glaro-Twabo" }, { "glu", "Gula (Chad)" }, { "glv", "Manx" }, { "glw", "Glavda" }, { "gly", "Gule" }, { "gma", "Gambera" }, { "gmb", "Gula'alaa" }, { "gmd", "Mághdì" }, { "gmh", "Middle High German (ca. 1050-1500)" }, { "gml", "Middle Low German" }, { "gmm", "Gbaya-Mbodomo" }, { "gmn", "Gimnime" }, { "gmu", "Gumalu" }, { "gmv", "Gamo" }, { "gmx", "Magoma" }, { "gmy", "Mycenaean Greek" }, { "gmz", "Mgbolizhia" }, { "gna", "Kaansa" }, { "gnb", "Gangte" }, { "gnc", "Guanche" }, { "gnd", "Zulgo-Gemzek" }, { "gne", "Ganang" }, { "gng", "Ngangam" }, { "gnh", "Lere" }, { "gni", "Gooniyandi" }, { "gnk", "Gana" }, { "gnl", "Gangulu" }, { "gnm", "Ginuman" }, { "gnn", "Gumatj" }, { "gno", "Northern Gondi" }, { "gnq", "Gana" }, { "gnr", "Gureng Gureng" }, { "gnt", "Guntai" }, { "gnu", "Gnau" }, { "gnw", "Western Bolivian Guaraní" }, { "gnz", "Ganzi" }, { "goa", "Guro" }, { "gob", "Playero" }, { "goc", "Gorakor" }, { "god", "Godié" }, { "goe", "Gongduk" }, { "gof", "Gofa" }, { "gog", "Gogo" }, { "goh", "Old High German (ca. 750-1050)" }, { "goi", "Gobasi" }, { "goj", "Gowlan" }, { "gok", "Gowli" }, { "gol", "Gola" }, { "gom", "Goan Konkani" }, { "gon", "Gondi" }, { "goo", "Gone Dau" }, { "gop", "Yeretuar" }, { "goq", "Gorap" }, { "gor", "Gorontalo" }, { "gos", "Gronings" }, { "got", "Gothic" }, { "gou", "Gavar" }, { "gow", "Gorowa" }, { "gox", "Gobu" }, { "goy", "Goundo" }, { "goz", "Gozarkhani" }, { "gpa", "Gupa-Abawa" }, { "gpe", "Ghanaian Pidgin English" }, { "gpn", "Taiap" }, { "gqa", "Ga'anda" }, { "gqi", "Guiqiong" }, { "gqn", "Guana (Brazil)" }, { "gqr", "Gor" }, { "gqu", "Qau" }, { "gra", "Rajput Garasia" }, { "grb", "Grebo" }, { "grc", "Ancient Greek (to 1453)" }, { "grd", "Guruntum-Mbaaru" }, { "grg", "Madi" }, { "grh", "Gbiri-Niragu" }, { "gri", "Ghari" }, { "grj", "Southern Grebo" }, { "grm", "Kota Marudu Talantang" }, { "grn", "Guarani" }, { "gro", "Groma" }, { "grq", "Gorovu" }, { "grr", "Taznatit" }, { "grs", "Gresi" }, { "grt", "Garo" }, { "gru", "Kistane" }, { "grv", "Central Grebo" }, { "grw", "Gweda" }, { "grx", "Guriaso" }, { "gry", "Barclayville Grebo" }, { "grz", "Guramalum" }, { "gse", "Ghanaian Sign Language" }, { "gsg", "German Sign Language" }, { "gsl", "Gusilay" }, { "gsm", "Guatemalan Sign Language" }, { "gsn", "Gusan" }, { "gso", "Southwest Gbaya" }, { "gsp", "Wasembo" }, { "gss", "Greek Sign Language" }, { "gsw", "Swiss German" }, { "gta", "Guató" }, { "gti", "Gbati-ri" }, { "gtu", "Aghu-Tharnggala" }, { "gua", "Shiki" }, { "gub", "Guajajára" }, { "guc", "Wayuu" }, { "gud", "Yocoboué Dida" }, { "gue", "Gurinji" }, { "guf", "Gupapuyngu" }, { "gug", "Paraguayan Guaraní" }, { "guh", "Guahibo" }, { "gui", "Eastern Bolivian Guaraní" }, { "guj", "Gujarati" }, { "guk", "Gumuz" }, { "gul", "Sea Island Creole English" }, { "gum", "Guambiano" }, { "gun", "Mbyá Guaraní" }, { "guo", "Guayabero" }, { "gup", "Gunwinggu" }, { "guq", "Aché" }, { "gur", "Farefare" }, { "gus", "Guinean Sign Language" }, { "gut", "Maléku Jaíka" }, { "guu", "Yanomamö" }, { "guv", "Gey" }, { "guw", "Gun" }, { "gux", "Gourmanchéma" }, { "guz", "Gusii" }, { "gva", "Guana (Paraguay)" }, { "gvc", "Guanano" }, { "gve", "Duwet" }, { "gvf", "Golin" }, { "gvj", "Guajá" }, { "gvl", "Gulay" }, { "gvm", "Gurmana" }, { "gvn", "Kuku-Yalanji" }, { "gvo", "Gavião Do Jiparaná" }, { "gvp", "Pará Gavião" }, { "gvr", "Western Gurung" }, { "gvs", "Gumawana" }, { "gvy", "Guyani" }, { "gwa", "Mbato" }, { "gwb", "Gwa" }, { "gwc", "Kalami" }, { "gwd", "Gawwada" }, { "gwe", "Gweno" }, { "gwf", "Gowro" }, { "gwg", "Moo" }, { "gwi", "Gwichʼin" }, { "gwj", "Gwi" }, { "gwm", "Awngthim" }, { "gwn", "Gwandara" }, { "gwr", "Gwere" }, { "gwt", "Gawar-Bati" }, { "gwu", "Guwamu" }, { "gww", "Kwini" }, { "gwx", "Gua" }, { "gxx", "Wè Southern" }, { "gya", "Northwest Gbaya" }, { "gyb", "Garus" }, { "gyd", "Kayardild" }, { "gye", "Gyem" }, { "gyf", "Gungabula" }, { "gyg", "Gbayi" }, { "gyi", "Gyele" }, { "gyl", "Gayil" }, { "gym", "Ngäbere" }, { "gyn", "Guyanese Creole English" }, { "gyr", "Guarayu" }, { "gyy", "Gunya" }, { "gza", "Ganza" }, { "gzi", "Gazi" }, { "gzn", "Gane" }, { "haa", "Han" }, { "hab", "Hanoi Sign Language" }, { "hac", "Gurani" }, { "had", "Hatam" }, { "hae", "Eastern Oromo" }, { "haf", "Haiphong Sign Language" }, { "hag", "Hanga" }, { "hah", "Hahon" }, { "hai", "Haida" }, { "haj", "Hajong" }, { "hak", "Hakka Chinese" }, { "hal", "Halang" }, { "ham", "Hewa" }, { "han", "Hangaza" }, { "hao", "Hakö" }, { "hap", "Hupla" }, { "haq", "Ha" }, { "har", "Harari" }, { "has", "Haisla" }, { "hat", "Haitian" }, { "hau", "Hausa" }, { "hav", "Havu" }, { "haw", "Hawaiian" }, { "hax", "Southern Haida" }, { "hay", "Haya" }, { "haz", "Hazaragi" }, { "hba", "Hamba" }, { "hbb", "Huba" }, { "hbn", "Heiban" }, { "hbo", "Ancient Hebrew" }, { "hbs", "Serbo-Croatian" }, { "hbu", "Habu" }, { "hca", "Andaman Creole Hindi" }, { "hch", "Huichol" }, { "hdn", "Northern Haida" }, { "hds", "Honduras Sign Language" }, { "hdy", "Hadiyya" }, { "hea", "Northern Qiandong Miao" }, { "heb", "Hebrew" }, { "hed", "Herdé" }, { "heg", "Helong" }, { "heh", "Hehe" }, { "hei", "Heiltsuk" }, { "hem", "Hemba" }, { "her", "Herero" }, { "hgm", "Haiom" }, { "hgw", "Haigwai" }, { "hhi", "Hoia Hoia" }, { "hhr", "Kerak" }, { "hhy", "Hoyahoya" }, { "hia", "Lamang" }, { "hib", "Hibito" }, { "hid", "Hidatsa" }, { "hif", "Fiji Hindi" }, { "hig", "Kamwe" }, { "hih", "Pamosu" }, { "hii", "Hinduri" }, { "hij", "Hijuk" }, { "hik", "Seit-Kaitetu" }, { "hil", "Hiligaynon" }, { "hin", "Hindi" }, { "hio", "Tsoa" }, { "hir", "Himarimã" }, { "hit", "Hittite" }, { "hiw", "Hiw" }, { "hix", "Hixkaryána" }, { "hji", "Haji" }, { "hka", "Kahe" }, { "hke", "Hunde" }, { "hkk", "Hunjara-Kaina Ke" }, { "hks", "Hong Kong Sign Language" }, { "hla", "Halia" }, { "hlb", "Halbi" }, { "hld", "Halang Doan" }, { "hle", "Hlersu" }, { "hlt", "Matu Chin" }, { "hlu", "Hieroglyphic Luwian" }, { "hma", "Southern Mashan Hmong" }, { "hmb", "Humburi Senni Songhay" }, { "hmc", "Central Huishui Hmong" }, { "hmd", "Large Flowery Miao" }, { "hme", "Eastern Huishui Hmong" }, { "hmf", "Hmong Don" }, { "hmg", "Southwestern Guiyang Hmong" }, { "hmh", "Southwestern Huishui Hmong" }, { "hmi", "Northern Huishui Hmong" }, { "hmj", "Ge" }, { "hmk", "Maek" }, { "hml", "Luopohe Hmong" }, { "hmm", "Central Mashan Hmong" }, { "hmn", "Hmong" }, { "hmo", "Hiri Motu" }, { "hmp", "Northern Mashan Hmong" }, { "hmq", "Eastern Qiandong Miao" }, { "hmr", "Hmar" }, { "hms", "Southern Qiandong Miao" }, { "hmt", "Hamtai" }, { "hmu", "Hamap" }, { "hmv", "Hmong Dô" }, { "hmw", "Western Mashan Hmong" }, { "hmy", "Southern Guiyang Hmong" }, { "hmz", "Hmong Shua" }, { "hna", "Mina (Cameroon)" }, { "hnd", "Southern Hindko" }, { "hne", "Chhattisgarhi" }, { "hnh", "Ani" }, { "hni", "Hani" }, { "hnj", "Hmong Njua" }, { "hnn", "Hanunoo" }, { "hno", "Northern Hindko" }, { "hns", "Caribbean Hindustani" }, { "hnu", "Hung" }, { "hoa", "Hoava" }, { "hob", "Mari (Madang Province)" }, { "hoc", "Ho" }, { "hod", "Holma" }, { "hoe", "Horom" }, { "hoh", "Hobyót" }, { "hoi", "Holikachuk" }, { "hoj", "Hadothi" }, { "hol", "Holu" }, { "hom", "Homa" }, { "hoo", "Holoholo" }, { "hop", "Hopi" }, { "hor", "Horo" }, { "hos", "Ho Chi Minh City Sign Language" }, { "hot", "Hote" }, { "hov", "Hovongan" }, { "how", "Honi" }, { "hoy", "Holiya" }, { "hoz", "Hozo" }, { "hpo", "Hpon" }, { "hps", "Hawai'i Pidgin Sign Language" }, { "hra", "Hrangkhol" }, { "hrc", "Niwer Mil" }, { "hre", "Hre" }, { "hrk", "Haruku" }, { "hrm", "Horned Miao" }, { "hro", "Haroi" }, { "hrp", "Nhirrpi" }, { "hrt", "Hértevin" }, { "hru", "Hruso" }, { "hrv", "Croatian" }, { "hrw", "Warwar Feni" }, { "hrx", "Hunsrik" }, { "hrz", "Harzani" }, { "hsb", "Upper Sorbian" }, { "hsh", "Hungarian Sign Language" }, { "hsl", "Hausa Sign Language" }, { "hsn", "Xiang Chinese" }, { "hss", "Harsusi" }, { "hti", "Hoti" }, { "hto", "Minica Huitoto" }, { "hts", "Hadza" }, { "htu", "Hitu" }, { "htx", "Middle Hittite" }, { "hub", "Huambisa" }, { "huc", "=Hua" }, { "hud", "Huaulu" }, { "hue", "San Francisco Del Mar Huave" }, { "huf", "Humene" }, { "hug", "Huachipaeri" }, { "huh", "Huilliche" }, { "hui", "Huli" }, { "huj", "Northern Guiyang Hmong" }, { "huk", "Hulung" }, { "hul", "Hula" }, { "hum", "Hungana" }, { "hun", "Hungarian" }, { "huo", "Hu" }, { "hup", "Hupa" }, { "huq", "Tsat" }, { "hur", "Halkomelem" }, { "hus", "Huastec" }, { "hut", "Humla" }, { "huu", "Murui Huitoto" }, { "huv", "San Mateo Del Mar Huave" }, { "huw", "Hukumina" }, { "hux", "Nüpode Huitoto" }, { "huy", "Hulaulá" }, { "huz", "Hunzib" }, { "hvc", "Haitian Vodoun Culture Language" }, { "hve", "San Dionisio Del Mar Huave" }, { "hvk", "Haveke" }, { "hvn", "Sabu" }, { "hvv", "Santa María Del Mar Huave" }, { "hwa", "Wané" }, { "hwc", "Hawai'i Creole English" }, { "hwo", "Hwana" }, { "hya", "Hya" }, { "hye", "Armenian" }, { "iai", "Iaai" }, { "ian", "Iatmul" }, { "iap", "Iapama" }, { "iar", "Purari" }, { "iba", "Iban" }, { "ibb", "Ibibio" }, { "ibd", "Iwaidja" }, { "ibe", "Akpes" }, { "ibg", "Ibanag" }, { "ibl", "Ibaloi" }, { "ibm", "Agoi" }, { "ibn", "Ibino" }, { "ibo", "Igbo" }, { "ibr", "Ibuoro" }, { "ibu", "Ibu" }, { "iby", "Ibani" }, { "ica", "Ede Ica" }, { "ich", "Etkywan" }, { "icl", "Icelandic Sign Language" }, { "icr", "Islander Creole English" }, { "ida", "Idakho-Isukha-Tiriki" }, { "idb", "Indo-Portuguese" }, { "idc", "Idon" }, { "idd", "Ede Idaca" }, { "ide", "Idere" }, { "idi", "Idi" }, { "ido", "Ido" }, { "idr", "Indri" }, { "ids", "Idesa" }, { "idt", "Idaté" }, { "idu", "Idoma" }, { "ifa", "Amganad Ifugao" }, { "ifb", "Batad Ifugao" }, { "ife", "Ifè" }, { "iff", "Ifo" }, { "ifk", "Tuwali Ifugao" }, { "ifm", "Teke-Fuumu" }, { "ifu", "Mayoyao Ifugao" }, { "ify", "Keley-I Kallahan" }, { "igb", "Ebira" }, { "ige", "Igede" }, { "igg", "Igana" }, { "igl", "Igala" }, { "igm", "Kanggape" }, { "ign", "Ignaciano" }, { "igo", "Isebe" }, { "igs", "Interglossa" }, { "igw", "Igwe" }, { "ihb", "Iha Based Pidgin" }, { "ihi", "Ihievbe" }, { "ihp", "Iha" }, { "ihw", "Bidhawal" }, { "iii", "Sichuan Yi" }, { "iin", "Thiin" }, { "ijc", "Izon" }, { "ije", "Biseni" }, { "ijj", "Ede Ije" }, { "ijn", "Kalabari" }, { "ijs", "Southeast Ijo" }, { "ike", "Eastern Canadian Inuktitut" }, { "iki", "Iko" }, { "ikk", "Ika" }, { "ikl", "Ikulu" }, { "iko", "Olulumo-Ikom" }, { "ikp", "Ikpeshi" }, { "ikr", "Ikaranggal" }, { "ikt", "Inuinnaqtun" }, { "iku", "Inuktitut" }, { "ikv", "Iku-Gora-Ankwa" }, { "ikw", "Ikwere" }, { "ikx", "Ik" }, { "ikz", "Ikizu" }, { "ila", "Ile Ape" }, { "ilb", "Ila" }, { "ile", "Interlingue" }, { "ilg", "Garig-Ilgar" }, { "ili", "Ili Turki" }, { "ilk", "Ilongot" }, { "ill", "Iranun" }, { "ilo", "Iloko" }, { "ils", "International Sign" }, { "ilu", "Ili'uun" }, { "ilv", "Ilue" }, { "ima", "Mala Malasar" }, { "ime", "Imeraguen" }, { "imi", "Anamgura" }, { "iml", "Miluk" }, { "imn", "Imonda" }, { "imo", "Imbongu" }, { "imr", "Imroing" }, { "ims", "Marsian" }, { "imy", "Milyan" }, { "ina", "Interlingua (International Auxiliary Language Association)" }, { "inb", "Inga" }, { "ind", "Indonesian" }, { "ing", "Degexit'an" }, { "inh", "Ingush" }, { "inj", "Jungle Inga" }, { "inl", "Indonesian Sign Language" }, { "inm", "Minaean" }, { "inn", "Isinai" }, { "ino", "Inoke-Yate" }, { "inp", "Iñapari" }, { "ins", "Indian Sign Language" }, { "int", "Intha" }, { "inz", "Ineseño" }, { "ior", "Inor" }, { "iou", "Tuma-Irumu" }, { "iow", "Iowa-Oto" }, { "ipi", "Ipili" }, { "ipk", "Inupiaq" }, { "ipo", "Ipiko" }, { "iqu", "Iquito" }, { "iqw", "Ikwo" }, { "ire", "Iresim" }, { "irh", "Irarutu" }, { "iri", "Irigwe" }, { "irk", "Iraqw" }, { "irn", "Irántxe" }, { "irr", "Ir" }, { "iru", "Irula" }, { "irx", "Kamberau" }, { "iry", "Iraya" }, { "isa", "Isabi" }, { "isc", "Isconahua" }, { "isd", "Isnag" }, { "ise", "Italian Sign Language" }, { "isg", "Irish Sign Language" }, { "ish", "Esan" }, { "isi", "Nkem-Nkum" }, { "isk", "Ishkashimi" }, { "isl", "Icelandic" }, { "ism", "Masimasi" }, { "isn", "Isanzu" }, { "iso", "Isoko" }, { "isr", "Israeli Sign Language" }, { "ist", "Istriot" }, { "isu", "Isu (Menchum Division)" }, { "ita", "Italian" }, { "itb", "Binongan Itneg" }, { "ite", "Itene" }, { "iti", "Inlaod Itneg" }, { "itk", "Judeo-Italian" }, { "itl", "Itelmen" }, { "itm", "Itu Mbon Uzo" }, { "ito", "Itonama" }, { "itr", "Iteri" }, { "its", "Isekiri" }, { "itt", "Maeng Itneg" }, { "itv", "Itawit" }, { "itw", "Ito" }, { "itx", "Itik" }, { "ity", "Moyadan Itneg" }, { "itz", "Itzá" }, { "ium", "Iu Mien" }, { "ivb", "Ibatan" }, { "ivv", "Ivatan" }, { "iwk", "I-Wak" }, { "iwm", "Iwam" }, { "iwo", "Iwur" }, { "iws", "Sepik Iwam" }, { "ixc", "Ixcatec" }, { "ixl", "Ixil" }, { "iya", "Iyayu" }, { "iyo", "Mesaka" }, { "iyx", "Yaka (Congo)" }, { "izh", "Ingrian" }, { "izr", "Izere" }, { "izz", "Izii" }, { "jaa", "Jamamadí" }, { "jab", "Hyam" }, { "jac", "Popti'" }, { "jad", "Jahanka" }, { "jae", "Yabem" }, { "jaf", "Jara" }, { "jah", "Jah Hut" }, { "jaj", "Zazao" }, { "jak", "Jakun" }, { "jal", "Yalahatan" }, { "jam", "Jamaican Creole English" }, { "jan", "Jandai" }, { "jao", "Yanyuwa" }, { "jaq", "Yaqay" }, { "jas", "New Caledonian Javanese" }, { "jat", "Jakati" }, { "jau", "Yaur" }, { "jav", "Javanese" }, { "jax", "Jambi Malay" }, { "jay", "Yan-nhangu" }, { "jaz", "Jawe" }, { "jbe", "Judeo-Berber" }, { "jbi", "Badjiri" }, { "jbj", "Arandai" }, { "jbk", "Barikewa" }, { "jbn", "Nafusi" }, { "jbo", "Lojban" }, { "jbr", "Jofotek-Bromnya" }, { "jbt", "Jabutí" }, { "jbu", "Jukun Takum" }, { "jbw", "Yawijibaya" }, { "jcs", "Jamaican Country Sign Language" }, { "jct", "Krymchak" }, { "jda", "Jad" }, { "jdg", "Jadgali" }, { "jdt", "Judeo-Tat" }, { "jeb", "Jebero" }, { "jee", "Jerung" }, { "jeg", "Jeng" }, { "jeh", "Jeh" }, { "jei", "Yei" }, { "jek", "Jeri Kuo" }, { "jel", "Yelmek" }, { "jen", "Dza" }, { "jer", "Jere" }, { "jet", "Manem" }, { "jeu", "Jonkor Bourmataguil" }, { "jgb", "Ngbee" }, { "jge", "Judeo-Georgian" }, { "jgk", "Gwak" }, { "jgo", "Ngomba" }, { "jhi", "Jehai" }, { "jhs", "Jhankot Sign Language" }, { "jia", "Jina" }, { "jib", "Jibu" }, { "jic", "Tol" }, { "jid", "Bu" }, { "jie", "Jilbe" }, { "jig", "Djingili" }, { "jih", "sTodsde" }, { "jii", "Jiiddu" }, { "jil", "Jilim" }, { "jim", "Jimi (Cameroon)" }, { "jio", "Jiamao" }, { "jiq", "Guanyinqiao" }, { "jit", "Jita" }, { "jiu", "Youle Jinuo" }, { "jiv", "Shuar" }, { "jiy", "Buyuan Jinuo" }, { "jjr", "Bankal" }, { "jkm", "Mobwa Karen" }, { "jko", "Kubo" }, { "jkp", "Paku Karen" }, { "jkr", "Koro (India)" }, { "jku", "Labir" }, { "jle", "Ngile" }, { "jls", "Jamaican Sign Language" }, { "jma", "Dima" }, { "jmb", "Zumbun" }, { "jmc", "Machame" }, { "jmd", "Yamdena" }, { "jmi", "Jimi (Nigeria)" }, { "jml", "Jumli" }, { "jmn", "Makuri Naga" }, { "jmr", "Kamara" }, { "jms", "Mashi (Nigeria)" }, { "jmw", "Mouwase" }, { "jmx", "Western Juxtlahuaca Mixtec" }, { "jna", "Jangshung" }, { "jnd", "Jandavra" }, { "jng", "Yangman" }, { "jni", "Janji" }, { "jnj", "Yemsa" }, { "jnl", "Rawat" }, { "jns", "Jaunsari" }, { "job", "Joba" }, { "jod", "Wojenaka" }, { "jor", "Jorá" }, { "jos", "Jordanian Sign Language" }, { "jow", "Jowulu" }, { "jpa", "Jewish Palestinian Aramaic" }, { "jpn", "Japanese" }, { "jpr", "Judeo-Persian" }, { "jqr", "Jaqaru" }, { "jra", "Jarai" }, { "jrb", "Judeo-Arabic" }, { "jrr", "Jiru" }, { "jrt", "Jorto" }, { "jru", "Japrería" }, { "jsl", "Japanese Sign Language" }, { "jua", "Júma" }, { "jub", "Wannu" }, { "juc", "Jurchen" }, { "jud", "Worodougou" }, { "juh", "Hõne" }, { "jui", "Ngadjuri" }, { "juk", "Wapan" }, { "jul", "Jirel" }, { "jum", "Jumjum" }, { "jun", "Juang" }, { "juo", "Jiba" }, { "jup", "Hupdë" }, { "jur", "Jurúna" }, { "jus", "Jumla Sign Language" }, { "jut", "Jutish" }, { "juu", "Ju" }, { "juw", "Wãpha" }, { "juy", "Juray" }, { "jvd", "Javindo" }, { "jvn", "Caribbean Javanese" }, { "jwi", "Jwira-Pepesa" }, { "jya", "Jiarong" }, { "jye", "Judeo-Yemeni Arabic" }, { "jyy", "Jaya" }, { "kaa", "Kara-Kalpak" }, { "kab", "Kabyle" }, { "kac", "Kachin" }, { "kad", "Adara" }, { "kae", "Ketangalan" }, { "kaf", "Katso" }, { "kag", "Kajaman" }, { "kah", "Kara (Central African Republic)" }, { "kai", "Karekare" }, { "kaj", "Jju" }, { "kak", "Kayapa Kallahan" }, { "kal", "Kalaallisut" }, { "kam", "Kamba (Kenya)" }, { "kan", "Kannada" }, { "kao", "Xaasongaxango" }, { "kap", "Bezhta" }, { "kaq", "Capanahua" }, { "kas", "Kashmiri" }, { "kat", "Georgian" }, { "kau", "Kanuri" }, { "kav", "Katukína" }, { "kaw", "Kawi" }, { "kax", "Kao" }, { "kay", "Kamayurá" }, { "kaz", "Kazakh" }, { "kba", "Kalarko" }, { "kbb", "Kaxuiâna" }, { "kbc", "Kadiwéu" }, { "kbd", "Kabardian" }, { "kbe", "Kanju" }, { "kbf", "Kakauhua" }, { "kbg", "Khamba" }, { "kbh", "Camsá" }, { "kbi", "Kaptiau" }, { "kbj", "Kari" }, { "kbk", "Grass Koiari" }, { "kbl", "Kanembu" }, { "kbm", "Iwal" }, { "kbn", "Kare (Central African Republic)" }, { "kbo", "Keliko" }, { "kbp", "Kabiyè" }, { "kbq", "Kamano" }, { "kbr", "Kafa" }, { "kbs", "Kande" }, { "kbt", "Abadi" }, { "kbu", "Kabutra" }, { "kbv", "Dera (Indonesia)" }, { "kbw", "Kaiep" }, { "kbx", "Ap Ma" }, { "kby", "Manga Kanuri" }, { "kbz", "Duhwa" }, { "kca", "Khanty" }, { "kcb", "Kawacha" }, { "kcc", "Lubila" }, { "kcd", "Ngkâlmpw Kanum" }, { "kce", "Kaivi" }, { "kcf", "Ukaan" }, { "kcg", "Tyap" }, { "kch", "Vono" }, { "kci", "Kamantan" }, { "kcj", "Kobiana" }, { "kck", "Kalanga" }, { "kcl", "Kela (Papua New Guinea)" }, { "kcm", "Gula (Central African Republic)" }, { "kcn", "Nubi" }, { "kco", "Kinalakna" }, { "kcp", "Kanga" }, { "kcq", "Kamo" }, { "kcr", "Katla" }, { "kcs", "Koenoem" }, { "kct", "Kaian" }, { "kcu", "Kami (Tanzania)" }, { "kcv", "Kete" }, { "kcw", "Kabwari" }, { "kcx", "Kachama-Ganjule" }, { "kcy", "Korandje" }, { "kcz", "Konongo" }, { "kda", "Worimi" }, { "kdc", "Kutu" }, { "kdd", "Yankunytjatjara" }, { "kde", "Makonde" }, { "kdf", "Mamusi" }, { "kdg", "Seba" }, { "kdh", "Tem" }, { "kdi", "Kumam" }, { "kdj", "Karamojong" }, { "kdk", "Numèè" }, { "kdl", "Tsikimba" }, { "kdm", "Kagoma" }, { "kdn", "Kunda" }, { "kdp", "Kaningdon-Nindem" }, { "kdq", "Koch" }, { "kdr", "Karaim" }, { "kdt", "Kuy" }, { "kdu", "Kadaru" }, { "kdw", "Koneraw" }, { "kdx", "Kam" }, { "kdy", "Keder" }, { "kdz", "Kwaja" }, { "kea", "Kabuverdianu" }, { "keb", "Kélé" }, { "kec", "Keiga" }, { "ked", "Kerewe" }, { "kee", "Eastern Keres" }, { "kef", "Kpessi" }, { "keg", "Tese" }, { "keh", "Keak" }, { "kei", "Kei" }, { "kej", "Kadar" }, { "kek", "Kekchí" }, { "kel", "Kela (Democratic Republic of Congo)" }, { "kem", "Kemak" }, { "ken", "Kenyang" }, { "keo", "Kakwa" }, { "kep", "Kaikadi" }, { "keq", "Kamar" }, { "ker", "Kera" }, { "kes", "Kugbo" }, { "ket", "Ket" }, { "keu", "Akebu" }, { "kev", "Kanikkaran" }, { "kew", "West Kewa" }, { "kex", "Kukna" }, { "key", "Kupia" }, { "kez", "Kukele" }, { "kfa", "Kodava" }, { "kfb", "Northwestern Kolami" }, { "kfc", "Konda-Dora" }, { "kfd", "Korra Koraga" }, { "kfe", "Kota (India)" }, { "kff", "Koya" }, { "kfg", "Kudiya" }, { "kfh", "Kurichiya" }, { "kfi", "Kannada Kurumba" }, { "kfj", "Kemiehua" }, { "kfk", "Kinnauri" }, { "kfl", "Kung" }, { "kfm", "Khunsari" }, { "kfn", "Kuk" }, { "kfo", "Koro (Côte d'Ivoire)" }, { "kfp", "Korwa" }, { "kfq", "Korku" }, { "kfr", "Kachchi" }, { "kfs", "Bilaspuri" }, { "kft", "Kanjari" }, { "kfu", "Katkari" }, { "kfv", "Kurmukar" }, { "kfw", "Kharam Naga" }, { "kfx", "Kullu Pahari" }, { "kfy", "Kumaoni" }, { "kfz", "Koromfé" }, { "kga", "Koyaga" }, { "kgb", "Kawe" }, { "kgc", "Kasseng" }, { "kgd", "Kataang" }, { "kge", "Komering" }, { "kgf", "Kube" }, { "kgg", "Kusunda" }, { "kgi", "Selangor Sign Language" }, { "kgj", "Gamale Kham" }, { "kgk", "Kaiwá" }, { "kgl", "Kunggari" }, { "kgm", "Karipúna" }, { "kgn", "Karingani" }, { "kgo", "Krongo" }, { "kgp", "Kaingang" }, { "kgq", "Kamoro" }, { "kgr", "Abun" }, { "kgs", "Kumbainggar" }, { "kgt", "Somyev" }, { "kgu", "Kobol" }, { "kgv", "Karas" }, { "kgw", "Karon Dori" }, { "kgx", "Kamaru" }, { "kgy", "Kyerung" }, { "kha", "Khasi" }, { "khb", "Lü" }, { "khc", "Tukang Besi North" }, { "khd", "Bädi Kanum" }, { "khe", "Korowai" }, { "khf", "Khuen" }, { "khg", "Khams Tibetan" }, { "khh", "Kehu" }, { "khj", "Kuturmi" }, { "khk", "Halh Mongolian" }, { "khl", "Lusi" }, { "khm", "Central Khmer" }, { "khn", "Khandesi" }, { "kho", "Khotanese" }, { "khp", "Kapori" }, { "khq", "Koyra Chiini Songhay" }, { "khr", "Kharia" }, { "khs", "Kasua" }, { "kht", "Khamti" }, { "khu", "Nkhumbi" }, { "khv", "Khvarshi" }, { "khw", "Khowar" }, { "khx", "Kanu" }, { "khy", "Kele (Democratic Republic of Congo)" }, { "khz", "Keapara" }, { "kia", "Kim" }, { "kib", "Koalib" }, { "kic", "Kickapoo" }, { "kid", "Koshin" }, { "kie", "Kibet" }, { "kif", "Eastern Parbate Kham" }, { "kig", "Kimaama" }, { "kih", "Kilmeri" }, { "kii", "Kitsai" }, { "kij", "Kilivila" }, { "kik", "Kikuyu" }, { "kil", "Kariya" }, { "kim", "Karagas" }, { "kin", "Kinyarwanda" }, { "kio", "Kiowa" }, { "kip", "Sheshi Kham" }, { "kiq", "Kosadle" }, { "kir", "Kirghiz" }, { "kis", "Kis" }, { "kit", "Agob" }, { "kiu", "Kirmanjki (individual language)" }, { "kiv", "Kimbu" }, { "kiw", "Northeast Kiwai" }, { "kix", "Khiamniungan Naga" }, { "kiy", "Kirikiri" }, { "kiz", "Kisi" }, { "kja", "Mlap" }, { "kjb", "Q'anjob'al" }, { "kjc", "Coastal Konjo" }, { "kjd", "Southern Kiwai" }, { "kje", "Kisar" }, { "kjf", "Khalaj" }, { "kjg", "Khmu" }, { "kjh", "Khakas" }, { "kji", "Zabana" }, { "kjj", "Khinalugh" }, { "kjk", "Highland Konjo" }, { "kjl", "Western Parbate Kham" }, { "kjm", "Kháng" }, { "kjn", "Kunjen" }, { "kjo", "Harijan Kinnauri" }, { "kjp", "Pwo Eastern Karen" }, { "kjq", "Western Keres" }, { "kjr", "Kurudu" }, { "kjs", "East Kewa" }, { "kjt", "Phrae Pwo Karen" }, { "kju", "Kashaya" }, { "kjx", "Ramopa" }, { "kjy", "Erave" }, { "kjz", "Bumthangkha" }, { "kka", "Kakanda" }, { "kkb", "Kwerisa" }, { "kkc", "Odoodee" }, { "kkd", "Kinuku" }, { "kke", "Kakabe" }, { "kkf", "Kalaktang Monpa" }, { "kkg", "Mabaka Valley Kalinga" }, { "kkh", "Khün" }, { "kki", "Kagulu" }, { "kkj", "Kako" }, { "kkk", "Kokota" }, { "kkl", "Kosarek Yale" }, { "kkm", "Kiong" }, { "kkn", "Kon Keu" }, { "kko", "Karko" }, { "kkp", "Gugubera" }, { "kkq", "Kaiku" }, { "kkr", "Kir-Balar" }, { "kks", "Giiwo" }, { "kkt", "Koi" }, { "kku", "Tumi" }, { "kkv", "Kangean" }, { "kkw", "Teke-Kukuya" }, { "kkx", "Kohin" }, { "kky", "Guguyimidjir" }, { "kkz", "Kaska" }, { "kla", "Klamath-Modoc" }, { "klb", "Kiliwa" }, { "klc", "Kolbila" }, { "kld", "Gamilaraay" }, { "kle", "Kulung (Nepal)" }, { "klf", "Kendeje" }, { "klg", "Tagakaulo" }, { "klh", "Weliki" }, { "kli", "Kalumpang" }, { "klj", "Turkic Khalaj" }, { "klk", "Kono (Nigeria)" }, { "kll", "Kagan Kalagan" }, { "klm", "Migum" }, { "kln", "Kalenjin" }, { "klo", "Kapya" }, { "klp", "Kamasa" }, { "klq", "Rumu" }, { "klr", "Khaling" }, { "kls", "Kalasha" }, { "klt", "Nukna" }, { "klu", "Klao" }, { "klv", "Maskelynes" }, { "klw", "Lindu" }, { "klx", "Koluwawa" }, { "kly", "Kalao" }, { "klz", "Kabola" }, { "kma", "Konni" }, { "kmb", "Kimbundu" }, { "kmc", "Southern Dong" }, { "kmd", "Majukayang Kalinga" }, { "kme", "Bakole" }, { "kmf", "Kare (Papua New Guinea)" }, { "kmg", "Kâte" }, { "kmh", "Kalam" }, { "kmi", "Kami (Nigeria)" }, { "kmj", "Kumarbhag Paharia" }, { "kmk", "Limos Kalinga" }, { "kml", "Tanudan Kalinga" }, { "kmm", "Kom (India)" }, { "kmn", "Awtuw" }, { "kmo", "Kwoma" }, { "kmp", "Gimme" }, { "kmq", "Kwama" }, { "kmr", "Northern Kurdish" }, { "kms", "Kamasau" }, { "kmt", "Kemtuik" }, { "kmu", "Kanite" }, { "kmv", "Karipúna Creole French" }, { "kmw", "Komo (Democratic Republic of Congo)" }, { "kmx", "Waboda" }, { "kmy", "Koma" }, { "kmz", "Khorasani Turkish" }, { "kna", "Dera (Nigeria)" }, { "knb", "Lubuagan Kalinga" }, { "knc", "Central Kanuri" }, { "knd", "Konda" }, { "kne", "Kankanaey" }, { "knf", "Mankanya" }, { "kng", "Koongo" }, { "kni", "Kanufi" }, { "knj", "Western Kanjobal" }, { "knk", "Kuranko" }, { "knl", "Keninjal" }, { "knm", "Kanamarí" }, { "knn", "Konkani (individual language)" }, { "kno", "Kono (Sierra Leone)" }, { "knp", "Kwanja" }, { "knq", "Kintaq" }, { "knr", "Kaningra" }, { "kns", "Kensiu" }, { "knt", "Panoan Katukína" }, { "knu", "Kono (Guinea)" }, { "knv", "Tabo" }, { "knw", "Kung-Ekoka" }, { "knx", "Kendayan" }, { "kny", "Kanyok" }, { "knz", "Kalamsé" }, { "koa", "Konomala" }, { "koc", "Kpati" }, { "kod", "Kodi" }, { "koe", "Kacipo-Balesi" }, { "kof", "Kubi" }, { "kog", "Cogui" }, { "koh", "Koyo" }, { "koi", "Komi-Permyak" }, { "koj", "Sara Dunjo" }, { "kok", "Konkani (macrolanguage)" }, { "kol", "Kol (Papua New Guinea)" }, { "kom", "Komi" }, { "kon", "Kongo" }, { "koo", "Konzo" }, { "kop", "Waube" }, { "koq", "Kota (Gabon)" }, { "kor", "Korean" }, { "kos", "Kosraean" }, { "kot", "Lagwan" }, { "kou", "Koke" }, { "kov", "Kudu-Camo" }, { "kow", "Kugama" }, { "kox", "Coxima" }, { "koy", "Koyukon" }, { "koz", "Korak" }, { "kpa", "Kutto" }, { "kpb", "Mullu Kurumba" }, { "kpc", "Curripaco" }, { "kpd", "Koba" }, { "kpe", "Kpelle" }, { "kpf", "Komba" }, { "kpg", "Kapingamarangi" }, { "kph", "Kplang" }, { "kpi", "Kofei" }, { "kpj", "Karajá" }, { "kpk", "Kpan" }, { "kpl", "Kpala" }, { "kpm", "Koho" }, { "kpn", "Kepkiriwát" }, { "kpo", "Ikposo" }, { "kpq", "Korupun-Sela" }, { "kpr", "Korafe-Yegha" }, { "kps", "Tehit" }, { "kpt", "Karata" }, { "kpu", "Kafoa" }, { "kpv", "Komi-Zyrian" }, { "kpw", "Kobon" }, { "kpx", "Mountain Koiali" }, { "kpy", "Koryak" }, { "kpz", "Kupsabiny" }, { "kqa", "Mum" }, { "kqb", "Kovai" }, { "kqc", "Doromu-Koki" }, { "kqd", "Koy Sanjaq Surat" }, { "kqe", "Kalagan" }, { "kqf", "Kakabai" }, { "kqg", "Khe" }, { "kqh", "Kisankasa" }, { "kqi", "Koitabu" }, { "kqj", "Koromira" }, { "kqk", "Kotafon Gbe" }, { "kql", "Kyenele" }, { "kqm", "Khisa" }, { "kqn", "Kaonde" }, { "kqo", "Eastern Krahn" }, { "kqp", "Kimré" }, { "kqq", "Krenak" }, { "kqr", "Kimaragang" }, { "kqs", "Northern Kissi" }, { "kqt", "Klias River Kadazan" }, { "kqu", "Seroa" }, { "kqv", "Okolod" }, { "kqw", "Kandas" }, { "kqx", "Mser" }, { "kqy", "Koorete" }, { "kqz", "Korana" }, { "kra", "Kumhali" }, { "krb", "Karkin" }, { "krc", "Karachay-Balkar" }, { "krd", "Kairui-Midiki" }, { "kre", "Panará" }, { "krf", "Koro (Vanuatu)" }, { "krh", "Kurama" }, { "kri", "Krio" }, { "krj", "Kinaray-A" }, { "krk", "Kerek" }, { "krl", "Karelian" }, { "krm", "Krim" }, { "krn", "Sapo" }, { "krp", "Korop" }, { "krr", "Kru'ng 2" }, { "krs", "Gbaya (Sudan)" }, { "krt", "Tumari Kanuri" }, { "kru", "Kurukh" }, { "krv", "Kavet" }, { "krw", "Western Krahn" }, { "krx", "Karon" }, { "kry", "Kryts" }, { "krz", "Sota Kanum" }, { "ksa", "Shuwa-Zamani" }, { "ksb", "Shambala" }, { "ksc", "Southern Kalinga" }, { "ksd", "Kuanua" }, { "kse", "Kuni" }, { "ksf", "Bafia" }, { "ksg", "Kusaghe" }, { "ksh", "Kölsch" }, { "ksi", "Krisa" }, { "ksj", "Uare" }, { "ksk", "Kansa" }, { "ksl", "Kumalu" }, { "ksm", "Kumba" }, { "ksn", "Kasiguranin" }, { "kso", "Kofa" }, { "ksp", "Kaba" }, { "ksq", "Kwaami" }, { "ksr", "Borong" }, { "kss", "Southern Kisi" }, { "kst", "Winyé" }, { "ksu", "Khamyang" }, { "ksv", "Kusu" }, { "ksw", "S'gaw Karen" }, { "ksx", "Kedang" }, { "ksy", "Kharia Thar" }, { "ksz", "Kodaku" }, { "kta", "Katua" }, { "ktb", "Kambaata" }, { "ktc", "Kholok" }, { "ktd", "Kokata" }, { "kte", "Nubri" }, { "ktf", "Kwami" }, { "ktg", "Kalkutung" }, { "kth", "Karanga" }, { "kti", "North Muyu" }, { "ktj", "Plapo Krumen" }, { "ktk", "Kaniet" }, { "ktl", "Koroshi" }, { "ktm", "Kurti" }, { "ktn", "Karitiâna" }, { "kto", "Kuot" }, { "ktp", "Kaduo" }, { "ktq", "Katabaga" }, { "ktr", "Kota Marudu Tinagas" }, { "kts", "South Muyu" }, { "ktt", "Ketum" }, { "ktu", "Kituba (Democratic Republic of Congo)" }, { "ktv", "Eastern Katu" }, { "ktw", "Kato" }, { "ktx", "Kaxararí" }, { "kty", "Kango (Bas-Uélé District)" }, { "ktz", "Ju'hoan" }, { "kua", "Kuanyama" }, { "kub", "Kutep" }, { "kuc", "Kwinsu" }, { "kud", "'Auhelawa" }, { "kue", "Kuman" }, { "kuf", "Western Katu" }, { "kug", "Kupa" }, { "kuh", "Kushi" }, { "kui", "Kuikúro-Kalapálo" }, { "kuj", "Kuria" }, { "kuk", "Kepo'" }, { "kul", "Kulere" }, { "kum", "Kumyk" }, { "kun", "Kunama" }, { "kuo", "Kumukio" }, { "kup", "Kunimaipa" }, { "kuq", "Karipuna" }, { "kur", "Kurdish" }, { "kus", "Kusaal" }, { "kut", "Kutenai" }, { "kuu", "Upper Kuskokwim" }, { "kuv", "Kur" }, { "kuw", "Kpagua" }, { "kux", "Kukatja" }, { "kuy", "Kuuku-Ya'u" }, { "kuz", "Kunza" }, { "kva", "Bagvalal" }, { "kvb", "Kubu" }, { "kvc", "Kove" }, { "kvd", "Kui (Indonesia)" }, { "kve", "Kalabakan" }, { "kvf", "Kabalai" }, { "kvg", "Kuni-Boazi" }, { "kvh", "Komodo" }, { "kvi", "Kwang" }, { "kvj", "Psikye" }, { "kvk", "Korean Sign Language" }, { "kvl", "Kayaw" }, { "kvm", "Kendem" }, { "kvn", "Border Kuna" }, { "kvo", "Dobel" }, { "kvp", "Kompane" }, { "kvq", "Geba Karen" }, { "kvr", "Kerinci" }, { "kvs", "Kunggara" }, { "kvt", "Lahta Karen" }, { "kvu", "Yinbaw Karen" }, { "kvv", "Kola" }, { "kvw", "Wersing" }, { "kvx", "Parkari Koli" }, { "kvy", "Yintale Karen" }, { "kvz", "Tsakwambo" }, { "kwa", "Dâw" }, { "kwb", "Kwa" }, { "kwc", "Likwala" }, { "kwd", "Kwaio" }, { "kwe", "Kwerba" }, { "kwf", "Kwara'ae" }, { "kwg", "Sara Kaba Deme" }, { "kwh", "Kowiai" }, { "kwi", "Awa-Cuaiquer" }, { "kwj", "Kwanga" }, { "kwk", "Kwakiutl" }, { "kwl", "Kofyar" }, { "kwm", "Kwambi" }, { "kwn", "Kwangali" }, { "kwo", "Kwomtari" }, { "kwp", "Kodia" }, { "kwq", "Kwak" }, { "kwr", "Kwer" }, { "kws", "Kwese" }, { "kwt", "Kwesten" }, { "kwu", "Kwakum" }, { "kwv", "Sara Kaba Náà" }, { "kww", "Kwinti" }, { "kwx", "Khirwar" }, { "kwy", "San Salvador Kongo" }, { "kwz", "Kwadi" }, { "kxa", "Kairiru" }, { "kxb", "Krobu" }, { "kxc", "Konso" }, { "kxd", "Brunei" }, { "kxe", "Kakihum" }, { "kxf", "Manumanaw Karen" }, { "kxh", "Karo (Ethiopia)" }, { "kxi", "Keningau Murut" }, { "kxj", "Kulfa" }, { "kxk", "Zayein Karen" }, { "kxl", "Nepali Kurux" }, { "kxm", "Northern Khmer" }, { "kxn", "Kanowit-Tanjong Melanau" }, { "kxo", "Kanoé" }, { "kxp", "Wadiyara Koli" }, { "kxq", "Smärky Kanum" }, { "kxr", "Koro (Papua New Guinea)" }, { "kxs", "Kangjia" }, { "kxt", "Koiwat" }, { "kxu", "Kui (India)" }, { "kxv", "Kuvi" }, { "kxw", "Konai" }, { "kxx", "Likuba" }, { "kxy", "Kayong" }, { "kxz", "Kerewo" }, { "kya", "Kwaya" }, { "kyb", "Butbut Kalinga" }, { "kyc", "Kyaka" }, { "kyd", "Karey" }, { "kye", "Krache" }, { "kyf", "Kouya" }, { "kyg", "Keyagana" }, { "kyh", "Karok" }, { "kyi", "Kiput" }, { "kyj", "Karao" }, { "kyk", "Kamayo" }, { "kyl", "Kalapuya" }, { "kym", "Kpatili" }, { "kyn", "Northern Binukidnon" }, { "kyo", "Kelon" }, { "kyp", "Kang" }, { "kyq", "Kenga" }, { "kyr", "Kuruáya" }, { "kys", "Baram Kayan" }, { "kyt", "Kayagar" }, { "kyu", "Western Kayah" }, { "kyv", "Kayort" }, { "kyw", "Kudmali" }, { "kyx", "Rapoisi" }, { "kyy", "Kambaira" }, { "kyz", "Kayabí" }, { "kza", "Western Karaboro" }, { "kzb", "Kaibobo" }, { "kzc", "Bondoukou Kulango" }, { "kzd", "Kadai" }, { "kze", "Kosena" }, { "kzf", "Da'a Kaili" }, { "kzg", "Kikai" }, { "kzi", "Kelabit" }, { "kzj", "Coastal Kadazan" }, { "kzk", "Kazukuru" }, { "kzl", "Kayeli" }, { "kzm", "Kais" }, { "kzn", "Kokola" }, { "kzo", "Kaningi" }, { "kzp", "Kaidipang" }, { "kzq", "Kaike" }, { "kzr", "Karang" }, { "kzs", "Sugut Dusun" }, { "kzt", "Tambunan Dusun" }, { "kzu", "Kayupulau" }, { "kzv", "Komyandaret" }, { "kzw", "Karirí-Xocó" }, { "kzx", "Kamarian" }, { "kzy", "Kango (Tshopo District)" }, { "kzz", "Kalabra" }, { "laa", "Southern Subanen" }, { "lab", "Linear A" }, { "lac", "Lacandon" }, { "lad", "Ladino" }, { "lae", "Pattani" }, { "laf", "Lafofa" }, { "lag", "Langi" }, { "lah", "Lahnda" }, { "lai", "Lambya" }, { "laj", "Lango (Uganda)" }, { "lak", "Laka (Nigeria)" }, { "lal", "Lalia" }, { "lam", "Lamba" }, { "lan", "Laru" }, { "lao", "Lao" }, { "lap", "Laka (Chad)" }, { "laq", "Qabiao" }, { "lar", "Larteh" }, { "las", "Lama (Togo)" }, { "lat", "Latin" }, { "lau", "Laba" }, { "lav", "Latvian" }, { "law", "Lauje" }, { "lax", "Tiwa" }, { "lay", "Lama (Myanmar)" }, { "laz", "Aribwatsa" }, { "lba", "Lui" }, { "lbb", "Label" }, { "lbc", "Lakkia" }, { "lbe", "Lak" }, { "lbf", "Tinani" }, { "lbg", "Laopang" }, { "lbi", "La'bi" }, { "lbj", "Ladakhi" }, { "lbk", "Central Bontok" }, { "lbl", "Libon Bikol" }, { "lbm", "Lodhi" }, { "lbn", "Lamet" }, { "lbo", "Laven" }, { "lbq", "Wampar" }, { "lbr", "Lohorung" }, { "lbs", "Libyan Sign Language" }, { "lbt", "Lachi" }, { "lbu", "Labu" }, { "lbv", "Lavatbura-Lamusong" }, { "lbw", "Tolaki" }, { "lbx", "Lawangan" }, { "lby", "Lamu-Lamu" }, { "lbz", "Lardil" }, { "lcc", "Legenyem" }, { "lcd", "Lola" }, { "lce", "Loncong" }, { "lcf", "Lubu" }, { "lch", "Luchazi" }, { "lcl", "Lisela" }, { "lcm", "Tungag" }, { "lcp", "Western Lawa" }, { "lcq", "Luhu" }, { "lcs", "Lisabata-Nuniali" }, { "lda", "Kla-Dan" }, { "ldb", "Dũya" }, { "ldd", "Luri" }, { "ldg", "Lenyima" }, { "ldh", "Lamja-Dengsa-Tola" }, { "ldi", "Laari" }, { "ldj", "Lemoro" }, { "ldk", "Leelau" }, { "ldl", "Kaan" }, { "ldm", "Landoma" }, { "ldn", "Láadan" }, { "ldo", "Loo" }, { "ldp", "Tso" }, { "ldq", "Lufu" }, { "lea", "Lega-Shabunda" }, { "leb", "Lala-Bisa" }, { "lec", "Leco" }, { "led", "Lendu" }, { "lee", "Lyélé" }, { "lef", "Lelemi" }, { "leg", "Lengua" }, { "leh", "Lenje" }, { "lei", "Lemio" }, { "lej", "Lengola" }, { "lek", "Leipon" }, { "lel", "Lele (Democratic Republic of Congo)" }, { "lem", "Nomaande" }, { "len", "Lenca" }, { "leo", "Leti (Cameroon)" }, { "lep", "Lepcha" }, { "leq", "Lembena" }, { "ler", "Lenkau" }, { "les", "Lese" }, { "let", "Lesing-Gelimi" }, { "leu", "Kara (Papua New Guinea)" }, { "lev", "Lamma" }, { "lew", "Ledo Kaili" }, { "lex", "Luang" }, { "ley", "Lemolang" }, { "lez", "Lezghian" }, { "lfa", "Lefa" }, { "lfn", "Lingua Franca Nova" }, { "lga", "Lungga" }, { "lgb", "Laghu" }, { "lgg", "Lugbara" }, { "lgh", "Laghuu" }, { "lgi", "Lengilu" }, { "lgk", "Lingarak" }, { "lgl", "Wala" }, { "lgm", "Lega-Mwenga" }, { "lgn", "Opuuo" }, { "lgq", "Logba" }, { "lgr", "Lengo" }, { "lgt", "Pahi" }, { "lgu", "Longgu" }, { "lgz", "Ligenza" }, { "lha", "Laha (Viet Nam)" }, { "lhh", "Laha (Indonesia)" }, { "lhi", "Lahu Shi" }, { "lhl", "Lahul Lohar" }, { "lhm", "Lhomi" }, { "lhn", "Lahanan" }, { "lhp", "Lhokpu" }, { "lhs", "Mlahsö" }, { "lht", "Lo-Toga" }, { "lhu", "Lahu" }, { "lia", "West-Central Limba" }, { "lib", "Likum" }, { "lic", "Hlai" }, { "lid", "Nyindrou" }, { "lie", "Likila" }, { "lif", "Limbu" }, { "lig", "Ligbi" }, { "lih", "Lihir" }, { "lii", "Lingkhim" }, { "lij", "Ligurian" }, { "lik", "Lika" }, { "lil", "Lillooet" }, { "lim", "Limburgan" }, { "lin", "Lingala" }, { "lio", "Liki" }, { "lip", "Sekpele" }, { "liq", "Libido" }, { "lir", "Liberian English" }, { "lis", "Lisu" }, { "lit", "Lithuanian" }, { "liu", "Logorik" }, { "liv", "Liv" }, { "liw", "Col" }, { "lix", "Liabuku" }, { "liy", "Banda-Bambari" }, { "liz", "Libinza" }, { "lja", "Golpa" }, { "lje", "Rampi" }, { "lji", "Laiyolo" }, { "ljl", "Li'o" }, { "ljp", "Lampung Api" }, { "ljw", "Yirandali" }, { "ljx", "Yuru" }, { "lka", "Lakalei" }, { "lkb", "Kabras" }, { "lkc", "Kucong" }, { "lkd", "Lakondê" }, { "lke", "Kenyi" }, { "lkh", "Lakha" }, { "lki", "Laki" }, { "lkj", "Remun" }, { "lkl", "Laeko-Libuat" }, { "lkm", "Kalaamaya" }, { "lkn", "Lakon" }, { "lko", "Khayo" }, { "lkr", "Päri" }, { "lks", "Kisa" }, { "lkt", "Lakota" }, { "lku", "Kungkari" }, { "lky", "Lokoya" }, { "lla", "Lala-Roba" }, { "llb", "Lolo" }, { "llc", "Lele (Guinea)" }, { "lld", "Ladin" }, { "lle", "Lele (Papua New Guinea)" }, { "llf", "Hermit" }, { "llg", "Lole" }, { "llh", "Lamu" }, { "lli", "Teke-Laali" }, { "llj", "Ladji Ladji" }, { "llk", "Lelak" }, { "lll", "Lilau" }, { "llm", "Lasalimu" }, { "lln", "Lele (Chad)" }, { "llo", "Khlor" }, { "llp", "North Efate" }, { "llq", "Lolak" }, { "lls", "Lithuanian Sign Language" }, { "llu", "Lau" }, { "llx", "Lauan" }, { "lma", "East Limba" }, { "lmb", "Merei" }, { "lmc", "Limilngan" }, { "lmd", "Lumun" }, { "lme", "Pévé" }, { "lmf", "South Lembata" }, { "lmg", "Lamogai" }, { "lmh", "Lambichhong" }, { "lmi", "Lombi" }, { "lmj", "West Lembata" }, { "lmk", "Lamkang" }, { "lml", "Hano" }, { "lmm", "Lamam" }, { "lmn", "Lambadi" }, { "lmo", "Lombard" }, { "lmp", "Limbum" }, { "lmq", "Lamatuka" }, { "lmr", "Lamalera" }, { "lmu", "Lamenu" }, { "lmv", "Lomaiviti" }, { "lmw", "Lake Miwok" }, { "lmx", "Laimbue" }, { "lmy", "Lamboya" }, { "lmz", "Lumbee" }, { "lna", "Langbashe" }, { "lnb", "Mbalanhu" }, { "lnd", "Lundayeh" }, { "lng", "Langobardic" }, { "lnh", "Lanoh" }, { "lni", "Daantanai'" }, { "lnj", "Leningitij" }, { "lnl", "South Central Banda" }, { "lnm", "Langam" }, { "lnn", "Lorediakarkar" }, { "lno", "Lango (Sudan)" }, { "lns", "Lamnso'" }, { "lnu", "Longuda" }, { "lnw", "Lanima" }, { "lnz", "Lonzo" }, { "loa", "Loloda" }, { "lob", "Lobi" }, { "loc", "Inonhan" }, { "loe", "Saluan" }, { "lof", "Logol" }, { "log", "Logo" }, { "loh", "Narim" }, { "loi", "Loma (Côte d'Ivoire)" }, { "loj", "Lou" }, { "lok", "Loko" }, { "lol", "Mongo" }, { "lom", "Loma (Liberia)" }, { "lon", "Malawi Lomwe" }, { "loo", "Lombo" }, { "lop", "Lopa" }, { "loq", "Lobala" }, { "lor", "Téén" }, { "los", "Loniu" }, { "lot", "Otuho" }, { "lou", "Louisiana Creole French" }, { "lov", "Lopi" }, { "low", "Tampias Lobu" }, { "lox", "Loun" }, { "loy", "Loke" }, { "loz", "Lozi" }, { "lpa", "Lelepa" }, { "lpe", "Lepki" }, { "lpn", "Long Phuri Naga" }, { "lpo", "Lipo" }, { "lpx", "Lopit" }, { "lra", "Rara Bakati'" }, { "lrc", "Northern Luri" }, { "lre", "Laurentian" }, { "lrg", "Laragia" }, { "lri", "Marachi" }, { "lrk", "Loarki" }, { "lrl", "Lari" }, { "lrm", "Marama" }, { "lrn", "Lorang" }, { "lro", "Laro" }, { "lrr", "Southern Yamphu" }, { "lrt", "Larantuka Malay" }, { "lrv", "Larevat" }, { "lrz", "Lemerig" }, { "lsa", "Lasgerdi" }, { "lsd", "Lishana Deni" }, { "lse", "Lusengo" }, { "lsg", "Lyons Sign Language" }, { "lsh", "Lish" }, { "lsi", "Lashi" }, { "lsl", "Latvian Sign Language" }, { "lsm", "Saamia" }, { "lso", "Laos Sign Language" }, { "lsp", "Panamanian Sign Language" }, { "lsr", "Aruop" }, { "lss", "Lasi" }, { "lst", "Trinidad and Tobago Sign Language" }, { "lsy", "Mauritian Sign Language" }, { "ltc", "Late Middle Chinese" }, { "ltg", "Latgalian" }, { "lti", "Leti (Indonesia)" }, { "ltn", "Latundê" }, { "lto", "Tsotso" }, { "lts", "Tachoni" }, { "ltu", "Latu" }, { "ltz", "Luxembourgish" }, { "lua", "Luba-Lulua" }, { "lub", "Luba-Katanga" }, { "luc", "Aringa" }, { "lud", "Ludian" }, { "lue", "Luvale" }, { "luf", "Laua" }, { "lug", "Ganda" }, { "lui", "Luiseno" }, { "luj", "Luna" }, { "luk", "Lunanakha" }, { "lul", "Olu'bo" }, { "lum", "Luimbi" }, { "lun", "Lunda" }, { "luo", "Luo (Kenya and Tanzania)" }, { "lup", "Lumbu" }, { "luq", "Lucumi" }, { "lur", "Laura" }, { "lus", "Lushai" }, { "lut", "Lushootseed" }, { "luu", "Lumba-Yakkha" }, { "luv", "Luwati" }, { "luw", "Luo (Cameroon)" }, { "luy", "Luyia" }, { "luz", "Southern Luri" }, { "lva", "Maku'a" }, { "lvk", "Lavukaleve" }, { "lvs", "Standard Latvian" }, { "lvu", "Levuka" }, { "lwa", "Lwalu" }, { "lwe", "Lewo Eleng" }, { "lwg", "Wanga" }, { "lwh", "White Lachi" }, { "lwl", "Eastern Lawa" }, { "lwm", "Laomian" }, { "lwo", "Luwo" }, { "lwt", "Lewotobi" }, { "lwu", "Lawu" }, { "lww", "Lewo" }, { "lya", "Layakha" }, { "lyg", "Lyngngam" }, { "lyn", "Luyana" }, { "lzh", "Literary Chinese" }, { "lzl", "Litzlitz" }, { "lzn", "Leinong Naga" }, { "lzz", "Laz" }, { "maa", "San Jerónimo Tecóatl Mazatec" }, { "mab", "Yutanduchi Mixtec" }, { "mad", "Madurese" }, { "mae", "Bo-Rukul" }, { "maf", "Mafa" }, { "mag", "Magahi" }, { "mah", "Marshallese" }, { "mai", "Maithili" }, { "maj", "Jalapa De Díaz Mazatec" }, { "mak", "Makasar" }, { "mal", "Malayalam" }, { "mam", "Mam" }, { "man", "Mandingo" }, { "maq", "Chiquihuitlán Mazatec" }, { "mar", "Marathi" }, { "mas", "Masai" }, { "mat", "San Francisco Matlatzinca" }, { "mau", "Huautla Mazatec" }, { "mav", "Sateré-Mawé" }, { "maw", "Mampruli" }, { "max", "North Moluccan Malay" }, { "maz", "Central Mazahua" }, { "mba", "Higaonon" }, { "mbb", "Western Bukidnon Manobo" }, { "mbc", "Macushi" }, { "mbd", "Dibabawon Manobo" }, { "mbe", "Molale" }, { "mbf", "Baba Malay" }, { "mbh", "Mangseng" }, { "mbi", "Ilianen Manobo" }, { "mbj", "Nadëb" }, { "mbk", "Malol" }, { "mbl", "Maxakalí" }, { "mbm", "Ombamba" }, { "mbn", "Macaguán" }, { "mbo", "Mbo (Cameroon)" }, { "mbp", "Malayo" }, { "mbq", "Maisin" }, { "mbr", "Nukak Makú" }, { "mbs", "Sarangani Manobo" }, { "mbt", "Matigsalug Manobo" }, { "mbu", "Mbula-Bwazza" }, { "mbv", "Mbulungish" }, { "mbw", "Maring" }, { "mbx", "Mari (East Sepik Province)" }, { "mby", "Memoni" }, { "mbz", "Amoltepec Mixtec" }, { "mca", "Maca" }, { "mcb", "Machiguenga" }, { "mcc", "Bitur" }, { "mcd", "Sharanahua" }, { "mce", "Itundujia Mixtec" }, { "mcf", "Matsés" }, { "mcg", "Mapoyo" }, { "mch", "Maquiritari" }, { "mci", "Mese" }, { "mcj", "Mvanip" }, { "mck", "Mbunda" }, { "mcl", "Macaguaje" }, { "mcm", "Malaccan Creole Portuguese" }, { "mcn", "Masana" }, { "mco", "Coatlán Mixe" }, { "mcp", "Makaa" }, { "mcq", "Ese" }, { "mcr", "Menya" }, { "mcs", "Mambai" }, { "mct", "Mengisa" }, { "mcu", "Cameroon Mambila" }, { "mcv", "Minanibai" }, { "mcw", "Mawa (Chad)" }, { "mcx", "Mpiemo" }, { "mcy", "South Watut" }, { "mcz", "Mawan" }, { "mda", "Mada (Nigeria)" }, { "mdb", "Morigi" }, { "mdc", "Male (Papua New Guinea)" }, { "mdd", "Mbum" }, { "mde", "Maba (Chad)" }, { "mdf", "Moksha" }, { "mdg", "Massalat" }, { "mdh", "Maguindanaon" }, { "mdi", "Mamvu" }, { "mdj", "Mangbetu" }, { "mdk", "Mangbutu" }, { "mdl", "Maltese Sign Language" }, { "mdm", "Mayogo" }, { "mdn", "Mbati" }, { "mdp", "Mbala" }, { "mdq", "Mbole" }, { "mdr", "Mandar" }, { "mds", "Maria (Papua New Guinea)" }, { "mdt", "Mbere" }, { "mdu", "Mboko" }, { "mdv", "Santa Lucía Monteverde Mixtec" }, { "mdw", "Mbosi" }, { "mdx", "Dizin" }, { "mdy", "Male (Ethiopia)" }, { "mdz", "Suruí Do Pará" }, { "mea", "Menka" }, { "meb", "Ikobi" }, { "mec", "Mara" }, { "med", "Melpa" }, { "mee", "Mengen" }, { "mef", "Megam" }, { "meh", "Southwestern Tlaxiaco Mixtec" }, { "mei", "Midob" }, { "mej", "Meyah" }, { "mek", "Mekeo" }, { "mel", "Central Melanau" }, { "mem", "Mangala" }, { "men", "Mende (Sierra Leone)" }, { "meo", "Kedah Malay" }, { "mep", "Miriwung" }, { "meq", "Merey" }, { "mer", "Meru" }, { "mes", "Masmaje" }, { "met", "Mato" }, { "meu", "Motu" }, { "mev", "Mano" }, { "mew", "Maaka" }, { "mey", "Hassaniyya" }, { "mez", "Menominee" }, { "mfa", "Pattani Malay" }, { "mfb", "Bangka" }, { "mfc", "Mba" }, { "mfd", "Mendankwe-Nkwen" }, { "mfe", "Morisyen" }, { "mff", "Naki" }, { "mfg", "Mogofin" }, { "mfh", "Matal" }, { "mfi", "Wandala" }, { "mfj", "Mefele" }, { "mfk", "North Mofu" }, { "mfl", "Putai" }, { "mfm", "Marghi South" }, { "mfn", "Cross River Mbembe" }, { "mfo", "Mbe" }, { "mfp", "Makassar Malay" }, { "mfq", "Moba" }, { "mfr", "Marithiel" }, { "mfs", "Mexican Sign Language" }, { "mft", "Mokerang" }, { "mfu", "Mbwela" }, { "mfv", "Mandjak" }, { "mfw", "Mulaha" }, { "mfx", "Melo" }, { "mfy", "Mayo" }, { "mfz", "Mabaan" }, { "mga", "Middle Irish (900-1200)" }, { "mgb", "Mararit" }, { "mgc", "Morokodo" }, { "mgd", "Moru" }, { "mge", "Mango" }, { "mgf", "Maklew" }, { "mgg", "Mpumpong" }, { "mgh", "Makhuwa-Meetto" }, { "mgi", "Lijili" }, { "mgj", "Abureni" }, { "mgk", "Mawes" }, { "mgl", "Maleu-Kilenge" }, { "mgm", "Mambae" }, { "mgn", "Mbangi" }, { "mgo", "Meta'" }, { "mgp", "Eastern Magar" }, { "mgq", "Malila" }, { "mgr", "Mambwe-Lungu" }, { "mgs", "Manda (Tanzania)" }, { "mgt", "Mongol" }, { "mgu", "Mailu" }, { "mgv", "Matengo" }, { "mgw", "Matumbi" }, { "mgy", "Mbunga" }, { "mgz", "Mbugwe" }, { "mha", "Manda (India)" }, { "mhb", "Mahongwe" }, { "mhc", "Mocho" }, { "mhd", "Mbugu" }, { "mhe", "Besisi" }, { "mhf", "Mamaa" }, { "mhg", "Margu" }, { "mhh", "Maskoy Pidgin" }, { "mhi", "Ma'di" }, { "mhj", "Mogholi" }, { "mhk", "Mungaka" }, { "mhl", "Mauwake" }, { "mhm", "Makhuwa-Moniga" }, { "mhn", "Mócheno" }, { "mho", "Mashi (Zambia)" }, { "mhp", "Balinese Malay" }, { "mhq", "Mandan" }, { "mhr", "Eastern Mari" }, { "mhs", "Buru (Indonesia)" }, { "mht", "Mandahuaca" }, { "mhu", "Digaro-Mishmi" }, { "mhw", "Mbukushu" }, { "mhx", "Maru" }, { "mhy", "Ma'anyan" }, { "mhz", "Mor (Mor Islands)" }, { "mia", "Miami" }, { "mib", "Atatláhuca Mixtec" }, { "mic", "Mi'kmaq" }, { "mid", "Mandaic" }, { "mie", "Ocotepec Mixtec" }, { "mif", "Mofu-Gudur" }, { "mig", "San Miguel El Grande Mixtec" }, { "mih", "Chayuco Mixtec" }, { "mii", "Chigmecatitlán Mixtec" }, { "mij", "Abar" }, { "mik", "Mikasuki" }, { "mil", "Peñoles Mixtec" }, { "mim", "Alacatlatzala Mixtec" }, { "min", "Minangkabau" }, { "mio", "Pinotepa Nacional Mixtec" }, { "mip", "Apasco-Apoala Mixtec" }, { "miq", "Mískito" }, { "mir", "Isthmus Mixe" }, { "mis", "Uncoded languages" }, { "mit", "Southern Puebla Mixtec" }, { "miu", "Cacaloxtepec Mixtec" }, { "miw", "Akoye" }, { "mix", "Mixtepec Mixtec" }, { "miy", "Ayutla Mixtec" }, { "miz", "Coatzospan Mixtec" }, { "mjc", "San Juan Colorado Mixtec" }, { "mjd", "Northwest Maidu" }, { "mje", "Muskum" }, { "mjg", "Tu" }, { "mjh", "Mwera (Nyasa)" }, { "mji", "Kim Mun" }, { "mjj", "Mawak" }, { "mjk", "Matukar" }, { "mjl", "Mandeali" }, { "mjm", "Medebur" }, { "mjn", "Ma (Papua New Guinea)" }, { "mjo", "Malankuravan" }, { "mjp", "Malapandaram" }, { "mjq", "Malaryan" }, { "mjr", "Malavedan" }, { "mjs", "Miship" }, { "mjt", "Sauria Paharia" }, { "mju", "Manna-Dora" }, { "mjv", "Mannan" }, { "mjw", "Karbi" }, { "mjx", "Mahali" }, { "mjy", "Mahican" }, { "mjz", "Majhi" }, { "mka", "Mbre" }, { "mkb", "Mal Paharia" }, { "mkc", "Siliput" }, { "mkd", "Macedonian" }, { "mke", "Mawchi" }, { "mkf", "Miya" }, { "mkg", "Mak (China)" }, { "mki", "Dhatki" }, { "mkj", "Mokilese" }, { "mkk", "Byep" }, { "mkl", "Mokole" }, { "mkm", "Moklen" }, { "mkn", "Kupang Malay" }, { "mko", "Mingang Doso" }, { "mkp", "Moikodi" }, { "mkq", "Bay Miwok" }, { "mkr", "Malas" }, { "mks", "Silacayoapan Mixtec" }, { "mkt", "Vamale" }, { "mku", "Konyanka Maninka" }, { "mkv", "Mafea" }, { "mkw", "Kituba (Congo)" }, { "mkx", "Kinamiging Manobo" }, { "mky", "East Makian" }, { "mkz", "Makasae" }, { "mla", "Malo" }, { "mlb", "Mbule" }, { "mlc", "Cao Lan" }, { "mle", "Manambu" }, { "mlf", "Mal" }, { "mlg", "Malagasy" }, { "mlh", "Mape" }, { "mli", "Malimpung" }, { "mlj", "Miltu" }, { "mlk", "Ilwana" }, { "mll", "Malua Bay" }, { "mlm", "Mulam" }, { "mln", "Malango" }, { "mlo", "Mlomp" }, { "mlp", "Bargam" }, { "mlq", "Western Maninkakan" }, { "mlr", "Vame" }, { "mls", "Masalit" }, { "mlt", "Maltese" }, { "mlu", "To'abaita" }, { "mlv", "Motlav" }, { "mlw", "Moloko" }, { "mlx", "Malfaxal" }, { "mlz", "Malaynon" }, { "mma", "Mama" }, { "mmb", "Momina" }, { "mmc", "Michoacán Mazahua" }, { "mmd", "Maonan" }, { "mme", "Mae" }, { "mmf", "Mundat" }, { "mmg", "North Ambrym" }, { "mmh", "Mehináku" }, { "mmi", "Musar" }, { "mmj", "Majhwar" }, { "mmk", "Mukha-Dora" }, { "mml", "Man Met" }, { "mmm", "Maii" }, { "mmn", "Mamanwa" }, { "mmo", "Mangga Buang" }, { "mmp", "Siawi" }, { "mmq", "Musak" }, { "mmr", "Western Xiangxi Miao" }, { "mmt", "Malalamai" }, { "mmu", "Mmaala" }, { "mmv", "Miriti" }, { "mmw", "Emae" }, { "mmx", "Madak" }, { "mmy", "Migaama" }, { "mmz", "Mabaale" }, { "mna", "Mbula" }, { "mnb", "Muna" }, { "mnc", "Manchu" }, { "mnd", "Mondé" }, { "mne", "Naba" }, { "mnf", "Mundani" }, { "mng", "Eastern Mnong" }, { "mnh", "Mono (Democratic Republic of Congo)" }, { "mni", "Manipuri" }, { "mnj", "Munji" }, { "mnk", "Mandinka" }, { "mnl", "Tiale" }, { "mnm", "Mapena" }, { "mnn", "Southern Mnong" }, { "mnp", "Min Bei Chinese" }, { "mnq", "Minriq" }, { "mnr", "Mono (USA)" }, { "mns", "Mansi" }, { "mnu", "Mer" }, { "mnv", "Rennell-Bellona" }, { "mnw", "Mon" }, { "mnx", "Manikion" }, { "mny", "Manyawa" }, { "mnz", "Moni" }, { "moa", "Mwan" }, { "moc", "Mocoví" }, { "mod", "Mobilian" }, { "moe", "Montagnais" }, { "mog", "Mongondow" }, { "moh", "Mohawk" }, { "moi", "Mboi" }, { "moj", "Monzombo" }, { "mok", "Morori" }, { "mom", "Mangue" }, { "mon", "Mongolian" }, { "moo", "Monom" }, { "mop", "Mopán Maya" }, { "moq", "Mor (Bomberai Peninsula)" }, { "mor", "Moro" }, { "mos", "Mossi" }, { "mot", "Barí" }, { "mou", "Mogum" }, { "mov", "Mohave" }, { "mow", "Moi (Congo)" }, { "mox", "Molima" }, { "moy", "Shekkacho" }, { "moz", "Mukulu" }, { "mpa", "Mpoto" }, { "mpb", "Mullukmulluk" }, { "mpc", "Mangarayi" }, { "mpd", "Machinere" }, { "mpe", "Majang" }, { "mpg", "Marba" }, { "mph", "Maung" }, { "mpi", "Mpade" }, { "mpj", "Martu Wangka" }, { "mpk", "Mbara (Chad)" }, { "mpl", "Middle Watut" }, { "mpm", "Yosondúa Mixtec" }, { "mpn", "Mindiri" }, { "mpo", "Miu" }, { "mpp", "Migabac" }, { "mpq", "Matís" }, { "mpr", "Vangunu" }, { "mps", "Dadibi" }, { "mpt", "Mian" }, { "mpu", "Makuráp" }, { "mpv", "Mungkip" }, { "mpw", "Mapidian" }, { "mpx", "Misima-Panaeati" }, { "mpy", "Mapia" }, { "mpz", "Mpi" }, { "mqa", "Maba (Indonesia)" }, { "mqb", "Mbuko" }, { "mqc", "Mangole" }, { "mqe", "Matepi" }, { "mqf", "Momuna" }, { "mqg", "Kota Bangun Kutai Malay" }, { "mqh", "Tlazoyaltepec Mixtec" }, { "mqi", "Mariri" }, { "mqj", "Mamasa" }, { "mqk", "Rajah Kabunsuwan Manobo" }, { "mql", "Mbelime" }, { "mqm", "South Marquesan" }, { "mqn", "Moronene" }, { "mqo", "Modole" }, { "mqp", "Manipa" }, { "mqq", "Minokok" }, { "mqr", "Mander" }, { "mqs", "West Makian" }, { "mqt", "Mok" }, { "mqu", "Mandari" }, { "mqv", "Mosimo" }, { "mqw", "Murupi" }, { "mqx", "Mamuju" }, { "mqy", "Manggarai" }, { "mqz", "Pano" }, { "mra", "Mlabri" }, { "mrb", "Marino" }, { "mrc", "Maricopa" }, { "mrd", "Western Magar" }, { "mre", "Martha's Vineyard Sign Language" }, { "mrf", "Elseng" }, { "mrg", "Mising" }, { "mrh", "Mara Chin" }, { "mri", "Maori" }, { "mrj", "Western Mari" }, { "mrk", "Hmwaveke" }, { "mrl", "Mortlockese" }, { "mrm", "Merlav" }, { "mrn", "Cheke Holo" }, { "mro", "Mru" }, { "mrp", "Morouas" }, { "mrq", "North Marquesan" }, { "mrr", "Maria (India)" }, { "mrs", "Maragus" }, { "mrt", "Marghi Central" }, { "mru", "Mono (Cameroon)" }, { "mrv", "Mangareva" }, { "mrw", "Maranao" }, { "mrx", "Maremgi" }, { "mry", "Mandaya" }, { "mrz", "Marind" }, { "msa", "Malay (macrolanguage)" }, { "msb", "Masbatenyo" }, { "msc", "Sankaran Maninka" }, { "msd", "Yucatec Maya Sign Language" }, { "mse", "Musey" }, { "msf", "Mekwei" }, { "msg", "Moraid" }, { "msh", "Masikoro Malagasy" }, { "msi", "Sabah Malay" }, { "msj", "Ma (Democratic Republic of Congo)" }, { "msk", "Mansaka" }, { "msl", "Molof" }, { "msm", "Agusan Manobo" }, { "msn", "Vurës" }, { "mso", "Mombum" }, { "msp", "Maritsauá" }, { "msq", "Caac" }, { "msr", "Mongolian Sign Language" }, { "mss", "West Masela" }, { "msu", "Musom" }, { "msv", "Maslam" }, { "msw", "Mansoanka" }, { "msx", "Moresada" }, { "msy", "Aruamu" }, { "msz", "Momare" }, { "mta", "Cotabato Manobo" }, { "mtb", "Anyin Morofo" }, { "mtc", "Munit" }, { "mtd", "Mualang" }, { "mte", "Mono (Solomon Islands)" }, { "mtf", "Murik (Papua New Guinea)" }, { "mtg", "Una" }, { "mth", "Munggui" }, { "mti", "Maiwa (Papua New Guinea)" }, { "mtj", "Moskona" }, { "mtk", "Mbe'" }, { "mtl", "Montol" }, { "mtm", "Mator" }, { "mtn", "Matagalpa" }, { "mto", "Totontepec Mixe" }, { "mtp", "Wichí Lhamtés Nocten" }, { "mtq", "Muong" }, { "mtr", "Mewari" }, { "mts", "Yora" }, { "mtt", "Mota" }, { "mtu", "Tututepec Mixtec" }, { "mtv", "Asaro'o" }, { "mtw", "Southern Binukidnon" }, { "mtx", "Tidaá Mixtec" }, { "mty", "Nabi" }, { "mua", "Mundang" }, { "mub", "Mubi" }, { "muc", "Ajumbu" }, { "mud", "Mednyj Aleut" }, { "mue", "Media Lengua" }, { "mug", "Musgu" }, { "muh", "Mündü" }, { "mui", "Musi" }, { "muj", "Mabire" }, { "muk", "Mugom" }, { "mul", "Multiple languages" }, { "mum", "Maiwala" }, { "muo", "Nyong" }, { "mup", "Malvi" }, { "muq", "Eastern Xiangxi Miao" }, { "mur", "Murle" }, { "mus", "Creek" }, { "mut", "Western Muria" }, { "muu", "Yaaku" }, { "muv", "Muthuvan" }, { "mux", "Bo-Ung" }, { "muy", "Muyang" }, { "muz", "Mursi" }, { "mva", "Manam" }, { "mvb", "Mattole" }, { "mvd", "Mamboru" }, { "mve", "Marwari (Pakistan)" }, { "mvf", "Peripheral Mongolian" }, { "mvg", "Yucuañe Mixtec" }, { "mvh", "Mulgi" }, { "mvi", "Miyako" }, { "mvk", "Mekmek" }, { "mvl", "Mbara (Australia)" }, { "mvm", "Muya" }, { "mvn", "Minaveha" }, { "mvo", "Marovo" }, { "mvp", "Duri" }, { "mvq", "Moere" }, { "mvr", "Marau" }, { "mvs", "Massep" }, { "mvt", "Mpotovoro" }, { "mvu", "Marfa" }, { "mvv", "Tagal Murut" }, { "mvw", "Machinga" }, { "mvx", "Meoswar" }, { "mvy", "Indus Kohistani" }, { "mvz", "Mesqan" }, { "mwa", "Mwatebu" }, { "mwb", "Juwal" }, { "mwc", "Are" }, { "mwe", "Mwera (Chimwera)" }, { "mwf", "Murrinh-Patha" }, { "mwg", "Aiklep" }, { "mwh", "Mouk-Aria" }, { "mwi", "Labo" }, { "mwj", "Maligo" }, { "mwk", "Kita Maninkakan" }, { "mwl", "Mirandese" }, { "mwm", "Sar" }, { "mwn", "Nyamwanga" }, { "mwo", "Central Maewo" }, { "mwp", "Kala Lagaw Ya" }, { "mwq", "Mün Chin" }, { "mwr", "Marwari" }, { "mws", "Mwimbi-Muthambi" }, { "mwt", "Moken" }, { "mwu", "Mittu" }, { "mwv", "Mentawai" }, { "mww", "Hmong Daw" }, { "mwx", "Mediak" }, { "mwy", "Mosiro" }, { "mwz", "Moingi" }, { "mxa", "Northwest Oaxaca Mixtec" }, { "mxb", "Tezoatlán Mixtec" }, { "mxc", "Manyika" }, { "mxd", "Modang" }, { "mxe", "Mele-Fila" }, { "mxf", "Malgbe" }, { "mxg", "Mbangala" }, { "mxh", "Mvuba" }, { "mxi", "Mozarabic" }, { "mxj", "Miju-Mishmi" }, { "mxk", "Monumbo" }, { "mxl", "Maxi Gbe" }, { "mxm", "Meramera" }, { "mxn", "Moi (Indonesia)" }, { "mxo", "Mbowe" }, { "mxp", "Tlahuitoltepec Mixe" }, { "mxq", "Juquila Mixe" }, { "mxr", "Murik (Malaysia)" }, { "mxs", "Huitepec Mixtec" }, { "mxt", "Jamiltepec Mixtec" }, { "mxu", "Mada (Cameroon)" }, { "mxv", "Metlatónoc Mixtec" }, { "mxw", "Namo" }, { "mxx", "Mahou" }, { "mxy", "Southeastern Nochixtlán Mixtec" }, { "mxz", "Central Masela" }, { "mya", "Burmese" }, { "myb", "Mbay" }, { "myc", "Mayeka" }, { "myd", "Maramba" }, { "mye", "Myene" }, { "myf", "Bambassi" }, { "myg", "Manta" }, { "myh", "Makah" }, { "myi", "Mina (India)" }, { "myj", "Mangayat" }, { "myk", "Mamara Senoufo" }, { "myl", "Moma" }, { "mym", "Me'en" }, { "myo", "Anfillo" }, { "myp", "Pirahã" }, { "myr", "Muniche" }, { "mys", "Mesmes" }, { "myu", "Mundurukú" }, { "myv", "Erzya" }, { "myw", "Muyuw" }, { "myx", "Masaaba" }, { "myy", "Macuna" }, { "myz", "Classical Mandaic" }, { "mza", "Santa María Zacatepec Mixtec" }, { "mzb", "Tumzabt" }, { "mzc", "Madagascar Sign Language" }, { "mzd", "Malimba" }, { "mze", "Morawa" }, { "mzg", "Monastic Sign Language" }, { "mzh", "Wichí Lhamtés Güisnay" }, { "mzi", "Ixcatlán Mazatec" }, { "mzj", "Manya" }, { "mzk", "Nigeria Mambila" }, { "mzl", "Mazatlán Mixe" }, { "mzm", "Mumuye" }, { "mzn", "Mazanderani" }, { "mzo", "Matipuhy" }, { "mzp", "Movima" }, { "mzq", "Mori Atas" }, { "mzr", "Marúbo" }, { "mzs", "Macanese" }, { "mzt", "Mintil" }, { "mzu", "Inapang" }, { "mzv", "Manza" }, { "mzw", "Deg" }, { "mzx", "Mawayana" }, { "mzy", "Mozambican Sign Language" }, { "mzz", "Maiadomu" }, { "naa", "Namla" }, { "nab", "Southern Nambikuára" }, { "nac", "Narak" }, { "nad", "Nijadali" }, { "nae", "Naka'ela" }, { "naf", "Nabak" }, { "nag", "Naga Pidgin" }, { "naj", "Nalu" }, { "nak", "Nakanai" }, { "nal", "Nalik" }, { "nam", "Ngan'gityemerri" }, { "nan", "Min Nan Chinese" }, { "nao", "Naaba" }, { "nap", "Neapolitan" }, { "naq", "Nama (Namibia)" }, { "nar", "Iguta" }, { "nas", "Naasioi" }, { "nat", "Hungworo" }, { "nau", "Nauru" }, { "nav", "Navajo" }, { "naw", "Nawuri" }, { "nax", "Nakwi" }, { "nay", "Narrinyeri" }, { "naz", "Coatepec Nahuatl" }, { "nba", "Nyemba" }, { "nbb", "Ndoe" }, { "nbc", "Chang Naga" }, { "nbd", "Ngbinda" }, { "nbe", "Konyak Naga" }, { "nbg", "Nagarchal" }, { "nbh", "Ngamo" }, { "nbi", "Mao Naga" }, { "nbj", "Ngarinman" }, { "nbk", "Nake" }, { "nbl", "South Ndebele" }, { "nbm", "Ngbaka Ma'bo" }, { "nbn", "Kuri" }, { "nbo", "Nkukoli" }, { "nbp", "Nnam" }, { "nbq", "Nggem" }, { "nbr", "Numana-Nunku-Gbantu-Numbu" }, { "nbs", "Namibian Sign Language" }, { "nbt", "Na" }, { "nbu", "Rongmei Naga" }, { "nbv", "Ngamambo" }, { "nbw", "Southern Ngbandi" }, { "nby", "Ningera" }, { "nca", "Iyo" }, { "ncb", "Central Nicobarese" }, { "ncc", "Ponam" }, { "ncd", "Nachering" }, { "nce", "Yale" }, { "ncf", "Notsi" }, { "ncg", "Nisga'a" }, { "nch", "Central Huasteca Nahuatl" }, { "nci", "Classical Nahuatl" }, { "ncj", "Northern Puebla Nahuatl" }, { "nck", "Nakara" }, { "ncl", "Michoacán Nahuatl" }, { "ncm", "Nambo" }, { "ncn", "Nauna" }, { "nco", "Sibe" }, { "ncp", "Ndaktup" }, { "ncr", "Ncane" }, { "ncs", "Nicaraguan Sign Language" }, { "nct", "Chothe Naga" }, { "ncu", "Chumburung" }, { "ncx", "Central Puebla Nahuatl" }, { "ncz", "Natchez" }, { "nda", "Ndasa" }, { "ndb", "Kenswei Nsei" }, { "ndc", "Ndau" }, { "ndd", "Nde-Nsele-Nta" }, { "nde", "North Ndebele" }, { "ndf", "Nadruvian" }, { "ndg", "Ndengereko" }, { "ndh", "Ndali" }, { "ndi", "Samba Leko" }, { "ndj", "Ndamba" }, { "ndk", "Ndaka" }, { "ndl", "Ndolo" }, { "ndm", "Ndam" }, { "ndn", "Ngundi" }, { "ndo", "Ndonga" }, { "ndp", "Ndo" }, { "ndq", "Ndombe" }, { "ndr", "Ndoola" }, { "nds", "Low German" }, { "ndt", "Ndunga" }, { "ndu", "Dugun" }, { "ndv", "Ndut" }, { "ndw", "Ndobo" }, { "ndx", "Nduga" }, { "ndy", "Lutos" }, { "ndz", "Ndogo" }, { "nea", "Eastern Ngad'a" }, { "neb", "Toura (Côte d'Ivoire)" }, { "nec", "Nedebang" }, { "ned", "Nde-Gbite" }, { "nee", "Nêlêmwa-Nixumwak" }, { "nef", "Nefamese" }, { "neg", "Negidal" }, { "neh", "Nyenkha" }, { "nei", "Neo-Hittite" }, { "nej", "Neko" }, { "nek", "Neku" }, { "nem", "Nemi" }, { "nen", "Nengone" }, { "neo", "Ná-Meo" }, { "nep", "Nepali (macrolanguage)" }, { "neq", "North Central Mixe" }, { "ner", "Yahadian" }, { "nes", "Bhoti Kinnauri" }, { "net", "Nete" }, { "neu", "Neo" }, { "nev", "Nyaheun" }, { "new", "Newari" }, { "nex", "Neme" }, { "ney", "Neyo" }, { "nez", "Nez Perce" }, { "nfa", "Dhao" }, { "nfd", "Ahwai" }, { "nfl", "Ayiwo" }, { "nfr", "Nafaanra" }, { "nfu", "Mfumte" }, { "nga", "Ngbaka" }, { "ngb", "Northern Ngbandi" }, { "ngc", "Ngombe (Democratic Republic of Congo)" }, { "ngd", "Ngando (Central African Republic)" }, { "nge", "Ngemba" }, { "ngg", "Ngbaka Manza" }, { "ngh", "Nu" }, { "ngi", "Ngizim" }, { "ngj", "Ngie" }, { "ngk", "Dalabon" }, { "ngl", "Lomwe" }, { "ngm", "Ngatik Men's Creole" }, { "ngn", "Ngwo" }, { "ngo", "Ngoni" }, { "ngp", "Ngulu" }, { "ngq", "Ngurimi" }, { "ngr", "Engdewu" }, { "ngs", "Gvoko" }, { "ngt", "Ngeq" }, { "ngu", "Guerrero Nahuatl" }, { "ngv", "Nagumi" }, { "ngw", "Ngwaba" }, { "ngx", "Nggwahyi" }, { "ngy", "Tibea" }, { "ngz", "Ngungwel" }, { "nha", "Nhanda" }, { "nhb", "Beng" }, { "nhc", "Tabasco Nahuatl" }, { "nhd", "Chiripá" }, { "nhe", "Eastern Huasteca Nahuatl" }, { "nhf", "Nhuwala" }, { "nhg", "Tetelcingo Nahuatl" }, { "nhh", "Nahari" }, { "nhi", "Zacatlán-Ahuacatlán-Tepetzintla Nahuatl" }, { "nhk", "Isthmus-Cosoleacaque Nahuatl" }, { "nhm", "Morelos Nahuatl" }, { "nhn", "Central Nahuatl" }, { "nho", "Takuu" }, { "nhp", "Isthmus-Pajapan Nahuatl" }, { "nhq", "Huaxcaleca Nahuatl" }, { "nhr", "Naro" }, { "nht", "Ometepec Nahuatl" }, { "nhu", "Noone" }, { "nhv", "Temascaltepec Nahuatl" }, { "nhw", "Western Huasteca Nahuatl" }, { "nhx", "Isthmus-Mecayapan Nahuatl" }, { "nhy", "Northern Oaxaca Nahuatl" }, { "nhz", "Santa María La Alta Nahuatl" }, { "nia", "Nias" }, { "nib", "Nakame" }, { "nid", "Ngandi" }, { "nie", "Niellim" }, { "nif", "Nek" }, { "nig", "Ngalakan" }, { "nih", "Nyiha (Tanzania)" }, { "nii", "Nii" }, { "nij", "Ngaju" }, { "nik", "Southern Nicobarese" }, { "nil", "Nila" }, { "nim", "Nilamba" }, { "nin", "Ninzo" }, { "nio", "Nganasan" }, { "niq", "Nandi" }, { "nir", "Nimboran" }, { "nis", "Nimi" }, { "nit", "Southeastern Kolami" }, { "niu", "Niuean" }, { "niv", "Gilyak" }, { "niw", "Nimo" }, { "nix", "Hema" }, { "niy", "Ngiti" }, { "niz", "Ningil" }, { "nja", "Nzanyi" }, { "njb", "Nocte Naga" }, { "njd", "Ndonde Hamba" }, { "njh", "Lotha Naga" }, { "nji", "Gudanji" }, { "njj", "Njen" }, { "njl", "Njalgulgule" }, { "njm", "Angami Naga" }, { "njn", "Liangmai Naga" }, { "njo", "Ao Naga" }, { "njr", "Njerep" }, { "njs", "Nisa" }, { "njt", "Ndyuka-Trio Pidgin" }, { "nju", "Ngadjunmaya" }, { "njx", "Kunyi" }, { "njy", "Njyem" }, { "njz", "Nyishi" }, { "nka", "Nkoya" }, { "nkb", "Khoibu Naga" }, { "nkc", "Nkongho" }, { "nkd", "Koireng" }, { "nke", "Duke" }, { "nkf", "Inpui Naga" }, { "nkg", "Nekgini" }, { "nkh", "Khezha Naga" }, { "nki", "Thangal Naga" }, { "nkj", "Nakai" }, { "nkk", "Nokuku" }, { "nkm", "Namat" }, { "nkn", "Nkangala" }, { "nko", "Nkonya" }, { "nkp", "Niuatoputapu" }, { "nkq", "Nkami" }, { "nkr", "Nukuoro" }, { "nks", "North Asmat" }, { "nkt", "Nyika (Tanzania)" }, { "nku", "Bouna Kulango" }, { "nkv", "Nyika (Malawi and Zambia)" }, { "nkw", "Nkutu" }, { "nkx", "Nkoroo" }, { "nkz", "Nkari" }, { "nla", "Ngombale" }, { "nlc", "Nalca" }, { "nld", "Dutch" }, { "nle", "East Nyala" }, { "nlg", "Gela" }, { "nli", "Grangali" }, { "nlj", "Nyali" }, { "nlk", "Ninia Yali" }, { "nll", "Nihali" }, { "nlo", "Ngul" }, { "nlq", "Lao Naga" }, { "nlu", "Nchumbulu" }, { "nlv", "Orizaba Nahuatl" }, { "nlw", "Walangama" }, { "nlx", "Nahali" }, { "nly", "Nyamal" }, { "nlz", "Nalögo" }, { "nma", "Maram Naga" }, { "nmb", "Big Nambas" }, { "nmc", "Ngam" }, { "nmd", "Ndumu" }, { "nme", "Mzieme Naga" }, { "nmf", "Tangkhul Naga (India)" }, { "nmg", "Kwasio" }, { "nmh", "Monsang Naga" }, { "nmi", "Nyam" }, { "nmj", "Ngombe (Central African Republic)" }, { "nmk", "Namakura" }, { "nml", "Ndemli" }, { "nmm", "Manangba" }, { "nmn", "!Xóõ" }, { "nmo", "Moyon Naga" }, { "nmp", "Nimanbur" }, { "nmq", "Nambya" }, { "nmr", "Nimbari" }, { "nms", "Letemboi" }, { "nmt", "Namonuito" }, { "nmu", "Northeast Maidu" }, { "nmv", "Ngamini" }, { "nmw", "Nimoa" }, { "nmx", "Nama (Papua New Guinea)" }, { "nmy", "Namuyi" }, { "nmz", "Nawdm" }, { "nna", "Nyangumarta" }, { "nnb", "Nande" }, { "nnc", "Nancere" }, { "nnd", "West Ambae" }, { "nne", "Ngandyera" }, { "nnf", "Ngaing" }, { "nng", "Maring Naga" }, { "nnh", "Ngiemboon" }, { "nni", "North Nuaulu" }, { "nnj", "Nyangatom" }, { "nnk", "Nankina" }, { "nnl", "Northern Rengma Naga" }, { "nnm", "Namia" }, { "nnn", "Ngete" }, { "nno", "Norwegian Nynorsk" }, { "nnp", "Wancho Naga" }, { "nnq", "Ngindo" }, { "nnr", "Narungga" }, { "nns", "Ningye" }, { "nnt", "Nanticoke" }, { "nnu", "Dwang" }, { "nnv", "Nugunu (Australia)" }, { "nnw", "Southern Nuni" }, { "nnx", "Ngong" }, { "nny", "Nyangga" }, { "nnz", "Nda'nda'" }, { "noa", "Woun Meu" }, { "nob", "Norwegian Bokmål" }, { "noc", "Nuk" }, { "nod", "Northern Thai" }, { "noe", "Nimadi" }, { "nof", "Nomane" }, { "nog", "Nogai" }, { "noh", "Nomu" }, { "noi", "Noiri" }, { "noj", "Nonuya" }, { "nok", "Nooksack" }, { "nol", "Nomlaki" }, { "nom", "Nocamán" }, { "non", "Old Norse" }, { "nop", "Numanggang" }, { "noq", "Ngongo" }, { "nor", "Norwegian" }, { "nos", "Eastern Nisu" }, { "not", "Nomatsiguenga" }, { "nou", "Ewage-Notu" }, { "nov", "Novial" }, { "now", "Nyambo" }, { "noy", "Noy" }, { "noz", "Nayi" }, { "npa", "Nar Phu" }, { "npb", "Nupbikha" }, { "npg", "Ponyo-Gongwang Naga" }, { "nph", "Phom Naga" }, { "npi", "Nepali (individual language)" }, { "npl", "Southeastern Puebla Nahuatl" }, { "npn", "Mondropolon" }, { "npo", "Pochuri Naga" }, { "nps", "Nipsan" }, { "npu", "Puimei Naga" }, { "npy", "Napu" }, { "nqg", "Southern Nago" }, { "nqk", "Kura Ede Nago" }, { "nqm", "Ndom" }, { "nqn", "Nen" }, { "nqo", "N'Ko" }, { "nqq", "Kyan-Karyaw Naga" }, { "nqy", "Akyaung Ari Naga" }, { "nra", "Ngom" }, { "nrb", "Nara" }, { "nrc", "Noric" }, { "nre", "Southern Rengma Naga" }, { "nrg", "Narango" }, { "nri", "Chokri Naga" }, { "nrk", "Ngarla" }, { "nrl", "Ngarluma" }, { "nrm", "Narom" }, { "nrn", "Norn" }, { "nrp", "North Picene" }, { "nrr", "Norra" }, { "nrt", "Northern Kalapuya" }, { "nru", "Narua" }, { "nrx", "Ngurmbur" }, { "nrz", "Lala" }, { "nsa", "Sangtam Naga" }, { "nsc", "Nshi" }, { "nsd", "Southern Nisu" }, { "nse", "Nsenga" }, { "nsf", "Northwestern Nisu" }, { "nsg", "Ngasa" }, { "nsh", "Ngoshie" }, { "nsi", "Nigerian Sign Language" }, { "nsk", "Naskapi" }, { "nsl", "Norwegian Sign Language" }, { "nsm", "Sumi Naga" }, { "nsn", "Nehan" }, { "nso", "Pedi" }, { "nsp", "Nepalese Sign Language" }, { "nsq", "Northern Sierra Miwok" }, { "nsr", "Maritime Sign Language" }, { "nss", "Nali" }, { "nst", "Tase Naga" }, { "nsu", "Sierra Negra Nahuatl" }, { "nsv", "Southwestern Nisu" }, { "nsw", "Navut" }, { "nsx", "Nsongo" }, { "nsy", "Nasal" }, { "nsz", "Nisenan" }, { "nte", "Nathembo" }, { "ntg", "Ngantangarra" }, { "nti", "Natioro" }, { "ntj", "Ngaanyatjarra" }, { "ntk", "Ikoma-Nata-Isenye" }, { "ntm", "Nateni" }, { "nto", "Ntomba" }, { "ntp", "Northern Tepehuan" }, { "ntr", "Delo" }, { "nts", "Natagaimas" }, { "ntu", "Natügu" }, { "ntw", "Nottoway" }, { "ntx", "Tangkhul Naga (Myanmar)" }, { "nty", "Mantsi" }, { "ntz", "Natanzi" }, { "nua", "Yuanga" }, { "nuc", "Nukuini" }, { "nud", "Ngala" }, { "nue", "Ngundu" }, { "nuf", "Nusu" }, { "nug", "Nungali" }, { "nuh", "Ndunda" }, { "nui", "Ngumbi" }, { "nuj", "Nyole" }, { "nuk", "Nuu-chah-nulth" }, { "nul", "Nusa Laut" }, { "num", "Niuafo'ou" }, { "nun", "Anong" }, { "nuo", "Nguôn" }, { "nup", "Nupe-Nupe-Tako" }, { "nuq", "Nukumanu" }, { "nur", "Nukuria" }, { "nus", "Nuer" }, { "nut", "Nung (Viet Nam)" }, { "nuu", "Ngbundu" }, { "nuv", "Northern Nuni" }, { "nuw", "Nguluwan" }, { "nux", "Mehek" }, { "nuy", "Nunggubuyu" }, { "nuz", "Tlamacazapa Nahuatl" }, { "nvh", "Nasarian" }, { "nvm", "Namiae" }, { "nvo", "Nyokon" }, { "nwa", "Nawathinehena" }, { "nwb", "Nyabwa" }, { "nwc", "Classical Newari" }, { "nwe", "Ngwe" }, { "nwg", "Ngayawung" }, { "nwi", "Southwest Tanna" }, { "nwm", "Nyamusa-Molo" }, { "nwo", "Nauo" }, { "nwr", "Nawaru" }, { "nwx", "Middle Newar" }, { "nwy", "Nottoway-Meherrin" }, { "nxa", "Nauete" }, { "nxd", "Ngando (Democratic Republic of Congo)" }, { "nxe", "Nage" }, { "nxg", "Ngad'a" }, { "nxi", "Nindi" }, { "nxk", "Koki Naga" }, { "nxl", "South Nuaulu" }, { "nxm", "Numidian" }, { "nxn", "Ngawun" }, { "nxq", "Naxi" }, { "nxr", "Ninggerum" }, { "nxu", "Narau" }, { "nxx", "Nafri" }, { "nya", "Nyanja" }, { "nyb", "Nyangbo" }, { "nyc", "Nyanga-li" }, { "nyd", "Nyore" }, { "nye", "Nyengo" }, { "nyf", "Giryama" }, { "nyg", "Nyindu" }, { "nyh", "Nyigina" }, { "nyi", "Ama (Sudan)" }, { "nyj", "Nyanga" }, { "nyk", "Nyaneka" }, { "nyl", "Nyeu" }, { "nym", "Nyamwezi" }, { "nyn", "Nyankole" }, { "nyo", "Nyoro" }, { "nyp", "Nyang'i" }, { "nyq", "Nayini" }, { "nyr", "Nyiha (Malawi)" }, { "nys", "Nyunga" }, { "nyt", "Nyawaygi" }, { "nyu", "Nyungwe" }, { "nyv", "Nyulnyul" }, { "nyw", "Nyaw" }, { "nyx", "Nganyaywana" }, { "nyy", "Nyakyusa-Ngonde" }, { "nza", "Tigon Mbembe" }, { "nzb", "Njebi" }, { "nzi", "Nzima" }, { "nzk", "Nzakara" }, { "nzm", "Zeme Naga" }, { "nzs", "New Zealand Sign Language" }, { "nzu", "Teke-Nzikou" }, { "nzy", "Nzakambay" }, { "nzz", "Nanga Dama Dogon" }, { "oaa", "Orok" }, { "oac", "Oroch" }, { "oar", "Old Aramaic (up to 700 BCE)" }, { "oav", "Old Avar" }, { "obi", "Obispeño" }, { "obk", "Southern Bontok" }, { "obl", "Oblo" }, { "obm", "Moabite" }, { "obo", "Obo Manobo" }, { "obr", "Old Burmese" }, { "obt", "Old Breton" }, { "obu", "Obulom" }, { "oca", "Ocaina" }, { "och", "Old Chinese" }, { "oci", "Occitan (post 1500)" }, { "oco", "Old Cornish" }, { "ocu", "Atzingo Matlatzinca" }, { "oda", "Odut" }, { "odk", "Od" }, { "odt", "Old Dutch" }, { "odu", "Odual" }, { "ofo", "Ofo" }, { "ofs", "Old Frisian" }, { "ofu", "Efutop" }, { "ogb", "Ogbia" }, { "ogc", "Ogbah" }, { "oge", "Old Georgian" }, { "ogg", "Ogbogolo" }, { "ogo", "Khana" }, { "ogu", "Ogbronuagum" }, { "oht", "Old Hittite" }, { "ohu", "Old Hungarian" }, { "oia", "Oirata" }, { "oin", "Inebu One" }, { "ojb", "Northwestern Ojibwa" }, { "ojc", "Central Ojibwa" }, { "ojg", "Eastern Ojibwa" }, { "oji", "Ojibwa" }, { "ojp", "Old Japanese" }, { "ojs", "Severn Ojibwa" }, { "ojv", "Ontong Java" }, { "ojw", "Western Ojibwa" }, { "oka", "Okanagan" }, { "okb", "Okobo" }, { "okd", "Okodia" }, { "oke", "Okpe (Southwestern Edo)" }, { "okg", "Koko Babangk" }, { "okh", "Koresh-e Rostam" }, { "oki", "Okiek" }, { "okj", "Oko-Juwoi" }, { "okk", "Kwamtim One" }, { "okl", "Old Kentish Sign Language" }, { "okm", "Middle Korean (10th-16th cent.)" }, { "okn", "Oki-No-Erabu" }, { "oko", "Old Korean (3rd-9th cent.)" }, { "okr", "Kirike" }, { "oks", "Oko-Eni-Osayen" }, { "oku", "Oku" }, { "okv", "Orokaiva" }, { "okx", "Okpe (Northwestern Edo)" }, { "ola", "Walungge" }, { "old", "Mochi" }, { "ole", "Olekha" }, { "olk", "Olkol" }, { "olm", "Oloma" }, { "olo", "Livvi" }, { "olr", "Olrat" }, { "oma", "Omaha-Ponca" }, { "omb", "East Ambae" }, { "omc", "Mochica" }, { "ome", "Omejes" }, { "omg", "Omagua" }, { "omi", "Omi" }, { "omk", "Omok" }, { "oml", "Ombo" }, { "omn", "Minoan" }, { "omo", "Utarmbung" }, { "omp", "Old Manipuri" }, { "omr", "Old Marathi" }, { "omt", "Omotik" }, { "omu", "Omurano" }, { "omw", "South Tairora" }, { "omx", "Old Mon" }, { "ona", "Ona" }, { "onb", "Lingao" }, { "one", "Oneida" }, { "ong", "Olo" }, { "oni", "Onin" }, { "onj", "Onjob" }, { "onk", "Kabore One" }, { "onn", "Onobasulu" }, { "ono", "Onondaga" }, { "onp", "Sartang" }, { "onr", "Northern One" }, { "ons", "Ono" }, { "ont", "Ontenu" }, { "onu", "Unua" }, { "onw", "Old Nubian" }, { "onx", "Onin Based Pidgin" }, { "ood", "Tohono O'odham" }, { "oog", "Ong" }, { "oon", "Önge" }, { "oor", "Oorlams" }, { "oos", "Old Ossetic" }, { "opa", "Okpamheri" }, { "opk", "Kopkaka" }, { "opm", "Oksapmin" }, { "opo", "Opao" }, { "opt", "Opata" }, { "opy", "Ofayé" }, { "ora", "Oroha" }, { "orc", "Orma" }, { "ore", "Orejón" }, { "org", "Oring" }, { "orh", "Oroqen" }, { "ori", "Oriya (macrolanguage)" }, { "orm", "Oromo" }, { "orn", "Orang Kanaq" }, { "oro", "Orokolo" }, { "orr", "Oruma" }, { "ors", "Orang Seletar" }, { "ort", "Adivasi Oriya" }, { "oru", "Ormuri" }, { "orv", "Old Russian" }, { "orw", "Oro Win" }, { "orx", "Oro" }, { "ory", "Oriya (individual language)" }, { "orz", "Ormu" }, { "osa", "Osage" }, { "osc", "Oscan" }, { "osi", "Osing" }, { "oso", "Ososo" }, { "osp", "Old Spanish" }, { "oss", "Ossetian" }, { "ost", "Osatu" }, { "osu", "Southern One" }, { "osx", "Old Saxon" }, { "ota", "Ottoman Turkish (1500-1928)" }, { "otb", "Old Tibetan" }, { "otd", "Ot Danum" }, { "ote", "Mezquital Otomi" }, { "oti", "Oti" }, { "otk", "Old Turkish" }, { "otl", "Tilapa Otomi" }, { "otm", "Eastern Highland Otomi" }, { "otn", "Tenango Otomi" }, { "otq", "Querétaro Otomi" }, { "otr", "Otoro" }, { "ots", "Estado de México Otomi" }, { "ott", "Temoaya Otomi" }, { "otu", "Otuke" }, { "otw", "Ottawa" }, { "otx", "Texcatepec Otomi" }, { "oty", "Old Tamil" }, { "otz", "Ixtenco Otomi" }, { "oua", "Tagargrent" }, { "oub", "Glio-Oubi" }, { "oue", "Oune" }, { "oui", "Old Uighur" }, { "oum", "Ouma" }, { "oun", "!O!ung" }, { "owi", "Owiniga" }, { "owl", "Old Welsh" }, { "oyb", "Oy" }, { "oyd", "Oyda" }, { "oym", "Wayampi" }, { "oyy", "Oya'oya" }, { "ozm", "Koonzime" }, { "pab", "Parecís" }, { "pac", "Pacoh" }, { "pad", "Paumarí" }, { "pae", "Pagibete" }, { "paf", "Paranawát" }, { "pag", "Pangasinan" }, { "pah", "Tenharim" }, { "pai", "Pe" }, { "pak", "Parakanã" }, { "pal", "Pahlavi" }, { "pam", "Pampanga" }, { "pan", "Panjabi" }, { "pao", "Northern Paiute" }, { "pap", "Papiamento" }, { "paq", "Parya" }, { "par", "Panamint" }, { "pas", "Papasena" }, { "pat", "Papitalai" }, { "pau", "Palauan" }, { "pav", "Pakaásnovos" }, { "paw", "Pawnee" }, { "pax", "Pankararé" }, { "pay", "Pech" }, { "paz", "Pankararú" }, { "pbb", "Páez" }, { "pbc", "Patamona" }, { "pbe", "Mezontla Popoloca" }, { "pbf", "Coyotepec Popoloca" }, { "pbg", "Paraujano" }, { "pbh", "E'ñapa Woromaipu" }, { "pbi", "Parkwa" }, { "pbl", "Mak (Nigeria)" }, { "pbn", "Kpasam" }, { "pbo", "Papel" }, { "pbp", "Badyara" }, { "pbr", "Pangwa" }, { "pbs", "Central Pame" }, { "pbt", "Southern Pashto" }, { "pbu", "Northern Pashto" }, { "pbv", "Pnar" }, { "pby", "Pyu" }, { "pca", "Santa Inés Ahuatempan Popoloca" }, { "pcb", "Pear" }, { "pcc", "Bouyei" }, { "pcd", "Picard" }, { "pce", "Ruching Palaung" }, { "pcf", "Paliyan" }, { "pcg", "Paniya" }, { "pch", "Pardhan" }, { "pci", "Duruwa" }, { "pcj", "Parenga" }, { "pck", "Paite Chin" }, { "pcl", "Pardhi" }, { "pcm", "Nigerian Pidgin" }, { "pcn", "Piti" }, { "pcp", "Pacahuara" }, { "pcw", "Pyapun" }, { "pda", "Anam" }, { "pdc", "Pennsylvania German" }, { "pdi", "Pa Di" }, { "pdn", "Podena" }, { "pdo", "Padoe" }, { "pdt", "Plautdietsch" }, { "pdu", "Kayan" }, { "pea", "Peranakan Indonesian" }, { "peb", "Eastern Pomo" }, { "ped", "Mala (Papua New Guinea)" }, { "pee", "Taje" }, { "pef", "Northeastern Pomo" }, { "peg", "Pengo" }, { "peh", "Bonan" }, { "pei", "Chichimeca-Jonaz" }, { "pej", "Northern Pomo" }, { "pek", "Penchal" }, { "pel", "Pekal" }, { "pem", "Phende" }, { "peo", "Old Persian (ca. 600-400 B.C.)" }, { "pep", "Kunja" }, { "peq", "Southern Pomo" }, { "pes", "Iranian Persian" }, { "pev", "Pémono" }, { "pex", "Petats" }, { "pey", "Petjo" }, { "pez", "Eastern Penan" }, { "pfa", "Pááfang" }, { "pfe", "Peere" }, { "pfl", "Pfaelzisch" }, { "pga", "Sudanese Creole Arabic" }, { "pgg", "Pangwali" }, { "pgi", "Pagi" }, { "pgk", "Rerep" }, { "pgl", "Primitive Irish" }, { "pgn", "Paelignian" }, { "pgs", "Pangseng" }, { "pgu", "Pagu" }, { "pha", "Pa-Hng" }, { "phd", "Phudagi" }, { "phg", "Phuong" }, { "phh", "Phukha" }, { "phk", "Phake" }, { "phl", "Phalura" }, { "phm", "Phimbi" }, { "phn", "Phoenician" }, { "pho", "Phunoi" }, { "phq", "Phana'" }, { "phr", "Pahari-Potwari" }, { "pht", "Phu Thai" }, { "phu", "Phuan" }, { "phv", "Pahlavani" }, { "phw", "Phangduwali" }, { "pia", "Pima Bajo" }, { "pib", "Yine" }, { "pic", "Pinji" }, { "pid", "Piaroa" }, { "pie", "Piro" }, { "pif", "Pingelapese" }, { "pig", "Pisabo" }, { "pih", "Pitcairn-Norfolk" }, { "pii", "Pini" }, { "pij", "Pijao" }, { "pil", "Yom" }, { "pim", "Powhatan" }, { "pin", "Piame" }, { "pio", "Piapoco" }, { "pip", "Pero" }, { "pir", "Piratapuyo" }, { "pis", "Pijin" }, { "pit", "Pitta Pitta" }, { "piu", "Pintupi-Luritja" }, { "piv", "Pileni" }, { "piw", "Pimbwe" }, { "pix", "Piu" }, { "piy", "Piya-Kwonci" }, { "piz", "Pije" }, { "pjt", "Pitjantjatjara" }, { "pka", "Ardhamāgadhī Prākrit" }, { "pkb", "Pokomo" }, { "pkc", "Paekche" }, { "pkg", "Pak-Tong" }, { "pkh", "Pankhu" }, { "pkn", "Pakanha" }, { "pko", "Pökoot" }, { "pkp", "Pukapuka" }, { "pkr", "Attapady Kurumba" }, { "pks", "Pakistan Sign Language" }, { "pkt", "Maleng" }, { "pku", "Paku" }, { "pla", "Miani" }, { "plb", "Polonombauk" }, { "plc", "Central Palawano" }, { "pld", "Polari" }, { "ple", "Palu'e" }, { "plg", "Pilagá" }, { "plh", "Paulohi" }, { "pli", "Pali" }, { "plj", "Polci" }, { "plk", "Kohistani Shina" }, { "pll", "Shwe Palaung" }, { "pln", "Palenquero" }, { "plo", "Oluta Popoluca" }, { "plp", "Palpa" }, { "plq", "Palaic" }, { "plr", "Palaka Senoufo" }, { "pls", "San Marcos Tlalcoyalco Popoloca" }, { "plt", "Plateau Malagasy" }, { "plu", "Palikúr" }, { "plv", "Southwest Palawano" }, { "plw", "Brooke's Point Palawano" }, { "ply", "Bolyu" }, { "plz", "Paluan" }, { "pma", "Paama" }, { "pmb", "Pambia" }, { "pmc", "Palumata" }, { "pmd", "Pallanganmiddang" }, { "pme", "Pwaamei" }, { "pmf", "Pamona" }, { "pmh", "Māhārāṣṭri Prākrit" }, { "pmi", "Northern Pumi" }, { "pmj", "Southern Pumi" }, { "pmk", "Pamlico" }, { "pml", "Lingua Franca" }, { "pmm", "Pomo" }, { "pmn", "Pam" }, { "pmo", "Pom" }, { "pmq", "Northern Pame" }, { "pmr", "Paynamar" }, { "pms", "Piemontese" }, { "pmt", "Tuamotuan" }, { "pmu", "Mirpur Panjabi" }, { "pmw", "Plains Miwok" }, { "pmx", "Poumei Naga" }, { "pmy", "Papuan Malay" }, { "pmz", "Southern Pame" }, { "pna", "Punan Bah-Biau" }, { "pnb", "Western Panjabi" }, { "pnc", "Pannei" }, { "pne", "Western Penan" }, { "png", "Pongu" }, { "pnh", "Penrhyn" }, { "pni", "Aoheng" }, { "pnj", "Pinjarup" }, { "pnk", "Paunaka" }, { "pnl", "Paleni" }, { "pnm", "Punan Batu 1" }, { "pnn", "Pinai-Hagahai" }, { "pno", "Panobo" }, { "pnp", "Pancana" }, { "pnq", "Pana (Burkina Faso)" }, { "pnr", "Panim" }, { "pns", "Ponosakan" }, { "pnt", "Pontic" }, { "pnu", "Jiongnai Bunu" }, { "pnv", "Pinigura" }, { "pnw", "Panytyima" }, { "pnx", "Phong-Kniang" }, { "pny", "Pinyin" }, { "pnz", "Pana (Central African Republic)" }, { "poc", "Poqomam" }, { "pod", "Ponares" }, { "poe", "San Juan Atzingo Popoloca" }, { "pof", "Poke" }, { "pog", "Potiguára" }, { "poh", "Poqomchi'" }, { "poi", "Highland Popoluca" }, { "pok", "Pokangá" }, { "pol", "Polish" }, { "pom", "Southeastern Pomo" }, { "pon", "Pohnpeian" }, { "poo", "Central Pomo" }, { "pop", "Pwapwâ" }, { "poq", "Texistepec Popoluca" }, { "por", "Portuguese" }, { "pos", "Sayula Popoluca" }, { "pot", "Potawatomi" }, { "pov", "Upper Guinea Crioulo" }, { "pow", "San Felipe Otlaltepec Popoloca" }, { "pox", "Polabian" }, { "poy", "Pogolo" }, { "ppa", "Pao" }, { "ppe", "Papi" }, { "ppi", "Paipai" }, { "ppk", "Uma" }, { "ppl", "Pipil" }, { "ppm", "Papuma" }, { "ppn", "Papapana" }, { "ppo", "Folopa" }, { "ppp", "Pelende" }, { "ppq", "Pei" }, { "pps", "San Luís Temalacayuca Popoloca" }, { "ppt", "Pare" }, { "ppu", "Papora" }, { "pqa", "Pa'a" }, { "pqm", "Malecite-Passamaquoddy" }, { "prb", "Lua'" }, { "prc", "Parachi" }, { "prd", "Parsi-Dari" }, { "pre", "Principense" }, { "prf", "Paranan" }, { "prg", "Prussian" }, { "prh", "Porohanon" }, { "pri", "Paicî" }, { "prk", "Parauk" }, { "prl", "Peruvian Sign Language" }, { "prm", "Kibiri" }, { "prn", "Prasuni" }, { "pro", "Old Provençal (to 1500)" }, { "prp", "Parsi" }, { "prq", "Ashéninka Perené" }, { "prr", "Puri" }, { "prs", "Dari" }, { "prt", "Phai" }, { "pru", "Puragi" }, { "prw", "Parawen" }, { "prx", "Purik" }, { "pry", "Pray 3" }, { "prz", "Providencia Sign Language" }, { "psa", "Asue Awyu" }, { "psc", "Persian Sign Language" }, { "psd", "Plains Indian Sign Language" }, { "pse", "Central Malay" }, { "psg", "Penang Sign Language" }, { "psh", "Southwest Pashayi" }, { "psi", "Southeast Pashayi" }, { "psl", "Puerto Rican Sign Language" }, { "psm", "Pauserna" }, { "psn", "Panasuan" }, { "pso", "Polish Sign Language" }, { "psp", "Philippine Sign Language" }, { "psq", "Pasi" }, { "psr", "Portuguese Sign Language" }, { "pss", "Kaulong" }, { "pst", "Central Pashto" }, { "psu", "Sauraseni Prākrit" }, { "psw", "Port Sandwich" }, { "psy", "Piscataway" }, { "pta", "Pai Tavytera" }, { "pth", "Pataxó Hã-Ha-Hãe" }, { "pti", "Pintiini" }, { "ptn", "Patani" }, { "pto", "Zo'é" }, { "ptp", "Patep" }, { "ptr", "Piamatsina" }, { "ptt", "Enrekang" }, { "ptu", "Bambam" }, { "ptv", "Port Vato" }, { "ptw", "Pentlatch" }, { "pty", "Pathiya" }, { "pua", "Western Highland Purepecha" }, { "pub", "Purum" }, { "puc", "Punan Merap" }, { "pud", "Punan Aput" }, { "pue", "Puelche" }, { "puf", "Punan Merah" }, { "pug", "Phuie" }, { "pui", "Puinave" }, { "puj", "Punan Tubu" }, { "puk", "Pu Ko" }, { "pum", "Puma" }, { "puo", "Puoc" }, { "pup", "Pulabu" }, { "puq", "Puquina" }, { "pur", "Puruborá" }, { "pus", "Pushto" }, { "put", "Putoh" }, { "puu", "Punu" }, { "puw", "Puluwatese" }, { "pux", "Puare" }, { "puy", "Purisimeño" }, { "puz", "Purum Naga" }, { "pwa", "Pawaia" }, { "pwb", "Panawa" }, { "pwg", "Gapapaiwa" }, { "pwi", "Patwin" }, { "pwm", "Molbog" }, { "pwn", "Paiwan" }, { "pwo", "Pwo Western Karen" }, { "pwr", "Powari" }, { "pww", "Pwo Northern Karen" }, { "pxm", "Quetzaltepec Mixe" }, { "pye", "Pye Krumen" }, { "pym", "Fyam" }, { "pyn", "Poyanáwa" }, { "pys", "Paraguayan Sign Language" }, { "pyu", "Puyuma" }, { "pyx", "Pyu (Myanmar)" }, { "pyy", "Pyen" }, { "pzn", "Para Naga" }, { "qaa", "Reserved for local use" }, { "qab", "Reserved for local use" }, { "qac", "Reserved for local use" }, { "qad", "Reserved for local use" }, { "qae", "Reserved for local use" }, { "qaf", "Reserved for local use" }, { "qag", "Reserved for local use" }, { "qah", "Reserved for local use" }, { "qai", "Reserved for local use" }, { "qaj", "Reserved for local use" }, { "qak", "Reserved for local use" }, { "qal", "Reserved for local use" }, { "qam", "Reserved for local use" }, { "qan", "Reserved for local use" }, { "qao", "Reserved for local use" }, { "qap", "Reserved for local use" }, { "qaq", "Reserved for local use" }, { "qar", "Reserved for local use" }, { "qas", "Reserved for local use" }, { "qat", "Reserved for local use" }, { "qau", "Reserved for local use" }, { "qav", "Reserved for local use" }, { "qaw", "Reserved for local use" }, { "qax", "Reserved for local use" }, { "qay", "Reserved for local use" }, { "qaz", "Reserved for local use" }, { "qba", "Reserved for local use" }, { "qbb", "Reserved for local use" }, { "qbc", "Reserved for local use" }, { "qbd", "Reserved for local use" }, { "qbe", "Reserved for local use" }, { "qbf", "Reserved for local use" }, { "qbg", "Reserved for local use" }, { "qbh", "Reserved for local use" }, { "qbi", "Reserved for local use" }, { "qbj", "Reserved for local use" }, { "qbk", "Reserved for local use" }, { "qbl", "Reserved for local use" }, { "qbm", "Reserved for local use" }, { "qbn", "Reserved for local use" }, { "qbo", "Reserved for local use" }, { "qbp", "Reserved for local use" }, { "qbq", "Reserved for local use" }, { "qbr", "Reserved for local use" }, { "qbs", "Reserved for local use" }, { "qbt", "Reserved for local use" }, { "qbu", "Reserved for local use" }, { "qbv", "Reserved for local use" }, { "qbw", "Reserved for local use" }, { "qbx", "Reserved for local use" }, { "qby", "Reserved for local use" }, { "qbz", "Reserved for local use" }, { "qca", "Reserved for local use" }, { "qcb", "Reserved for local use" }, { "qcc", "Reserved for local use" }, { "qcd", "Reserved for local use" }, { "qce", "Reserved for local use" }, { "qcf", "Reserved for local use" }, { "qcg", "Reserved for local use" }, { "qch", "Reserved for local use" }, { "qci", "Reserved for local use" }, { "qcj", "Reserved for local use" }, { "qck", "Reserved for local use" }, { "qcl", "Reserved for local use" }, { "qcm", "Reserved for local use" }, { "qcn", "Reserved for local use" }, { "qco", "Reserved for local use" }, { "qcp", "Reserved for local use" }, { "qcq", "Reserved for local use" }, { "qcr", "Reserved for local use" }, { "qcs", "Reserved for local use" }, { "qct", "Reserved for local use" }, { "qcu", "Reserved for local use" }, { "qcv", "Reserved for local use" }, { "qcw", "Reserved for local use" }, { "qcx", "Reserved for local use" }, { "qcy", "Reserved for local use" }, { "qcz", "Reserved for local use" }, { "qda", "Reserved for local use" }, { "qdb", "Reserved for local use" }, { "qdc", "Reserved for local use" }, { "qdd", "Reserved for local use" }, { "qde", "Reserved for local use" }, { "qdf", "Reserved for local use" }, { "qdg", "Reserved for local use" }, { "qdh", "Reserved for local use" }, { "qdi", "Reserved for local use" }, { "qdj", "Reserved for local use" }, { "qdk", "Reserved for local use" }, { "qdl", "Reserved for local use" }, { "qdm", "Reserved for local use" }, { "qdn", "Reserved for local use" }, { "qdo", "Reserved for local use" }, { "qdp", "Reserved for local use" }, { "qdq", "Reserved for local use" }, { "qdr", "Reserved for local use" }, { "qds", "Reserved for local use" }, { "qdt", "Reserved for local use" }, { "qdu", "Reserved for local use" }, { "qdv", "Reserved for local use" }, { "qdw", "Reserved for local use" }, { "qdx", "Reserved for local use" }, { "qdy", "Reserved for local use" }, { "qdz", "Reserved for local use" }, { "qea", "Reserved for local use" }, { "qeb", "Reserved for local use" }, { "qec", "Reserved for local use" }, { "qed", "Reserved for local use" }, { "qee", "Reserved for local use" }, { "qef", "Reserved for local use" }, { "qeg", "Reserved for local use" }, { "qeh", "Reserved for local use" }, { "qei", "Reserved for local use" }, { "qej", "Reserved for local use" }, { "qek", "Reserved for local use" }, { "qel", "Reserved for local use" }, { "qem", "Reserved for local use" }, { "qen", "Reserved for local use" }, { "qeo", "Reserved for local use" }, { "qep", "Reserved for local use" }, { "qeq", "Reserved for local use" }, { "qer", "Reserved for local use" }, { "qes", "Reserved for local use" }, { "qet", "Reserved for local use" }, { "qeu", "Reserved for local use" }, { "qev", "Reserved for local use" }, { "qew", "Reserved for local use" }, { "qex", "Reserved for local use" }, { "qey", "Reserved for local use" }, { "qez", "Reserved for local use" }, { "qfa", "Reserved for local use" }, { "qfb", "Reserved for local use" }, { "qfc", "Reserved for local use" }, { "qfd", "Reserved for local use" }, { "qfe", "Reserved for local use" }, { "qff", "Reserved for local use" }, { "qfg", "Reserved for local use" }, { "qfh", "Reserved for local use" }, { "qfi", "Reserved for local use" }, { "qfj", "Reserved for local use" }, { "qfk", "Reserved for local use" }, { "qfl", "Reserved for local use" }, { "qfm", "Reserved for local use" }, { "qfn", "Reserved for local use" }, { "qfo", "Reserved for local use" }, { "qfp", "Reserved for local use" }, { "qfq", "Reserved for local use" }, { "qfr", "Reserved for local use" }, { "qfs", "Reserved for local use" }, { "qft", "Reserved for local use" }, { "qfu", "Reserved for local use" }, { "qfv", "Reserved for local use" }, { "qfw", "Reserved for local use" }, { "qfx", "Reserved for local use" }, { "qfy", "Reserved for local use" }, { "qfz", "Reserved for local use" }, { "qga", "Reserved for local use" }, { "qgb", "Reserved for local use" }, { "qgc", "Reserved for local use" }, { "qgd", "Reserved for local use" }, { "qge", "Reserved for local use" }, { "qgf", "Reserved for local use" }, { "qgg", "Reserved for local use" }, { "qgh", "Reserved for local use" }, { "qgi", "Reserved for local use" }, { "qgj", "Reserved for local use" }, { "qgk", "Reserved for local use" }, { "qgl", "Reserved for local use" }, { "qgm", "Reserved for local use" }, { "qgn", "Reserved for local use" }, { "qgo", "Reserved for local use" }, { "qgp", "Reserved for local use" }, { "qgq", "Reserved for local use" }, { "qgr", "Reserved for local use" }, { "qgs", "Reserved for local use" }, { "qgt", "Reserved for local use" }, { "qgu", "Reserved for local use" }, { "qgv", "Reserved for local use" }, { "qgw", "Reserved for local use" }, { "qgx", "Reserved for local use" }, { "qgy", "Reserved for local use" }, { "qgz", "Reserved for local use" }, { "qha", "Reserved for local use" }, { "qhb", "Reserved for local use" }, { "qhc", "Reserved for local use" }, { "qhd", "Reserved for local use" }, { "qhe", "Reserved for local use" }, { "qhf", "Reserved for local use" }, { "qhg", "Reserved for local use" }, { "qhh", "Reserved for local use" }, { "qhi", "Reserved for local use" }, { "qhj", "Reserved for local use" }, { "qhk", "Reserved for local use" }, { "qhl", "Reserved for local use" }, { "qhm", "Reserved for local use" }, { "qhn", "Reserved for local use" }, { "qho", "Reserved for local use" }, { "qhp", "Reserved for local use" }, { "qhq", "Reserved for local use" }, { "qhr", "Reserved for local use" }, { "qhs", "Reserved for local use" }, { "qht", "Reserved for local use" }, { "qhu", "Reserved for local use" }, { "qhv", "Reserved for local use" }, { "qhw", "Reserved for local use" }, { "qhx", "Reserved for local use" }, { "qhy", "Reserved for local use" }, { "qhz", "Reserved for local use" }, { "qia", "Reserved for local use" }, { "qib", "Reserved for local use" }, { "qic", "Reserved for local use" }, { "qid", "Reserved for local use" }, { "qie", "Reserved for local use" }, { "qif", "Reserved for local use" }, { "qig", "Reserved for local use" }, { "qih", "Reserved for local use" }, { "qii", "Reserved for local use" }, { "qij", "Reserved for local use" }, { "qik", "Reserved for local use" }, { "qil", "Reserved for local use" }, { "qim", "Reserved for local use" }, { "qin", "Reserved for local use" }, { "qio", "Reserved for local use" }, { "qip", "Reserved for local use" }, { "qiq", "Reserved for local use" }, { "qir", "Reserved for local use" }, { "qis", "Reserved for local use" }, { "qit", "Reserved for local use" }, { "qiu", "Reserved for local use" }, { "qiv", "Reserved for local use" }, { "qiw", "Reserved for local use" }, { "qix", "Reserved for local use" }, { "qiy", "Reserved for local use" }, { "qiz", "Reserved for local use" }, { "qja", "Reserved for local use" }, { "qjb", "Reserved for local use" }, { "qjc", "Reserved for local use" }, { "qjd", "Reserved for local use" }, { "qje", "Reserved for local use" }, { "qjf", "Reserved for local use" }, { "qjg", "Reserved for local use" }, { "qjh", "Reserved for local use" }, { "qji", "Reserved for local use" }, { "qjj", "Reserved for local use" }, { "qjk", "Reserved for local use" }, { "qjl", "Reserved for local use" }, { "qjm", "Reserved for local use" }, { "qjn", "Reserved for local use" }, { "qjo", "Reserved for local use" }, { "qjp", "Reserved for local use" }, { "qjq", "Reserved for local use" }, { "qjr", "Reserved for local use" }, { "qjs", "Reserved for local use" }, { "qjt", "Reserved for local use" }, { "qju", "Reserved for local use" }, { "qjv", "Reserved for local use" }, { "qjw", "Reserved for local use" }, { "qjx", "Reserved for local use" }, { "qjy", "Reserved for local use" }, { "qjz", "Reserved for local use" }, { "qka", "Reserved for local use" }, { "qkb", "Reserved for local use" }, { "qkc", "Reserved for local use" }, { "qkd", "Reserved for local use" }, { "qke", "Reserved for local use" }, { "qkf", "Reserved for local use" }, { "qkg", "Reserved for local use" }, { "qkh", "Reserved for local use" }, { "qki", "Reserved for local use" }, { "qkj", "Reserved for local use" }, { "qkk", "Reserved for local use" }, { "qkl", "Reserved for local use" }, { "qkm", "Reserved for local use" }, { "qkn", "Reserved for local use" }, { "qko", "Reserved for local use" }, { "qkp", "Reserved for local use" }, { "qkq", "Reserved for local use" }, { "qkr", "Reserved for local use" }, { "qks", "Reserved for local use" }, { "qkt", "Reserved for local use" }, { "qku", "Reserved for local use" }, { "qkv", "Reserved for local use" }, { "qkw", "Reserved for local use" }, { "qkx", "Reserved for local use" }, { "qky", "Reserved for local use" }, { "qkz", "Reserved for local use" }, { "qla", "Reserved for local use" }, { "qlb", "Reserved for local use" }, { "qlc", "Reserved for local use" }, { "qld", "Reserved for local use" }, { "qle", "Reserved for local use" }, { "qlf", "Reserved for local use" }, { "qlg", "Reserved for local use" }, { "qlh", "Reserved for local use" }, { "qli", "Reserved for local use" }, { "qlj", "Reserved for local use" }, { "qlk", "Reserved for local use" }, { "qll", "Reserved for local use" }, { "qlm", "Reserved for local use" }, { "qln", "Reserved for local use" }, { "qlo", "Reserved for local use" }, { "qlp", "Reserved for local use" }, { "qlq", "Reserved for local use" }, { "qlr", "Reserved for local use" }, { "qls", "Reserved for local use" }, { "qlt", "Reserved for local use" }, { "qlu", "Reserved for local use" }, { "qlv", "Reserved for local use" }, { "qlw", "Reserved for local use" }, { "qlx", "Reserved for local use" }, { "qly", "Reserved for local use" }, { "qlz", "Reserved for local use" }, { "qma", "Reserved for local use" }, { "qmb", "Reserved for local use" }, { "qmc", "Reserved for local use" }, { "qmd", "Reserved for local use" }, { "qme", "Reserved for local use" }, { "qmf", "Reserved for local use" }, { "qmg", "Reserved for local use" }, { "qmh", "Reserved for local use" }, { "qmi", "Reserved for local use" }, { "qmj", "Reserved for local use" }, { "qmk", "Reserved for local use" }, { "qml", "Reserved for local use" }, { "qmm", "Reserved for local use" }, { "qmn", "Reserved for local use" }, { "qmo", "Reserved for local use" }, { "qmp", "Reserved for local use" }, { "qmq", "Reserved for local use" }, { "qmr", "Reserved for local use" }, { "qms", "Reserved for local use" }, { "qmt", "Reserved for local use" }, { "qmu", "Reserved for local use" }, { "qmv", "Reserved for local use" }, { "qmw", "Reserved for local use" }, { "qmx", "Reserved for local use" }, { "qmy", "Reserved for local use" }, { "qmz", "Reserved for local use" }, { "qna", "Reserved for local use" }, { "qnb", "Reserved for local use" }, { "qnc", "Reserved for local use" }, { "qnd", "Reserved for local use" }, { "qne", "Reserved for local use" }, { "qnf", "Reserved for local use" }, { "qng", "Reserved for local use" }, { "qnh", "Reserved for local use" }, { "qni", "Reserved for local use" }, { "qnj", "Reserved for local use" }, { "qnk", "Reserved for local use" }, { "qnl", "Reserved for local use" }, { "qnm", "Reserved for local use" }, { "qnn", "Reserved for local use" }, { "qno", "Reserved for local use" }, { "qnp", "Reserved for local use" }, { "qnq", "Reserved for local use" }, { "qnr", "Reserved for local use" }, { "qns", "Reserved for local use" }, { "qnt", "Reserved for local use" }, { "qnu", "Reserved for local use" }, { "qnv", "Reserved for local use" }, { "qnw", "Reserved for local use" }, { "qnx", "Reserved for local use" }, { "qny", "Reserved for local use" }, { "qnz", "Reserved for local use" }, { "qoa", "Reserved for local use" }, { "qob", "Reserved for local use" }, { "qoc", "Reserved for local use" }, { "qod", "Reserved for local use" }, { "qoe", "Reserved for local use" }, { "qof", "Reserved for local use" }, { "qog", "Reserved for local use" }, { "qoh", "Reserved for local use" }, { "qoi", "Reserved for local use" }, { "qoj", "Reserved for local use" }, { "qok", "Reserved for local use" }, { "qol", "Reserved for local use" }, { "qom", "Reserved for local use" }, { "qon", "Reserved for local use" }, { "qoo", "Reserved for local use" }, { "qop", "Reserved for local use" }, { "qoq", "Reserved for local use" }, { "qor", "Reserved for local use" }, { "qos", "Reserved for local use" }, { "qot", "Reserved for local use" }, { "qou", "Reserved for local use" }, { "qov", "Reserved for local use" }, { "qow", "Reserved for local use" }, { "qox", "Reserved for local use" }, { "qoy", "Reserved for local use" }, { "qoz", "Reserved for local use" }, { "qpa", "Reserved for local use" }, { "qpb", "Reserved for local use" }, { "qpc", "Reserved for local use" }, { "qpd", "Reserved for local use" }, { "qpe", "Reserved for local use" }, { "qpf", "Reserved for local use" }, { "qpg", "Reserved for local use" }, { "qph", "Reserved for local use" }, { "qpi", "Reserved for local use" }, { "qpj", "Reserved for local use" }, { "qpk", "Reserved for local use" }, { "qpl", "Reserved for local use" }, { "qpm", "Reserved for local use" }, { "qpn", "Reserved for local use" }, { "qpo", "Reserved for local use" }, { "qpp", "Reserved for local use" }, { "qpq", "Reserved for local use" }, { "qpr", "Reserved for local use" }, { "qps", "Reserved for local use" }, { "qpt", "Reserved for local use" }, { "qpu", "Reserved for local use" }, { "qpv", "Reserved for local use" }, { "qpw", "Reserved for local use" }, { "qpx", "Reserved for local use" }, { "qpy", "Reserved for local use" }, { "qpz", "Reserved for local use" }, { "qqa", "Reserved for local use" }, { "qqb", "Reserved for local use" }, { "qqc", "Reserved for local use" }, { "qqd", "Reserved for local use" }, { "qqe", "Reserved for local use" }, { "qqf", "Reserved for local use" }, { "qqg", "Reserved for local use" }, { "qqh", "Reserved for local use" }, { "qqi", "Reserved for local use" }, { "qqj", "Reserved for local use" }, { "qqk", "Reserved for local use" }, { "qql", "Reserved for local use" }, { "qqm", "Reserved for local use" }, { "qqn", "Reserved for local use" }, { "qqo", "Reserved for local use" }, { "qqp", "Reserved for local use" }, { "qqq", "Reserved for local use" }, { "qqr", "Reserved for local use" }, { "qqs", "Reserved for local use" }, { "qqt", "Reserved for local use" }, { "qqu", "Reserved for local use" }, { "qqv", "Reserved for local use" }, { "qqw", "Reserved for local use" }, { "qqx", "Reserved for local use" }, { "qqy", "Reserved for local use" }, { "qqz", "Reserved for local use" }, { "qra", "Reserved for local use" }, { "qrb", "Reserved for local use" }, { "qrc", "Reserved for local use" }, { "qrd", "Reserved for local use" }, { "qre", "Reserved for local use" }, { "qrf", "Reserved for local use" }, { "qrg", "Reserved for local use" }, { "qrh", "Reserved for local use" }, { "qri", "Reserved for local use" }, { "qrj", "Reserved for local use" }, { "qrk", "Reserved for local use" }, { "qrl", "Reserved for local use" }, { "qrm", "Reserved for local use" }, { "qrn", "Reserved for local use" }, { "qro", "Reserved for local use" }, { "qrp", "Reserved for local use" }, { "qrq", "Reserved for local use" }, { "qrr", "Reserved for local use" }, { "qrs", "Reserved for local use" }, { "qrt", "Reserved for local use" }, { "qru", "Reserved for local use" }, { "qrv", "Reserved for local use" }, { "qrw", "Reserved for local use" }, { "qrx", "Reserved for local use" }, { "qry", "Reserved for local use" }, { "qrz", "Reserved for local use" }, { "qsa", "Reserved for local use" }, { "qsb", "Reserved for local use" }, { "qsc", "Reserved for local use" }, { "qsd", "Reserved for local use" }, { "qse", "Reserved for local use" }, { "qsf", "Reserved for local use" }, { "qsg", "Reserved for local use" }, { "qsh", "Reserved for local use" }, { "qsi", "Reserved for local use" }, { "qsj", "Reserved for local use" }, { "qsk", "Reserved for local use" }, { "qsl", "Reserved for local use" }, { "qsm", "Reserved for local use" }, { "qsn", "Reserved for local use" }, { "qso", "Reserved for local use" }, { "qsp", "Reserved for local use" }, { "qsq", "Reserved for local use" }, { "qsr", "Reserved for local use" }, { "qss", "Reserved for local use" }, { "qst", "Reserved for local use" }, { "qsu", "Reserved for local use" }, { "qsv", "Reserved for local use" }, { "qsw", "Reserved for local use" }, { "qsx", "Reserved for local use" }, { "qsy", "Reserved for local use" }, { "qsz", "Reserved for local use" }, { "qta", "Reserved for local use" }, { "qtb", "Reserved for local use" }, { "qtc", "Reserved for local use" }, { "qtd", "Reserved for local use" }, { "qte", "Reserved for local use" }, { "qtf", "Reserved for local use" }, { "qtg", "Reserved for local use" }, { "qth", "Reserved for local use" }, { "qti", "Reserved for local use" }, { "qtj", "Reserved for local use" }, { "qtk", "Reserved for local use" }, { "qtl", "Reserved for local use" }, { "qtm", "Reserved for local use" }, { "qtn", "Reserved for local use" }, { "qto", "Reserved for local use" }, { "qtp", "Reserved for local use" }, { "qtq", "Reserved for local use" }, { "qtr", "Reserved for local use" }, { "qts", "Reserved for local use" }, { "qtt", "Reserved for local use" }, { "qtu", "Reserved for local use" }, { "qtv", "Reserved for local use" }, { "qtw", "Reserved for local use" }, { "qtx", "Reserved for local use" }, { "qty", "Reserved for local use" }, { "qtz", "Reserved for local use" }, { "qua", "Quapaw" }, { "qub", "Huallaga Huánuco Quechua" }, { "quc", "K'iche'" }, { "qud", "Calderón Highland Quichua" }, { "que", "Quechua" }, { "quf", "Lambayeque Quechua" }, { "qug", "Chimborazo Highland Quichua" }, { "quh", "South Bolivian Quechua" }, { "qui", "Quileute" }, { "quk", "Chachapoyas Quechua" }, { "qul", "North Bolivian Quechua" }, { "qum", "Sipacapense" }, { "qun", "Quinault" }, { "qup", "Southern Pastaza Quechua" }, { "quq", "Quinqui" }, { "qur", "Yanahuanca Pasco Quechua" }, { "qus", "Santiago del Estero Quichua" }, { "quv", "Sacapulteco" }, { "quw", "Tena Lowland Quichua" }, { "qux", "Yauyos Quechua" }, { "quy", "Ayacucho Quechua" }, { "quz", "Cusco Quechua" }, { "qva", "Ambo-Pasco Quechua" }, { "qvc", "Cajamarca Quechua" }, { "qve", "Eastern Apurímac Quechua" }, { "qvh", "Huamalíes-Dos de Mayo Huánuco Quechua" }, { "qvi", "Imbabura Highland Quichua" }, { "qvj", "Loja Highland Quichua" }, { "qvl", "Cajatambo North Lima Quechua" }, { "qvm", "Margos-Yarowilca-Lauricocha Quechua" }, { "qvn", "North Junín Quechua" }, { "qvo", "Napo Lowland Quechua" }, { "qvp", "Pacaraos Quechua" }, { "qvs", "San Martín Quechua" }, { "qvw", "Huaylla Wanca Quechua" }, { "qvy", "Queyu" }, { "qvz", "Northern Pastaza Quichua" }, { "qwa", "Corongo Ancash Quechua" }, { "qwc", "Classical Quechua" }, { "qwh", "Huaylas Ancash Quechua" }, { "qwm", "Kuman (Russia)" }, { "qws", "Sihuas Ancash Quechua" }, { "qwt", "Kwalhioqua-Tlatskanai" }, { "qxa", "Chiquián Ancash Quechua" }, { "qxc", "Chincha Quechua" }, { "qxh", "Panao Huánuco Quechua" }, { "qxl", "Salasaca Highland Quichua" }, { "qxn", "Northern Conchucos Ancash Quechua" }, { "qxo", "Southern Conchucos Ancash Quechua" }, { "qxp", "Puno Quechua" }, { "qxq", "Qashqa'i" }, { "qxr", "Cañar Highland Quichua" }, { "qxs", "Southern Qiang" }, { "qxt", "Santa Ana de Tusi Pasco Quechua" }, { "qxu", "Arequipa-La Unión Quechua" }, { "qxw", "Jauja Wanca Quechua" }, { "qya", "Quenya" }, { "qyp", "Quiripi" }, { "raa", "Dungmali" }, { "rab", "Camling" }, { "rac", "Rasawa" }, { "rad", "Rade" }, { "raf", "Western Meohang" }, { "rag", "Logooli" }, { "rah", "Rabha" }, { "rai", "Ramoaaina" }, { "raj", "Rajasthani" }, { "rak", "Tulu-Bohuai" }, { "ral", "Ralte" }, { "ram", "Canela" }, { "ran", "Riantana" }, { "rao", "Rao" }, { "rap", "Rapanui" }, { "raq", "Saam" }, { "rar", "Rarotongan" }, { "ras", "Tegali" }, { "rat", "Razajerdi" }, { "rau", "Raute" }, { "rav", "Sampang" }, { "raw", "Rawang" }, { "rax", "Rang" }, { "ray", "Rapa" }, { "raz", "Rahambuu" }, { "rbb", "Rumai Palaung" }, { "rbk", "Northern Bontok" }, { "rbl", "Miraya Bikol" }, { "rbp", "Barababaraba" }, { "rcf", "Réunion Creole French" }, { "rdb", "Rudbari" }, { "rea", "Rerau" }, { "reb", "Rembong" }, { "ree", "Rejang Kayan" }, { "reg", "Kara (Tanzania)" }, { "rei", "Reli" }, { "rej", "Rejang" }, { "rel", "Rendille" }, { "rem", "Remo" }, { "ren", "Rengao" }, { "rer", "Rer Bare" }, { "res", "Reshe" }, { "ret", "Retta" }, { "rey", "Reyesano" }, { "rga", "Roria" }, { "rge", "Romano-Greek" }, { "rgk", "Rangkas" }, { "rgn", "Romagnol" }, { "rgr", "Resígaro" }, { "rgs", "Southern Roglai" }, { "rgu", "Ringgou" }, { "rhg", "Rohingya" }, { "rhp", "Yahang" }, { "ria", "Riang (India)" }, { "rie", "Rien" }, { "rif", "Tarifit" }, { "ril", "Riang (Myanmar)" }, { "rim", "Nyaturu" }, { "rin", "Nungu" }, { "rir", "Ribun" }, { "rit", "Ritarungo" }, { "riu", "Riung" }, { "rjg", "Rajong" }, { "rji", "Raji" }, { "rjs", "Rajbanshi" }, { "rka", "Kraol" }, { "rkb", "Rikbaktsa" }, { "rkh", "Rakahanga-Manihiki" }, { "rki", "Rakhine" }, { "rkm", "Marka" }, { "rkt", "Rangpuri" }, { "rkw", "Arakwal" }, { "rma", "Rama" }, { "rmb", "Rembarunga" }, { "rmc", "Carpathian Romani" }, { "rmd", "Traveller Danish" }, { "rme", "Angloromani" }, { "rmf", "Kalo Finnish Romani" }, { "rmg", "Traveller Norwegian" }, { "rmh", "Murkim" }, { "rmi", "Lomavren" }, { "rmk", "Romkun" }, { "rml", "Baltic Romani" }, { "rmm", "Roma" }, { "rmn", "Balkan Romani" }, { "rmo", "Sinte Romani" }, { "rmp", "Rempi" }, { "rmq", "Caló" }, { "rms", "Romanian Sign Language" }, { "rmt", "Domari" }, { "rmu", "Tavringer Romani" }, { "rmv", "Romanova" }, { "rmw", "Welsh Romani" }, { "rmx", "Romam" }, { "rmy", "Vlax Romani" }, { "rmz", "Marma" }, { "rna", "Runa" }, { "rnd", "Ruund" }, { "rng", "Ronga" }, { "rnl", "Ranglong" }, { "rnn", "Roon" }, { "rnp", "Rongpo" }, { "rnr", "Nari Nari" }, { "rnw", "Rungwa" }, { "rob", "Tae'" }, { "roc", "Cacgia Roglai" }, { "rod", "Rogo" }, { "roe", "Ronji" }, { "rof", "Rombo" }, { "rog", "Northern Roglai" }, { "roh", "Romansh" }, { "rol", "Romblomanon" }, { "rom", "Romany" }, { "ron", "Romanian" }, { "roo", "Rotokas" }, { "rop", "Kriol" }, { "ror", "Rongga" }, { "rou", "Runga" }, { "row", "Dela-Oenale" }, { "rpn", "Repanbitip" }, { "rpt", "Rapting" }, { "rri", "Ririo" }, { "rro", "Waima" }, { "rrt", "Arritinngithigh" }, { "rsb", "Romano-Serbian" }, { "rsi", "Rennellese Sign Language" }, { "rsl", "Russian Sign Language" }, { "rtc", "Rungtu Chin" }, { "rth", "Ratahan" }, { "rtm", "Rotuman" }, { "rtw", "Rathawi" }, { "rub", "Gungu" }, { "ruc", "Ruuli" }, { "rue", "Rusyn" }, { "ruf", "Luguru" }, { "rug", "Roviana" }, { "ruh", "Ruga" }, { "rui", "Rufiji" }, { "ruk", "Che" }, { "run", "Rundi" }, { "ruo", "Istro Romanian" }, { "rup", "Macedo-Romanian" }, { "ruq", "Megleno Romanian" }, { "rus", "Russian" }, { "rut", "Rutul" }, { "ruu", "Lanas Lobu" }, { "ruy", "Mala (Nigeria)" }, { "ruz", "Ruma" }, { "rwa", "Rawo" }, { "rwk", "Rwa" }, { "rwm", "Amba (Uganda)" }, { "rwo", "Rawa" }, { "rwr", "Marwari (India)" }, { "rxd", "Ngardi" }, { "rxw", "Karuwali" }, { "ryn", "Northern Amami-Oshima" }, { "rys", "Yaeyama" }, { "ryu", "Central Okinawan" }, { "saa", "Saba" }, { "sab", "Buglere" }, { "sac", "Meskwaki" }, { "sad", "Sandawe" }, { "sae", "Sabanê" }, { "saf", "Safaliba" }, { "sag", "Sango" }, { "sah", "Yakut" }, { "saj", "Sahu" }, { "sak", "Sake" }, { "sam", "Samaritan Aramaic" }, { "san", "Sanskrit" }, { "sao", "Sause" }, { "sap", "Sanapaná" }, { "saq", "Samburu" }, { "sar", "Saraveca" }, { "sas", "Sasak" }, { "sat", "Santali" }, { "sau", "Saleman" }, { "sav", "Saafi-Saafi" }, { "saw", "Sawi" }, { "sax", "Sa" }, { "say", "Saya" }, { "saz", "Saurashtra" }, { "sba", "Ngambay" }, { "sbb", "Simbo" }, { "sbc", "Kele (Papua New Guinea)" }, { "sbd", "Southern Samo" }, { "sbe", "Saliba" }, { "sbf", "Shabo" }, { "sbg", "Seget" }, { "sbh", "Sori-Harengan" }, { "sbi", "Seti" }, { "sbj", "Surbakhal" }, { "sbk", "Safwa" }, { "sbl", "Botolan Sambal" }, { "sbm", "Sagala" }, { "sbn", "Sindhi Bhil" }, { "sbo", "Sabüm" }, { "sbp", "Sangu (Tanzania)" }, { "sbq", "Sileibi" }, { "sbr", "Sembakung Murut" }, { "sbs", "Subiya" }, { "sbt", "Kimki" }, { "sbu", "Stod Bhoti" }, { "sbv", "Sabine" }, { "sbw", "Simba" }, { "sbx", "Seberuang" }, { "sby", "Soli" }, { "sbz", "Sara Kaba" }, { "scb", "Chut" }, { "sce", "Dongxiang" }, { "scf", "San Miguel Creole French" }, { "scg", "Sanggau" }, { "sch", "Sakachep" }, { "sci", "Sri Lankan Creole Malay" }, { "sck", "Sadri" }, { "scl", "Shina" }, { "scn", "Sicilian" }, { "sco", "Scots" }, { "scp", "Helambu Sherpa" }, { "scq", "Sa'och" }, { "scs", "North Slavey" }, { "scu", "Shumcho" }, { "scv", "Sheni" }, { "scw", "Sha" }, { "scx", "Sicel" }, { "sda", "Toraja-Sa'dan" }, { "sdb", "Shabak" }, { "sdc", "Sassarese Sardinian" }, { "sde", "Surubu" }, { "sdf", "Sarli" }, { "sdg", "Savi" }, { "sdh", "Southern Kurdish" }, { "sdj", "Suundi" }, { "sdk", "Sos Kundi" }, { "sdl", "Saudi Arabian Sign Language" }, { "sdm", "Semandang" }, { "sdn", "Gallurese Sardinian" }, { "sdo", "Bukar-Sadung Bidayuh" }, { "sdp", "Sherdukpen" }, { "sdr", "Oraon Sadri" }, { "sds", "Sened" }, { "sdt", "Shuadit" }, { "sdu", "Sarudu" }, { "sdx", "Sibu Melanau" }, { "sdz", "Sallands" }, { "sea", "Semai" }, { "seb", "Shempire Senoufo" }, { "sec", "Sechelt" }, { "sed", "Sedang" }, { "see", "Seneca" }, { "sef", "Cebaara Senoufo" }, { "seg", "Segeju" }, { "seh", "Sena" }, { "sei", "Seri" }, { "sej", "Sene" }, { "sek", "Sekani" }, { "sel", "Selkup" }, { "sen", "Nanerigé Sénoufo" }, { "seo", "Suarmin" }, { "sep", "Sìcìté Sénoufo" }, { "seq", "Senara Sénoufo" }, { "ser", "Serrano" }, { "ses", "Koyraboro Senni Songhai" }, { "set", "Sentani" }, { "seu", "Serui-Laut" }, { "sev", "Nyarafolo Senoufo" }, { "sew", "Sewa Bay" }, { "sey", "Secoya" }, { "sez", "Senthang Chin" }, { "sfb", "Langue des signes de Belgique Francophone" }, { "sfe", "Eastern Subanen" }, { "sfm", "Small Flowery Miao" }, { "sfs", "South African Sign Language" }, { "sfw", "Sehwi" }, { "sga", "Old Irish (to 900)" }, { "sgb", "Mag-antsi Ayta" }, { "sgc", "Kipsigis" }, { "sgd", "Surigaonon" }, { "sge", "Segai" }, { "sgg", "Swiss-German Sign Language" }, { "sgh", "Shughni" }, { "sgi", "Suga" }, { "sgj", "Surgujia" }, { "sgk", "Sangkong" }, { "sgm", "Singa" }, { "sgo", "Songa" }, { "sgp", "Singpho" }, { "sgr", "Sangisari" }, { "sgs", "Samogitian" }, { "sgt", "Brokpake" }, { "sgu", "Salas" }, { "sgw", "Sebat Bet Gurage" }, { "sgx", "Sierra Leone Sign Language" }, { "sgy", "Sanglechi" }, { "sgz", "Sursurunga" }, { "sha", "Shall-Zwall" }, { "shb", "Ninam" }, { "shc", "Sonde" }, { "shd", "Kundal Shahi" }, { "she", "Sheko" }, { "shg", "Shua" }, { "shh", "Shoshoni" }, { "shi", "Tachelhit" }, { "shj", "Shatt" }, { "shk", "Shilluk" }, { "shl", "Shendu" }, { "shm", "Shahrudi" }, { "shn", "Shan" }, { "sho", "Shanga" }, { "shp", "Shipibo-Conibo" }, { "shq", "Sala" }, { "shr", "Shi" }, { "shs", "Shuswap" }, { "sht", "Shasta" }, { "shu", "Chadian Arabic" }, { "shv", "Shehri" }, { "shw", "Shwai" }, { "shx", "She" }, { "shy", "Tachawit" }, { "shz", "Syenara Senoufo" }, { "sia", "Akkala Sami" }, { "sib", "Sebop" }, { "sid", "Sidamo" }, { "sie", "Simaa" }, { "sif", "Siamou" }, { "sig", "Paasaal" }, { "sih", "Zire" }, { "sii", "Shom Peng" }, { "sij", "Numbami" }, { "sik", "Sikiana" }, { "sil", "Tumulung Sisaala" }, { "sim", "Mende (Papua New Guinea)" }, { "sin", "Sinhala" }, { "sip", "Sikkimese" }, { "siq", "Sonia" }, { "sir", "Siri" }, { "sis", "Siuslaw" }, { "siu", "Sinagen" }, { "siv", "Sumariup" }, { "siw", "Siwai" }, { "six", "Sumau" }, { "siy", "Sivandi" }, { "siz", "Siwi" }, { "sja", "Epena" }, { "sjb", "Sajau Basap" }, { "sjd", "Kildin Sami" }, { "sje", "Pite Sami" }, { "sjg", "Assangori" }, { "sjk", "Kemi Sami" }, { "sjl", "Sajalong" }, { "sjm", "Mapun" }, { "sjn", "Sindarin" }, { "sjo", "Xibe" }, { "sjp", "Surjapuri" }, { "sjr", "Siar-Lak" }, { "sjs", "Senhaja De Srair" }, { "sjt", "Ter Sami" }, { "sju", "Ume Sami" }, { "sjw", "Shawnee" }, { "ska", "Skagit" }, { "skb", "Saek" }, { "skc", "Ma Manda" }, { "skd", "Southern Sierra Miwok" }, { "ske", "Seke (Vanuatu)" }, { "skf", "Sakirabiá" }, { "skg", "Sakalava Malagasy" }, { "skh", "Sikule" }, { "ski", "Sika" }, { "skj", "Seke (Nepal)" }, { "skk", "Sok" }, { "skm", "Kutong" }, { "skn", "Kolibugan Subanon" }, { "sko", "Seko Tengah" }, { "skp", "Sekapan" }, { "skq", "Sininkere" }, { "skr", "Seraiki" }, { "sks", "Maia" }, { "skt", "Sakata" }, { "sku", "Sakao" }, { "skv", "Skou" }, { "skw", "Skepi Creole Dutch" }, { "skx", "Seko Padang" }, { "sky", "Sikaiana" }, { "skz", "Sekar" }, { "slc", "Sáliba" }, { "sld", "Sissala" }, { "sle", "Sholaga" }, { "slf", "Swiss-Italian Sign Language" }, { "slg", "Selungai Murut" }, { "slh", "Southern Puget Sound Salish" }, { "sli", "Lower Silesian" }, { "slj", "Salumá" }, { "slk", "Slovak" }, { "sll", "Salt-Yui" }, { "slm", "Pangutaran Sama" }, { "sln", "Salinan" }, { "slp", "Lamaholot" }, { "slq", "Salchuq" }, { "slr", "Salar" }, { "sls", "Singapore Sign Language" }, { "slt", "Sila" }, { "slu", "Selaru" }, { "slv", "Slovenian" }, { "slw", "Sialum" }, { "slx", "Salampasu" }, { "sly", "Selayar" }, { "slz", "Ma'ya" }, { "sma", "Southern Sami" }, { "smb", "Simbari" }, { "smc", "Som" }, { "smd", "Sama" }, { "sme", "Northern Sami" }, { "smf", "Auwe" }, { "smg", "Simbali" }, { "smh", "Samei" }, { "smj", "Lule Sami" }, { "smk", "Bolinao" }, { "sml", "Central Sama" }, { "smm", "Musasa" }, { "smn", "Inari Sami" }, { "smo", "Samoan" }, { "smp", "Samaritan" }, { "smq", "Samo" }, { "smr", "Simeulue" }, { "sms", "Skolt Sami" }, { "smt", "Simte" }, { "smu", "Somray" }, { "smv", "Samvedi" }, { "smw", "Sumbawa" }, { "smx", "Samba" }, { "smy", "Semnani" }, { "smz", "Simeku" }, { "sna", "Shona" }, { "snb", "Sebuyau" }, { "snc", "Sinaugoro" }, { "snd", "Sindhi" }, { "sne", "Bau Bidayuh" }, { "snf", "Noon" }, { "sng", "Sanga (Democratic Republic of Congo)" }, { "snh", "Shinabo" }, { "sni", "Sensi" }, { "snj", "Riverain Sango" }, { "snk", "Soninke" }, { "snl", "Sangil" }, { "snm", "Southern Ma'di" }, { "snn", "Siona" }, { "sno", "Snohomish" }, { "snp", "Siane" }, { "snq", "Sangu (Gabon)" }, { "snr", "Sihan" }, { "sns", "South West Bay" }, { "snu", "Senggi" }, { "snv", "Sa'ban" }, { "snw", "Selee" }, { "snx", "Sam" }, { "sny", "Saniyo-Hiyewe" }, { "snz", "Sinsauru" }, { "soa", "Thai Song" }, { "sob", "Sobei" }, { "soc", "So (Democratic Republic of Congo)" }, { "sod", "Songoora" }, { "soe", "Songomeno" }, { "sog", "Sogdian" }, { "soh", "Aka" }, { "soi", "Sonha" }, { "soj", "Soi" }, { "sok", "Sokoro" }, { "sol", "Solos" }, { "som", "Somali" }, { "soo", "Songo" }, { "sop", "Songe" }, { "soq", "Kanasi" }, { "sor", "Somrai" }, { "sos", "Seeku" }, { "sot", "Southern Sotho" }, { "sou", "Southern Thai" }, { "sov", "Sonsorol" }, { "sow", "Sowanda" }, { "sox", "Swo" }, { "soy", "Miyobe" }, { "soz", "Temi" }, { "spa", "Spanish" }, { "spb", "Sepa (Indonesia)" }, { "spc", "Sapé" }, { "spd", "Saep" }, { "spe", "Sepa (Papua New Guinea)" }, { "spg", "Sian" }, { "spi", "Saponi" }, { "spk", "Sengo" }, { "spl", "Selepet" }, { "spm", "Akukem" }, { "spo", "Spokane" }, { "spp", "Supyire Senoufo" }, { "spq", "Loreto-Ucayali Spanish" }, { "spr", "Saparua" }, { "sps", "Saposa" }, { "spt", "Spiti Bhoti" }, { "spu", "Sapuan" }, { "spv", "Sambalpuri" }, { "spx", "South Picene" }, { "spy", "Sabaot" }, { "sqa", "Shama-Sambuga" }, { "sqh", "Shau" }, { "sqi", "Albanian" }, { "sqk", "Albanian Sign Language" }, { "sqm", "Suma" }, { "sqn", "Susquehannock" }, { "sqo", "Sorkhei" }, { "sqq", "Sou" }, { "sqr", "Siculo Arabic" }, { "sqs", "Sri Lankan Sign Language" }, { "sqt", "Soqotri" }, { "squ", "Squamish" }, { "sra", "Saruga" }, { "srb", "Sora" }, { "src", "Logudorese Sardinian" }, { "srd", "Sardinian" }, { "sre", "Sara" }, { "srf", "Nafi" }, { "srg", "Sulod" }, { "srh", "Sarikoli" }, { "sri", "Siriano" }, { "srk", "Serudung Murut" }, { "srl", "Isirawa" }, { "srm", "Saramaccan" }, { "srn", "Sranan Tongo" }, { "sro", "Campidanese Sardinian" }, { "srp", "Serbian" }, { "srq", "Sirionó" }, { "srr", "Serer" }, { "srs", "Sarsi" }, { "srt", "Sauri" }, { "sru", "Suruí" }, { "srv", "Southern Sorsoganon" }, { "srw", "Serua" }, { "srx", "Sirmauri" }, { "sry", "Sera" }, { "srz", "Shahmirzadi" }, { "ssb", "Southern Sama" }, { "ssc", "Suba-Simbiti" }, { "ssd", "Siroi" }, { "sse", "Balangingi" }, { "ssf", "Thao" }, { "ssg", "Seimat" }, { "ssh", "Shihhi Arabic" }, { "ssi", "Sansi" }, { "ssj", "Sausi" }, { "ssk", "Sunam" }, { "ssl", "Western Sisaala" }, { "ssm", "Semnam" }, { "ssn", "Waata" }, { "sso", "Sissano" }, { "ssp", "Spanish Sign Language" }, { "ssq", "So'a" }, { "ssr", "Swiss-French Sign Language" }, { "sss", "Sô" }, { "sst", "Sinasina" }, { "ssu", "Susuami" }, { "ssv", "Shark Bay" }, { "ssw", "Swati" }, { "ssx", "Samberigi" }, { "ssy", "Saho" }, { "ssz", "Sengseng" }, { "sta", "Settla" }, { "stb", "Northern Subanen" }, { "std", "Sentinel" }, { "ste", "Liana-Seti" }, { "stf", "Seta" }, { "stg", "Trieng" }, { "sth", "Shelta" }, { "sti", "Bulo Stieng" }, { "stj", "Matya Samo" }, { "stk", "Arammba" }, { "stl", "Stellingwerfs" }, { "stm", "Setaman" }, { "stn", "Owa" }, { "sto", "Stoney" }, { "stp", "Southeastern Tepehuan" }, { "stq", "Saterfriesisch" }, { "str", "Straits Salish" }, { "sts", "Shumashti" }, { "stt", "Budeh Stieng" }, { "stu", "Samtao" }, { "stv", "Silt'e" }, { "stw", "Satawalese" }, { "sty", "Siberian Tatar" }, { "sua", "Sulka" }, { "sub", "Suku" }, { "suc", "Western Subanon" }, { "sue", "Suena" }, { "sug", "Suganga" }, { "sui", "Suki" }, { "suj", "Shubi" }, { "suk", "Sukuma" }, { "sun", "Sundanese" }, { "suq", "Suri" }, { "sur", "Mwaghavul" }, { "sus", "Susu" }, { "sut", "Subtiaba" }, { "suv", "Puroik" }, { "suw", "Sumbwa" }, { "sux", "Sumerian" }, { "suy", "Suyá" }, { "suz", "Sunwar" }, { "sva", "Svan" }, { "svb", "Ulau-Suain" }, { "svc", "Vincentian Creole English" }, { "sve", "Serili" }, { "svk", "Slovakian Sign Language" }, { "svm", "Slavomolisano" }, { "svr", "Savara" }, { "svs", "Savosavo" }, { "svx", "Skalvian" }, { "swa", "Swahili (macrolanguage)" }, { "swb", "Maore Comorian" }, { "swc", "Congo Swahili" }, { "swe", "Swedish" }, { "swf", "Sere" }, { "swg", "Swabian" }, { "swh", "Swahili (individual language)" }, { "swi", "Sui" }, { "swj", "Sira" }, { "swk", "Malawi Sena" }, { "swl", "Swedish Sign Language" }, { "swm", "Samosa" }, { "swn", "Sawknah" }, { "swo", "Shanenawa" }, { "swp", "Suau" }, { "swq", "Sharwa" }, { "swr", "Saweru" }, { "sws", "Seluwasan" }, { "swt", "Sawila" }, { "swu", "Suwawa" }, { "swv", "Shekhawati" }, { "sww", "Sowa" }, { "swx", "Suruahá" }, { "swy", "Sarua" }, { "sxb", "Suba" }, { "sxc", "Sicanian" }, { "sxe", "Sighu" }, { "sxg", "Shixing" }, { "sxk", "Southern Kalapuya" }, { "sxl", "Selian" }, { "sxm", "Samre" }, { "sxn", "Sangir" }, { "sxo", "Sorothaptic" }, { "sxr", "Saaroa" }, { "sxs", "Sasaru" }, { "sxu", "Upper Saxon" }, { "sxw", "Saxwe Gbe" }, { "sya", "Siang" }, { "syb", "Central Subanen" }, { "syc", "Classical Syriac" }, { "syi", "Seki" }, { "syk", "Sukur" }, { "syl", "Sylheti" }, { "sym", "Maya Samo" }, { "syn", "Senaya" }, { "syo", "Suoy" }, { "syr", "Syriac" }, { "sys", "Sinyar" }, { "syw", "Kagate" }, { "syy", "Al-Sayyid Bedouin Sign Language" }, { "sza", "Semelai" }, { "szb", "Ngalum" }, { "szc", "Semaq Beri" }, { "szd", "Seru" }, { "sze", "Seze" }, { "szg", "Sengele" }, { "szl", "Silesian" }, { "szn", "Sula" }, { "szp", "Suabo" }, { "szv", "Isu (Fako Division)" }, { "szw", "Sawai" }, { "taa", "Lower Tanana" }, { "tab", "Tabassaran" }, { "tac", "Lowland Tarahumara" }, { "tad", "Tause" }, { "tae", "Tariana" }, { "taf", "Tapirapé" }, { "tag", "Tagoi" }, { "tah", "Tahitian" }, { "taj", "Eastern Tamang" }, { "tak", "Tala" }, { "tal", "Tal" }, { "tam", "Tamil" }, { "tan", "Tangale" }, { "tao", "Yami" }, { "tap", "Taabwa" }, { "taq", "Tamasheq" }, { "tar", "Central Tarahumara" }, { "tas", "Tay Boi" }, { "tat", "Tatar" }, { "tau", "Upper Tanana" }, { "tav", "Tatuyo" }, { "taw", "Tai" }, { "tax", "Tamki" }, { "tay", "Atayal" }, { "taz", "Tocho" }, { "tba", "Aikanã" }, { "tbb", "Tapeba" }, { "tbc", "Takia" }, { "tbd", "Kaki Ae" }, { "tbe", "Tanimbili" }, { "tbf", "Mandara" }, { "tbg", "North Tairora" }, { "tbh", "Thurawal" }, { "tbi", "Gaam" }, { "tbj", "Tiang" }, { "tbk", "Calamian Tagbanwa" }, { "tbl", "Tboli" }, { "tbm", "Tagbu" }, { "tbn", "Barro Negro Tunebo" }, { "tbo", "Tawala" }, { "tbp", "Taworta" }, { "tbr", "Tumtum" }, { "tbs", "Tanguat" }, { "tbt", "Tembo (Kitembo)" }, { "tbu", "Tubar" }, { "tbv", "Tobo" }, { "tbw", "Tagbanwa" }, { "tbx", "Kapin" }, { "tby", "Tabaru" }, { "tbz", "Ditammari" }, { "tca", "Ticuna" }, { "tcb", "Tanacross" }, { "tcc", "Datooga" }, { "tcd", "Tafi" }, { "tce", "Southern Tutchone" }, { "tcf", "Malinaltepec Me'phaa" }, { "tcg", "Tamagario" }, { "tch", "Turks And Caicos Creole English" }, { "tci", "Wára" }, { "tck", "Tchitchege" }, { "tcl", "Taman (Myanmar)" }, { "tcm", "Tanahmerah" }, { "tcn", "Tichurong" }, { "tco", "Taungyo" }, { "tcp", "Tawr Chin" }, { "tcq", "Kaiy" }, { "tcs", "Torres Strait Creole" }, { "tct", "T'en" }, { "tcu", "Southeastern Tarahumara" }, { "tcw", "Tecpatlán Totonac" }, { "tcx", "Toda" }, { "tcy", "Tulu" }, { "tcz", "Thado Chin" }, { "tda", "Tagdal" }, { "tdb", "Panchpargania" }, { "tdc", "Emberá-Tadó" }, { "tdd", "Tai Nüa" }, { "tde", "Tiranige Diga Dogon" }, { "tdf", "Talieng" }, { "tdg", "Western Tamang" }, { "tdh", "Thulung" }, { "tdi", "Tomadino" }, { "tdj", "Tajio" }, { "tdk", "Tambas" }, { "tdl", "Sur" }, { "tdn", "Tondano" }, { "tdo", "Teme" }, { "tdq", "Tita" }, { "tdr", "Todrah" }, { "tds", "Doutai" }, { "tdt", "Tetun Dili" }, { "tdu", "Tempasuk Dusun" }, { "tdv", "Toro" }, { "tdx", "Tandroy-Mahafaly Malagasy" }, { "tdy", "Tadyawan" }, { "tea", "Temiar" }, { "teb", "Tetete" }, { "tec", "Terik" }, { "ted", "Tepo Krumen" }, { "tee", "Huehuetla Tepehua" }, { "tef", "Teressa" }, { "teg", "Teke-Tege" }, { "teh", "Tehuelche" }, { "tei", "Torricelli" }, { "tek", "Ibali Teke" }, { "tel", "Telugu" }, { "tem", "Timne" }, { "ten", "Tama (Colombia)" }, { "teo", "Teso" }, { "tep", "Tepecano" }, { "teq", "Temein" }, { "ter", "Tereno" }, { "tes", "Tengger" }, { "tet", "Tetum" }, { "teu", "Soo" }, { "tev", "Teor" }, { "tew", "Tewa (USA)" }, { "tex", "Tennet" }, { "tey", "Tulishi" }, { "tfi", "Tofin Gbe" }, { "tfn", "Tanaina" }, { "tfo", "Tefaro" }, { "tfr", "Teribe" }, { "tft", "Ternate" }, { "tga", "Sagalla" }, { "tgb", "Tobilung" }, { "tgc", "Tigak" }, { "tgd", "Ciwogai" }, { "tge", "Eastern Gorkha Tamang" }, { "tgf", "Chalikha" }, { "tgh", "Tobagonian Creole English" }, { "tgi", "Lawunuia" }, { "tgj", "Tagin" }, { "tgk", "Tajik" }, { "tgl", "Tagalog" }, { "tgn", "Tandaganon" }, { "tgo", "Sudest" }, { "tgp", "Tangoa" }, { "tgq", "Tring" }, { "tgr", "Tareng" }, { "tgs", "Nume" }, { "tgt", "Central Tagbanwa" }, { "tgu", "Tanggu" }, { "tgv", "Tingui-Boto" }, { "tgw", "Tagwana Senoufo" }, { "tgx", "Tagish" }, { "tgy", "Togoyo" }, { "tgz", "Tagalaka" }, { "tha", "Thai" }, { "thc", "Tai Hang Tong" }, { "thd", "Thayore" }, { "the", "Chitwania Tharu" }, { "thf", "Thangmi" }, { "thh", "Northern Tarahumara" }, { "thi", "Tai Long" }, { "thk", "Tharaka" }, { "thl", "Dangaura Tharu" }, { "thm", "Aheu" }, { "thn", "Thachanadan" }, { "thp", "Thompson" }, { "thq", "Kochila Tharu" }, { "thr", "Rana Tharu" }, { "ths", "Thakali" }, { "tht", "Tahltan" }, { "thu", "Thuri" }, { "thv", "Tahaggart Tamahaq" }, { "thw", "Thudam" }, { "thx", "The" }, { "thy", "Tha" }, { "thz", "Tayart Tamajeq" }, { "tia", "Tidikelt Tamazight" }, { "tic", "Tira" }, { "tid", "Tidong" }, { "tif", "Tifal" }, { "tig", "Tigre" }, { "tih", "Timugon Murut" }, { "tii", "Tiene" }, { "tij", "Tilung" }, { "tik", "Tikar" }, { "til", "Tillamook" }, { "tim", "Timbe" }, { "tin", "Tindi" }, { "tio", "Teop" }, { "tip", "Trimuris" }, { "tiq", "Tiéfo" }, { "tir", "Tigrinya" }, { "tis", "Masadiit Itneg" }, { "tit", "Tinigua" }, { "tiu", "Adasen" }, { "tiv", "Tiv" }, { "tiw", "Tiwi" }, { "tix", "Southern Tiwa" }, { "tiy", "Tiruray" }, { "tiz", "Tai Hongjin" }, { "tja", "Tajuasohn" }, { "tjg", "Tunjung" }, { "tji", "Northern Tujia" }, { "tjl", "Tai Laing" }, { "tjm", "Timucua" }, { "tjn", "Tonjon" }, { "tjo", "Temacine Tamazight" }, { "tjs", "Southern Tujia" }, { "tju", "Tjurruru" }, { "tjw", "Djabwurrung" }, { "tka", "Truká" }, { "tkb", "Buksa" }, { "tkd", "Tukudede" }, { "tke", "Takwane" }, { "tkf", "Tukumanféd" }, { "tkg", "Tesaka Malagasy" }, { "tkl", "Tokelau" }, { "tkm", "Takelma" }, { "tkn", "Toku-No-Shima" }, { "tkp", "Tikopia" }, { "tkq", "Tee" }, { "tkr", "Tsakhur" }, { "tks", "Takestani" }, { "tkt", "Kathoriya Tharu" }, { "tku", "Upper Necaxa Totonac" }, { "tkw", "Teanu" }, { "tkx", "Tangko" }, { "tkz", "Takua" }, { "tla", "Southwestern Tepehuan" }, { "tlb", "Tobelo" }, { "tlc", "Yecuatla Totonac" }, { "tld", "Talaud" }, { "tlf", "Telefol" }, { "tlg", "Tofanma" }, { "tlh", "Klingon" }, { "tli", "Tlingit" }, { "tlj", "Talinga-Bwisi" }, { "tlk", "Taloki" }, { "tll", "Tetela" }, { "tlm", "Tolomako" }, { "tln", "Talondo'" }, { "tlo", "Talodi" }, { "tlp", "Filomena Mata-Coahuitlán Totonac" }, { "tlq", "Tai Loi" }, { "tlr", "Talise" }, { "tls", "Tambotalo" }, { "tlt", "Teluti" }, { "tlu", "Tulehu" }, { "tlv", "Taliabu" }, { "tlx", "Khehek" }, { "tly", "Talysh" }, { "tma", "Tama (Chad)" }, { "tmb", "Katbol" }, { "tmc", "Tumak" }, { "tmd", "Haruai" }, { "tme", "Tremembé" }, { "tmf", "Toba-Maskoy" }, { "tmg", "Ternateño" }, { "tmh", "Tamashek" }, { "tmi", "Tutuba" }, { "tmj", "Samarokena" }, { "tmk", "Northwestern Tamang" }, { "tml", "Tamnim Citak" }, { "tmm", "Tai Thanh" }, { "tmn", "Taman (Indonesia)" }, { "tmo", "Temoq" }, { "tmp", "Tai Mène" }, { "tmq", "Tumleo" }, { "tmr", "Jewish Babylonian Aramaic (ca. 200-1200 CE)" }, { "tms", "Tima" }, { "tmt", "Tasmate" }, { "tmu", "Iau" }, { "tmv", "Tembo (Motembo)" }, { "tmw", "Temuan" }, { "tmy", "Tami" }, { "tmz", "Tamanaku" }, { "tna", "Tacana" }, { "tnb", "Western Tunebo" }, { "tnc", "Tanimuca-Retuarã" }, { "tnd", "Angosturas Tunebo" }, { "tne", "Tinoc Kallahan" }, { "tng", "Tobanga" }, { "tnh", "Maiani" }, { "tni", "Tandia" }, { "tnk", "Kwamera" }, { "tnl", "Lenakel" }, { "tnm", "Tabla" }, { "tnn", "North Tanna" }, { "tno", "Toromono" }, { "tnp", "Whitesands" }, { "tnq", "Taino" }, { "tnr", "Ménik" }, { "tns", "Tenis" }, { "tnt", "Tontemboan" }, { "tnu", "Tay Khang" }, { "tnv", "Tangchangya" }, { "tnw", "Tonsawang" }, { "tnx", "Tanema" }, { "tny", "Tongwe" }, { "tnz", "Tonga (Thailand)" }, { "tob", "Toba" }, { "toc", "Coyutla Totonac" }, { "tod", "Toma" }, { "toe", "Tomedes" }, { "tof", "Gizrra" }, { "tog", "Tonga (Nyasa)" }, { "toh", "Gitonga" }, { "toi", "Tonga (Zambia)" }, { "toj", "Tojolabal" }, { "tol", "Tolowa" }, { "tom", "Tombulu" }, { "ton", "Tonga (Tonga Islands)" }, { "too", "Xicotepec De Juárez Totonac" }, { "top", "Papantla Totonac" }, { "toq", "Toposa" }, { "tor", "Togbo-Vara Banda" }, { "tos", "Highland Totonac" }, { "tou", "Tho" }, { "tov", "Upper Taromi" }, { "tow", "Jemez" }, { "tox", "Tobian" }, { "toy", "Topoiyo" }, { "toz", "To" }, { "tpa", "Taupota" }, { "tpc", "Azoyú Me'phaa" }, { "tpe", "Tippera" }, { "tpf", "Tarpia" }, { "tpg", "Kula" }, { "tpi", "Tok Pisin" }, { "tpj", "Tapieté" }, { "tpk", "Tupinikin" }, { "tpl", "Tlacoapa Me'phaa" }, { "tpm", "Tampulma" }, { "tpn", "Tupinambá" }, { "tpo", "Tai Pao" }, { "tpp", "Pisaflores Tepehua" }, { "tpq", "Tukpa" }, { "tpr", "Tuparí" }, { "tpt", "Tlachichilco Tepehua" }, { "tpu", "Tampuan" }, { "tpv", "Tanapag" }, { "tpw", "Tupí" }, { "tpx", "Acatepec Me'phaa" }, { "tpy", "Trumai" }, { "tpz", "Tinputz" }, { "tqb", "Tembé" }, { "tql", "Lehali" }, { "tqm", "Turumsa" }, { "tqn", "Tenino" }, { "tqo", "Toaripi" }, { "tqp", "Tomoip" }, { "tqq", "Tunni" }, { "tqr", "Torona" }, { "tqt", "Western Totonac" }, { "tqu", "Touo" }, { "tqw", "Tonkawa" }, { "tra", "Tirahi" }, { "trb", "Terebu" }, { "trc", "Copala Triqui" }, { "trd", "Turi" }, { "tre", "East Tarangan" }, { "trf", "Trinidadian Creole English" }, { "trg", "Lishán Didán" }, { "trh", "Turaka" }, { "tri", "Trió" }, { "trj", "Toram" }, { "trl", "Traveller Scottish" }, { "trm", "Tregami" }, { "trn", "Trinitario" }, { "tro", "Tarao Naga" }, { "trp", "Kok Borok" }, { "trq", "San Martín Itunyoso Triqui" }, { "trr", "Taushiro" }, { "trs", "Chicahuaxtla Triqui" }, { "trt", "Tunggare" }, { "tru", "Turoyo" }, { "trv", "Taroko" }, { "trw", "Torwali" }, { "trx", "Tringgus-Sembaan Bidayuh" }, { "try", "Turung" }, { "trz", "Torá" }, { "tsa", "Tsaangi" }, { "tsb", "Tsamai" }, { "tsc", "Tswa" }, { "tsd", "Tsakonian" }, { "tse", "Tunisian Sign Language" }, { "tsf", "Southwestern Tamang" }, { "tsg", "Tausug" }, { "tsh", "Tsuvan" }, { "tsi", "Tsimshian" }, { "tsj", "Tshangla" }, { "tsk", "Tseku" }, { "tsl", "Ts'ün-Lao" }, { "tsm", "Turkish Sign Language" }, { "tsn", "Tswana" }, { "tso", "Tsonga" }, { "tsp", "Northern Toussian" }, { "tsq", "Thai Sign Language" }, { "tsr", "Akei" }, { "tss", "Taiwan Sign Language" }, { "tst", "Tondi Songway Kiini" }, { "tsu", "Tsou" }, { "tsv", "Tsogo" }, { "tsw", "Tsishingini" }, { "tsx", "Mubami" }, { "tsy", "Tebul Sign Language" }, { "tsz", "Purepecha" }, { "tta", "Tutelo" }, { "ttb", "Gaa" }, { "ttc", "Tektiteko" }, { "ttd", "Tauade" }, { "tte", "Bwanabwana" }, { "ttf", "Tuotomb" }, { "ttg", "Tutong" }, { "tth", "Upper Ta'oih" }, { "tti", "Tobati" }, { "ttj", "Tooro" }, { "ttk", "Totoro" }, { "ttl", "Totela" }, { "ttm", "Northern Tutchone" }, { "ttn", "Towei" }, { "tto", "Lower Ta'oih" }, { "ttp", "Tombelala" }, { "ttq", "Tawallammat Tamajaq" }, { "ttr", "Tera" }, { "tts", "Northeastern Thai" }, { "ttt", "Muslim Tat" }, { "ttu", "Torau" }, { "ttv", "Titan" }, { "ttw", "Long Wat" }, { "tty", "Sikaritai" }, { "ttz", "Tsum" }, { "tua", "Wiarumus" }, { "tub", "Tübatulabal" }, { "tuc", "Mutu" }, { "tud", "Tuxá" }, { "tue", "Tuyuca" }, { "tuf", "Central Tunebo" }, { "tug", "Tunia" }, { "tuh", "Taulil" }, { "tui", "Tupuri" }, { "tuj", "Tugutil" }, { "tuk", "Turkmen" }, { "tul", "Tula" }, { "tum", "Tumbuka" }, { "tun", "Tunica" }, { "tuo", "Tucano" }, { "tuq", "Tedaga" }, { "tur", "Turkish" }, { "tus", "Tuscarora" }, { "tuu", "Tututni" }, { "tuv", "Turkana" }, { "tux", "Tuxináwa" }, { "tuy", "Tugen" }, { "tuz", "Turka" }, { "tva", "Vaghua" }, { "tvd", "Tsuvadi" }, { "tve", "Te'un" }, { "tvk", "Southeast Ambrym" }, { "tvl", "Tuvalu" }, { "tvm", "Tela-Masbuar" }, { "tvn", "Tavoyan" }, { "tvo", "Tidore" }, { "tvs", "Taveta" }, { "tvt", "Tutsa Naga" }, { "tvu", "Tunen" }, { "tvw", "Sedoa" }, { "tvy", "Timor Pidgin" }, { "twa", "Twana" }, { "twb", "Western Tawbuid" }, { "twc", "Teshenawa" }, { "twd", "Twents" }, { "twe", "Tewa (Indonesia)" }, { "twf", "Northern Tiwa" }, { "twg", "Tereweng" }, { "twh", "Tai Dón" }, { "twi", "Twi" }, { "twl", "Tawara" }, { "twm", "Tawang Monpa" }, { "twn", "Twendi" }, { "two", "Tswapong" }, { "twp", "Ere" }, { "twq", "Tasawaq" }, { "twr", "Southwestern Tarahumara" }, { "twt", "Turiwára" }, { "twu", "Termanu" }, { "tww", "Tuwari" }, { "twx", "Tewe" }, { "twy", "Tawoyan" }, { "txa", "Tombonuo" }, { "txb", "Tokharian B" }, { "txc", "Tsetsaut" }, { "txe", "Totoli" }, { "txg", "Tangut" }, { "txh", "Thracian" }, { "txi", "Ikpeng" }, { "txm", "Tomini" }, { "txn", "West Tarangan" }, { "txo", "Toto" }, { "txq", "Tii" }, { "txr", "Tartessian" }, { "txs", "Tonsea" }, { "txt", "Citak" }, { "txu", "Kayapó" }, { "txx", "Tatana" }, { "txy", "Tanosy Malagasy" }, { "tya", "Tauya" }, { "tye", "Kyanga" }, { "tyh", "O'du" }, { "tyi", "Teke-Tsaayi" }, { "tyj", "Tai Do" }, { "tyl", "Thu Lao" }, { "tyn", "Kombai" }, { "typ", "Thaypan" }, { "tyr", "Tai Daeng" }, { "tys", "Tày Sa Pa" }, { "tyt", "Tày Tac" }, { "tyu", "Kua" }, { "tyv", "Tuvinian" }, { "tyx", "Teke-Tyee" }, { "tyz", "Tày" }, { "tza", "Tanzanian Sign Language" }, { "tzh", "Tzeltal" }, { "tzj", "Tz'utujil" }, { "tzl", "Talossan" }, { "tzm", "Central Atlas Tamazight" }, { "tzn", "Tugun" }, { "tzo", "Tzotzil" }, { "tzx", "Tabriak" }, { "uam", "Uamué" }, { "uan", "Kuan" }, { "uar", "Tairuma" }, { "uba", "Ubang" }, { "ubi", "Ubi" }, { "ubl", "Buhi'non Bikol" }, { "ubr", "Ubir" }, { "ubu", "Umbu-Ungu" }, { "uby", "Ubykh" }, { "uda", "Uda" }, { "ude", "Udihe" }, { "udg", "Muduga" }, { "udi", "Udi" }, { "udj", "Ujir" }, { "udl", "Wuzlam" }, { "udm", "Udmurt" }, { "udu", "Uduk" }, { "ues", "Kioko" }, { "ufi", "Ufim" }, { "uga", "Ugaritic" }, { "ugb", "Kuku-Ugbanh" }, { "uge", "Ughele" }, { "ugn", "Ugandan Sign Language" }, { "ugo", "Ugong" }, { "ugy", "Uruguayan Sign Language" }, { "uha", "Uhami" }, { "uhn", "Damal" }, { "uig", "Uighur" }, { "uis", "Uisai" }, { "uiv", "Iyive" }, { "uji", "Tanjijili" }, { "uka", "Kaburi" }, { "ukg", "Ukuriguma" }, { "ukh", "Ukhwejo" }, { "ukl", "Ukrainian Sign Language" }, { "ukp", "Ukpe-Bayobiri" }, { "ukq", "Ukwa" }, { "ukr", "Ukrainian" }, { "uks", "Urubú-Kaapor Sign Language" }, { "uku", "Ukue" }, { "ukw", "Ukwuani-Aboh-Ndoni" }, { "uky", "Kuuk-Yak" }, { "ula", "Fungwa" }, { "ulb", "Ulukwumi" }, { "ulc", "Ulch" }, { "ule", "Lule" }, { "ulf", "Usku" }, { "uli", "Ulithian" }, { "ulk", "Meriam" }, { "ull", "Ullatan" }, { "ulm", "Ulumanda'" }, { "uln", "Unserdeutsch" }, { "ulu", "Uma' Lung" }, { "ulw", "Ulwa" }, { "uma", "Umatilla" }, { "umb", "Umbundu" }, { "umc", "Marrucinian" }, { "umd", "Umbindhamu" }, { "umg", "Umbuygamu" }, { "umi", "Ukit" }, { "umm", "Umon" }, { "umn", "Makyan Naga" }, { "umo", "Umotína" }, { "ump", "Umpila" }, { "umr", "Umbugarla" }, { "ums", "Pendau" }, { "umu", "Munsee" }, { "una", "North Watut" }, { "und", "Undetermined" }, { "une", "Uneme" }, { "ung", "Ngarinyin" }, { "unk", "Enawené-Nawé" }, { "unm", "Unami" }, { "unn", "Kurnai" }, { "unr", "Mundari" }, { "unu", "Unubahe" }, { "unx", "Munda" }, { "unz", "Unde Kaili" }, { "uok", "Uokha" }, { "upi", "Umeda" }, { "upv", "Uripiv-Wala-Rano-Atchin" }, { "ura", "Urarina" }, { "urb", "Urubú-Kaapor" }, { "urc", "Urningangg" }, { "urd", "Urdu" }, { "ure", "Uru" }, { "urf", "Uradhi" }, { "urg", "Urigina" }, { "urh", "Urhobo" }, { "uri", "Urim" }, { "urk", "Urak Lawoi'" }, { "url", "Urali" }, { "urm", "Urapmin" }, { "urn", "Uruangnirin" }, { "uro", "Ura (Papua New Guinea)" }, { "urp", "Uru-Pa-In" }, { "urr", "Lehalurup" }, { "urt", "Urat" }, { "uru", "Urumi" }, { "urv", "Uruava" }, { "urw", "Sop" }, { "urx", "Urimo" }, { "ury", "Orya" }, { "urz", "Uru-Eu-Wau-Wau" }, { "usa", "Usarufa" }, { "ush", "Ushojo" }, { "usi", "Usui" }, { "usk", "Usaghade" }, { "usp", "Uspanteco" }, { "usu", "Uya" }, { "uta", "Otank" }, { "ute", "Ute-Southern Paiute" }, { "utp", "Amba (Solomon Islands)" }, { "utr", "Etulo" }, { "utu", "Utu" }, { "uum", "Urum" }, { "uun", "Kulon-Pazeh" }, { "uur", "Ura (Vanuatu)" }, { "uuu", "U" }, { "uve", "West Uvean" }, { "uvh", "Uri" }, { "uvl", "Lote" }, { "uwa", "Kuku-Uwanh" }, { "uya", "Doko-Uyanga" }, { "uzb", "Uzbek" }, { "uzn", "Northern Uzbek" }, { "uzs", "Southern Uzbek" }, { "vaa", "Vaagri Booli" }, { "vae", "Vale" }, { "vaf", "Vafsi" }, { "vag", "Vagla" }, { "vah", "Varhadi-Nagpuri" }, { "vai", "Vai" }, { "vaj", "Vasekela Bushman" }, { "val", "Vehes" }, { "vam", "Vanimo" }, { "van", "Valman" }, { "vao", "Vao" }, { "vap", "Vaiphei" }, { "var", "Huarijio" }, { "vas", "Vasavi" }, { "vau", "Vanuma" }, { "vav", "Varli" }, { "vay", "Wayu" }, { "vbb", "Southeast Babar" }, { "vbk", "Southwestern Bontok" }, { "vec", "Venetian" }, { "ved", "Veddah" }, { "vel", "Veluws" }, { "vem", "Vemgo-Mabas" }, { "ven", "Venda" }, { "veo", "Ventureño" }, { "vep", "Veps" }, { "ver", "Mom Jango" }, { "vgr", "Vaghri" }, { "vgt", "Vlaamse Gebarentaal" }, { "vic", "Virgin Islands Creole English" }, { "vid", "Vidunda" }, { "vie", "Vietnamese" }, { "vif", "Vili" }, { "vig", "Viemo" }, { "vil", "Vilela" }, { "vin", "Vinza" }, { "vis", "Vishavan" }, { "vit", "Viti" }, { "viv", "Iduna" }, { "vka", "Kariyarra" }, { "vki", "Ija-Zuba" }, { "vkj", "Kujarge" }, { "vkk", "Kaur" }, { "vkl", "Kulisusu" }, { "vkm", "Kamakan" }, { "vko", "Kodeoha" }, { "vkp", "Korlai Creole Portuguese" }, { "vkt", "Tenggarong Kutai Malay" }, { "vku", "Kurrama" }, { "vlp", "Valpei" }, { "vls", "Vlaams" }, { "vma", "Martuyhunira" }, { "vmb", "Barbaram" }, { "vmc", "Juxtlahuaca Mixtec" }, { "vmd", "Mudu Koraga" }, { "vme", "East Masela" }, { "vmf", "Mainfränkisch" }, { "vmg", "Lungalunga" }, { "vmh", "Maraghei" }, { "vmi", "Miwa" }, { "vmj", "Ixtayutla Mixtec" }, { "vmk", "Makhuwa-Shirima" }, { "vml", "Malgana" }, { "vmm", "Mitlatongo Mixtec" }, { "vmp", "Soyaltepec Mazatec" }, { "vmq", "Soyaltepec Mixtec" }, { "vmr", "Marenje" }, { "vms", "Moksela" }, { "vmu", "Muluridyi" }, { "vmv", "Valley Maidu" }, { "vmw", "Makhuwa" }, { "vmx", "Tamazola Mixtec" }, { "vmy", "Ayautla Mazatec" }, { "vmz", "Mazatlán Mazatec" }, { "vnk", "Vano" }, { "vnm", "Vinmavis" }, { "vnp", "Vunapu" }, { "vol", "Volapük" }, { "vor", "Voro" }, { "vot", "Votic" }, { "vra", "Vera'a" }, { "vro", "Võro" }, { "vrs", "Varisi" }, { "vrt", "Burmbar" }, { "vsi", "Moldova Sign Language" }, { "vsl", "Venezuelan Sign Language" }, { "vsv", "Valencian Sign Language" }, { "vto", "Vitou" }, { "vum", "Vumbu" }, { "vun", "Vunjo" }, { "vut", "Vute" }, { "vwa", "Awa (China)" }, { "waa", "Walla Walla" }, { "wab", "Wab" }, { "wac", "Wasco-Wishram" }, { "wad", "Wandamen" }, { "wae", "Walser" }, { "waf", "Wakoná" }, { "wag", "Wa'ema" }, { "wah", "Watubela" }, { "wai", "Wares" }, { "waj", "Waffa" }, { "wal", "Wolaytta" }, { "wam", "Wampanoag" }, { "wan", "Wan" }, { "wao", "Wappo" }, { "wap", "Wapishana" }, { "waq", "Wageman" }, { "war", "Waray (Philippines)" }, { "was", "Washo" }, { "wat", "Kaninuwa" }, { "wau", "Waurá" }, { "wav", "Waka" }, { "waw", "Waiwai" }, { "wax", "Watam" }, { "way", "Wayana" }, { "waz", "Wampur" }, { "wba", "Warao" }, { "wbb", "Wabo" }, { "wbe", "Waritai" }, { "wbf", "Wara" }, { "wbh", "Wanda" }, { "wbi", "Vwanji" }, { "wbj", "Alagwa" }, { "wbk", "Waigali" }, { "wbl", "Wakhi" }, { "wbm", "Wa" }, { "wbp", "Warlpiri" }, { "wbq", "Waddar" }, { "wbr", "Wagdi" }, { "wbt", "Wanman" }, { "wbv", "Wajarri" }, { "wbw", "Woi" }, { "wca", "Yanomámi" }, { "wci", "Waci Gbe" }, { "wdd", "Wandji" }, { "wdg", "Wadaginam" }, { "wdj", "Wadjiginy" }, { "wdk", "Wadikali" }, { "wdu", "Wadjigu" }, { "wdy", "Wadjabangayi" }, { "wea", "Wewaw" }, { "wec", "Wè Western" }, { "wed", "Wedau" }, { "weg", "Wergaia" }, { "weh", "Weh" }, { "wei", "Kiunum" }, { "wem", "Weme Gbe" }, { "weo", "Wemale" }, { "wep", "Westphalien" }, { "wer", "Weri" }, { "wes", "Cameroon Pidgin" }, { "wet", "Perai" }, { "weu", "Rawngtu Chin" }, { "wew", "Wejewa" }, { "wfg", "Yafi" }, { "wga", "Wagaya" }, { "wgb", "Wagawaga" }, { "wgg", "Wangganguru" }, { "wgi", "Wahgi" }, { "wgo", "Waigeo" }, { "wgu", "Wirangu" }, { "wgy", "Warrgamay" }, { "wha", "Manusela" }, { "whg", "North Wahgi" }, { "whk", "Wahau Kenyah" }, { "whu", "Wahau Kayan" }, { "wib", "Southern Toussian" }, { "wic", "Wichita" }, { "wie", "Wik-Epa" }, { "wif", "Wik-Keyangan" }, { "wig", "Wik-Ngathana" }, { "wih", "Wik-Me'anha" }, { "wii", "Minidien" }, { "wij", "Wik-Iiyanh" }, { "wik", "Wikalkan" }, { "wil", "Wilawila" }, { "wim", "Wik-Mungkan" }, { "win", "Ho-Chunk" }, { "wir", "Wiraféd" }, { "wiu", "Wiru" }, { "wiv", "Vitu" }, { "wiy", "Wiyot" }, { "wja", "Waja" }, { "wji", "Warji" }, { "wka", "Kw'adza" }, { "wkb", "Kumbaran" }, { "wkd", "Wakde" }, { "wkl", "Kalanadi" }, { "wku", "Kunduvadi" }, { "wkw", "Wakawaka" }, { "wky", "Wangkayutyuru" }, { "wla", "Walio" }, { "wlc", "Mwali Comorian" }, { "wle", "Wolane" }, { "wlg", "Kunbarlang" }, { "wli", "Waioli" }, { "wlk", "Wailaki" }, { "wll", "Wali (Sudan)" }, { "wlm", "Middle Welsh" }, { "wln", "Walloon" }, { "wlo", "Wolio" }, { "wlr", "Wailapa" }, { "wls", "Wallisian" }, { "wlu", "Wuliwuli" }, { "wlv", "Wichí Lhamtés Vejoz" }, { "wlw", "Walak" }, { "wlx", "Wali (Ghana)" }, { "wly", "Waling" }, { "wma", "Mawa (Nigeria)" }, { "wmb", "Wambaya" }, { "wmc", "Wamas" }, { "wmd", "Mamaindé" }, { "wme", "Wambule" }, { "wmh", "Waima'a" }, { "wmi", "Wamin" }, { "wmm", "Maiwa (Indonesia)" }, { "wmn", "Waamwang" }, { "wmo", "Wom (Papua New Guinea)" }, { "wms", "Wambon" }, { "wmt", "Walmajarri" }, { "wmw", "Mwani" }, { "wmx", "Womo" }, { "wnb", "Wanambre" }, { "wnc", "Wantoat" }, { "wnd", "Wandarang" }, { "wne", "Waneci" }, { "wng", "Wanggom" }, { "wni", "Ndzwani Comorian" }, { "wnk", "Wanukaka" }, { "wnm", "Wanggamala" }, { "wnn", "Wunumara" }, { "wno", "Wano" }, { "wnp", "Wanap" }, { "wnu", "Usan" }, { "wnw", "Wintu" }, { "wny", "Wanyi" }, { "woa", "Tyaraity" }, { "wob", "Wè Northern" }, { "woc", "Wogeo" }, { "wod", "Wolani" }, { "woe", "Woleaian" }, { "wof", "Gambian Wolof" }, { "wog", "Wogamusin" }, { "woi", "Kamang" }, { "wok", "Longto" }, { "wol", "Wolof" }, { "wom", "Wom (Nigeria)" }, { "won", "Wongo" }, { "woo", "Manombai" }, { "wor", "Woria" }, { "wos", "Hanga Hundi" }, { "wow", "Wawonii" }, { "woy", "Weyto" }, { "wpc", "Maco" }, { "wra", "Warapu" }, { "wrb", "Warluwara" }, { "wrd", "Warduji" }, { "wrg", "Warungu" }, { "wrh", "Wiradhuri" }, { "wri", "Wariyangga" }, { "wrk", "Garrwa" }, { "wrl", "Warlmanpa" }, { "wrm", "Warumungu" }, { "wrn", "Warnang" }, { "wro", "Worrorra" }, { "wrp", "Waropen" }, { "wrr", "Wardaman" }, { "wrs", "Waris" }, { "wru", "Waru" }, { "wrv", "Waruna" }, { "wrw", "Gugu Warra" }, { "wrx", "Wae Rana" }, { "wry", "Merwari" }, { "wrz", "Waray (Australia)" }, { "wsa", "Warembori" }, { "wsi", "Wusi" }, { "wsk", "Waskia" }, { "wsr", "Owenia" }, { "wss", "Wasa" }, { "wsu", "Wasu" }, { "wsv", "Wotapuri-Katarqalai" }, { "wtf", "Watiwa" }, { "wth", "Wathawurrung" }, { "wti", "Berta" }, { "wtk", "Watakataui" }, { "wtm", "Mewati" }, { "wtw", "Wotu" }, { "wua", "Wikngenchera" }, { "wub", "Wunambal" }, { "wud", "Wudu" }, { "wuh", "Wutunhua" }, { "wul", "Silimo" }, { "wum", "Wumbvu" }, { "wun", "Bungu" }, { "wur", "Wurrugu" }, { "wut", "Wutung" }, { "wuu", "Wu Chinese" }, { "wuv", "Wuvulu-Aua" }, { "wux", "Wulna" }, { "wuy", "Wauyai" }, { "wwa", "Waama" }, { "wwb", "Wakabunga" }, { "wwo", "Wetamut" }, { "wwr", "Warrwa" }, { "www", "Wawa" }, { "wxa", "Waxianghua" }, { "wxw", "Wardandi" }, { "wya", "Wyandot" }, { "wyb", "Wangaaybuwan-Ngiyambaa" }, { "wyi", "Woiwurrung" }, { "wym", "Wymysorys" }, { "wyr", "Wayoró" }, { "wyy", "Western Fijian" }, { "xaa", "Andalusian Arabic" }, { "xab", "Sambe" }, { "xac", "Kachari" }, { "xad", "Adai" }, { "xae", "Aequian" }, { "xag", "Aghwan" }, { "xai", "Kaimbé" }, { "xal", "Kalmyk" }, { "xam", "Xam" }, { "xan", "Xamtanga" }, { "xao", "Khao" }, { "xap", "Apalachee" }, { "xaq", "Aquitanian" }, { "xar", "Karami" }, { "xas", "Kamas" }, { "xat", "Katawixi" }, { "xau", "Kauwera" }, { "xav", "Xavánte" }, { "xaw", "Kawaiisu" }, { "xay", "Kayan Mahakam" }, { "xba", "Kamba (Brazil)" }, { "xbb", "Lower Burdekin" }, { "xbc", "Bactrian" }, { "xbd", "Bindal" }, { "xbe", "Bigambal" }, { "xbg", "Bunganditj" }, { "xbi", "Kombio" }, { "xbj", "Birrpayi" }, { "xbm", "Middle Breton" }, { "xbn", "Kenaboi" }, { "xbo", "Bolgarian" }, { "xbp", "Bibbulman" }, { "xbr", "Kambera" }, { "xbw", "Kambiwá" }, { "xbx", "Kabixí" }, { "xby", "Batyala" }, { "xcb", "Cumbric" }, { "xcc", "Camunic" }, { "xce", "Celtiberian" }, { "xcg", "Cisalpine Gaulish" }, { "xch", "Chemakum" }, { "xcl", "Classical Armenian" }, { "xcm", "Comecrudo" }, { "xcn", "Cotoname" }, { "xco", "Chorasmian" }, { "xcr", "Carian" }, { "xct", "Classical Tibetan" }, { "xcu", "Curonian" }, { "xcv", "Chuvantsy" }, { "xcw", "Coahuilteco" }, { "xcy", "Cayuse" }, { "xda", "Darkinyung" }, { "xdc", "Dacian" }, { "xdk", "Dharuk" }, { "xdm", "Edomite" }, { "xdy", "Malayic Dayak" }, { "xeb", "Eblan" }, { "xed", "Hdi" }, { "xeg", "Xegwi" }, { "xel", "Kelo" }, { "xem", "Kembayan" }, { "xep", "Epi-Olmec" }, { "xer", "Xerénte" }, { "xes", "Kesawai" }, { "xet", "Xetá" }, { "xeu", "Keoru-Ahia" }, { "xfa", "Faliscan" }, { "xga", "Galatian" }, { "xgb", "Gbin" }, { "xgd", "Gudang" }, { "xgf", "Gabrielino-Fernandeño" }, { "xgg", "Goreng" }, { "xgi", "Garingbal" }, { "xgl", "Galindan" }, { "xgm", "Guwinmal" }, { "xgr", "Garza" }, { "xgu", "Unggumi" }, { "xgw", "Guwa" }, { "xha", "Harami" }, { "xhc", "Hunnic" }, { "xhd", "Hadrami" }, { "xhe", "Khetrani" }, { "xho", "Xhosa" }, { "xhr", "Hernican" }, { "xht", "Hattic" }, { "xhu", "Hurrian" }, { "xhv", "Khua" }, { "xib", "Iberian" }, { "xii", "Xiri" }, { "xil", "Illyrian" }, { "xin", "Xinca" }, { "xip", "Xipináwa" }, { "xir", "Xiriâna" }, { "xiv", "Indus Valley Language" }, { "xiy", "Xipaya" }, { "xjb", "Minjungbal" }, { "xjt", "Jaitmatang" }, { "xka", "Kalkoti" }, { "xkb", "Northern Nago" }, { "xkc", "Kho'ini" }, { "xkd", "Mendalam Kayan" }, { "xke", "Kereho" }, { "xkf", "Khengkha" }, { "xkg", "Kagoro" }, { "xkh", "Karahawyana" }, { "xki", "Kenyan Sign Language" }, { "xkj", "Kajali" }, { "xkk", "Kaco'" }, { "xkl", "Mainstream Kenyah" }, { "xkn", "Kayan River Kayan" }, { "xko", "Kiorr" }, { "xkp", "Kabatei" }, { "xkq", "Koroni" }, { "xkr", "Xakriabá" }, { "xks", "Kumbewaha" }, { "xkt", "Kantosi" }, { "xku", "Kaamba" }, { "xkv", "Kgalagadi" }, { "xkw", "Kembra" }, { "xkx", "Karore" }, { "xky", "Uma' Lasan" }, { "xkz", "Kurtokha" }, { "xla", "Kamula" }, { "xlb", "Loup B" }, { "xlc", "Lycian" }, { "xld", "Lydian" }, { "xle", "Lemnian" }, { "xlg", "Ligurian (Ancient)" }, { "xli", "Liburnian" }, { "xln", "Alanic" }, { "xlo", "Loup A" }, { "xlp", "Lepontic" }, { "xls", "Lusitanian" }, { "xlu", "Cuneiform Luwian" }, { "xly", "Elymian" }, { "xma", "Mushungulu" }, { "xmb", "Mbonga" }, { "xmc", "Makhuwa-Marrevone" }, { "xmd", "Mbudum" }, { "xme", "Median" }, { "xmf", "Mingrelian" }, { "xmg", "Mengaka" }, { "xmh", "Kuku-Muminh" }, { "xmj", "Majera" }, { "xmk", "Ancient Macedonian" }, { "xml", "Malaysian Sign Language" }, { "xmm", "Manado Malay" }, { "xmn", "Manichaean Middle Persian" }, { "xmo", "Morerebi" }, { "xmp", "Kuku-Mu'inh" }, { "xmq", "Kuku-Mangk" }, { "xmr", "Meroitic" }, { "xms", "Moroccan Sign Language" }, { "xmt", "Matbat" }, { "xmu", "Kamu" }, { "xmv", "Antankarana Malagasy" }, { "xmw", "Tsimihety Malagasy" }, { "xmx", "Maden" }, { "xmy", "Mayaguduna" }, { "xmz", "Mori Bawah" }, { "xna", "Ancient North Arabian" }, { "xnb", "Kanakanabu" }, { "xng", "Middle Mongolian" }, { "xnh", "Kuanhua" }, { "xni", "Ngarigu" }, { "xnk", "Nganakarti" }, { "xnn", "Northern Kankanay" }, { "xno", "Anglo-Norman" }, { "xnr", "Kangri" }, { "xns", "Kanashi" }, { "xnt", "Narragansett" }, { "xnu", "Nukunul" }, { "xny", "Nyiyaparli" }, { "xnz", "Kenzi" }, { "xoc", "O'chi'chi'" }, { "xod", "Kokoda" }, { "xog", "Soga" }, { "xoi", "Kominimung" }, { "xok", "Xokleng" }, { "xom", "Komo (Sudan)" }, { "xon", "Konkomba" }, { "xoo", "Xukurú" }, { "xop", "Kopar" }, { "xor", "Korubo" }, { "xow", "Kowaki" }, { "xpa", "Pirriya" }, { "xpc", "Pecheneg" }, { "xpe", "Liberia Kpelle" }, { "xpg", "Phrygian" }, { "xpi", "Pictish" }, { "xpj", "Mpalitjanh" }, { "xpk", "Kulina Pano" }, { "xpm", "Pumpokol" }, { "xpn", "Kapinawá" }, { "xpo", "Pochutec" }, { "xpp", "Puyo-Paekche" }, { "xpq", "Mohegan-Pequot" }, { "xpr", "Parthian" }, { "xps", "Pisidian" }, { "xpt", "Punthamara" }, { "xpu", "Punic" }, { "xpy", "Puyo" }, { "xqa", "Karakhanid" }, { "xqt", "Qatabanian" }, { "xra", "Krahô" }, { "xrb", "Eastern Karaboro" }, { "xrd", "Gundungurra" }, { "xre", "Kreye" }, { "xrg", "Minang" }, { "xri", "Krikati-Timbira" }, { "xrm", "Armazic" }, { "xrn", "Arin" }, { "xrq", "Karranga" }, { "xrr", "Raetic" }, { "xrt", "Aranama-Tamique" }, { "xru", "Marriammu" }, { "xrw", "Karawa" }, { "xsa", "Sabaean" }, { "xsb", "Sambal" }, { "xsc", "Scythian" }, { "xsd", "Sidetic" }, { "xse", "Sempan" }, { "xsh", "Shamang" }, { "xsi", "Sio" }, { "xsj", "Subi" }, { "xsl", "South Slavey" }, { "xsm", "Kasem" }, { "xsn", "Sanga (Nigeria)" }, { "xso", "Solano" }, { "xsp", "Silopi" }, { "xsq", "Makhuwa-Saka" }, { "xsr", "Sherpa" }, { "xss", "Assan" }, { "xsu", "Sanumá" }, { "xsv", "Sudovian" }, { "xsy", "Saisiyat" }, { "xta", "Alcozauca Mixtec" }, { "xtb", "Chazumba Mixtec" }, { "xtc", "Katcha-Kadugli-Miri" }, { "xtd", "Diuxi-Tilantongo Mixtec" }, { "xte", "Ketengban" }, { "xtg", "Transalpine Gaulish" }, { "xth", "Yitha Yitha" }, { "xti", "Sinicahua Mixtec" }, { "xtj", "San Juan Teita Mixtec" }, { "xtl", "Tijaltepec Mixtec" }, { "xtm", "Magdalena Peñasco Mixtec" }, { "xtn", "Northern Tlaxiaco Mixtec" }, { "xto", "Tokharian A" }, { "xtp", "San Miguel Piedras Mixtec" }, { "xtq", "Tumshuqese" }, { "xtr", "Early Tripuri" }, { "xts", "Sindihui Mixtec" }, { "xtt", "Tacahua Mixtec" }, { "xtu", "Cuyamecalco Mixtec" }, { "xtv", "Thawa" }, { "xtw", "Tawandê" }, { "xty", "Yoloxochitl Mixtec" }, { "xtz", "Tasmanian" }, { "xua", "Alu Kurumba" }, { "xub", "Betta Kurumba" }, { "xud", "Umiida" }, { "xug", "Kunigami" }, { "xuj", "Jennu Kurumba" }, { "xul", "Ngunawal" }, { "xum", "Umbrian" }, { "xun", "Unggaranggu" }, { "xuo", "Kuo" }, { "xup", "Upper Umpqua" }, { "xur", "Urartian" }, { "xut", "Kuthant" }, { "xuu", "Kxoe" }, { "xve", "Venetic" }, { "xvi", "Kamviri" }, { "xvn", "Vandalic" }, { "xvo", "Volscian" }, { "xvs", "Vestinian" }, { "xwa", "Kwaza" }, { "xwc", "Woccon" }, { "xwd", "Wadi Wadi" }, { "xwe", "Xwela Gbe" }, { "xwg", "Kwegu" }, { "xwj", "Wajuk" }, { "xwk", "Wangkumara" }, { "xwl", "Western Xwla Gbe" }, { "xwo", "Written Oirat" }, { "xwr", "Kwerba Mamberamo" }, { "xwt", "Wotjobaluk" }, { "xww", "Wemba Wemba" }, { "xxb", "Boro (Ghana)" }, { "xxk", "Ke'o" }, { "xxm", "Minkin" }, { "xxr", "Koropó" }, { "xxt", "Tambora" }, { "xya", "Yaygir" }, { "xyb", "Yandjibara" }, { "xyj", "Mayi-Yapi" }, { "xyk", "Mayi-Kulan" }, { "xyl", "Yalakalore" }, { "xyt", "Mayi-Thakurti" }, { "xyy", "Yorta Yorta" }, { "xzh", "Zhang-Zhung" }, { "xzm", "Zemgalian" }, { "xzp", "Ancient Zapotec" }, { "yaa", "Yaminahua" }, { "yab", "Yuhup" }, { "yac", "Pass Valley Yali" }, { "yad", "Yagua" }, { "yae", "Pumé" }, { "yaf", "Yaka (Democratic Republic of Congo)" }, { "yag", "Yámana" }, { "yah", "Yazgulyam" }, { "yai", "Yagnobi" }, { "yaj", "Banda-Yangere" }, { "yak", "Yakama" }, { "yal", "Yalunka" }, { "yam", "Yamba" }, { "yan", "Mayangna" }, { "yao", "Yao" }, { "yap", "Yapese" }, { "yaq", "Yaqui" }, { "yar", "Yabarana" }, { "yas", "Nugunu (Cameroon)" }, { "yat", "Yambeta" }, { "yau", "Yuwana" }, { "yav", "Yangben" }, { "yaw", "Yawalapití" }, { "yax", "Yauma" }, { "yay", "Agwagwune" }, { "yaz", "Lokaa" }, { "yba", "Yala" }, { "ybb", "Yemba" }, { "ybe", "West Yugur" }, { "ybh", "Yakha" }, { "ybi", "Yamphu" }, { "ybj", "Hasha" }, { "ybk", "Bokha" }, { "ybl", "Yukuben" }, { "ybm", "Yaben" }, { "ybn", "Yabaâna" }, { "ybo", "Yabong" }, { "ybx", "Yawiyo" }, { "yby", "Yaweyuha" }, { "ych", "Chesu" }, { "ycl", "Lolopo" }, { "ycn", "Yucuna" }, { "ycp", "Chepya" }, { "yda", "Yanda" }, { "ydd", "Eastern Yiddish" }, { "yde", "Yangum Dey" }, { "ydg", "Yidgha" }, { "ydk", "Yoidik" }, { "yds", "Yiddish Sign Language" }, { "yea", "Ravula" }, { "yec", "Yeniche" }, { "yee", "Yimas" }, { "yei", "Yeni" }, { "yej", "Yevanic" }, { "yel", "Yela" }, { "yer", "Tarok" }, { "yes", "Nyankpa" }, { "yet", "Yetfa" }, { "yeu", "Yerukula" }, { "yev", "Yapunda" }, { "yey", "Yeyi" }, { "yga", "Malyangapa" }, { "ygi", "Yiningayi" }, { "ygl", "Yangum Gel" }, { "ygm", "Yagomi" }, { "ygp", "Gepo" }, { "ygr", "Yagaria" }, { "ygu", "Yugul" }, { "ygw", "Yagwoia" }, { "yha", "Baha Buyang" }, { "yhd", "Judeo-Iraqi Arabic" }, { "yhl", "Hlepho Phowa" }, { "yia", "Yinggarda" }, { "yid", "Yiddish" }, { "yif", "Ache" }, { "yig", "Wusa Nasu" }, { "yih", "Western Yiddish" }, { "yii", "Yidiny" }, { "yij", "Yindjibarndi" }, { "yik", "Dongshanba Lalo" }, { "yil", "Yindjilandji" }, { "yim", "Yimchungru Naga" }, { "yin", "Yinchia" }, { "yip", "Pholo" }, { "yiq", "Miqie" }, { "yir", "North Awyu" }, { "yis", "Yis" }, { "yit", "Eastern Lalu" }, { "yiu", "Awu" }, { "yiv", "Northern Nisu" }, { "yix", "Axi Yi" }, { "yiz", "Azhe" }, { "yka", "Yakan" }, { "ykg", "Northern Yukaghir" }, { "yki", "Yoke" }, { "ykk", "Yakaikeke" }, { "ykl", "Khlula" }, { "ykm", "Kap" }, { "ykn", "Kua-nsi" }, { "yko", "Yasa" }, { "ykr", "Yekora" }, { "ykt", "Kathu" }, { "yku", "Kuamasi" }, { "yky", "Yakoma" }, { "yla", "Yaul" }, { "ylb", "Yaleba" }, { "yle", "Yele" }, { "ylg", "Yelogu" }, { "yli", "Angguruk Yali" }, { "yll", "Yil" }, { "ylm", "Limi" }, { "yln", "Langnian Buyang" }, { "ylo", "Naluo Yi" }, { "ylr", "Yalarnnga" }, { "ylu", "Aribwaung" }, { "yly", "Nyâlayu" }, { "ymb", "Yambes" }, { "ymc", "Southern Muji" }, { "ymd", "Muda" }, { "yme", "Yameo" }, { "ymg", "Yamongeri" }, { "ymh", "Mili" }, { "ymi", "Moji" }, { "ymk", "Makwe" }, { "yml", "Iamalele" }, { "ymm", "Maay" }, { "ymn", "Yamna" }, { "ymo", "Yangum Mon" }, { "ymp", "Yamap" }, { "ymq", "Qila Muji" }, { "ymr", "Malasar" }, { "yms", "Mysian" }, { "ymt", "Mator-Taygi-Karagas" }, { "ymx", "Northern Muji" }, { "ymz", "Muzi" }, { "yna", "Aluo" }, { "ynd", "Yandruwandha" }, { "yne", "Lang'e" }, { "yng", "Yango" }, { "ynh", "Yangho" }, { "ynk", "Naukan Yupik" }, { "ynl", "Yangulam" }, { "ynn", "Yana" }, { "yno", "Yong" }, { "ynq", "Yendang" }, { "yns", "Yansi" }, { "ynu", "Yahuna" }, { "yob", "Yoba" }, { "yog", "Yogad" }, { "yoi", "Yonaguni" }, { "yok", "Yokuts" }, { "yol", "Yola" }, { "yom", "Yombe" }, { "yon", "Yongkom" }, { "yor", "Yoruba" }, { "yot", "Yotti" }, { "yox", "Yoron" }, { "yoy", "Yoy" }, { "ypa", "Phala" }, { "ypb", "Labo Phowa" }, { "ypg", "Phola" }, { "yph", "Phupha" }, { "ypm", "Phuma" }, { "ypn", "Ani Phowa" }, { "ypo", "Alo Phola" }, { "ypp", "Phupa" }, { "ypz", "Phuza" }, { "yra", "Yerakai" }, { "yrb", "Yareba" }, { "yre", "Yaouré" }, { "yri", "Yarí" }, { "yrk", "Nenets" }, { "yrl", "Nhengatu" }, { "yrm", "Yirrk-Mel" }, { "yrn", "Yerong" }, { "yrs", "Yarsun" }, { "yrw", "Yarawata" }, { "yry", "Yarluyandi" }, { "ysc", "Yassic" }, { "ysd", "Samatao" }, { "ysg", "Sonaga" }, { "ysl", "Yugoslavian Sign Language" }, { "ysn", "Sani" }, { "yso", "Nisi (China)" }, { "ysp", "Southern Lolopo" }, { "ysr", "Sirenik Yupik" }, { "yss", "Yessan-Mayo" }, { "ysy", "Sanie" }, { "yta", "Talu" }, { "ytl", "Tanglang" }, { "ytp", "Thopho" }, { "ytw", "Yout Wam" }, { "yty", "Yatay" }, { "yua", "Yucateco" }, { "yub", "Yugambal" }, { "yuc", "Yuchi" }, { "yud", "Judeo-Tripolitanian Arabic" }, { "yue", "Yue Chinese" }, { "yuf", "Havasupai-Walapai-Yavapai" }, { "yug", "Yug" }, { "yui", "Yurutí" }, { "yuj", "Karkar-Yuri" }, { "yuk", "Yuki" }, { "yul", "Yulu" }, { "yum", "Quechan" }, { "yun", "Bena (Nigeria)" }, { "yup", "Yukpa" }, { "yuq", "Yuqui" }, { "yur", "Yurok" }, { "yut", "Yopno" }, { "yuu", "Yugh" }, { "yuw", "Yau (Morobe Province)" }, { "yux", "Southern Yukaghir" }, { "yuy", "East Yugur" }, { "yuz", "Yuracare" }, { "yva", "Yawa" }, { "yvt", "Yavitero" }, { "ywa", "Kalou" }, { "ywg", "Yinhawangka" }, { "ywl", "Western Lalu" }, { "ywn", "Yawanawa" }, { "ywq", "Wuding-Luquan Yi" }, { "ywr", "Yawuru" }, { "ywt", "Xishanba Lalo" }, { "ywu", "Wumeng Nasu" }, { "yww", "Yawarawarga" }, { "yxa", "Mayawali" }, { "yxg", "Yagara" }, { "yxl", "Yardliyawarra" }, { "yxm", "Yinwum" }, { "yxu", "Yuyu" }, { "yxy", "Yabula Yabula" }, { "yyr", "Yir Yoront" }, { "yyu", "Yau (Sandaun Province)" }, { "yyz", "Ayizi" }, { "yzg", "E'ma Buyang" }, { "yzk", "Zokhuo" }, { "zaa", "Sierra de Juárez Zapotec" }, { "zab", "San Juan Guelavía Zapotec" }, { "zac", "Ocotlán Zapotec" }, { "zad", "Cajonos Zapotec" }, { "zae", "Yareni Zapotec" }, { "zaf", "Ayoquesco Zapotec" }, { "zag", "Zaghawa" }, { "zah", "Zangwal" }, { "zai", "Isthmus Zapotec" }, { "zaj", "Zaramo" }, { "zak", "Zanaki" }, { "zal", "Zauzou" }, { "zam", "Miahuatlán Zapotec" }, { "zao", "Ozolotepec Zapotec" }, { "zap", "Zapotec" }, { "zaq", "Aloápam Zapotec" }, { "zar", "Rincón Zapotec" }, { "zas", "Santo Domingo Albarradas Zapotec" }, { "zat", "Tabaa Zapotec" }, { "zau", "Zangskari" }, { "zav", "Yatzachi Zapotec" }, { "zaw", "Mitla Zapotec" }, { "zax", "Xadani Zapotec" }, { "zay", "Zayse-Zergulla" }, { "zaz", "Zari" }, { "zbc", "Central Berawan" }, { "zbe", "East Berawan" }, { "zbl", "Blissymbols" }, { "zbt", "Batui" }, { "zbw", "West Berawan" }, { "zca", "Coatecas Altas Zapotec" }, { "zch", "Central Hongshuihe Zhuang" }, { "zdj", "Ngazidja Comorian" }, { "zea", "Zeeuws" }, { "zeg", "Zenag" }, { "zeh", "Eastern Hongshuihe Zhuang" }, { "zen", "Zenaga" }, { "zga", "Kinga" }, { "zgb", "Guibei Zhuang" }, { "zgh", "Standard Moroccan Tamazight" }, { "zgm", "Minz Zhuang" }, { "zgn", "Guibian Zhuang" }, { "zgr", "Magori" }, { "zha", "Zhuang" }, { "zhb", "Zhaba" }, { "zhd", "Dai Zhuang" }, { "zhi", "Zhire" }, { "zhn", "Nong Zhuang" }, { "zho", "Chinese" }, { "zhw", "Zhoa" }, { "zia", "Zia" }, { "zib", "Zimbabwe Sign Language" }, { "zik", "Zimakani" }, { "zil", "Zialo" }, { "zim", "Mesme" }, { "zin", "Zinza" }, { "zir", "Ziriya" }, { "ziw", "Zigula" }, { "ziz", "Zizilivakan" }, { "zka", "Kaimbulawa" }, { "zkb", "Koibal" }, { "zkd", "Kadu" }, { "zkg", "Koguryo" }, { "zkh", "Khorezmian" }, { "zkk", "Karankawa" }, { "zkn", "Kanan" }, { "zko", "Kott" }, { "zkp", "São Paulo Kaingáng" }, { "zkr", "Zakhring" }, { "zkt", "Kitan" }, { "zku", "Kaurna" }, { "zkv", "Krevinian" }, { "zkz", "Khazar" }, { "zlj", "Liujiang Zhuang" }, { "zlm", "Malay (individual language)" }, { "zln", "Lianshan Zhuang" }, { "zlq", "Liuqian Zhuang" }, { "zma", "Manda (Australia)" }, { "zmb", "Zimba" }, { "zmc", "Margany" }, { "zmd", "Maridan" }, { "zme", "Mangerr" }, { "zmf", "Mfinu" }, { "zmg", "Marti Ke" }, { "zmh", "Makolkol" }, { "zmi", "Negeri Sembilan Malay" }, { "zmj", "Maridjabin" }, { "zmk", "Mandandanyi" }, { "zml", "Madngele" }, { "zmm", "Marimanindji" }, { "zmn", "Mbangwe" }, { "zmo", "Molo" }, { "zmp", "Mpuono" }, { "zmq", "Mituku" }, { "zmr", "Maranunggu" }, { "zms", "Mbesa" }, { "zmt", "Maringarr" }, { "zmu", "Muruwari" }, { "zmv", "Mbariman-Gudhinma" }, { "zmw", "Mbo (Democratic Republic of Congo)" }, { "zmx", "Bomitaba" }, { "zmy", "Mariyedi" }, { "zmz", "Mbandja" }, { "zna", "Zan Gula" }, { "zne", "Zande (individual language)" }, { "zng", "Mang" }, { "znk", "Manangkari" }, { "zns", "Mangas" }, { "zoc", "Copainalá Zoque" }, { "zoh", "Chimalapa Zoque" }, { "zom", "Zou" }, { "zoo", "Asunción Mixtepec Zapotec" }, { "zoq", "Tabasco Zoque" }, { "zor", "Rayón Zoque" }, { "zos", "Francisco León Zoque" }, { "zpa", "Lachiguiri Zapotec" }, { "zpb", "Yautepec Zapotec" }, { "zpc", "Choapan Zapotec" }, { "zpd", "Southeastern Ixtlán Zapotec" }, { "zpe", "Petapa Zapotec" }, { "zpf", "San Pedro Quiatoni Zapotec" }, { "zpg", "Guevea De Humboldt Zapotec" }, { "zph", "Totomachapan Zapotec" }, { "zpi", "Santa María Quiegolani Zapotec" }, { "zpj", "Quiavicuzas Zapotec" }, { "zpk", "Tlacolulita Zapotec" }, { "zpl", "Lachixío Zapotec" }, { "zpm", "Mixtepec Zapotec" }, { "zpn", "Santa Inés Yatzechi Zapotec" }, { "zpo", "Amatlán Zapotec" }, { "zpp", "El Alto Zapotec" }, { "zpq", "Zoogocho Zapotec" }, { "zpr", "Santiago Xanica Zapotec" }, { "zps", "Coatlán Zapotec" }, { "zpt", "San Vicente Coatlán Zapotec" }, { "zpu", "Yalálag Zapotec" }, { "zpv", "Chichicapan Zapotec" }, { "zpw", "Zaniza Zapotec" }, { "zpx", "San Baltazar Loxicha Zapotec" }, { "zpy", "Mazaltepec Zapotec" }, { "zpz", "Texmelucan Zapotec" }, { "zqe", "Qiubei Zhuang" }, { "zra", "Kara (Korea)" }, { "zrg", "Mirgan" }, { "zrn", "Zerenkel" }, { "zro", "Záparo" }, { "zrp", "Zarphatic" }, { "zrs", "Mairasi" }, { "zsa", "Sarasira" }, { "zsk", "Kaskean" }, { "zsl", "Zambian Sign Language" }, { "zsm", "Standard Malay" }, { "zsr", "Southern Rincon Zapotec" }, { "zsu", "Sukurum" }, { "zte", "Elotepec Zapotec" }, { "ztg", "Xanaguía Zapotec" }, { "ztl", "Lapaguía-Guivini Zapotec" }, { "ztm", "San Agustín Mixtepec Zapotec" }, { "ztn", "Santa Catarina Albarradas Zapotec" }, { "ztp", "Loxicha Zapotec" }, { "ztq", "Quioquitani-Quierí Zapotec" }, { "zts", "Tilquiapan Zapotec" }, { "ztt", "Tejalapan Zapotec" }, { "ztu", "Güilá Zapotec" }, { "ztx", "Zaachila Zapotec" }, { "zty", "Yatee Zapotec" }, { "zua", "Zeem" }, { "zuh", "Tokano" }, { "zul", "Zulu" }, { "zum", "Kumzari" }, { "zun", "Zuni" }, { "zuy", "Zumaya" }, { "zwa", "Zay" }, { "zxx", "No linguistic content" }, { "zyb", "Yongbei Zhuang" }, { "zyg", "Yang Zhuang" }, { "zyj", "Youjiang Zhuang" }, { "zyn", "Yongnan Zhuang" }, { "zyp", "Zyphe Chin" }, { "zza", "Zaza" }, { "zzj", "Zuojiang Zhuang" }, }; static int niso639_3= sizeof( iso639_3 ) / sizeof( iso639_3[0] ); char * iso639_3_from_code( const char *code ) { int i; for ( i=0; i #include "iso639_3.h" typedef struct { char *code; char *language; } iso639_3_t; static iso639_3_t iso639_3[] = { { "aaa", "Ghotuo" }, { "aab", "Alumu-Tesu" }, { "aac", "Ari" }, { "aad", "Amal" }, { "aae", "Arbëreshë Albanian" }, { "aaf", "Aranadan" }, { "aag", "Ambrak" }, { "aah", "Abu' Arapesh" }, { "aai", "Arifama-Miniafia" }, { "aak", "Ankave" }, { "aal", "Afade" }, { "aam", "Aramanik" }, { "aan", "Anambé" }, { "aao", "Algerian Saharan Arabic" }, { "aap", "Pará Arára" }, { "aaq", "Eastern Abnaki" }, { "aar", "Afar" }, { "aas", "Aasáx" }, { "aat", "Arvanitika Albanian" }, { "aau", "Abau" }, { "aaw", "Solong" }, { "aax", "Mandobo Atas" }, { "aaz", "Amarasi" }, { "aba", "Abé" }, { "abb", "Bankon" }, { "abc", "Ambala Ayta" }, { "abd", "Manide" }, { "abe", "Western Abnaki" }, { "abf", "Abai Sungai" }, { "abg", "Abaga" }, { "abh", "Tajiki Arabic" }, { "abi", "Abidji" }, { "abj", "Aka-Bea" }, { "abk", "Abkhazian" }, { "abl", "Lampung Nyo" }, { "abm", "Abanyom" }, { "abn", "Abua" }, { "abo", "Abon" }, { "abp", "Abellen Ayta" }, { "abq", "Abaza" }, { "abr", "Abron" }, { "abs", "Ambonese Malay" }, { "abt", "Ambulas" }, { "abu", "Abure" }, { "abv", "Baharna Arabic" }, { "abw", "Pal" }, { "abx", "Inabaknon" }, { "aby", "Aneme Wake" }, { "abz", "Abui" }, { "aca", "Achagua" }, { "acb", "Áncá" }, { "acd", "Gikyode" }, { "ace", "Achinese" }, { "acf", "Saint Lucian Creole French" }, { "ach", "Acoli" }, { "aci", "Aka-Cari" }, { "ack", "Aka-Kora" }, { "acl", "Akar-Bale" }, { "acm", "Mesopotamian Arabic" }, { "acn", "Achang" }, { "acp", "Eastern Acipa" }, { "acq", "Ta'izzi-Adeni Arabic" }, { "acr", "Achi" }, { "acs", "Acroá" }, { "act", "Achterhoeks" }, { "acu", "Achuar-Shiwiar" }, { "acv", "Achumawi" }, { "acw", "Hijazi Arabic" }, { "acx", "Omani Arabic" }, { "acy", "Cypriot Arabic" }, { "acz", "Acheron" }, { "ada", "Adangme" }, { "adb", "Adabe" }, { "add", "Dzodinka" }, { "ade", "Adele" }, { "adf", "Dhofari Arabic" }, { "adg", "Andegerebinha" }, { "adh", "Adhola" }, { "adi", "Adi" }, { "adj", "Adioukrou" }, { "adl", "Galo" }, { "adn", "Adang" }, { "ado", "Abu" }, { "adp", "Adap" }, { "adq", "Adangbe" }, { "adr", "Adonara" }, { "ads", "Adamorobe Sign Language" }, { "adt", "Adnyamathanha" }, { "adu", "Aduge" }, { "adw", "Amundava" }, { "adx", "Amdo Tibetan" }, { "ady", "Adyghe" }, { "adz", "Adzera" }, { "aea", "Areba" }, { "aeb", "Tunisian Arabic" }, { "aec", "Saidi Arabic" }, { "aed", "Argentine Sign Language" }, { "aee", "Northeast Pashayi" }, { "aek", "Haeke" }, { "ael", "Ambele" }, { "aem", "Arem" }, { "aen", "Armenian Sign Language" }, { "aeq", "Aer" }, { "aer", "Eastern Arrernte" }, { "aes", "Alsea" }, { "aeu", "Akeu" }, { "aew", "Ambakich" }, { "aey", "Amele" }, { "aez", "Aeka" }, { "afb", "Gulf Arabic" }, { "afd", "Andai" }, { "afe", "Putukwam" }, { "afg", "Afghan Sign Language" }, { "afh", "Afrihili" }, { "afi", "Akrukay" }, { "afk", "Nanubae" }, { "afn", "Defaka" }, { "afo", "Eloyi" }, { "afp", "Tapei" }, { "afr", "Afrikaans" }, { "afs", "Afro-Seminole Creole" }, { "aft", "Afitti" }, { "afu", "Awutu" }, { "afz", "Obokuitai" }, { "aga", "Aguano" }, { "agb", "Legbo" }, { "agc", "Agatu" }, { "agd", "Agarabi" }, { "age", "Angal" }, { "agf", "Arguni" }, { "agg", "Angor" }, { "agh", "Ngelima" }, { "agi", "Agariya" }, { "agj", "Argobba" }, { "agk", "Isarog Agta" }, { "agl", "Fembe" }, { "agm", "Angaataha" }, { "agn", "Agutaynen" }, { "ago", "Tainae" }, { "agq", "Aghem" }, { "agr", "Aguaruna" }, { "ags", "Esimbi" }, { "agt", "Central Cagayan Agta" }, { "agu", "Aguacateco" }, { "agv", "Remontado Dumagat" }, { "agw", "Kahua" }, { "agx", "Aghul" }, { "agy", "Southern Alta" }, { "agz", "Mt. Iriga Agta" }, { "aha", "Ahanta" }, { "ahb", "Axamb" }, { "ahg", "Qimant" }, { "ahh", "Aghu" }, { "ahi", "Tiagbamrin Aizi" }, { "ahk", "Akha" }, { "ahl", "Igo" }, { "ahm", "Mobumrin Aizi" }, { "ahn", "Àhàn" }, { "aho", "Ahom" }, { "ahp", "Aproumu Aizi" }, { "ahr", "Ahirani" }, { "ahs", "Ashe" }, { "aht", "Ahtena" }, { "aia", "Arosi" }, { "aib", "Ainu (China)" }, { "aic", "Ainbai" }, { "aid", "Alngith" }, { "aie", "Amara" }, { "aif", "Agi" }, { "aig", "Antigua and Barbuda Creole English" }, { "aih", "Ai-Cham" }, { "aii", "Assyrian Neo-Aramaic" }, { "aij", "Lishanid Noshan" }, { "aik", "Ake" }, { "ail", "Aimele" }, { "aim", "Aimol" }, { "ain", "Ainu (Japan)" }, { "aio", "Aiton" }, { "aip", "Burumakok" }, { "aiq", "Aimaq" }, { "air", "Airoran" }, { "ais", "Nataoran Amis" }, { "ait", "Arikem" }, { "aiw", "Aari" }, { "aix", "Aighon" }, { "aiy", "Ali" }, { "aja", "Aja (Sudan)" }, { "ajg", "Aja (Benin)" }, { "aji", "Ajië" }, { "ajn", "Andajin" }, { "ajp", "South Levantine Arabic" }, { "ajt", "Judeo-Tunisian Arabic" }, { "aju", "Judeo-Moroccan Arabic" }, { "ajw", "Ajawa" }, { "ajz", "Amri Karbi" }, { "aka", "Akan" }, { "akb", "Batak Angkola" }, { "akc", "Mpur" }, { "akd", "Ukpet-Ehom" }, { "ake", "Akawaio" }, { "akf", "Akpa" }, { "akg", "Anakalangu" }, { "akh", "Angal Heneng" }, { "aki", "Aiome" }, { "akj", "Aka-Jeru" }, { "akk", "Akkadian" }, { "akl", "Aklanon" }, { "akm", "Aka-Bo" }, { "ako", "Akurio" }, { "akp", "Siwu" }, { "akq", "Ak" }, { "akr", "Araki" }, { "aks", "Akaselem" }, { "akt", "Akolet" }, { "aku", "Akum" }, { "akv", "Akhvakh" }, { "akw", "Akwa" }, { "akx", "Aka-Kede" }, { "aky", "Aka-Kol" }, { "akz", "Alabama" }, { "ala", "Alago" }, { "alc", "Qawasqar" }, { "ald", "Alladian" }, { "ale", "Aleut" }, { "alf", "Alege" }, { "alh", "Alawa" }, { "ali", "Amaimon" }, { "alj", "Alangan" }, { "alk", "Alak" }, { "all", "Allar" }, { "alm", "Amblong" }, { "aln", "Gheg Albanian" }, { "alo", "Larike-Wakasihu" }, { "alp", "Alune" }, { "alq", "Algonquin" }, { "alr", "Alutor" }, { "als", "Tosk Albanian" }, { "alt", "Southern Altai" }, { "alu", "'Are'are" }, { "alw", "Alaba-K’abeena" }, { "alx", "Amol" }, { "aly", "Alyawarr" }, { "alz", "Alur" }, { "ama", "Amanayé" }, { "amb", "Ambo" }, { "amc", "Amahuaca" }, { "ame", "Yanesha'" }, { "amf", "Hamer-Banna" }, { "amg", "Amurdak" }, { "amh", "Amharic" }, { "ami", "Amis" }, { "amj", "Amdang" }, { "amk", "Ambai" }, { "aml", "War-Jaintia" }, { "amm", "Ama (Papua New Guinea)" }, { "amn", "Amanab" }, { "amo", "Amo" }, { "amp", "Alamblak" }, { "amq", "Amahai" }, { "amr", "Amarakaeri" }, { "ams", "Southern Amami-Oshima" }, { "amt", "Amto" }, { "amu", "Guerrero Amuzgo" }, { "amv", "Ambelau" }, { "amw", "Western Neo-Aramaic" }, { "amx", "Anmatyerre" }, { "amy", "Ami" }, { "amz", "Atampaya" }, { "ana", "Andaqui" }, { "anb", "Andoa" }, { "anc", "Ngas" }, { "and", "Ansus" }, { "ane", "Xârâcùù" }, { "anf", "Animere" }, { "ang", "Old English (ca. 450-1100)" }, { "anh", "Nend" }, { "ani", "Andi" }, { "anj", "Anor" }, { "ank", "Goemai" }, { "anl", "Anu-Hkongso Chin" }, { "anm", "Anal" }, { "ann", "Obolo" }, { "ano", "Andoque" }, { "anp", "Angika" }, { "anq", "Jarawa (India)" }, { "anr", "Andh" }, { "ans", "Anserma" }, { "ant", "Antakarinya" }, { "anu", "Anuak" }, { "anv", "Denya" }, { "anw", "Anaang" }, { "anx", "Andra-Hus" }, { "any", "Anyin" }, { "anz", "Anem" }, { "aoa", "Angolar" }, { "aob", "Abom" }, { "aoc", "Pemon" }, { "aod", "Andarum" }, { "aoe", "Angal Enen" }, { "aof", "Bragat" }, { "aog", "Angoram" }, { "aoh", "Arma" }, { "aoi", "Anindilyakwa" }, { "aoj", "Mufian" }, { "aok", "Arhö" }, { "aol", "Alor" }, { "aom", "Ömie" }, { "aon", "Bumbita Arapesh" }, { "aor", "Aore" }, { "aos", "Taikat" }, { "aot", "A'tong" }, { "aou", "A'ou" }, { "aox", "Atorada" }, { "aoz", "Uab Meto" }, { "apb", "Sa'a" }, { "apc", "North Levantine Arabic" }, { "apd", "Sudanese Arabic" }, { "ape", "Bukiyip" }, { "apf", "Pahanan Agta" }, { "apg", "Ampanang" }, { "aph", "Athpariya" }, { "api", "Apiaká" }, { "apj", "Jicarilla Apache" }, { "apk", "Kiowa Apache" }, { "apl", "Lipan Apache" }, { "apm", "Mescalero-Chiricahua Apache" }, { "apn", "Apinayé" }, { "apo", "Ambul" }, { "app", "Apma" }, { "apq", "A-Pucikwar" }, { "apr", "Arop-Lokep" }, { "aps", "Arop-Sissano" }, { "apt", "Apatani" }, { "apu", "Apurinã" }, { "apv", "Alapmunte" }, { "apw", "Western Apache" }, { "apx", "Aputai" }, { "apy", "Apalaí" }, { "apz", "Safeyoka" }, { "aqc", "Archi" }, { "aqd", "Ampari Dogon" }, { "aqg", "Arigidi" }, { "aqm", "Atohwaim" }, { "aqn", "Northern Alta" }, { "aqp", "Atakapa" }, { "aqr", "Arhâ" }, { "aqz", "Akuntsu" }, { "ara", "Arabic" }, { "arb", "Standard Arabic" }, { "arc", "Official Aramaic (700-300 BCE)" }, { "ard", "Arabana" }, { "are", "Western Arrarnta" }, { "arg", "Aragonese" }, { "arh", "Arhuaco" }, { "ari", "Arikara" }, { "arj", "Arapaso" }, { "ark", "Arikapú" }, { "arl", "Arabela" }, { "arn", "Mapudungun" }, { "aro", "Araona" }, { "arp", "Arapaho" }, { "arq", "Algerian Arabic" }, { "arr", "Karo (Brazil)" }, { "ars", "Najdi Arabic" }, { "aru", "Aruá (Amazonas State)" }, { "arv", "Arbore" }, { "arw", "Arawak" }, { "arx", "Aruá (Rodonia State)" }, { "ary", "Moroccan Arabic" }, { "arz", "Egyptian Arabic" }, { "asa", "Asu (Tanzania)" }, { "asb", "Assiniboine" }, { "asc", "Casuarina Coast Asmat" }, { "asd", "Asas" }, { "ase", "American Sign Language" }, { "asf", "Australian Sign Language" }, { "asg", "Cishingini" }, { "ash", "Abishira" }, { "asi", "Buruwai" }, { "asj", "Sari" }, { "ask", "Ashkun" }, { "asl", "Asilulu" }, { "asm", "Assamese" }, { "asn", "Xingú Asuriní" }, { "aso", "Dano" }, { "asp", "Algerian Sign Language" }, { "asq", "Austrian Sign Language" }, { "asr", "Asuri" }, { "ass", "Ipulo" }, { "ast", "Asturian" }, { "asu", "Tocantins Asurini" }, { "asv", "Asoa" }, { "asw", "Australian Aborigines Sign Language" }, { "asx", "Muratayak" }, { "asy", "Yaosakor Asmat" }, { "asz", "As" }, { "ata", "Pele-Ata" }, { "atb", "Zaiwa" }, { "atc", "Atsahuaca" }, { "atd", "Ata Manobo" }, { "ate", "Atemble" }, { "atg", "Ivbie North-Okpela-Arhe" }, { "ati", "Attié" }, { "atj", "Atikamekw" }, { "atk", "Ati" }, { "atl", "Mt. Iraya Agta" }, { "atm", "Ata" }, { "atn", "Ashtiani" }, { "ato", "Atong" }, { "atp", "Pudtol Atta" }, { "atq", "Aralle-Tabulahan" }, { "atr", "Waimiri-Atroari" }, { "ats", "Gros Ventre" }, { "att", "Pamplona Atta" }, { "atu", "Reel" }, { "atv", "Northern Altai" }, { "atw", "Atsugewi" }, { "atx", "Arutani" }, { "aty", "Aneityum" }, { "atz", "Arta" }, { "aua", "Asumboa" }, { "aub", "Alugu" }, { "auc", "Waorani" }, { "aud", "Anuta" }, { "aue", "=Kx'au'ein" }, { "aug", "Aguna" }, { "auh", "Aushi" }, { "aui", "Anuki" }, { "auj", "Awjilah" }, { "auk", "Heyo" }, { "aul", "Aulua" }, { "aum", "Asu (Nigeria)" }, { "aun", "Molmo One" }, { "auo", "Auyokawa" }, { "aup", "Makayam" }, { "auq", "Anus" }, { "aur", "Aruek" }, { "aut", "Austral" }, { "auu", "Auye" }, { "auw", "Awyi" }, { "aux", "Aurá" }, { "auy", "Awiyaana" }, { "auz", "Uzbeki Arabic" }, { "ava", "Avaric" }, { "avb", "Avau" }, { "avd", "Alviri-Vidari" }, { "ave", "Avestan" }, { "avi", "Avikam" }, { "avk", "Kotava" }, { "avl", "Eastern Egyptian Bedawi Arabic" }, { "avm", "Angkamuthi" }, { "avn", "Avatime" }, { "avo", "Agavotaguerra" }, { "avs", "Aushiri" }, { "avt", "Au" }, { "avu", "Avokaya" }, { "avv", "Avá-Canoeiro" }, { "awa", "Awadhi" }, { "awb", "Awa (Papua New Guinea)" }, { "awc", "Cicipu" }, { "awe", "Awetí" }, { "awg", "Anguthimri" }, { "awh", "Awbono" }, { "awi", "Aekyom" }, { "awk", "Awabakal" }, { "awm", "Arawum" }, { "awn", "Awngi" }, { "awo", "Awak" }, { "awr", "Awera" }, { "aws", "South Awyu" }, { "awt", "Araweté" }, { "awu", "Central Awyu" }, { "awv", "Jair Awyu" }, { "aww", "Awun" }, { "awx", "Awara" }, { "awy", "Edera Awyu" }, { "axb", "Abipon" }, { "axe", "Ayerrerenge" }, { "axg", "Mato Grosso Arára" }, { "axk", "Yaka (Central African Republic)" }, { "axl", "Lower Southern Aranda" }, { "axm", "Middle Armenian" }, { "axx", "Xârâgurè" }, { "aya", "Awar" }, { "ayb", "Ayizo Gbe" }, { "ayc", "Southern Aymara" }, { "ayd", "Ayabadhu" }, { "aye", "Ayere" }, { "ayg", "Ginyanga" }, { "ayh", "Hadrami Arabic" }, { "ayi", "Leyigha" }, { "ayk", "Akuku" }, { "ayl", "Libyan Arabic" }, { "aym", "Aymara" }, { "ayn", "Sanaani Arabic" }, { "ayo", "Ayoreo" }, { "ayp", "North Mesopotamian Arabic" }, { "ayq", "Ayi (Papua New Guinea)" }, { "ayr", "Central Aymara" }, { "ays", "Sorsogon Ayta" }, { "ayt", "Magbukun Ayta" }, { "ayu", "Ayu" }, { "ayy", "Tayabas Ayta" }, { "ayz", "Mai Brat" }, { "aza", "Azha" }, { "azb", "South Azerbaijani" }, { "azd", "Eastern Durango Nahuatl" }, { "aze", "Azerbaijani" }, { "azg", "San Pedro Amuzgos Amuzgo" }, { "azj", "North Azerbaijani" }, { "azm", "Ipalapa Amuzgo" }, { "azn", "Western Durango Nahuatl" }, { "azo", "Awing" }, { "azt", "Faire Atta" }, { "azz", "Highland Puebla Nahuatl" }, { "baa", "Babatana" }, { "bab", "Bainouk-Gunyuño" }, { "bac", "Badui" }, { "bae", "Baré" }, { "baf", "Nubaca" }, { "bag", "Tuki" }, { "bah", "Bahamas Creole English" }, { "baj", "Barakai" }, { "bak", "Bashkir" }, { "bal", "Baluchi" }, { "bam", "Bambara" }, { "ban", "Balinese" }, { "bao", "Waimaha" }, { "bap", "Bantawa" }, { "bar", "Bavarian" }, { "bas", "Basa (Cameroon)" }, { "bau", "Bada (Nigeria)" }, { "bav", "Vengo" }, { "baw", "Bambili-Bambui" }, { "bax", "Bamun" }, { "bay", "Batuley" }, { "bba", "Baatonum" }, { "bbb", "Barai" }, { "bbc", "Batak Toba" }, { "bbd", "Bau" }, { "bbe", "Bangba" }, { "bbf", "Baibai" }, { "bbg", "Barama" }, { "bbh", "Bugan" }, { "bbi", "Barombi" }, { "bbj", "Ghomálá'" }, { "bbk", "Babanki" }, { "bbl", "Bats" }, { "bbm", "Babango" }, { "bbn", "Uneapa" }, { "bbo", "Northern Bobo Madaré" }, { "bbp", "West Central Banda" }, { "bbq", "Bamali" }, { "bbr", "Girawa" }, { "bbs", "Bakpinka" }, { "bbt", "Mburku" }, { "bbu", "Kulung (Nigeria)" }, { "bbv", "Karnai" }, { "bbw", "Baba" }, { "bbx", "Bubia" }, { "bby", "Befang" }, { "bbz", "Babalia Creole Arabic" }, { "bca", "Central Bai" }, { "bcb", "Bainouk-Samik" }, { "bcc", "Southern Balochi" }, { "bcd", "North Babar" }, { "bce", "Bamenyam" }, { "bcf", "Bamu" }, { "bcg", "Baga Binari" }, { "bch", "Bariai" }, { "bci", "Baoulé" }, { "bcj", "Bardi" }, { "bck", "Bunaba" }, { "bcl", "Central Bikol" }, { "bcm", "Bannoni" }, { "bcn", "Bali (Nigeria)" }, { "bco", "Kaluli" }, { "bcp", "Bali (Democratic Republic of Congo)" }, { "bcq", "Bench" }, { "bcr", "Babine" }, { "bcs", "Kohumono" }, { "bct", "Bendi" }, { "bcu", "Awad Bing" }, { "bcv", "Shoo-Minda-Nye" }, { "bcw", "Bana" }, { "bcy", "Bacama" }, { "bcz", "Bainouk-Gunyaamolo" }, { "bda", "Bayot" }, { "bdb", "Basap" }, { "bdc", "Emberá-Baudó" }, { "bdd", "Bunama" }, { "bde", "Bade" }, { "bdf", "Biage" }, { "bdg", "Bonggi" }, { "bdh", "Baka (Sudan)" }, { "bdi", "Burun" }, { "bdj", "Bai" }, { "bdk", "Budukh" }, { "bdl", "Indonesian Bajau" }, { "bdm", "Buduma" }, { "bdn", "Baldemu" }, { "bdo", "Morom" }, { "bdp", "Bende" }, { "bdq", "Bahnar" }, { "bdr", "West Coast Bajau" }, { "bds", "Burunge" }, { "bdt", "Bokoto" }, { "bdu", "Oroko" }, { "bdv", "Bodo Parja" }, { "bdw", "Baham" }, { "bdx", "Budong-Budong" }, { "bdy", "Bandjalang" }, { "bdz", "Badeshi" }, { "bea", "Beaver" }, { "beb", "Bebele" }, { "bec", "Iceve-Maci" }, { "bed", "Bedoanas" }, { "bee", "Byangsi" }, { "bef", "Benabena" }, { "beg", "Belait" }, { "beh", "Biali" }, { "bei", "Bekati'" }, { "bej", "Beja" }, { "bek", "Bebeli" }, { "bel", "Belarusian" }, { "bem", "Bemba (Zambia)" }, { "ben", "Bengali" }, { "beo", "Beami" }, { "bep", "Besoa" }, { "beq", "Beembe" }, { "bes", "Besme" }, { "bet", "Guiberoua Béte" }, { "beu", "Blagar" }, { "bev", "Daloa Bété" }, { "bew", "Betawi" }, { "bex", "Jur Modo" }, { "bey", "Beli (Papua New Guinea)" }, { "bez", "Bena (Tanzania)" }, { "bfa", "Bari" }, { "bfb", "Pauri Bareli" }, { "bfc", "Northern Bai" }, { "bfd", "Bafut" }, { "bfe", "Betaf" }, { "bff", "Bofi" }, { "bfg", "Busang Kayan" }, { "bfh", "Blafe" }, { "bfi", "British Sign Language" }, { "bfj", "Bafanji" }, { "bfk", "Ban Khor Sign Language" }, { "bfl", "Banda-Ndélé" }, { "bfm", "Mmen" }, { "bfn", "Bunak" }, { "bfo", "Malba Birifor" }, { "bfp", "Beba" }, { "bfq", "Badaga" }, { "bfr", "Bazigar" }, { "bfs", "Southern Bai" }, { "bft", "Balti" }, { "bfu", "Gahri" }, { "bfw", "Bondo" }, { "bfx", "Bantayanon" }, { "bfy", "Bagheli" }, { "bfz", "Mahasu Pahari" }, { "bga", "Gwamhi-Wuri" }, { "bgb", "Bobongko" }, { "bgc", "Haryanvi" }, { "bgd", "Rathwi Bareli" }, { "bge", "Bauria" }, { "bgf", "Bangandu" }, { "bgg", "Bugun" }, { "bgi", "Giangan" }, { "bgj", "Bangolan" }, { "bgk", "Bit" }, { "bgl", "Bo (Laos)" }, { "bgm", "Baga Mboteni" }, { "bgn", "Western Balochi" }, { "bgo", "Baga Koga" }, { "bgp", "Eastern Balochi" }, { "bgq", "Bagri" }, { "bgr", "Bawm Chin" }, { "bgs", "Tagabawa" }, { "bgt", "Bughotu" }, { "bgu", "Mbongno" }, { "bgv", "Warkay-Bipim" }, { "bgw", "Bhatri" }, { "bgx", "Balkan Gagauz Turkish" }, { "bgy", "Benggoi" }, { "bgz", "Banggai" }, { "bha", "Bharia" }, { "bhb", "Bhili" }, { "bhc", "Biga" }, { "bhd", "Bhadrawahi" }, { "bhe", "Bhaya" }, { "bhf", "Odiai" }, { "bhg", "Binandere" }, { "bhh", "Bukharic" }, { "bhi", "Bhilali" }, { "bhj", "Bahing" }, { "bhl", "Bimin" }, { "bhm", "Bathari" }, { "bhn", "Bohtan Neo-Aramaic" }, { "bho", "Bhojpuri" }, { "bhp", "Bima" }, { "bhq", "Tukang Besi South" }, { "bhr", "Bara Malagasy" }, { "bhs", "Buwal" }, { "bht", "Bhattiyali" }, { "bhu", "Bhunjia" }, { "bhv", "Bahau" }, { "bhw", "Biak" }, { "bhx", "Bhalay" }, { "bhy", "Bhele" }, { "bhz", "Bada (Indonesia)" }, { "bia", "Badimaya" }, { "bib", "Bissa" }, { "bic", "Bikaru" }, { "bid", "Bidiyo" }, { "bie", "Bepour" }, { "bif", "Biafada" }, { "big", "Biangai" }, { "bij", "Vaghat-Ya-Bijim-Legeri" }, { "bik", "Bikol" }, { "bil", "Bile" }, { "bim", "Bimoba" }, { "bin", "Bini" }, { "bio", "Nai" }, { "bip", "Bila" }, { "biq", "Bipi" }, { "bir", "Bisorio" }, { "bis", "Bislama" }, { "bit", "Berinomo" }, { "biu", "Biete" }, { "biv", "Southern Birifor" }, { "biw", "Kol (Cameroon)" }, { "bix", "Bijori" }, { "biy", "Birhor" }, { "biz", "Baloi" }, { "bja", "Budza" }, { "bjb", "Banggarla" }, { "bjc", "Bariji" }, { "bje", "Biao-Jiao Mien" }, { "bjf", "Barzani Jewish Neo-Aramaic" }, { "bjg", "Bidyogo" }, { "bjh", "Bahinemo" }, { "bji", "Burji" }, { "bjj", "Kanauji" }, { "bjk", "Barok" }, { "bjl", "Bulu (Papua New Guinea)" }, { "bjm", "Bajelani" }, { "bjn", "Banjar" }, { "bjo", "Mid-Southern Banda" }, { "bjp", "Fanamaket" }, { "bjr", "Binumarien" }, { "bjs", "Bajan" }, { "bjt", "Balanta-Ganja" }, { "bju", "Busuu" }, { "bjv", "Bedjond" }, { "bjw", "Bakwé" }, { "bjx", "Banao Itneg" }, { "bjy", "Bayali" }, { "bjz", "Baruga" }, { "bka", "Kyak" }, { "bkc", "Baka (Cameroon)" }, { "bkd", "Binukid" }, { "bkf", "Beeke" }, { "bkg", "Buraka" }, { "bkh", "Bakoko" }, { "bki", "Baki" }, { "bkj", "Pande" }, { "bkk", "Brokskat" }, { "bkl", "Berik" }, { "bkm", "Kom (Cameroon)" }, { "bkn", "Bukitan" }, { "bko", "Kwa'" }, { "bkp", "Boko (Democratic Republic of Congo)" }, { "bkq", "Bakairí" }, { "bkr", "Bakumpai" }, { "bks", "Northern Sorsoganon" }, { "bkt", "Boloki" }, { "bku", "Buhid" }, { "bkv", "Bekwarra" }, { "bkw", "Bekwel" }, { "bkx", "Baikeno" }, { "bky", "Bokyi" }, { "bkz", "Bungku" }, { "bla", "Siksika" }, { "blb", "Bilua" }, { "blc", "Bella Coola" }, { "bld", "Bolango" }, { "ble", "Balanta-Kentohe" }, { "blf", "Buol" }, { "blg", "Balau" }, { "blh", "Kuwaa" }, { "bli", "Bolia" }, { "blj", "Bolongan" }, { "blk", "Pa'o Karen" }, { "bll", "Biloxi" }, { "blm", "Beli (Sudan)" }, { "bln", "Southern Catanduanes Bikol" }, { "blo", "Anii" }, { "blp", "Blablanga" }, { "blq", "Baluan-Pam" }, { "blr", "Blang" }, { "bls", "Balaesang" }, { "blt", "Tai Dam" }, { "blv", "Bolo" }, { "blw", "Balangao" }, { "blx", "Mag-Indi Ayta" }, { "bly", "Notre" }, { "blz", "Balantak" }, { "bma", "Lame" }, { "bmb", "Bembe" }, { "bmc", "Biem" }, { "bmd", "Baga Manduri" }, { "bme", "Limassa" }, { "bmf", "Bom" }, { "bmg", "Bamwe" }, { "bmh", "Kein" }, { "bmi", "Bagirmi" }, { "bmj", "Bote-Majhi" }, { "bmk", "Ghayavi" }, { "bml", "Bomboli" }, { "bmm", "Northern Betsimisaraka Malagasy" }, { "bmn", "Bina (Papua New Guinea)" }, { "bmo", "Bambalang" }, { "bmp", "Bulgebi" }, { "bmq", "Bomu" }, { "bmr", "Muinane" }, { "bms", "Bilma Kanuri" }, { "bmt", "Biao Mon" }, { "bmu", "Somba-Siawari" }, { "bmv", "Bum" }, { "bmw", "Bomwali" }, { "bmx", "Baimak" }, { "bmy", "Bemba (Democratic Republic of Congo)" }, { "bmz", "Baramu" }, { "bna", "Bonerate" }, { "bnb", "Bookan" }, { "bnc", "Bontok" }, { "bnd", "Banda (Indonesia)" }, { "bne", "Bintauna" }, { "bnf", "Masiwang" }, { "bng", "Benga" }, { "bni", "Bangi" }, { "bnj", "Eastern Tawbuid" }, { "bnk", "Bierebo" }, { "bnl", "Boon" }, { "bnm", "Batanga" }, { "bnn", "Bunun" }, { "bno", "Bantoanon" }, { "bnp", "Bola" }, { "bnq", "Bantik" }, { "bnr", "Butmas-Tur" }, { "bns", "Bundeli" }, { "bnu", "Bentong" }, { "bnv", "Bonerif" }, { "bnw", "Bisis" }, { "bnx", "Bangubangu" }, { "bny", "Bintulu" }, { "bnz", "Beezen" }, { "boa", "Bora" }, { "bob", "Aweer" }, { "bod", "Tibetan" }, { "boe", "Mundabli" }, { "bof", "Bolon" }, { "bog", "Bamako Sign Language" }, { "boh", "Boma" }, { "boi", "Barbareño" }, { "boj", "Anjam" }, { "bok", "Bonjo" }, { "bol", "Bole" }, { "bom", "Berom" }, { "bon", "Bine" }, { "boo", "Tiemacèwè Bozo" }, { "bop", "Bonkiman" }, { "boq", "Bogaya" }, { "bor", "Borôro" }, { "bos", "Bosnian" }, { "bot", "Bongo" }, { "bou", "Bondei" }, { "bov", "Tuwuli" }, { "bow", "Rema" }, { "box", "Buamu" }, { "boy", "Bodo (Central African Republic)" }, { "boz", "Tiéyaxo Bozo" }, { "bpa", "Daakaka" }, { "bpb", "Barbacoas" }, { "bpd", "Banda-Banda" }, { "bpg", "Bonggo" }, { "bph", "Botlikh" }, { "bpi", "Bagupi" }, { "bpj", "Binji" }, { "bpk", "Orowe" }, { "bpl", "Broome Pearling Lugger Pidgin" }, { "bpm", "Biyom" }, { "bpn", "Dzao Min" }, { "bpo", "Anasi" }, { "bpp", "Kaure" }, { "bpq", "Banda Malay" }, { "bpr", "Koronadal Blaan" }, { "bps", "Sarangani Blaan" }, { "bpt", "Barrow Point" }, { "bpu", "Bongu" }, { "bpv", "Bian Marind" }, { "bpw", "Bo (Papua New Guinea)" }, { "bpx", "Palya Bareli" }, { "bpy", "Bishnupriya" }, { "bpz", "Bilba" }, { "bqa", "Tchumbuli" }, { "bqb", "Bagusa" }, { "bqc", "Boko (Benin)" }, { "bqd", "Bung" }, { "bqf", "Baga Kaloum" }, { "bqg", "Bago-Kusuntu" }, { "bqh", "Baima" }, { "bqi", "Bakhtiari" }, { "bqj", "Bandial" }, { "bqk", "Banda-Mbrès" }, { "bql", "Bilakura" }, { "bqm", "Wumboko" }, { "bqn", "Bulgarian Sign Language" }, { "bqo", "Balo" }, { "bqp", "Busa" }, { "bqq", "Biritai" }, { "bqr", "Burusu" }, { "bqs", "Bosngun" }, { "bqt", "Bamukumbit" }, { "bqu", "Boguru" }, { "bqv", "Koro Wachi" }, { "bqw", "Buru (Nigeria)" }, { "bqx", "Baangi" }, { "bqy", "Bengkala Sign Language" }, { "bqz", "Bakaka" }, { "bra", "Braj" }, { "brb", "Lave" }, { "brc", "Berbice Creole Dutch" }, { "brd", "Baraamu" }, { "bre", "Breton" }, { "brf", "Bera" }, { "brg", "Baure" }, { "brh", "Brahui" }, { "bri", "Mokpwe" }, { "brj", "Bieria" }, { "brk", "Birked" }, { "brl", "Birwa" }, { "brm", "Barambu" }, { "brn", "Boruca" }, { "bro", "Brokkat" }, { "brp", "Barapasi" }, { "brq", "Breri" }, { "brr", "Birao" }, { "brs", "Baras" }, { "brt", "Bitare" }, { "bru", "Eastern Bru" }, { "brv", "Western Bru" }, { "brw", "Bellari" }, { "brx", "Bodo (India)" }, { "bry", "Burui" }, { "brz", "Bilbil" }, { "bsa", "Abinomn" }, { "bsb", "Brunei Bisaya" }, { "bsc", "Bassari" }, { "bse", "Wushi" }, { "bsf", "Bauchi" }, { "bsg", "Bashkardi" }, { "bsh", "Kati" }, { "bsi", "Bassossi" }, { "bsj", "Bangwinji" }, { "bsk", "Burushaski" }, { "bsl", "Basa-Gumna" }, { "bsm", "Busami" }, { "bsn", "Barasana-Eduria" }, { "bso", "Buso" }, { "bsp", "Baga Sitemu" }, { "bsq", "Bassa" }, { "bsr", "Bassa-Kontagora" }, { "bss", "Akoose" }, { "bst", "Basketo" }, { "bsu", "Bahonsuai" }, { "bsv", "Baga Sobané" }, { "bsw", "Baiso" }, { "bsx", "Yangkam" }, { "bsy", "Sabah Bisaya" }, { "bta", "Bata" }, { "btc", "Bati (Cameroon)" }, { "btd", "Batak Dairi" }, { "bte", "Gamo-Ningi" }, { "btf", "Birgit" }, { "btg", "Gagnoa Bété" }, { "bth", "Biatah Bidayuh" }, { "bti", "Burate" }, { "btj", "Bacanese Malay" }, { "btl", "Bhatola" }, { "btm", "Batak Mandailing" }, { "btn", "Ratagnon" }, { "bto", "Rinconada Bikol" }, { "btp", "Budibud" }, { "btq", "Batek" }, { "btr", "Baetora" }, { "bts", "Batak Simalungun" }, { "btt", "Bete-Bendi" }, { "btu", "Batu" }, { "btv", "Bateri" }, { "btw", "Butuanon" }, { "btx", "Batak Karo" }, { "bty", "Bobot" }, { "btz", "Batak Alas-Kluet" }, { "bua", "Buriat" }, { "bub", "Bua" }, { "buc", "Bushi" }, { "bud", "Ntcham" }, { "bue", "Beothuk" }, { "buf", "Bushoong" }, { "bug", "Buginese" }, { "buh", "Younuo Bunu" }, { "bui", "Bongili" }, { "buj", "Basa-Gurmana" }, { "buk", "Bugawac" }, { "bul", "Bulgarian" }, { "bum", "Bulu (Cameroon)" }, { "bun", "Sherbro" }, { "buo", "Terei" }, { "bup", "Busoa" }, { "buq", "Brem" }, { "bus", "Bokobaru" }, { "but", "Bungain" }, { "buu", "Budu" }, { "buv", "Bun" }, { "buw", "Bubi" }, { "bux", "Boghom" }, { "buy", "Bullom So" }, { "buz", "Bukwen" }, { "bva", "Barein" }, { "bvb", "Bube" }, { "bvc", "Baelelea" }, { "bvd", "Baeggu" }, { "bve", "Berau Malay" }, { "bvf", "Boor" }, { "bvg", "Bonkeng" }, { "bvh", "Bure" }, { "bvi", "Belanda Viri" }, { "bvj", "Baan" }, { "bvk", "Bukat" }, { "bvl", "Bolivian Sign Language" }, { "bvm", "Bamunka" }, { "bvn", "Buna" }, { "bvo", "Bolgo" }, { "bvp", "Bumang" }, { "bvq", "Birri" }, { "bvr", "Burarra" }, { "bvt", "Bati (Indonesia)" }, { "bvu", "Bukit Malay" }, { "bvv", "Baniva" }, { "bvw", "Boga" }, { "bvx", "Dibole" }, { "bvy", "Baybayanon" }, { "bvz", "Bauzi" }, { "bwa", "Bwatoo" }, { "bwb", "Namosi-Naitasiri-Serua" }, { "bwc", "Bwile" }, { "bwd", "Bwaidoka" }, { "bwe", "Bwe Karen" }, { "bwf", "Boselewa" }, { "bwg", "Barwe" }, { "bwh", "Bishuo" }, { "bwi", "Baniwa" }, { "bwj", "Láá Láá Bwamu" }, { "bwk", "Bauwaki" }, { "bwl", "Bwela" }, { "bwm", "Biwat" }, { "bwn", "Wunai Bunu" }, { "bwo", "Boro (Ethiopia)" }, { "bwp", "Mandobo Bawah" }, { "bwq", "Southern Bobo Madaré" }, { "bwr", "Bura-Pabir" }, { "bws", "Bomboma" }, { "bwt", "Bafaw-Balong" }, { "bwu", "Buli (Ghana)" }, { "bww", "Bwa" }, { "bwx", "Bu-Nao Bunu" }, { "bwy", "Cwi Bwamu" }, { "bwz", "Bwisi" }, { "bxa", "Tairaha" }, { "bxb", "Belanda Bor" }, { "bxc", "Molengue" }, { "bxd", "Pela" }, { "bxe", "Birale" }, { "bxf", "Bilur" }, { "bxg", "Bangala" }, { "bxh", "Buhutu" }, { "bxi", "Pirlatapa" }, { "bxj", "Bayungu" }, { "bxk", "Bukusu" }, { "bxl", "Jalkunan" }, { "bxm", "Mongolia Buriat" }, { "bxn", "Burduna" }, { "bxo", "Barikanchi" }, { "bxp", "Bebil" }, { "bxq", "Beele" }, { "bxr", "Russia Buriat" }, { "bxs", "Busam" }, { "bxu", "China Buriat" }, { "bxv", "Berakou" }, { "bxw", "Bankagooma" }, { "bxx", "Borna (Democratic Republic of Congo)" }, { "bxz", "Binahari" }, { "bya", "Batak" }, { "byb", "Bikya" }, { "byc", "Ubaghara" }, { "byd", "Benyadu'" }, { "bye", "Pouye" }, { "byf", "Bete" }, { "byg", "Baygo" }, { "byh", "Bhujel" }, { "byi", "Buyu" }, { "byj", "Bina (Nigeria)" }, { "byk", "Biao" }, { "byl", "Bayono" }, { "bym", "Bidyara" }, { "byn", "Bilin" }, { "byo", "Biyo" }, { "byp", "Bumaji" }, { "byq", "Basay" }, { "byr", "Baruya" }, { "bys", "Burak" }, { "byt", "Berti" }, { "byv", "Medumba" }, { "byw", "Belhariya" }, { "byx", "Qaqet" }, { "byy", "Buya" }, { "byz", "Banaro" }, { "bza", "Bandi" }, { "bzb", "Andio" }, { "bzc", "Southern Betsimisaraka Malagasy" }, { "bzd", "Bribri" }, { "bze", "Jenaama Bozo" }, { "bzf", "Boikin" }, { "bzg", "Babuza" }, { "bzh", "Mapos Buang" }, { "bzi", "Bisu" }, { "bzj", "Belize Kriol English" }, { "bzk", "Nicaragua Creole English" }, { "bzl", "Boano (Sulawesi)" }, { "bzm", "Bolondo" }, { "bzn", "Boano (Maluku)" }, { "bzo", "Bozaba" }, { "bzp", "Kemberano" }, { "bzq", "Buli (Indonesia)" }, { "bzr", "Biri" }, { "bzs", "Brazilian Sign Language" }, { "bzt", "Brithenig" }, { "bzu", "Burmeso" }, { "bzv", "Naami" }, { "bzw", "Basa (Nigeria)" }, { "bzx", "Kɛlɛngaxo Bozo" }, { "bzy", "Obanliku" }, { "bzz", "Evant" }, { "caa", "Chortí" }, { "cab", "Garifuna" }, { "cac", "Chuj" }, { "cad", "Caddo" }, { "cae", "Lehar" }, { "caf", "Southern Carrier" }, { "cag", "Nivaclé" }, { "cah", "Cahuarano" }, { "caj", "Chané" }, { "cak", "Kaqchikel" }, { "cal", "Carolinian" }, { "cam", "Cemuhî" }, { "can", "Chambri" }, { "cao", "Chácobo" }, { "cap", "Chipaya" }, { "caq", "Car Nicobarese" }, { "car", "Galibi Carib" }, { "cas", "Tsimané" }, { "cat", "Catalan" }, { "cav", "Cavineña" }, { "caw", "Callawalla" }, { "cax", "Chiquitano" }, { "cay", "Cayuga" }, { "caz", "Canichana" }, { "cbb", "Cabiyarí" }, { "cbc", "Carapana" }, { "cbd", "Carijona" }, { "cbe", "Chipiajes" }, { "cbg", "Chimila" }, { "cbh", "Cagua" }, { "cbi", "Chachi" }, { "cbj", "Ede Cabe" }, { "cbk", "Chavacano" }, { "cbl", "Bualkhaw Chin" }, { "cbn", "Nyahkur" }, { "cbo", "Izora" }, { "cbr", "Cashibo-Cacataibo" }, { "cbs", "Cashinahua" }, { "cbt", "Chayahuita" }, { "cbu", "Candoshi-Shapra" }, { "cbv", "Cacua" }, { "cbw", "Kinabalian" }, { "cby", "Carabayo" }, { "cca", "Cauca" }, { "ccc", "Chamicuro" }, { "ccd", "Cafundo Creole" }, { "cce", "Chopi" }, { "ccg", "Samba Daka" }, { "cch", "Atsam" }, { "ccj", "Kasanga" }, { "ccl", "Cutchi-Swahili" }, { "ccm", "Malaccan Creole Malay" }, { "cco", "Comaltepec Chinantec" }, { "ccp", "Chakma" }, { "ccr", "Cacaopera" }, { "cda", "Choni" }, { "cde", "Chenchu" }, { "cdf", "Chiru" }, { "cdg", "Chamari" }, { "cdh", "Chambeali" }, { "cdi", "Chodri" }, { "cdj", "Churahi" }, { "cdm", "Chepang" }, { "cdn", "Chaudangsi" }, { "cdo", "Min Dong Chinese" }, { "cdr", "Cinda-Regi-Tiyal" }, { "cds", "Chadian Sign Language" }, { "cdy", "Chadong" }, { "cdz", "Koda" }, { "cea", "Lower Chehalis" }, { "ceb", "Cebuano" }, { "ceg", "Chamacoco" }, { "cek", "Eastern Khumi Chin" }, { "cen", "Cen" }, { "ces", "Czech" }, { "cet", "Centúúm" }, { "cfa", "Dijim-Bwilim" }, { "cfd", "Cara" }, { "cfg", "Como Karim" }, { "cfm", "Falam Chin" }, { "cga", "Changriwa" }, { "cgc", "Kagayanen" }, { "cgg", "Chiga" }, { "cgk", "Chocangacakha" }, { "cha", "Chamorro" }, { "chb", "Chibcha" }, { "chc", "Catawba" }, { "chd", "Highland Oaxaca Chontal" }, { "che", "Chechen" }, { "chf", "Tabasco Chontal" }, { "chg", "Chagatai" }, { "chh", "Chinook" }, { "chj", "Ojitlán Chinantec" }, { "chk", "Chuukese" }, { "chl", "Cahuilla" }, { "chm", "Mari (Russia)" }, { "chn", "Chinook jargon" }, { "cho", "Choctaw" }, { "chp", "Chipewyan" }, { "chq", "Quiotepec Chinantec" }, { "chr", "Cherokee" }, { "cht", "Cholón" }, { "chu", "Church Slavic" }, { "chv", "Chuvash" }, { "chw", "Chuwabu" }, { "chx", "Chantyal" }, { "chy", "Cheyenne" }, { "chz", "Ozumacín Chinantec" }, { "cia", "Cia-Cia" }, { "cib", "Ci Gbe" }, { "cic", "Chickasaw" }, { "cid", "Chimariko" }, { "cie", "Cineni" }, { "cih", "Chinali" }, { "cik", "Chitkuli Kinnauri" }, { "cim", "Cimbrian" }, { "cin", "Cinta Larga" }, { "cip", "Chiapanec" }, { "cir", "Tiri" }, { "ciw", "Chippewa" }, { "ciy", "Chaima" }, { "cja", "Western Cham" }, { "cje", "Chru" }, { "cjh", "Upper Chehalis" }, { "cji", "Chamalal" }, { "cjk", "Chokwe" }, { "cjm", "Eastern Cham" }, { "cjn", "Chenapian" }, { "cjo", "Ashéninka Pajonal" }, { "cjp", "Cabécar" }, { "cjs", "Shor" }, { "cjv", "Chuave" }, { "cjy", "Jinyu Chinese" }, { "ckb", "Central Kurdish" }, { "ckh", "Chak" }, { "ckl", "Cibak" }, { "ckn", "Kaang Chin" }, { "cko", "Anufo" }, { "ckq", "Kajakse" }, { "ckr", "Kairak" }, { "cks", "Tayo" }, { "ckt", "Chukot" }, { "cku", "Koasati" }, { "ckv", "Kavalan" }, { "ckx", "Caka" }, { "cky", "Cakfem-Mushere" }, { "ckz", "Cakchiquel-Quiché Mixed Language" }, { "cla", "Ron" }, { "clc", "Chilcotin" }, { "cld", "Chaldean Neo-Aramaic" }, { "cle", "Lealao Chinantec" }, { "clh", "Chilisso" }, { "cli", "Chakali" }, { "clj", "Laitu Chin" }, { "clk", "Idu-Mishmi" }, { "cll", "Chala" }, { "clm", "Clallam" }, { "clo", "Lowland Oaxaca Chontal" }, { "clt", "Lautu Chin" }, { "clu", "Caluyanun" }, { "clw", "Chulym" }, { "cly", "Eastern Highland Chatino" }, { "cma", "Maa" }, { "cme", "Cerma" }, { "cmg", "Classical Mongolian" }, { "cmi", "Emberá-Chamí" }, { "cml", "Campalagian" }, { "cmm", "Michigamea" }, { "cmn", "Mandarin Chinese" }, { "cmo", "Central Mnong" }, { "cmr", "Mro-Khimi Chin" }, { "cms", "Messapic" }, { "cmt", "Camtho" }, { "cna", "Changthang" }, { "cnb", "Chinbon Chin" }, { "cnc", "Côông" }, { "cng", "Northern Qiang" }, { "cnh", "Haka Chin" }, { "cni", "Asháninka" }, { "cnk", "Khumi Chin" }, { "cnl", "Lalana Chinantec" }, { "cno", "Con" }, { "cns", "Central Asmat" }, { "cnt", "Tepetotutla Chinantec" }, { "cnu", "Chenoua" }, { "cnw", "Ngawn Chin" }, { "cnx", "Middle Cornish" }, { "coa", "Cocos Islands Malay" }, { "cob", "Chicomuceltec" }, { "coc", "Cocopa" }, { "cod", "Cocama-Cocamilla" }, { "coe", "Koreguaje" }, { "cof", "Colorado" }, { "cog", "Chong" }, { "coh", "Chonyi-Dzihana-Kauma" }, { "coj", "Cochimi" }, { "cok", "Santa Teresa Cora" }, { "col", "Columbia-Wenatchi" }, { "com", "Comanche" }, { "con", "Cofán" }, { "coo", "Comox" }, { "cop", "Coptic" }, { "coq", "Coquille" }, { "cor", "Cornish" }, { "cos", "Corsican" }, { "cot", "Caquinte" }, { "cou", "Wamey" }, { "cov", "Cao Miao" }, { "cow", "Cowlitz" }, { "cox", "Nanti" }, { "coy", "Coyaima" }, { "coz", "Chochotec" }, { "cpa", "Palantla Chinantec" }, { "cpb", "Ucayali-Yurúa Ashéninka" }, { "cpc", "Ajyíninka Apurucayali" }, { "cpg", "Cappadocian Greek" }, { "cpi", "Chinese Pidgin English" }, { "cpn", "Cherepon" }, { "cpo", "Kpeego" }, { "cps", "Capiznon" }, { "cpu", "Pichis Ashéninka" }, { "cpx", "Pu-Xian Chinese" }, { "cpy", "South Ucayali Ashéninka" }, { "cqd", "Chuanqiandian Cluster Miao" }, { "cqu", "Chilean Quechua" }, { "cra", "Chara" }, { "crb", "Island Carib" }, { "crc", "Lonwolwol" }, { "crd", "Coeur d'Alene" }, { "cre", "Cree" }, { "crf", "Caramanta" }, { "crg", "Michif" }, { "crh", "Crimean Tatar" }, { "cri", "Sãotomense" }, { "crj", "Southern East Cree" }, { "crk", "Plains Cree" }, { "crl", "Northern East Cree" }, { "crm", "Moose Cree" }, { "crn", "El Nayar Cora" }, { "cro", "Crow" }, { "crq", "Iyo'wujwa Chorote" }, { "crr", "Carolina Algonquian" }, { "crs", "Seselwa Creole French" }, { "crt", "Iyojwa'ja Chorote" }, { "crv", "Chaura" }, { "crw", "Chrau" }, { "crx", "Carrier" }, { "cry", "Cori" }, { "crz", "Cruzeño" }, { "csa", "Chiltepec Chinantec" }, { "csb", "Kashubian" }, { "csc", "Catalan Sign Language" }, { "csd", "Chiangmai Sign Language" }, { "cse", "Czech Sign Language" }, { "csf", "Cuba Sign Language" }, { "csg", "Chilean Sign Language" }, { "csh", "Asho Chin" }, { "csi", "Coast Miwok" }, { "csj", "Songlai Chin" }, { "csk", "Jola-Kasa" }, { "csl", "Chinese Sign Language" }, { "csm", "Central Sierra Miwok" }, { "csn", "Colombian Sign Language" }, { "cso", "Sochiapam Chinantec" }, { "csq", "Croatia Sign Language" }, { "csr", "Costa Rican Sign Language" }, { "css", "Southern Ohlone" }, { "cst", "Northern Ohlone" }, { "csv", "Sumtu Chin" }, { "csw", "Swampy Cree" }, { "csy", "Siyin Chin" }, { "csz", "Coos" }, { "cta", "Tataltepec Chatino" }, { "ctc", "Chetco" }, { "ctd", "Tedim Chin" }, { "cte", "Tepinapa Chinantec" }, { "ctg", "Chittagonian" }, { "cth", "Thaiphum Chin" }, { "ctl", "Tlacoatzintepec Chinantec" }, { "ctm", "Chitimacha" }, { "ctn", "Chhintange" }, { "cto", "Emberá-Catío" }, { "ctp", "Western Highland Chatino" }, { "cts", "Northern Catanduanes Bikol" }, { "ctt", "Wayanad Chetti" }, { "ctu", "Chol" }, { "ctz", "Zacatepec Chatino" }, { "cua", "Cua" }, { "cub", "Cubeo" }, { "cuc", "Usila Chinantec" }, { "cug", "Cung" }, { "cuh", "Chuka" }, { "cui", "Cuiba" }, { "cuj", "Mashco Piro" }, { "cuk", "San Blas Kuna" }, { "cul", "Culina" }, { "cum", "Cumeral" }, { "cuo", "Cumanagoto" }, { "cup", "Cupeño" }, { "cuq", "Cun" }, { "cur", "Chhulung" }, { "cut", "Teutila Cuicatec" }, { "cuu", "Tai Ya" }, { "cuv", "Cuvok" }, { "cuw", "Chukwa" }, { "cux", "Tepeuxila Cuicatec" }, { "cvg", "Chug" }, { "cvn", "Valle Nacional Chinantec" }, { "cwa", "Kabwa" }, { "cwb", "Maindo" }, { "cwd", "Woods Cree" }, { "cwe", "Kwere" }, { "cwg", "Chewong" }, { "cwt", "Kuwaataay" }, { "cya", "Nopala Chatino" }, { "cyb", "Cayubaba" }, { "cym", "Welsh" }, { "cyo", "Cuyonon" }, { "czh", "Huizhou Chinese" }, { "czk", "Knaanic" }, { "czn", "Zenzontepec Chatino" }, { "czo", "Min Zhong Chinese" }, { "czt", "Zotung Chin" }, { "daa", "Dangaléat" }, { "dac", "Dambi" }, { "dad", "Marik" }, { "dae", "Duupa" }, { "dag", "Dagbani" }, { "dah", "Gwahatike" }, { "dai", "Day" }, { "daj", "Dar Fur Daju" }, { "dak", "Dakota" }, { "dal", "Dahalo" }, { "dam", "Damakawa" }, { "dan", "Danish" }, { "dao", "Daai Chin" }, { "daq", "Dandami Maria" }, { "dar", "Dargwa" }, { "das", "Daho-Doo" }, { "dau", "Dar Sila Daju" }, { "dav", "Taita" }, { "daw", "Davawenyo" }, { "dax", "Dayi" }, { "daz", "Dao" }, { "dba", "Bangime" }, { "dbb", "Deno" }, { "dbd", "Dadiya" }, { "dbe", "Dabe" }, { "dbf", "Edopi" }, { "dbg", "Dogul Dom Dogon" }, { "dbi", "Doka" }, { "dbj", "Ida'an" }, { "dbl", "Dyirbal" }, { "dbm", "Duguri" }, { "dbn", "Duriankere" }, { "dbo", "Dulbu" }, { "dbp", "Duwai" }, { "dbq", "Daba" }, { "dbr", "Dabarre" }, { "dbt", "Ben Tey Dogon" }, { "dbu", "Bondum Dom Dogon" }, { "dbv", "Dungu" }, { "dbw", "Bankan Tey Dogon" }, { "dby", "Dibiyaso" }, { "dcc", "Deccan" }, { "dcr", "Negerhollands" }, { "dda", "Dadi Dadi" }, { "ddd", "Dongotono" }, { "dde", "Doondo" }, { "ddg", "Fataluku" }, { "ddi", "West Goodenough" }, { "ddj", "Jaru" }, { "ddn", "Dendi (Benin)" }, { "ddo", "Dido" }, { "ddr", "Dhudhuroa" }, { "dds", "Donno So Dogon" }, { "ddw", "Dawera-Daweloor" }, { "dec", "Dagik" }, { "ded", "Dedua" }, { "dee", "Dewoin" }, { "def", "Dezfuli" }, { "deg", "Degema" }, { "deh", "Dehwari" }, { "dei", "Demisa" }, { "dek", "Dek" }, { "del", "Delaware" }, { "dem", "Dem" }, { "den", "Slave (Athapascan)" }, { "dep", "Pidgin Delaware" }, { "deq", "Dendi (Central African Republic)" }, { "der", "Deori" }, { "des", "Desano" }, { "deu", "German" }, { "dev", "Domung" }, { "dez", "Dengese" }, { "dga", "Southern Dagaare" }, { "dgb", "Bunoge Dogon" }, { "dgc", "Casiguran Dumagat Agta" }, { "dgd", "Dagaari Dioula" }, { "dge", "Degenan" }, { "dgg", "Doga" }, { "dgh", "Dghwede" }, { "dgi", "Northern Dagara" }, { "dgk", "Dagba" }, { "dgl", "Andaandi" }, { "dgn", "Dagoman" }, { "dgo", "Dogri (individual language)" }, { "dgr", "Dogrib" }, { "dgs", "Dogoso" }, { "dgt", "Ndra'ngith" }, { "dgu", "Degaru" }, { "dgw", "Daungwurrung" }, { "dgx", "Doghoro" }, { "dgz", "Daga" }, { "dhd", "Dhundari" }, { "dhg", "Djangu" }, { "dhi", "Dhimal" }, { "dhl", "Dhalandji" }, { "dhm", "Zemba" }, { "dhn", "Dhanki" }, { "dho", "Dhodia" }, { "dhr", "Dhargari" }, { "dhs", "Dhaiso" }, { "dhu", "Dhurga" }, { "dhv", "Dehu" }, { "dhw", "Dhanwar (Nepal)" }, { "dhx", "Dhungaloo" }, { "dia", "Dia" }, { "dib", "South Central Dinka" }, { "dic", "Lakota Dida" }, { "did", "Didinga" }, { "dif", "Dieri" }, { "dig", "Digo" }, { "dih", "Kumiai" }, { "dii", "Dimbong" }, { "dij", "Dai" }, { "dik", "Southwestern Dinka" }, { "dil", "Dilling" }, { "dim", "Dime" }, { "din", "Dinka" }, { "dio", "Dibo" }, { "dip", "Northeastern Dinka" }, { "diq", "Dimli (individual language)" }, { "dir", "Dirim" }, { "dis", "Dimasa" }, { "dit", "Dirari" }, { "diu", "Diriku" }, { "div", "Dhivehi" }, { "diw", "Northwestern Dinka" }, { "dix", "Dixon Reef" }, { "diy", "Diuwe" }, { "diz", "Ding" }, { "dja", "Djadjawurrung" }, { "djb", "Djinba" }, { "djc", "Dar Daju Daju" }, { "djd", "Djamindjung" }, { "dje", "Zarma" }, { "djf", "Djangun" }, { "dji", "Djinang" }, { "djj", "Djeebbana" }, { "djk", "Eastern Maroon Creole" }, { "djm", "Jamsay Dogon" }, { "djn", "Djauan" }, { "djo", "Jangkang" }, { "djr", "Djambarrpuyngu" }, { "dju", "Kapriman" }, { "djw", "Djawi" }, { "dka", "Dakpakha" }, { "dkk", "Dakka" }, { "dkr", "Kuijau" }, { "dks", "Southeastern Dinka" }, { "dkx", "Mazagway" }, { "dlg", "Dolgan" }, { "dlk", "Dahalik" }, { "dlm", "Dalmatian" }, { "dln", "Darlong" }, { "dma", "Duma" }, { "dmb", "Mombo Dogon" }, { "dmc", "Gavak" }, { "dmd", "Madhi Madhi" }, { "dme", "Dugwor" }, { "dmg", "Upper Kinabatangan" }, { "dmk", "Domaaki" }, { "dml", "Dameli" }, { "dmm", "Dama" }, { "dmo", "Kemedzung" }, { "dmr", "East Damar" }, { "dms", "Dampelas" }, { "dmu", "Dubu" }, { "dmv", "Dumpas" }, { "dmw", "Mudburra" }, { "dmx", "Dema" }, { "dmy", "Demta" }, { "dna", "Upper Grand Valley Dani" }, { "dnd", "Daonda" }, { "dne", "Ndendeule" }, { "dng", "Dungan" }, { "dni", "Lower Grand Valley Dani" }, { "dnj", "Dan" }, { "dnk", "Dengka" }, { "dnn", "Dzùùngoo" }, { "dnr", "Danaru" }, { "dnt", "Mid Grand Valley Dani" }, { "dnu", "Danau" }, { "dnv", "Danu" }, { "dnw", "Western Dani" }, { "dny", "Dení" }, { "doa", "Dom" }, { "dob", "Dobu" }, { "doc", "Northern Dong" }, { "doe", "Doe" }, { "dof", "Domu" }, { "doh", "Dong" }, { "doi", "Dogri (macrolanguage)" }, { "dok", "Dondo" }, { "dol", "Doso" }, { "don", "Toura (Papua New Guinea)" }, { "doo", "Dongo" }, { "dop", "Lukpa" }, { "doq", "Dominican Sign Language" }, { "dor", "Dori'o" }, { "dos", "Dogosé" }, { "dot", "Dass" }, { "dov", "Dombe" }, { "dow", "Doyayo" }, { "dox", "Bussa" }, { "doy", "Dompo" }, { "doz", "Dorze" }, { "dpp", "Papar" }, { "drb", "Dair" }, { "drc", "Minderico" }, { "drd", "Darmiya" }, { "dre", "Dolpo" }, { "drg", "Rungus" }, { "dri", "C'lela" }, { "drl", "Paakantyi" }, { "drn", "West Damar" }, { "dro", "Daro-Matu Melanau" }, { "drq", "Dura" }, { "drr", "Dororo" }, { "drs", "Gedeo" }, { "drt", "Drents" }, { "dru", "Rukai" }, { "dry", "Darai" }, { "dsb", "Lower Sorbian" }, { "dse", "Dutch Sign Language" }, { "dsh", "Daasanach" }, { "dsi", "Disa" }, { "dsl", "Danish Sign Language" }, { "dsn", "Dusner" }, { "dso", "Desiya" }, { "dsq", "Tadaksahak" }, { "dta", "Daur" }, { "dtb", "Labuk-Kinabatangan Kadazan" }, { "dtd", "Ditidaht" }, { "dth", "Adithinngithigh" }, { "dti", "Ana Tinga Dogon" }, { "dtk", "Tene Kan Dogon" }, { "dtm", "Tomo Kan Dogon" }, { "dto", "Tommo So Dogon" }, { "dtp", "Central Dusun" }, { "dtr", "Lotud" }, { "dts", "Toro So Dogon" }, { "dtt", "Toro Tegu Dogon" }, { "dtu", "Tebul Ure Dogon" }, { "dty", "Dotyali" }, { "dua", "Duala" }, { "dub", "Dubli" }, { "duc", "Duna" }, { "dud", "Hun-Saare" }, { "due", "Umiray Dumaget Agta" }, { "duf", "Dumbea" }, { "dug", "Duruma" }, { "duh", "Dungra Bhil" }, { "dui", "Dumun" }, { "duj", "Dhuwal" }, { "duk", "Uyajitaya" }, { "dul", "Alabat Island Agta" }, { "dum", "Middle Dutch (ca. 1050-1350)" }, { "dun", "Dusun Deyah" }, { "duo", "Dupaninan Agta" }, { "dup", "Duano" }, { "duq", "Dusun Malang" }, { "dur", "Dii" }, { "dus", "Dumi" }, { "duu", "Drung" }, { "duv", "Duvle" }, { "duw", "Dusun Witu" }, { "dux", "Duungooma" }, { "duy", "Dicamay Agta" }, { "duz", "Duli" }, { "dva", "Duau" }, { "dwa", "Diri" }, { "dwr", "Dawro" }, { "dws", "Dutton World Speedwords" }, { "dww", "Dawawa" }, { "dya", "Dyan" }, { "dyb", "Dyaberdyaber" }, { "dyd", "Dyugun" }, { "dyg", "Villa Viciosa Agta" }, { "dyi", "Djimini Senoufo" }, { "dym", "Yanda Dom Dogon" }, { "dyn", "Dyangadi" }, { "dyo", "Jola-Fonyi" }, { "dyu", "Dyula" }, { "dyy", "Dyaabugay" }, { "dza", "Tunzu" }, { "dzd", "Daza" }, { "dze", "Djiwarli" }, { "dzg", "Dazaga" }, { "dzl", "Dzalakha" }, { "dzn", "Dzando" }, { "dzo", "Dzongkha" }, { "eaa", "Karenggapa" }, { "ebg", "Ebughu" }, { "ebk", "Eastern Bontok" }, { "ebo", "Teke-Ebo" }, { "ebr", "Ebrié" }, { "ebu", "Embu" }, { "ecr", "Eteocretan" }, { "ecs", "Ecuadorian Sign Language" }, { "ecy", "Eteocypriot" }, { "eee", "E" }, { "efa", "Efai" }, { "efe", "Efe" }, { "efi", "Efik" }, { "ega", "Ega" }, { "egl", "Emilian" }, { "ego", "Eggon" }, { "egy", "Egyptian (Ancient)" }, { "ehu", "Ehueun" }, { "eip", "Eipomek" }, { "eit", "Eitiep" }, { "eiv", "Askopan" }, { "eja", "Ejamat" }, { "eka", "Ekajuk" }, { "ekc", "Eastern Karnic" }, { "eke", "Ekit" }, { "ekg", "Ekari" }, { "eki", "Eki" }, { "ekk", "Standard Estonian" }, { "ekl", "Kol (Bangladesh)" }, { "ekm", "Elip" }, { "eko", "Koti" }, { "ekp", "Ekpeye" }, { "ekr", "Yace" }, { "eky", "Eastern Kayah" }, { "ele", "Elepi" }, { "elh", "El Hugeirat" }, { "eli", "Nding" }, { "elk", "Elkei" }, { "ell", "Modern Greek (1453-)" }, { "elm", "Eleme" }, { "elo", "El Molo" }, { "elu", "Elu" }, { "elx", "Elamite" }, { "ema", "Emai-Iuleha-Ora" }, { "emb", "Embaloh" }, { "eme", "Emerillon" }, { "emg", "Eastern Meohang" }, { "emi", "Mussau-Emira" }, { "emk", "Eastern Maninkakan" }, { "emm", "Mamulique" }, { "emn", "Eman" }, { "emo", "Emok" }, { "emp", "Northern Emberá" }, { "ems", "Pacific Gulf Yupik" }, { "emu", "Eastern Muria" }, { "emw", "Emplawas" }, { "emx", "Erromintxela" }, { "emy", "Epigraphic Mayan" }, { "ena", "Apali" }, { "enb", "Markweeta" }, { "enc", "En" }, { "end", "Ende" }, { "enf", "Forest Enets" }, { "eng", "English" }, { "enh", "Tundra Enets" }, { "enm", "Middle English (1100-1500)" }, { "enn", "Engenni" }, { "eno", "Enggano" }, { "enq", "Enga" }, { "enr", "Emumu" }, { "enu", "Enu" }, { "env", "Enwan (Edu State)" }, { "enw", "Enwan (Akwa Ibom State)" }, { "eot", "Beti (Côte d'Ivoire)" }, { "epi", "Epie" }, { "epo", "Esperanto" }, { "era", "Eravallan" }, { "erg", "Sie" }, { "erh", "Eruwa" }, { "eri", "Ogea" }, { "erk", "South Efate" }, { "ero", "Horpa" }, { "err", "Erre" }, { "ers", "Ersu" }, { "ert", "Eritai" }, { "erw", "Erokwanas" }, { "ese", "Ese Ejja" }, { "esh", "Eshtehardi" }, { "esi", "North Alaskan Inupiatun" }, { "esk", "Northwest Alaska Inupiatun" }, { "esl", "Egypt Sign Language" }, { "esm", "Esuma" }, { "esn", "Salvadoran Sign Language" }, { "eso", "Estonian Sign Language" }, { "esq", "Esselen" }, { "ess", "Central Siberian Yupik" }, { "est", "Estonian" }, { "esu", "Central Yupik" }, { "etb", "Etebi" }, { "etc", "Etchemin" }, { "eth", "Ethiopian Sign Language" }, { "etn", "Eton (Vanuatu)" }, { "eto", "Eton (Cameroon)" }, { "etr", "Edolo" }, { "ets", "Yekhee" }, { "ett", "Etruscan" }, { "etu", "Ejagham" }, { "etx", "Eten" }, { "etz", "Semimi" }, { "eus", "Basque" }, { "eve", "Even" }, { "evh", "Uvbie" }, { "evn", "Evenki" }, { "ewe", "Ewe" }, { "ewo", "Ewondo" }, { "ext", "Extremaduran" }, { "eya", "Eyak" }, { "eyo", "Keiyo" }, { "eza", "Ezaa" }, { "eze", "Uzekwe" }, { "faa", "Fasu" }, { "fab", "Fa d'Ambu" }, { "fad", "Wagi" }, { "faf", "Fagani" }, { "fag", "Finongan" }, { "fah", "Baissa Fali" }, { "fai", "Faiwol" }, { "faj", "Faita" }, { "fak", "Fang (Cameroon)" }, { "fal", "South Fali" }, { "fam", "Fam" }, { "fan", "Fang (Equatorial Guinea)" }, { "fao", "Faroese" }, { "fap", "Palor" }, { "far", "Fataleka" }, { "fas", "Persian" }, { "fat", "Fanti" }, { "fau", "Fayu" }, { "fax", "Fala" }, { "fay", "Southwestern Fars" }, { "faz", "Northwestern Fars" }, { "fbl", "West Albay Bikol" }, { "fcs", "Quebec Sign Language" }, { "fer", "Feroge" }, { "ffi", "Foia Foia" }, { "ffm", "Maasina Fulfulde" }, { "fgr", "Fongoro" }, { "fia", "Nobiin" }, { "fie", "Fyer" }, { "fij", "Fijian" }, { "fil", "Filipino" }, { "fin", "Finnish" }, { "fip", "Fipa" }, { "fir", "Firan" }, { "fit", "Tornedalen Finnish" }, { "fiw", "Fiwaga" }, { "fkk", "Kirya-Konzəl" }, { "fkv", "Kven Finnish" }, { "fla", "Kalispel-Pend d'Oreille" }, { "flh", "Foau" }, { "fli", "Fali" }, { "fll", "North Fali" }, { "fln", "Flinders Island" }, { "flr", "Fuliiru" }, { "fly", "Tsotsitaal" }, { "fmp", "Fe'fe'" }, { "fmu", "Far Western Muria" }, { "fng", "Fanagalo" }, { "fni", "Fania" }, { "fod", "Foodo" }, { "foi", "Foi" }, { "fom", "Foma" }, { "fon", "Fon" }, { "for", "Fore" }, { "fos", "Siraya" }, { "fpe", "Fernando Po Creole English" }, { "fqs", "Fas" }, { "fra", "French" }, { "frc", "Cajun French" }, { "frd", "Fordata" }, { "frk", "Frankish" }, { "frm", "Middle French (ca. 1400-1600)" }, { "fro", "Old French (842-ca. 1400)" }, { "frp", "Arpitan" }, { "frq", "Forak" }, { "frr", "Northern Frisian" }, { "frs", "Eastern Frisian" }, { "frt", "Fortsenal" }, { "fry", "Western Frisian" }, { "fse", "Finnish Sign Language" }, { "fsl", "French Sign Language" }, { "fss", "Finland-Swedish Sign Language" }, { "fub", "Adamawa Fulfulde" }, { "fuc", "Pulaar" }, { "fud", "East Futuna" }, { "fue", "Borgu Fulfulde" }, { "fuf", "Pular" }, { "fuh", "Western Niger Fulfulde" }, { "fui", "Bagirmi Fulfulde" }, { "fuj", "Ko" }, { "ful", "Fulah" }, { "fum", "Fum" }, { "fun", "Fulniô" }, { "fuq", "Central-Eastern Niger Fulfulde" }, { "fur", "Friulian" }, { "fut", "Futuna-Aniwa" }, { "fuu", "Furu" }, { "fuv", "Nigerian Fulfulde" }, { "fuy", "Fuyug" }, { "fvr", "Fur" }, { "fwa", "Fwâi" }, { "fwe", "Fwe" }, { "gaa", "Ga" }, { "gab", "Gabri" }, { "gac", "Mixed Great Andamanese" }, { "gad", "Gaddang" }, { "gae", "Guarequena" }, { "gaf", "Gende" }, { "gag", "Gagauz" }, { "gah", "Alekano" }, { "gai", "Borei" }, { "gaj", "Gadsup" }, { "gak", "Gamkonora" }, { "gal", "Galolen" }, { "gam", "Kandawo" }, { "gan", "Gan Chinese" }, { "gao", "Gants" }, { "gap", "Gal" }, { "gaq", "Gata'" }, { "gar", "Galeya" }, { "gas", "Adiwasi Garasia" }, { "gat", "Kenati" }, { "gau", "Mudhili Gadaba" }, { "gaw", "Nobonob" }, { "gax", "Borana-Arsi-Guji Oromo" }, { "gay", "Gayo" }, { "gaz", "West Central Oromo" }, { "gba", "Gbaya (Central African Republic)" }, { "gbb", "Kaytetye" }, { "gbd", "Karadjeri" }, { "gbe", "Niksek" }, { "gbf", "Gaikundi" }, { "gbg", "Gbanziri" }, { "gbh", "Defi Gbe" }, { "gbi", "Galela" }, { "gbj", "Bodo Gadaba" }, { "gbk", "Gaddi" }, { "gbl", "Gamit" }, { "gbm", "Garhwali" }, { "gbn", "Mo'da" }, { "gbo", "Northern Grebo" }, { "gbp", "Gbaya-Bossangoa" }, { "gbq", "Gbaya-Bozoum" }, { "gbr", "Gbagyi" }, { "gbs", "Gbesi Gbe" }, { "gbu", "Gagadu" }, { "gbv", "Gbanu" }, { "gbw", "Gabi-Gabi" }, { "gbx", "Eastern Xwla Gbe" }, { "gby", "Gbari" }, { "gbz", "Zoroastrian Dari" }, { "gcc", "Mali" }, { "gcd", "Ganggalida" }, { "gce", "Galice" }, { "gcf", "Guadeloupean Creole French" }, { "gcl", "Grenadian Creole English" }, { "gcn", "Gaina" }, { "gcr", "Guianese Creole French" }, { "gct", "Colonia Tovar German" }, { "gda", "Gade Lohar" }, { "gdb", "Pottangi Ollar Gadaba" }, { "gdc", "Gugu Badhun" }, { "gdd", "Gedaged" }, { "gde", "Gude" }, { "gdf", "Guduf-Gava" }, { "gdg", "Ga'dang" }, { "gdh", "Gadjerawang" }, { "gdi", "Gundi" }, { "gdj", "Gurdjar" }, { "gdk", "Gadang" }, { "gdl", "Dirasha" }, { "gdm", "Laal" }, { "gdn", "Umanakaina" }, { "gdo", "Ghodoberi" }, { "gdq", "Mehri" }, { "gdr", "Wipi" }, { "gds", "Ghandruk Sign Language" }, { "gdt", "Kungardutyi" }, { "gdu", "Gudu" }, { "gdx", "Godwari" }, { "gea", "Geruma" }, { "geb", "Kire" }, { "gec", "Gboloo Grebo" }, { "ged", "Gade" }, { "geg", "Gengle" }, { "geh", "Hutterite German" }, { "gei", "Gebe" }, { "gej", "Gen" }, { "gek", "Yiwom" }, { "gel", "ut-Ma'in" }, { "geq", "Geme" }, { "ges", "Geser-Gorom" }, { "gew", "Gera" }, { "gex", "Garre" }, { "gey", "Enya" }, { "gez", "Geez" }, { "gfk", "Patpatar" }, { "gft", "Gafat" }, { "gfx", "Mangetti Dune !Xung" }, { "gga", "Gao" }, { "ggb", "Gbii" }, { "ggd", "Gugadj" }, { "gge", "Guragone" }, { "ggg", "Gurgula" }, { "ggk", "Kungarakany" }, { "ggl", "Ganglau" }, { "ggm", "Gugu Mini" }, { "ggn", "Eastern Gurung" }, { "ggo", "Southern Gondi" }, { "ggt", "Gitua" }, { "ggu", "Gagu" }, { "ggw", "Gogodala" }, { "gha", "Ghadamès" }, { "ghc", "Hiberno-Scottish Gaelic" }, { "ghe", "Southern Ghale" }, { "ghh", "Northern Ghale" }, { "ghk", "Geko Karen" }, { "ghl", "Ghulfan" }, { "ghn", "Ghanongga" }, { "gho", "Ghomara" }, { "ghr", "Ghera" }, { "ghs", "Guhu-Samane" }, { "ght", "Kuke" }, { "gia", "Kitja" }, { "gib", "Gibanawa" }, { "gic", "Gail" }, { "gid", "Gidar" }, { "gig", "Goaria" }, { "gih", "Githabul" }, { "gil", "Gilbertese" }, { "gim", "Gimi (Eastern Highlands)" }, { "gin", "Hinukh" }, { "gip", "Gimi (West New Britain)" }, { "giq", "Green Gelao" }, { "gir", "Red Gelao" }, { "gis", "North Giziga" }, { "git", "Gitxsan" }, { "giu", "Mulao" }, { "giw", "White Gelao" }, { "gix", "Gilima" }, { "giy", "Giyug" }, { "giz", "South Giziga" }, { "gji", "Geji" }, { "gjk", "Kachi Koli" }, { "gjm", "Gunditjmara" }, { "gjn", "Gonja" }, { "gju", "Gujari" }, { "gka", "Guya" }, { "gke", "Ndai" }, { "gkn", "Gokana" }, { "gko", "Kok-Nar" }, { "gkp", "Guinea Kpelle" }, { "gla", "Scottish Gaelic" }, { "glc", "Bon Gula" }, { "gld", "Nanai" }, { "gle", "Irish" }, { "glg", "Galician" }, { "glh", "Northwest Pashayi" }, { "gli", "Guliguli" }, { "glj", "Gula Iro" }, { "glk", "Gilaki" }, { "gll", "Garlali" }, { "glo", "Galambu" }, { "glr", "Glaro-Twabo" }, { "glu", "Gula (Chad)" }, { "glv", "Manx" }, { "glw", "Glavda" }, { "gly", "Gule" }, { "gma", "Gambera" }, { "gmb", "Gula'alaa" }, { "gmd", "Mághdì" }, { "gmh", "Middle High German (ca. 1050-1500)" }, { "gml", "Middle Low German" }, { "gmm", "Gbaya-Mbodomo" }, { "gmn", "Gimnime" }, { "gmu", "Gumalu" }, { "gmv", "Gamo" }, { "gmx", "Magoma" }, { "gmy", "Mycenaean Greek" }, { "gmz", "Mgbolizhia" }, { "gna", "Kaansa" }, { "gnb", "Gangte" }, { "gnc", "Guanche" }, { "gnd", "Zulgo-Gemzek" }, { "gne", "Ganang" }, { "gng", "Ngangam" }, { "gnh", "Lere" }, { "gni", "Gooniyandi" }, { "gnk", "Gana" }, { "gnl", "Gangulu" }, { "gnm", "Ginuman" }, { "gnn", "Gumatj" }, { "gno", "Northern Gondi" }, { "gnq", "Gana" }, { "gnr", "Gureng Gureng" }, { "gnt", "Guntai" }, { "gnu", "Gnau" }, { "gnw", "Western Bolivian Guaraní" }, { "gnz", "Ganzi" }, { "goa", "Guro" }, { "gob", "Playero" }, { "goc", "Gorakor" }, { "god", "Godié" }, { "goe", "Gongduk" }, { "gof", "Gofa" }, { "gog", "Gogo" }, { "goh", "Old High German (ca. 750-1050)" }, { "goi", "Gobasi" }, { "goj", "Gowlan" }, { "gok", "Gowli" }, { "gol", "Gola" }, { "gom", "Goan Konkani" }, { "gon", "Gondi" }, { "goo", "Gone Dau" }, { "gop", "Yeretuar" }, { "goq", "Gorap" }, { "gor", "Gorontalo" }, { "gos", "Gronings" }, { "got", "Gothic" }, { "gou", "Gavar" }, { "gow", "Gorowa" }, { "gox", "Gobu" }, { "goy", "Goundo" }, { "goz", "Gozarkhani" }, { "gpa", "Gupa-Abawa" }, { "gpe", "Ghanaian Pidgin English" }, { "gpn", "Taiap" }, { "gqa", "Ga'anda" }, { "gqi", "Guiqiong" }, { "gqn", "Guana (Brazil)" }, { "gqr", "Gor" }, { "gqu", "Qau" }, { "gra", "Rajput Garasia" }, { "grb", "Grebo" }, { "grc", "Ancient Greek (to 1453)" }, { "grd", "Guruntum-Mbaaru" }, { "grg", "Madi" }, { "grh", "Gbiri-Niragu" }, { "gri", "Ghari" }, { "grj", "Southern Grebo" }, { "grm", "Kota Marudu Talantang" }, { "grn", "Guarani" }, { "gro", "Groma" }, { "grq", "Gorovu" }, { "grr", "Taznatit" }, { "grs", "Gresi" }, { "grt", "Garo" }, { "gru", "Kistane" }, { "grv", "Central Grebo" }, { "grw", "Gweda" }, { "grx", "Guriaso" }, { "gry", "Barclayville Grebo" }, { "grz", "Guramalum" }, { "gse", "Ghanaian Sign Language" }, { "gsg", "German Sign Language" }, { "gsl", "Gusilay" }, { "gsm", "Guatemalan Sign Language" }, { "gsn", "Gusan" }, { "gso", "Southwest Gbaya" }, { "gsp", "Wasembo" }, { "gss", "Greek Sign Language" }, { "gsw", "Swiss German" }, { "gta", "Guató" }, { "gti", "Gbati-ri" }, { "gtu", "Aghu-Tharnggala" }, { "gua", "Shiki" }, { "gub", "Guajajára" }, { "guc", "Wayuu" }, { "gud", "Yocoboué Dida" }, { "gue", "Gurinji" }, { "guf", "Gupapuyngu" }, { "gug", "Paraguayan Guaraní" }, { "guh", "Guahibo" }, { "gui", "Eastern Bolivian Guaraní" }, { "guj", "Gujarati" }, { "guk", "Gumuz" }, { "gul", "Sea Island Creole English" }, { "gum", "Guambiano" }, { "gun", "Mbyá Guaraní" }, { "guo", "Guayabero" }, { "gup", "Gunwinggu" }, { "guq", "Aché" }, { "gur", "Farefare" }, { "gus", "Guinean Sign Language" }, { "gut", "Maléku Jaíka" }, { "guu", "Yanomamö" }, { "guv", "Gey" }, { "guw", "Gun" }, { "gux", "Gourmanchéma" }, { "guz", "Gusii" }, { "gva", "Guana (Paraguay)" }, { "gvc", "Guanano" }, { "gve", "Duwet" }, { "gvf", "Golin" }, { "gvj", "Guajá" }, { "gvl", "Gulay" }, { "gvm", "Gurmana" }, { "gvn", "Kuku-Yalanji" }, { "gvo", "Gavião Do Jiparaná" }, { "gvp", "Pará Gavião" }, { "gvr", "Western Gurung" }, { "gvs", "Gumawana" }, { "gvy", "Guyani" }, { "gwa", "Mbato" }, { "gwb", "Gwa" }, { "gwc", "Kalami" }, { "gwd", "Gawwada" }, { "gwe", "Gweno" }, { "gwf", "Gowro" }, { "gwg", "Moo" }, { "gwi", "Gwichʼin" }, { "gwj", "Gwi" }, { "gwm", "Awngthim" }, { "gwn", "Gwandara" }, { "gwr", "Gwere" }, { "gwt", "Gawar-Bati" }, { "gwu", "Guwamu" }, { "gww", "Kwini" }, { "gwx", "Gua" }, { "gxx", "Wè Southern" }, { "gya", "Northwest Gbaya" }, { "gyb", "Garus" }, { "gyd", "Kayardild" }, { "gye", "Gyem" }, { "gyf", "Gungabula" }, { "gyg", "Gbayi" }, { "gyi", "Gyele" }, { "gyl", "Gayil" }, { "gym", "Ngäbere" }, { "gyn", "Guyanese Creole English" }, { "gyr", "Guarayu" }, { "gyy", "Gunya" }, { "gza", "Ganza" }, { "gzi", "Gazi" }, { "gzn", "Gane" }, { "haa", "Han" }, { "hab", "Hanoi Sign Language" }, { "hac", "Gurani" }, { "had", "Hatam" }, { "hae", "Eastern Oromo" }, { "haf", "Haiphong Sign Language" }, { "hag", "Hanga" }, { "hah", "Hahon" }, { "hai", "Haida" }, { "haj", "Hajong" }, { "hak", "Hakka Chinese" }, { "hal", "Halang" }, { "ham", "Hewa" }, { "han", "Hangaza" }, { "hao", "Hakö" }, { "hap", "Hupla" }, { "haq", "Ha" }, { "har", "Harari" }, { "has", "Haisla" }, { "hat", "Haitian" }, { "hau", "Hausa" }, { "hav", "Havu" }, { "haw", "Hawaiian" }, { "hax", "Southern Haida" }, { "hay", "Haya" }, { "haz", "Hazaragi" }, { "hba", "Hamba" }, { "hbb", "Huba" }, { "hbn", "Heiban" }, { "hbo", "Ancient Hebrew" }, { "hbs", "Serbo-Croatian" }, { "hbu", "Habu" }, { "hca", "Andaman Creole Hindi" }, { "hch", "Huichol" }, { "hdn", "Northern Haida" }, { "hds", "Honduras Sign Language" }, { "hdy", "Hadiyya" }, { "hea", "Northern Qiandong Miao" }, { "heb", "Hebrew" }, { "hed", "Herdé" }, { "heg", "Helong" }, { "heh", "Hehe" }, { "hei", "Heiltsuk" }, { "hem", "Hemba" }, { "her", "Herero" }, { "hgm", "Haiom" }, { "hgw", "Haigwai" }, { "hhi", "Hoia Hoia" }, { "hhr", "Kerak" }, { "hhy", "Hoyahoya" }, { "hia", "Lamang" }, { "hib", "Hibito" }, { "hid", "Hidatsa" }, { "hif", "Fiji Hindi" }, { "hig", "Kamwe" }, { "hih", "Pamosu" }, { "hii", "Hinduri" }, { "hij", "Hijuk" }, { "hik", "Seit-Kaitetu" }, { "hil", "Hiligaynon" }, { "hin", "Hindi" }, { "hio", "Tsoa" }, { "hir", "Himarimã" }, { "hit", "Hittite" }, { "hiw", "Hiw" }, { "hix", "Hixkaryána" }, { "hji", "Haji" }, { "hka", "Kahe" }, { "hke", "Hunde" }, { "hkk", "Hunjara-Kaina Ke" }, { "hks", "Hong Kong Sign Language" }, { "hla", "Halia" }, { "hlb", "Halbi" }, { "hld", "Halang Doan" }, { "hle", "Hlersu" }, { "hlt", "Matu Chin" }, { "hlu", "Hieroglyphic Luwian" }, { "hma", "Southern Mashan Hmong" }, { "hmb", "Humburi Senni Songhay" }, { "hmc", "Central Huishui Hmong" }, { "hmd", "Large Flowery Miao" }, { "hme", "Eastern Huishui Hmong" }, { "hmf", "Hmong Don" }, { "hmg", "Southwestern Guiyang Hmong" }, { "hmh", "Southwestern Huishui Hmong" }, { "hmi", "Northern Huishui Hmong" }, { "hmj", "Ge" }, { "hmk", "Maek" }, { "hml", "Luopohe Hmong" }, { "hmm", "Central Mashan Hmong" }, { "hmn", "Hmong" }, { "hmo", "Hiri Motu" }, { "hmp", "Northern Mashan Hmong" }, { "hmq", "Eastern Qiandong Miao" }, { "hmr", "Hmar" }, { "hms", "Southern Qiandong Miao" }, { "hmt", "Hamtai" }, { "hmu", "Hamap" }, { "hmv", "Hmong Dô" }, { "hmw", "Western Mashan Hmong" }, { "hmy", "Southern Guiyang Hmong" }, { "hmz", "Hmong Shua" }, { "hna", "Mina (Cameroon)" }, { "hnd", "Southern Hindko" }, { "hne", "Chhattisgarhi" }, { "hnh", "Ani" }, { "hni", "Hani" }, { "hnj", "Hmong Njua" }, { "hnn", "Hanunoo" }, { "hno", "Northern Hindko" }, { "hns", "Caribbean Hindustani" }, { "hnu", "Hung" }, { "hoa", "Hoava" }, { "hob", "Mari (Madang Province)" }, { "hoc", "Ho" }, { "hod", "Holma" }, { "hoe", "Horom" }, { "hoh", "Hobyót" }, { "hoi", "Holikachuk" }, { "hoj", "Hadothi" }, { "hol", "Holu" }, { "hom", "Homa" }, { "hoo", "Holoholo" }, { "hop", "Hopi" }, { "hor", "Horo" }, { "hos", "Ho Chi Minh City Sign Language" }, { "hot", "Hote" }, { "hov", "Hovongan" }, { "how", "Honi" }, { "hoy", "Holiya" }, { "hoz", "Hozo" }, { "hpo", "Hpon" }, { "hps", "Hawai'i Pidgin Sign Language" }, { "hra", "Hrangkhol" }, { "hrc", "Niwer Mil" }, { "hre", "Hre" }, { "hrk", "Haruku" }, { "hrm", "Horned Miao" }, { "hro", "Haroi" }, { "hrp", "Nhirrpi" }, { "hrt", "Hértevin" }, { "hru", "Hruso" }, { "hrv", "Croatian" }, { "hrw", "Warwar Feni" }, { "hrx", "Hunsrik" }, { "hrz", "Harzani" }, { "hsb", "Upper Sorbian" }, { "hsh", "Hungarian Sign Language" }, { "hsl", "Hausa Sign Language" }, { "hsn", "Xiang Chinese" }, { "hss", "Harsusi" }, { "hti", "Hoti" }, { "hto", "Minica Huitoto" }, { "hts", "Hadza" }, { "htu", "Hitu" }, { "htx", "Middle Hittite" }, { "hub", "Huambisa" }, { "huc", "=Hua" }, { "hud", "Huaulu" }, { "hue", "San Francisco Del Mar Huave" }, { "huf", "Humene" }, { "hug", "Huachipaeri" }, { "huh", "Huilliche" }, { "hui", "Huli" }, { "huj", "Northern Guiyang Hmong" }, { "huk", "Hulung" }, { "hul", "Hula" }, { "hum", "Hungana" }, { "hun", "Hungarian" }, { "huo", "Hu" }, { "hup", "Hupa" }, { "huq", "Tsat" }, { "hur", "Halkomelem" }, { "hus", "Huastec" }, { "hut", "Humla" }, { "huu", "Murui Huitoto" }, { "huv", "San Mateo Del Mar Huave" }, { "huw", "Hukumina" }, { "hux", "Nüpode Huitoto" }, { "huy", "Hulaulá" }, { "huz", "Hunzib" }, { "hvc", "Haitian Vodoun Culture Language" }, { "hve", "San Dionisio Del Mar Huave" }, { "hvk", "Haveke" }, { "hvn", "Sabu" }, { "hvv", "Santa María Del Mar Huave" }, { "hwa", "Wané" }, { "hwc", "Hawai'i Creole English" }, { "hwo", "Hwana" }, { "hya", "Hya" }, { "hye", "Armenian" }, { "iai", "Iaai" }, { "ian", "Iatmul" }, { "iap", "Iapama" }, { "iar", "Purari" }, { "iba", "Iban" }, { "ibb", "Ibibio" }, { "ibd", "Iwaidja" }, { "ibe", "Akpes" }, { "ibg", "Ibanag" }, { "ibl", "Ibaloi" }, { "ibm", "Agoi" }, { "ibn", "Ibino" }, { "ibo", "Igbo" }, { "ibr", "Ibuoro" }, { "ibu", "Ibu" }, { "iby", "Ibani" }, { "ica", "Ede Ica" }, { "ich", "Etkywan" }, { "icl", "Icelandic Sign Language" }, { "icr", "Islander Creole English" }, { "ida", "Idakho-Isukha-Tiriki" }, { "idb", "Indo-Portuguese" }, { "idc", "Idon" }, { "idd", "Ede Idaca" }, { "ide", "Idere" }, { "idi", "Idi" }, { "ido", "Ido" }, { "idr", "Indri" }, { "ids", "Idesa" }, { "idt", "Idaté" }, { "idu", "Idoma" }, { "ifa", "Amganad Ifugao" }, { "ifb", "Batad Ifugao" }, { "ife", "Ifè" }, { "iff", "Ifo" }, { "ifk", "Tuwali Ifugao" }, { "ifm", "Teke-Fuumu" }, { "ifu", "Mayoyao Ifugao" }, { "ify", "Keley-I Kallahan" }, { "igb", "Ebira" }, { "ige", "Igede" }, { "igg", "Igana" }, { "igl", "Igala" }, { "igm", "Kanggape" }, { "ign", "Ignaciano" }, { "igo", "Isebe" }, { "igs", "Interglossa" }, { "igw", "Igwe" }, { "ihb", "Iha Based Pidgin" }, { "ihi", "Ihievbe" }, { "ihp", "Iha" }, { "ihw", "Bidhawal" }, { "iii", "Sichuan Yi" }, { "iin", "Thiin" }, { "ijc", "Izon" }, { "ije", "Biseni" }, { "ijj", "Ede Ije" }, { "ijn", "Kalabari" }, { "ijs", "Southeast Ijo" }, { "ike", "Eastern Canadian Inuktitut" }, { "iki", "Iko" }, { "ikk", "Ika" }, { "ikl", "Ikulu" }, { "iko", "Olulumo-Ikom" }, { "ikp", "Ikpeshi" }, { "ikr", "Ikaranggal" }, { "ikt", "Inuinnaqtun" }, { "iku", "Inuktitut" }, { "ikv", "Iku-Gora-Ankwa" }, { "ikw", "Ikwere" }, { "ikx", "Ik" }, { "ikz", "Ikizu" }, { "ila", "Ile Ape" }, { "ilb", "Ila" }, { "ile", "Interlingue" }, { "ilg", "Garig-Ilgar" }, { "ili", "Ili Turki" }, { "ilk", "Ilongot" }, { "ill", "Iranun" }, { "ilo", "Iloko" }, { "ils", "International Sign" }, { "ilu", "Ili'uun" }, { "ilv", "Ilue" }, { "ima", "Mala Malasar" }, { "ime", "Imeraguen" }, { "imi", "Anamgura" }, { "iml", "Miluk" }, { "imn", "Imonda" }, { "imo", "Imbongu" }, { "imr", "Imroing" }, { "ims", "Marsian" }, { "imy", "Milyan" }, { "ina", "Interlingua (International Auxiliary Language Association)" }, { "inb", "Inga" }, { "ind", "Indonesian" }, { "ing", "Degexit'an" }, { "inh", "Ingush" }, { "inj", "Jungle Inga" }, { "inl", "Indonesian Sign Language" }, { "inm", "Minaean" }, { "inn", "Isinai" }, { "ino", "Inoke-Yate" }, { "inp", "Iñapari" }, { "ins", "Indian Sign Language" }, { "int", "Intha" }, { "inz", "Ineseño" }, { "ior", "Inor" }, { "iou", "Tuma-Irumu" }, { "iow", "Iowa-Oto" }, { "ipi", "Ipili" }, { "ipk", "Inupiaq" }, { "ipo", "Ipiko" }, { "iqu", "Iquito" }, { "iqw", "Ikwo" }, { "ire", "Iresim" }, { "irh", "Irarutu" }, { "iri", "Irigwe" }, { "irk", "Iraqw" }, { "irn", "Irántxe" }, { "irr", "Ir" }, { "iru", "Irula" }, { "irx", "Kamberau" }, { "iry", "Iraya" }, { "isa", "Isabi" }, { "isc", "Isconahua" }, { "isd", "Isnag" }, { "ise", "Italian Sign Language" }, { "isg", "Irish Sign Language" }, { "ish", "Esan" }, { "isi", "Nkem-Nkum" }, { "isk", "Ishkashimi" }, { "isl", "Icelandic" }, { "ism", "Masimasi" }, { "isn", "Isanzu" }, { "iso", "Isoko" }, { "isr", "Israeli Sign Language" }, { "ist", "Istriot" }, { "isu", "Isu (Menchum Division)" }, { "ita", "Italian" }, { "itb", "Binongan Itneg" }, { "ite", "Itene" }, { "iti", "Inlaod Itneg" }, { "itk", "Judeo-Italian" }, { "itl", "Itelmen" }, { "itm", "Itu Mbon Uzo" }, { "ito", "Itonama" }, { "itr", "Iteri" }, { "its", "Isekiri" }, { "itt", "Maeng Itneg" }, { "itv", "Itawit" }, { "itw", "Ito" }, { "itx", "Itik" }, { "ity", "Moyadan Itneg" }, { "itz", "Itzá" }, { "ium", "Iu Mien" }, { "ivb", "Ibatan" }, { "ivv", "Ivatan" }, { "iwk", "I-Wak" }, { "iwm", "Iwam" }, { "iwo", "Iwur" }, { "iws", "Sepik Iwam" }, { "ixc", "Ixcatec" }, { "ixl", "Ixil" }, { "iya", "Iyayu" }, { "iyo", "Mesaka" }, { "iyx", "Yaka (Congo)" }, { "izh", "Ingrian" }, { "izr", "Izere" }, { "izz", "Izii" }, { "jaa", "Jamamadí" }, { "jab", "Hyam" }, { "jac", "Popti'" }, { "jad", "Jahanka" }, { "jae", "Yabem" }, { "jaf", "Jara" }, { "jah", "Jah Hut" }, { "jaj", "Zazao" }, { "jak", "Jakun" }, { "jal", "Yalahatan" }, { "jam", "Jamaican Creole English" }, { "jan", "Jandai" }, { "jao", "Yanyuwa" }, { "jaq", "Yaqay" }, { "jas", "New Caledonian Javanese" }, { "jat", "Jakati" }, { "jau", "Yaur" }, { "jav", "Javanese" }, { "jax", "Jambi Malay" }, { "jay", "Yan-nhangu" }, { "jaz", "Jawe" }, { "jbe", "Judeo-Berber" }, { "jbi", "Badjiri" }, { "jbj", "Arandai" }, { "jbk", "Barikewa" }, { "jbn", "Nafusi" }, { "jbo", "Lojban" }, { "jbr", "Jofotek-Bromnya" }, { "jbt", "Jabutí" }, { "jbu", "Jukun Takum" }, { "jbw", "Yawijibaya" }, { "jcs", "Jamaican Country Sign Language" }, { "jct", "Krymchak" }, { "jda", "Jad" }, { "jdg", "Jadgali" }, { "jdt", "Judeo-Tat" }, { "jeb", "Jebero" }, { "jee", "Jerung" }, { "jeg", "Jeng" }, { "jeh", "Jeh" }, { "jei", "Yei" }, { "jek", "Jeri Kuo" }, { "jel", "Yelmek" }, { "jen", "Dza" }, { "jer", "Jere" }, { "jet", "Manem" }, { "jeu", "Jonkor Bourmataguil" }, { "jgb", "Ngbee" }, { "jge", "Judeo-Georgian" }, { "jgk", "Gwak" }, { "jgo", "Ngomba" }, { "jhi", "Jehai" }, { "jhs", "Jhankot Sign Language" }, { "jia", "Jina" }, { "jib", "Jibu" }, { "jic", "Tol" }, { "jid", "Bu" }, { "jie", "Jilbe" }, { "jig", "Djingili" }, { "jih", "sTodsde" }, { "jii", "Jiiddu" }, { "jil", "Jilim" }, { "jim", "Jimi (Cameroon)" }, { "jio", "Jiamao" }, { "jiq", "Guanyinqiao" }, { "jit", "Jita" }, { "jiu", "Youle Jinuo" }, { "jiv", "Shuar" }, { "jiy", "Buyuan Jinuo" }, { "jjr", "Bankal" }, { "jkm", "Mobwa Karen" }, { "jko", "Kubo" }, { "jkp", "Paku Karen" }, { "jkr", "Koro (India)" }, { "jku", "Labir" }, { "jle", "Ngile" }, { "jls", "Jamaican Sign Language" }, { "jma", "Dima" }, { "jmb", "Zumbun" }, { "jmc", "Machame" }, { "jmd", "Yamdena" }, { "jmi", "Jimi (Nigeria)" }, { "jml", "Jumli" }, { "jmn", "Makuri Naga" }, { "jmr", "Kamara" }, { "jms", "Mashi (Nigeria)" }, { "jmw", "Mouwase" }, { "jmx", "Western Juxtlahuaca Mixtec" }, { "jna", "Jangshung" }, { "jnd", "Jandavra" }, { "jng", "Yangman" }, { "jni", "Janji" }, { "jnj", "Yemsa" }, { "jnl", "Rawat" }, { "jns", "Jaunsari" }, { "job", "Joba" }, { "jod", "Wojenaka" }, { "jor", "Jorá" }, { "jos", "Jordanian Sign Language" }, { "jow", "Jowulu" }, { "jpa", "Jewish Palestinian Aramaic" }, { "jpn", "Japanese" }, { "jpr", "Judeo-Persian" }, { "jqr", "Jaqaru" }, { "jra", "Jarai" }, { "jrb", "Judeo-Arabic" }, { "jrr", "Jiru" }, { "jrt", "Jorto" }, { "jru", "Japrería" }, { "jsl", "Japanese Sign Language" }, { "jua", "Júma" }, { "jub", "Wannu" }, { "juc", "Jurchen" }, { "jud", "Worodougou" }, { "juh", "Hõne" }, { "jui", "Ngadjuri" }, { "juk", "Wapan" }, { "jul", "Jirel" }, { "jum", "Jumjum" }, { "jun", "Juang" }, { "juo", "Jiba" }, { "jup", "Hupdë" }, { "jur", "Jurúna" }, { "jus", "Jumla Sign Language" }, { "jut", "Jutish" }, { "juu", "Ju" }, { "juw", "Wãpha" }, { "juy", "Juray" }, { "jvd", "Javindo" }, { "jvn", "Caribbean Javanese" }, { "jwi", "Jwira-Pepesa" }, { "jya", "Jiarong" }, { "jye", "Judeo-Yemeni Arabic" }, { "jyy", "Jaya" }, { "kaa", "Kara-Kalpak" }, { "kab", "Kabyle" }, { "kac", "Kachin" }, { "kad", "Adara" }, { "kae", "Ketangalan" }, { "kaf", "Katso" }, { "kag", "Kajaman" }, { "kah", "Kara (Central African Republic)" }, { "kai", "Karekare" }, { "kaj", "Jju" }, { "kak", "Kayapa Kallahan" }, { "kal", "Kalaallisut" }, { "kam", "Kamba (Kenya)" }, { "kan", "Kannada" }, { "kao", "Xaasongaxango" }, { "kap", "Bezhta" }, { "kaq", "Capanahua" }, { "kas", "Kashmiri" }, { "kat", "Georgian" }, { "kau", "Kanuri" }, { "kav", "Katukína" }, { "kaw", "Kawi" }, { "kax", "Kao" }, { "kay", "Kamayurá" }, { "kaz", "Kazakh" }, { "kba", "Kalarko" }, { "kbb", "Kaxuiâna" }, { "kbc", "Kadiwéu" }, { "kbd", "Kabardian" }, { "kbe", "Kanju" }, { "kbf", "Kakauhua" }, { "kbg", "Khamba" }, { "kbh", "Camsá" }, { "kbi", "Kaptiau" }, { "kbj", "Kari" }, { "kbk", "Grass Koiari" }, { "kbl", "Kanembu" }, { "kbm", "Iwal" }, { "kbn", "Kare (Central African Republic)" }, { "kbo", "Keliko" }, { "kbp", "Kabiyè" }, { "kbq", "Kamano" }, { "kbr", "Kafa" }, { "kbs", "Kande" }, { "kbt", "Abadi" }, { "kbu", "Kabutra" }, { "kbv", "Dera (Indonesia)" }, { "kbw", "Kaiep" }, { "kbx", "Ap Ma" }, { "kby", "Manga Kanuri" }, { "kbz", "Duhwa" }, { "kca", "Khanty" }, { "kcb", "Kawacha" }, { "kcc", "Lubila" }, { "kcd", "Ngkâlmpw Kanum" }, { "kce", "Kaivi" }, { "kcf", "Ukaan" }, { "kcg", "Tyap" }, { "kch", "Vono" }, { "kci", "Kamantan" }, { "kcj", "Kobiana" }, { "kck", "Kalanga" }, { "kcl", "Kela (Papua New Guinea)" }, { "kcm", "Gula (Central African Republic)" }, { "kcn", "Nubi" }, { "kco", "Kinalakna" }, { "kcp", "Kanga" }, { "kcq", "Kamo" }, { "kcr", "Katla" }, { "kcs", "Koenoem" }, { "kct", "Kaian" }, { "kcu", "Kami (Tanzania)" }, { "kcv", "Kete" }, { "kcw", "Kabwari" }, { "kcx", "Kachama-Ganjule" }, { "kcy", "Korandje" }, { "kcz", "Konongo" }, { "kda", "Worimi" }, { "kdc", "Kutu" }, { "kdd", "Yankunytjatjara" }, { "kde", "Makonde" }, { "kdf", "Mamusi" }, { "kdg", "Seba" }, { "kdh", "Tem" }, { "kdi", "Kumam" }, { "kdj", "Karamojong" }, { "kdk", "Numèè" }, { "kdl", "Tsikimba" }, { "kdm", "Kagoma" }, { "kdn", "Kunda" }, { "kdp", "Kaningdon-Nindem" }, { "kdq", "Koch" }, { "kdr", "Karaim" }, { "kdt", "Kuy" }, { "kdu", "Kadaru" }, { "kdw", "Koneraw" }, { "kdx", "Kam" }, { "kdy", "Keder" }, { "kdz", "Kwaja" }, { "kea", "Kabuverdianu" }, { "keb", "Kélé" }, { "kec", "Keiga" }, { "ked", "Kerewe" }, { "kee", "Eastern Keres" }, { "kef", "Kpessi" }, { "keg", "Tese" }, { "keh", "Keak" }, { "kei", "Kei" }, { "kej", "Kadar" }, { "kek", "Kekchí" }, { "kel", "Kela (Democratic Republic of Congo)" }, { "kem", "Kemak" }, { "ken", "Kenyang" }, { "keo", "Kakwa" }, { "kep", "Kaikadi" }, { "keq", "Kamar" }, { "ker", "Kera" }, { "kes", "Kugbo" }, { "ket", "Ket" }, { "keu", "Akebu" }, { "kev", "Kanikkaran" }, { "kew", "West Kewa" }, { "kex", "Kukna" }, { "key", "Kupia" }, { "kez", "Kukele" }, { "kfa", "Kodava" }, { "kfb", "Northwestern Kolami" }, { "kfc", "Konda-Dora" }, { "kfd", "Korra Koraga" }, { "kfe", "Kota (India)" }, { "kff", "Koya" }, { "kfg", "Kudiya" }, { "kfh", "Kurichiya" }, { "kfi", "Kannada Kurumba" }, { "kfj", "Kemiehua" }, { "kfk", "Kinnauri" }, { "kfl", "Kung" }, { "kfm", "Khunsari" }, { "kfn", "Kuk" }, { "kfo", "Koro (Côte d'Ivoire)" }, { "kfp", "Korwa" }, { "kfq", "Korku" }, { "kfr", "Kachchi" }, { "kfs", "Bilaspuri" }, { "kft", "Kanjari" }, { "kfu", "Katkari" }, { "kfv", "Kurmukar" }, { "kfw", "Kharam Naga" }, { "kfx", "Kullu Pahari" }, { "kfy", "Kumaoni" }, { "kfz", "Koromfé" }, { "kga", "Koyaga" }, { "kgb", "Kawe" }, { "kgc", "Kasseng" }, { "kgd", "Kataang" }, { "kge", "Komering" }, { "kgf", "Kube" }, { "kgg", "Kusunda" }, { "kgi", "Selangor Sign Language" }, { "kgj", "Gamale Kham" }, { "kgk", "Kaiwá" }, { "kgl", "Kunggari" }, { "kgm", "Karipúna" }, { "kgn", "Karingani" }, { "kgo", "Krongo" }, { "kgp", "Kaingang" }, { "kgq", "Kamoro" }, { "kgr", "Abun" }, { "kgs", "Kumbainggar" }, { "kgt", "Somyev" }, { "kgu", "Kobol" }, { "kgv", "Karas" }, { "kgw", "Karon Dori" }, { "kgx", "Kamaru" }, { "kgy", "Kyerung" }, { "kha", "Khasi" }, { "khb", "Lü" }, { "khc", "Tukang Besi North" }, { "khd", "Bädi Kanum" }, { "khe", "Korowai" }, { "khf", "Khuen" }, { "khg", "Khams Tibetan" }, { "khh", "Kehu" }, { "khj", "Kuturmi" }, { "khk", "Halh Mongolian" }, { "khl", "Lusi" }, { "khm", "Central Khmer" }, { "khn", "Khandesi" }, { "kho", "Khotanese" }, { "khp", "Kapori" }, { "khq", "Koyra Chiini Songhay" }, { "khr", "Kharia" }, { "khs", "Kasua" }, { "kht", "Khamti" }, { "khu", "Nkhumbi" }, { "khv", "Khvarshi" }, { "khw", "Khowar" }, { "khx", "Kanu" }, { "khy", "Kele (Democratic Republic of Congo)" }, { "khz", "Keapara" }, { "kia", "Kim" }, { "kib", "Koalib" }, { "kic", "Kickapoo" }, { "kid", "Koshin" }, { "kie", "Kibet" }, { "kif", "Eastern Parbate Kham" }, { "kig", "Kimaama" }, { "kih", "Kilmeri" }, { "kii", "Kitsai" }, { "kij", "Kilivila" }, { "kik", "Kikuyu" }, { "kil", "Kariya" }, { "kim", "Karagas" }, { "kin", "Kinyarwanda" }, { "kio", "Kiowa" }, { "kip", "Sheshi Kham" }, { "kiq", "Kosadle" }, { "kir", "Kirghiz" }, { "kis", "Kis" }, { "kit", "Agob" }, { "kiu", "Kirmanjki (individual language)" }, { "kiv", "Kimbu" }, { "kiw", "Northeast Kiwai" }, { "kix", "Khiamniungan Naga" }, { "kiy", "Kirikiri" }, { "kiz", "Kisi" }, { "kja", "Mlap" }, { "kjb", "Q'anjob'al" }, { "kjc", "Coastal Konjo" }, { "kjd", "Southern Kiwai" }, { "kje", "Kisar" }, { "kjf", "Khalaj" }, { "kjg", "Khmu" }, { "kjh", "Khakas" }, { "kji", "Zabana" }, { "kjj", "Khinalugh" }, { "kjk", "Highland Konjo" }, { "kjl", "Western Parbate Kham" }, { "kjm", "Kháng" }, { "kjn", "Kunjen" }, { "kjo", "Harijan Kinnauri" }, { "kjp", "Pwo Eastern Karen" }, { "kjq", "Western Keres" }, { "kjr", "Kurudu" }, { "kjs", "East Kewa" }, { "kjt", "Phrae Pwo Karen" }, { "kju", "Kashaya" }, { "kjx", "Ramopa" }, { "kjy", "Erave" }, { "kjz", "Bumthangkha" }, { "kka", "Kakanda" }, { "kkb", "Kwerisa" }, { "kkc", "Odoodee" }, { "kkd", "Kinuku" }, { "kke", "Kakabe" }, { "kkf", "Kalaktang Monpa" }, { "kkg", "Mabaka Valley Kalinga" }, { "kkh", "Khün" }, { "kki", "Kagulu" }, { "kkj", "Kako" }, { "kkk", "Kokota" }, { "kkl", "Kosarek Yale" }, { "kkm", "Kiong" }, { "kkn", "Kon Keu" }, { "kko", "Karko" }, { "kkp", "Gugubera" }, { "kkq", "Kaiku" }, { "kkr", "Kir-Balar" }, { "kks", "Giiwo" }, { "kkt", "Koi" }, { "kku", "Tumi" }, { "kkv", "Kangean" }, { "kkw", "Teke-Kukuya" }, { "kkx", "Kohin" }, { "kky", "Guguyimidjir" }, { "kkz", "Kaska" }, { "kla", "Klamath-Modoc" }, { "klb", "Kiliwa" }, { "klc", "Kolbila" }, { "kld", "Gamilaraay" }, { "kle", "Kulung (Nepal)" }, { "klf", "Kendeje" }, { "klg", "Tagakaulo" }, { "klh", "Weliki" }, { "kli", "Kalumpang" }, { "klj", "Turkic Khalaj" }, { "klk", "Kono (Nigeria)" }, { "kll", "Kagan Kalagan" }, { "klm", "Migum" }, { "kln", "Kalenjin" }, { "klo", "Kapya" }, { "klp", "Kamasa" }, { "klq", "Rumu" }, { "klr", "Khaling" }, { "kls", "Kalasha" }, { "klt", "Nukna" }, { "klu", "Klao" }, { "klv", "Maskelynes" }, { "klw", "Lindu" }, { "klx", "Koluwawa" }, { "kly", "Kalao" }, { "klz", "Kabola" }, { "kma", "Konni" }, { "kmb", "Kimbundu" }, { "kmc", "Southern Dong" }, { "kmd", "Majukayang Kalinga" }, { "kme", "Bakole" }, { "kmf", "Kare (Papua New Guinea)" }, { "kmg", "Kâte" }, { "kmh", "Kalam" }, { "kmi", "Kami (Nigeria)" }, { "kmj", "Kumarbhag Paharia" }, { "kmk", "Limos Kalinga" }, { "kml", "Tanudan Kalinga" }, { "kmm", "Kom (India)" }, { "kmn", "Awtuw" }, { "kmo", "Kwoma" }, { "kmp", "Gimme" }, { "kmq", "Kwama" }, { "kmr", "Northern Kurdish" }, { "kms", "Kamasau" }, { "kmt", "Kemtuik" }, { "kmu", "Kanite" }, { "kmv", "Karipúna Creole French" }, { "kmw", "Komo (Democratic Republic of Congo)" }, { "kmx", "Waboda" }, { "kmy", "Koma" }, { "kmz", "Khorasani Turkish" }, { "kna", "Dera (Nigeria)" }, { "knb", "Lubuagan Kalinga" }, { "knc", "Central Kanuri" }, { "knd", "Konda" }, { "kne", "Kankanaey" }, { "knf", "Mankanya" }, { "kng", "Koongo" }, { "kni", "Kanufi" }, { "knj", "Western Kanjobal" }, { "knk", "Kuranko" }, { "knl", "Keninjal" }, { "knm", "Kanamarí" }, { "knn", "Konkani (individual language)" }, { "kno", "Kono (Sierra Leone)" }, { "knp", "Kwanja" }, { "knq", "Kintaq" }, { "knr", "Kaningra" }, { "kns", "Kensiu" }, { "knt", "Panoan Katukína" }, { "knu", "Kono (Guinea)" }, { "knv", "Tabo" }, { "knw", "Kung-Ekoka" }, { "knx", "Kendayan" }, { "kny", "Kanyok" }, { "knz", "Kalamsé" }, { "koa", "Konomala" }, { "koc", "Kpati" }, { "kod", "Kodi" }, { "koe", "Kacipo-Balesi" }, { "kof", "Kubi" }, { "kog", "Cogui" }, { "koh", "Koyo" }, { "koi", "Komi-Permyak" }, { "koj", "Sara Dunjo" }, { "kok", "Konkani (macrolanguage)" }, { "kol", "Kol (Papua New Guinea)" }, { "kom", "Komi" }, { "kon", "Kongo" }, { "koo", "Konzo" }, { "kop", "Waube" }, { "koq", "Kota (Gabon)" }, { "kor", "Korean" }, { "kos", "Kosraean" }, { "kot", "Lagwan" }, { "kou", "Koke" }, { "kov", "Kudu-Camo" }, { "kow", "Kugama" }, { "kox", "Coxima" }, { "koy", "Koyukon" }, { "koz", "Korak" }, { "kpa", "Kutto" }, { "kpb", "Mullu Kurumba" }, { "kpc", "Curripaco" }, { "kpd", "Koba" }, { "kpe", "Kpelle" }, { "kpf", "Komba" }, { "kpg", "Kapingamarangi" }, { "kph", "Kplang" }, { "kpi", "Kofei" }, { "kpj", "Karajá" }, { "kpk", "Kpan" }, { "kpl", "Kpala" }, { "kpm", "Koho" }, { "kpn", "Kepkiriwát" }, { "kpo", "Ikposo" }, { "kpq", "Korupun-Sela" }, { "kpr", "Korafe-Yegha" }, { "kps", "Tehit" }, { "kpt", "Karata" }, { "kpu", "Kafoa" }, { "kpv", "Komi-Zyrian" }, { "kpw", "Kobon" }, { "kpx", "Mountain Koiali" }, { "kpy", "Koryak" }, { "kpz", "Kupsabiny" }, { "kqa", "Mum" }, { "kqb", "Kovai" }, { "kqc", "Doromu-Koki" }, { "kqd", "Koy Sanjaq Surat" }, { "kqe", "Kalagan" }, { "kqf", "Kakabai" }, { "kqg", "Khe" }, { "kqh", "Kisankasa" }, { "kqi", "Koitabu" }, { "kqj", "Koromira" }, { "kqk", "Kotafon Gbe" }, { "kql", "Kyenele" }, { "kqm", "Khisa" }, { "kqn", "Kaonde" }, { "kqo", "Eastern Krahn" }, { "kqp", "Kimré" }, { "kqq", "Krenak" }, { "kqr", "Kimaragang" }, { "kqs", "Northern Kissi" }, { "kqt", "Klias River Kadazan" }, { "kqu", "Seroa" }, { "kqv", "Okolod" }, { "kqw", "Kandas" }, { "kqx", "Mser" }, { "kqy", "Koorete" }, { "kqz", "Korana" }, { "kra", "Kumhali" }, { "krb", "Karkin" }, { "krc", "Karachay-Balkar" }, { "krd", "Kairui-Midiki" }, { "kre", "Panará" }, { "krf", "Koro (Vanuatu)" }, { "krh", "Kurama" }, { "kri", "Krio" }, { "krj", "Kinaray-A" }, { "krk", "Kerek" }, { "krl", "Karelian" }, { "krm", "Krim" }, { "krn", "Sapo" }, { "krp", "Korop" }, { "krr", "Kru'ng 2" }, { "krs", "Gbaya (Sudan)" }, { "krt", "Tumari Kanuri" }, { "kru", "Kurukh" }, { "krv", "Kavet" }, { "krw", "Western Krahn" }, { "krx", "Karon" }, { "kry", "Kryts" }, { "krz", "Sota Kanum" }, { "ksa", "Shuwa-Zamani" }, { "ksb", "Shambala" }, { "ksc", "Southern Kalinga" }, { "ksd", "Kuanua" }, { "kse", "Kuni" }, { "ksf", "Bafia" }, { "ksg", "Kusaghe" }, { "ksh", "Kölsch" }, { "ksi", "Krisa" }, { "ksj", "Uare" }, { "ksk", "Kansa" }, { "ksl", "Kumalu" }, { "ksm", "Kumba" }, { "ksn", "Kasiguranin" }, { "kso", "Kofa" }, { "ksp", "Kaba" }, { "ksq", "Kwaami" }, { "ksr", "Borong" }, { "kss", "Southern Kisi" }, { "kst", "Winyé" }, { "ksu", "Khamyang" }, { "ksv", "Kusu" }, { "ksw", "S'gaw Karen" }, { "ksx", "Kedang" }, { "ksy", "Kharia Thar" }, { "ksz", "Kodaku" }, { "kta", "Katua" }, { "ktb", "Kambaata" }, { "ktc", "Kholok" }, { "ktd", "Kokata" }, { "kte", "Nubri" }, { "ktf", "Kwami" }, { "ktg", "Kalkutung" }, { "kth", "Karanga" }, { "kti", "North Muyu" }, { "ktj", "Plapo Krumen" }, { "ktk", "Kaniet" }, { "ktl", "Koroshi" }, { "ktm", "Kurti" }, { "ktn", "Karitiâna" }, { "kto", "Kuot" }, { "ktp", "Kaduo" }, { "ktq", "Katabaga" }, { "ktr", "Kota Marudu Tinagas" }, { "kts", "South Muyu" }, { "ktt", "Ketum" }, { "ktu", "Kituba (Democratic Republic of Congo)" }, { "ktv", "Eastern Katu" }, { "ktw", "Kato" }, { "ktx", "Kaxararí" }, { "kty", "Kango (Bas-Uélé District)" }, { "ktz", "Ju'hoan" }, { "kua", "Kuanyama" }, { "kub", "Kutep" }, { "kuc", "Kwinsu" }, { "kud", "'Auhelawa" }, { "kue", "Kuman" }, { "kuf", "Western Katu" }, { "kug", "Kupa" }, { "kuh", "Kushi" }, { "kui", "Kuikúro-Kalapálo" }, { "kuj", "Kuria" }, { "kuk", "Kepo'" }, { "kul", "Kulere" }, { "kum", "Kumyk" }, { "kun", "Kunama" }, { "kuo", "Kumukio" }, { "kup", "Kunimaipa" }, { "kuq", "Karipuna" }, { "kur", "Kurdish" }, { "kus", "Kusaal" }, { "kut", "Kutenai" }, { "kuu", "Upper Kuskokwim" }, { "kuv", "Kur" }, { "kuw", "Kpagua" }, { "kux", "Kukatja" }, { "kuy", "Kuuku-Ya'u" }, { "kuz", "Kunza" }, { "kva", "Bagvalal" }, { "kvb", "Kubu" }, { "kvc", "Kove" }, { "kvd", "Kui (Indonesia)" }, { "kve", "Kalabakan" }, { "kvf", "Kabalai" }, { "kvg", "Kuni-Boazi" }, { "kvh", "Komodo" }, { "kvi", "Kwang" }, { "kvj", "Psikye" }, { "kvk", "Korean Sign Language" }, { "kvl", "Kayaw" }, { "kvm", "Kendem" }, { "kvn", "Border Kuna" }, { "kvo", "Dobel" }, { "kvp", "Kompane" }, { "kvq", "Geba Karen" }, { "kvr", "Kerinci" }, { "kvs", "Kunggara" }, { "kvt", "Lahta Karen" }, { "kvu", "Yinbaw Karen" }, { "kvv", "Kola" }, { "kvw", "Wersing" }, { "kvx", "Parkari Koli" }, { "kvy", "Yintale Karen" }, { "kvz", "Tsakwambo" }, { "kwa", "Dâw" }, { "kwb", "Kwa" }, { "kwc", "Likwala" }, { "kwd", "Kwaio" }, { "kwe", "Kwerba" }, { "kwf", "Kwara'ae" }, { "kwg", "Sara Kaba Deme" }, { "kwh", "Kowiai" }, { "kwi", "Awa-Cuaiquer" }, { "kwj", "Kwanga" }, { "kwk", "Kwakiutl" }, { "kwl", "Kofyar" }, { "kwm", "Kwambi" }, { "kwn", "Kwangali" }, { "kwo", "Kwomtari" }, { "kwp", "Kodia" }, { "kwq", "Kwak" }, { "kwr", "Kwer" }, { "kws", "Kwese" }, { "kwt", "Kwesten" }, { "kwu", "Kwakum" }, { "kwv", "Sara Kaba Náà" }, { "kww", "Kwinti" }, { "kwx", "Khirwar" }, { "kwy", "San Salvador Kongo" }, { "kwz", "Kwadi" }, { "kxa", "Kairiru" }, { "kxb", "Krobu" }, { "kxc", "Konso" }, { "kxd", "Brunei" }, { "kxe", "Kakihum" }, { "kxf", "Manumanaw Karen" }, { "kxh", "Karo (Ethiopia)" }, { "kxi", "Keningau Murut" }, { "kxj", "Kulfa" }, { "kxk", "Zayein Karen" }, { "kxl", "Nepali Kurux" }, { "kxm", "Northern Khmer" }, { "kxn", "Kanowit-Tanjong Melanau" }, { "kxo", "Kanoé" }, { "kxp", "Wadiyara Koli" }, { "kxq", "Smärky Kanum" }, { "kxr", "Koro (Papua New Guinea)" }, { "kxs", "Kangjia" }, { "kxt", "Koiwat" }, { "kxu", "Kui (India)" }, { "kxv", "Kuvi" }, { "kxw", "Konai" }, { "kxx", "Likuba" }, { "kxy", "Kayong" }, { "kxz", "Kerewo" }, { "kya", "Kwaya" }, { "kyb", "Butbut Kalinga" }, { "kyc", "Kyaka" }, { "kyd", "Karey" }, { "kye", "Krache" }, { "kyf", "Kouya" }, { "kyg", "Keyagana" }, { "kyh", "Karok" }, { "kyi", "Kiput" }, { "kyj", "Karao" }, { "kyk", "Kamayo" }, { "kyl", "Kalapuya" }, { "kym", "Kpatili" }, { "kyn", "Northern Binukidnon" }, { "kyo", "Kelon" }, { "kyp", "Kang" }, { "kyq", "Kenga" }, { "kyr", "Kuruáya" }, { "kys", "Baram Kayan" }, { "kyt", "Kayagar" }, { "kyu", "Western Kayah" }, { "kyv", "Kayort" }, { "kyw", "Kudmali" }, { "kyx", "Rapoisi" }, { "kyy", "Kambaira" }, { "kyz", "Kayabí" }, { "kza", "Western Karaboro" }, { "kzb", "Kaibobo" }, { "kzc", "Bondoukou Kulango" }, { "kzd", "Kadai" }, { "kze", "Kosena" }, { "kzf", "Da'a Kaili" }, { "kzg", "Kikai" }, { "kzi", "Kelabit" }, { "kzj", "Coastal Kadazan" }, { "kzk", "Kazukuru" }, { "kzl", "Kayeli" }, { "kzm", "Kais" }, { "kzn", "Kokola" }, { "kzo", "Kaningi" }, { "kzp", "Kaidipang" }, { "kzq", "Kaike" }, { "kzr", "Karang" }, { "kzs", "Sugut Dusun" }, { "kzt", "Tambunan Dusun" }, { "kzu", "Kayupulau" }, { "kzv", "Komyandaret" }, { "kzw", "Karirí-Xocó" }, { "kzx", "Kamarian" }, { "kzy", "Kango (Tshopo District)" }, { "kzz", "Kalabra" }, { "laa", "Southern Subanen" }, { "lab", "Linear A" }, { "lac", "Lacandon" }, { "lad", "Ladino" }, { "lae", "Pattani" }, { "laf", "Lafofa" }, { "lag", "Langi" }, { "lah", "Lahnda" }, { "lai", "Lambya" }, { "laj", "Lango (Uganda)" }, { "lak", "Laka (Nigeria)" }, { "lal", "Lalia" }, { "lam", "Lamba" }, { "lan", "Laru" }, { "lao", "Lao" }, { "lap", "Laka (Chad)" }, { "laq", "Qabiao" }, { "lar", "Larteh" }, { "las", "Lama (Togo)" }, { "lat", "Latin" }, { "lau", "Laba" }, { "lav", "Latvian" }, { "law", "Lauje" }, { "lax", "Tiwa" }, { "lay", "Lama (Myanmar)" }, { "laz", "Aribwatsa" }, { "lba", "Lui" }, { "lbb", "Label" }, { "lbc", "Lakkia" }, { "lbe", "Lak" }, { "lbf", "Tinani" }, { "lbg", "Laopang" }, { "lbi", "La'bi" }, { "lbj", "Ladakhi" }, { "lbk", "Central Bontok" }, { "lbl", "Libon Bikol" }, { "lbm", "Lodhi" }, { "lbn", "Lamet" }, { "lbo", "Laven" }, { "lbq", "Wampar" }, { "lbr", "Lohorung" }, { "lbs", "Libyan Sign Language" }, { "lbt", "Lachi" }, { "lbu", "Labu" }, { "lbv", "Lavatbura-Lamusong" }, { "lbw", "Tolaki" }, { "lbx", "Lawangan" }, { "lby", "Lamu-Lamu" }, { "lbz", "Lardil" }, { "lcc", "Legenyem" }, { "lcd", "Lola" }, { "lce", "Loncong" }, { "lcf", "Lubu" }, { "lch", "Luchazi" }, { "lcl", "Lisela" }, { "lcm", "Tungag" }, { "lcp", "Western Lawa" }, { "lcq", "Luhu" }, { "lcs", "Lisabata-Nuniali" }, { "lda", "Kla-Dan" }, { "ldb", "Dũya" }, { "ldd", "Luri" }, { "ldg", "Lenyima" }, { "ldh", "Lamja-Dengsa-Tola" }, { "ldi", "Laari" }, { "ldj", "Lemoro" }, { "ldk", "Leelau" }, { "ldl", "Kaan" }, { "ldm", "Landoma" }, { "ldn", "Láadan" }, { "ldo", "Loo" }, { "ldp", "Tso" }, { "ldq", "Lufu" }, { "lea", "Lega-Shabunda" }, { "leb", "Lala-Bisa" }, { "lec", "Leco" }, { "led", "Lendu" }, { "lee", "Lyélé" }, { "lef", "Lelemi" }, { "leg", "Lengua" }, { "leh", "Lenje" }, { "lei", "Lemio" }, { "lej", "Lengola" }, { "lek", "Leipon" }, { "lel", "Lele (Democratic Republic of Congo)" }, { "lem", "Nomaande" }, { "len", "Lenca" }, { "leo", "Leti (Cameroon)" }, { "lep", "Lepcha" }, { "leq", "Lembena" }, { "ler", "Lenkau" }, { "les", "Lese" }, { "let", "Lesing-Gelimi" }, { "leu", "Kara (Papua New Guinea)" }, { "lev", "Lamma" }, { "lew", "Ledo Kaili" }, { "lex", "Luang" }, { "ley", "Lemolang" }, { "lez", "Lezghian" }, { "lfa", "Lefa" }, { "lfn", "Lingua Franca Nova" }, { "lga", "Lungga" }, { "lgb", "Laghu" }, { "lgg", "Lugbara" }, { "lgh", "Laghuu" }, { "lgi", "Lengilu" }, { "lgk", "Lingarak" }, { "lgl", "Wala" }, { "lgm", "Lega-Mwenga" }, { "lgn", "Opuuo" }, { "lgq", "Logba" }, { "lgr", "Lengo" }, { "lgt", "Pahi" }, { "lgu", "Longgu" }, { "lgz", "Ligenza" }, { "lha", "Laha (Viet Nam)" }, { "lhh", "Laha (Indonesia)" }, { "lhi", "Lahu Shi" }, { "lhl", "Lahul Lohar" }, { "lhm", "Lhomi" }, { "lhn", "Lahanan" }, { "lhp", "Lhokpu" }, { "lhs", "Mlahsö" }, { "lht", "Lo-Toga" }, { "lhu", "Lahu" }, { "lia", "West-Central Limba" }, { "lib", "Likum" }, { "lic", "Hlai" }, { "lid", "Nyindrou" }, { "lie", "Likila" }, { "lif", "Limbu" }, { "lig", "Ligbi" }, { "lih", "Lihir" }, { "lii", "Lingkhim" }, { "lij", "Ligurian" }, { "lik", "Lika" }, { "lil", "Lillooet" }, { "lim", "Limburgan" }, { "lin", "Lingala" }, { "lio", "Liki" }, { "lip", "Sekpele" }, { "liq", "Libido" }, { "lir", "Liberian English" }, { "lis", "Lisu" }, { "lit", "Lithuanian" }, { "liu", "Logorik" }, { "liv", "Liv" }, { "liw", "Col" }, { "lix", "Liabuku" }, { "liy", "Banda-Bambari" }, { "liz", "Libinza" }, { "lja", "Golpa" }, { "lje", "Rampi" }, { "lji", "Laiyolo" }, { "ljl", "Li'o" }, { "ljp", "Lampung Api" }, { "ljw", "Yirandali" }, { "ljx", "Yuru" }, { "lka", "Lakalei" }, { "lkb", "Kabras" }, { "lkc", "Kucong" }, { "lkd", "Lakondê" }, { "lke", "Kenyi" }, { "lkh", "Lakha" }, { "lki", "Laki" }, { "lkj", "Remun" }, { "lkl", "Laeko-Libuat" }, { "lkm", "Kalaamaya" }, { "lkn", "Lakon" }, { "lko", "Khayo" }, { "lkr", "Päri" }, { "lks", "Kisa" }, { "lkt", "Lakota" }, { "lku", "Kungkari" }, { "lky", "Lokoya" }, { "lla", "Lala-Roba" }, { "llb", "Lolo" }, { "llc", "Lele (Guinea)" }, { "lld", "Ladin" }, { "lle", "Lele (Papua New Guinea)" }, { "llf", "Hermit" }, { "llg", "Lole" }, { "llh", "Lamu" }, { "lli", "Teke-Laali" }, { "llj", "Ladji Ladji" }, { "llk", "Lelak" }, { "lll", "Lilau" }, { "llm", "Lasalimu" }, { "lln", "Lele (Chad)" }, { "llo", "Khlor" }, { "llp", "North Efate" }, { "llq", "Lolak" }, { "lls", "Lithuanian Sign Language" }, { "llu", "Lau" }, { "llx", "Lauan" }, { "lma", "East Limba" }, { "lmb", "Merei" }, { "lmc", "Limilngan" }, { "lmd", "Lumun" }, { "lme", "Pévé" }, { "lmf", "South Lembata" }, { "lmg", "Lamogai" }, { "lmh", "Lambichhong" }, { "lmi", "Lombi" }, { "lmj", "West Lembata" }, { "lmk", "Lamkang" }, { "lml", "Hano" }, { "lmm", "Lamam" }, { "lmn", "Lambadi" }, { "lmo", "Lombard" }, { "lmp", "Limbum" }, { "lmq", "Lamatuka" }, { "lmr", "Lamalera" }, { "lmu", "Lamenu" }, { "lmv", "Lomaiviti" }, { "lmw", "Lake Miwok" }, { "lmx", "Laimbue" }, { "lmy", "Lamboya" }, { "lmz", "Lumbee" }, { "lna", "Langbashe" }, { "lnb", "Mbalanhu" }, { "lnd", "Lundayeh" }, { "lng", "Langobardic" }, { "lnh", "Lanoh" }, { "lni", "Daantanai'" }, { "lnj", "Leningitij" }, { "lnl", "South Central Banda" }, { "lnm", "Langam" }, { "lnn", "Lorediakarkar" }, { "lno", "Lango (Sudan)" }, { "lns", "Lamnso'" }, { "lnu", "Longuda" }, { "lnw", "Lanima" }, { "lnz", "Lonzo" }, { "loa", "Loloda" }, { "lob", "Lobi" }, { "loc", "Inonhan" }, { "loe", "Saluan" }, { "lof", "Logol" }, { "log", "Logo" }, { "loh", "Narim" }, { "loi", "Loma (Côte d'Ivoire)" }, { "loj", "Lou" }, { "lok", "Loko" }, { "lol", "Mongo" }, { "lom", "Loma (Liberia)" }, { "lon", "Malawi Lomwe" }, { "loo", "Lombo" }, { "lop", "Lopa" }, { "loq", "Lobala" }, { "lor", "Téén" }, { "los", "Loniu" }, { "lot", "Otuho" }, { "lou", "Louisiana Creole French" }, { "lov", "Lopi" }, { "low", "Tampias Lobu" }, { "lox", "Loun" }, { "loy", "Loke" }, { "loz", "Lozi" }, { "lpa", "Lelepa" }, { "lpe", "Lepki" }, { "lpn", "Long Phuri Naga" }, { "lpo", "Lipo" }, { "lpx", "Lopit" }, { "lra", "Rara Bakati'" }, { "lrc", "Northern Luri" }, { "lre", "Laurentian" }, { "lrg", "Laragia" }, { "lri", "Marachi" }, { "lrk", "Loarki" }, { "lrl", "Lari" }, { "lrm", "Marama" }, { "lrn", "Lorang" }, { "lro", "Laro" }, { "lrr", "Southern Yamphu" }, { "lrt", "Larantuka Malay" }, { "lrv", "Larevat" }, { "lrz", "Lemerig" }, { "lsa", "Lasgerdi" }, { "lsd", "Lishana Deni" }, { "lse", "Lusengo" }, { "lsg", "Lyons Sign Language" }, { "lsh", "Lish" }, { "lsi", "Lashi" }, { "lsl", "Latvian Sign Language" }, { "lsm", "Saamia" }, { "lso", "Laos Sign Language" }, { "lsp", "Panamanian Sign Language" }, { "lsr", "Aruop" }, { "lss", "Lasi" }, { "lst", "Trinidad and Tobago Sign Language" }, { "lsy", "Mauritian Sign Language" }, { "ltc", "Late Middle Chinese" }, { "ltg", "Latgalian" }, { "lti", "Leti (Indonesia)" }, { "ltn", "Latundê" }, { "lto", "Tsotso" }, { "lts", "Tachoni" }, { "ltu", "Latu" }, { "ltz", "Luxembourgish" }, { "lua", "Luba-Lulua" }, { "lub", "Luba-Katanga" }, { "luc", "Aringa" }, { "lud", "Ludian" }, { "lue", "Luvale" }, { "luf", "Laua" }, { "lug", "Ganda" }, { "lui", "Luiseno" }, { "luj", "Luna" }, { "luk", "Lunanakha" }, { "lul", "Olu'bo" }, { "lum", "Luimbi" }, { "lun", "Lunda" }, { "luo", "Luo (Kenya and Tanzania)" }, { "lup", "Lumbu" }, { "luq", "Lucumi" }, { "lur", "Laura" }, { "lus", "Lushai" }, { "lut", "Lushootseed" }, { "luu", "Lumba-Yakkha" }, { "luv", "Luwati" }, { "luw", "Luo (Cameroon)" }, { "luy", "Luyia" }, { "luz", "Southern Luri" }, { "lva", "Maku'a" }, { "lvk", "Lavukaleve" }, { "lvs", "Standard Latvian" }, { "lvu", "Levuka" }, { "lwa", "Lwalu" }, { "lwe", "Lewo Eleng" }, { "lwg", "Wanga" }, { "lwh", "White Lachi" }, { "lwl", "Eastern Lawa" }, { "lwm", "Laomian" }, { "lwo", "Luwo" }, { "lwt", "Lewotobi" }, { "lwu", "Lawu" }, { "lww", "Lewo" }, { "lya", "Layakha" }, { "lyg", "Lyngngam" }, { "lyn", "Luyana" }, { "lzh", "Literary Chinese" }, { "lzl", "Litzlitz" }, { "lzn", "Leinong Naga" }, { "lzz", "Laz" }, { "maa", "San Jerónimo Tecóatl Mazatec" }, { "mab", "Yutanduchi Mixtec" }, { "mad", "Madurese" }, { "mae", "Bo-Rukul" }, { "maf", "Mafa" }, { "mag", "Magahi" }, { "mah", "Marshallese" }, { "mai", "Maithili" }, { "maj", "Jalapa De Díaz Mazatec" }, { "mak", "Makasar" }, { "mal", "Malayalam" }, { "mam", "Mam" }, { "man", "Mandingo" }, { "maq", "Chiquihuitlán Mazatec" }, { "mar", "Marathi" }, { "mas", "Masai" }, { "mat", "San Francisco Matlatzinca" }, { "mau", "Huautla Mazatec" }, { "mav", "Sateré-Mawé" }, { "maw", "Mampruli" }, { "max", "North Moluccan Malay" }, { "maz", "Central Mazahua" }, { "mba", "Higaonon" }, { "mbb", "Western Bukidnon Manobo" }, { "mbc", "Macushi" }, { "mbd", "Dibabawon Manobo" }, { "mbe", "Molale" }, { "mbf", "Baba Malay" }, { "mbh", "Mangseng" }, { "mbi", "Ilianen Manobo" }, { "mbj", "Nadëb" }, { "mbk", "Malol" }, { "mbl", "Maxakalí" }, { "mbm", "Ombamba" }, { "mbn", "Macaguán" }, { "mbo", "Mbo (Cameroon)" }, { "mbp", "Malayo" }, { "mbq", "Maisin" }, { "mbr", "Nukak Makú" }, { "mbs", "Sarangani Manobo" }, { "mbt", "Matigsalug Manobo" }, { "mbu", "Mbula-Bwazza" }, { "mbv", "Mbulungish" }, { "mbw", "Maring" }, { "mbx", "Mari (East Sepik Province)" }, { "mby", "Memoni" }, { "mbz", "Amoltepec Mixtec" }, { "mca", "Maca" }, { "mcb", "Machiguenga" }, { "mcc", "Bitur" }, { "mcd", "Sharanahua" }, { "mce", "Itundujia Mixtec" }, { "mcf", "Matsés" }, { "mcg", "Mapoyo" }, { "mch", "Maquiritari" }, { "mci", "Mese" }, { "mcj", "Mvanip" }, { "mck", "Mbunda" }, { "mcl", "Macaguaje" }, { "mcm", "Malaccan Creole Portuguese" }, { "mcn", "Masana" }, { "mco", "Coatlán Mixe" }, { "mcp", "Makaa" }, { "mcq", "Ese" }, { "mcr", "Menya" }, { "mcs", "Mambai" }, { "mct", "Mengisa" }, { "mcu", "Cameroon Mambila" }, { "mcv", "Minanibai" }, { "mcw", "Mawa (Chad)" }, { "mcx", "Mpiemo" }, { "mcy", "South Watut" }, { "mcz", "Mawan" }, { "mda", "Mada (Nigeria)" }, { "mdb", "Morigi" }, { "mdc", "Male (Papua New Guinea)" }, { "mdd", "Mbum" }, { "mde", "Maba (Chad)" }, { "mdf", "Moksha" }, { "mdg", "Massalat" }, { "mdh", "Maguindanaon" }, { "mdi", "Mamvu" }, { "mdj", "Mangbetu" }, { "mdk", "Mangbutu" }, { "mdl", "Maltese Sign Language" }, { "mdm", "Mayogo" }, { "mdn", "Mbati" }, { "mdp", "Mbala" }, { "mdq", "Mbole" }, { "mdr", "Mandar" }, { "mds", "Maria (Papua New Guinea)" }, { "mdt", "Mbere" }, { "mdu", "Mboko" }, { "mdv", "Santa Lucía Monteverde Mixtec" }, { "mdw", "Mbosi" }, { "mdx", "Dizin" }, { "mdy", "Male (Ethiopia)" }, { "mdz", "Suruí Do Pará" }, { "mea", "Menka" }, { "meb", "Ikobi" }, { "mec", "Mara" }, { "med", "Melpa" }, { "mee", "Mengen" }, { "mef", "Megam" }, { "meh", "Southwestern Tlaxiaco Mixtec" }, { "mei", "Midob" }, { "mej", "Meyah" }, { "mek", "Mekeo" }, { "mel", "Central Melanau" }, { "mem", "Mangala" }, { "men", "Mende (Sierra Leone)" }, { "meo", "Kedah Malay" }, { "mep", "Miriwung" }, { "meq", "Merey" }, { "mer", "Meru" }, { "mes", "Masmaje" }, { "met", "Mato" }, { "meu", "Motu" }, { "mev", "Mano" }, { "mew", "Maaka" }, { "mey", "Hassaniyya" }, { "mez", "Menominee" }, { "mfa", "Pattani Malay" }, { "mfb", "Bangka" }, { "mfc", "Mba" }, { "mfd", "Mendankwe-Nkwen" }, { "mfe", "Morisyen" }, { "mff", "Naki" }, { "mfg", "Mogofin" }, { "mfh", "Matal" }, { "mfi", "Wandala" }, { "mfj", "Mefele" }, { "mfk", "North Mofu" }, { "mfl", "Putai" }, { "mfm", "Marghi South" }, { "mfn", "Cross River Mbembe" }, { "mfo", "Mbe" }, { "mfp", "Makassar Malay" }, { "mfq", "Moba" }, { "mfr", "Marithiel" }, { "mfs", "Mexican Sign Language" }, { "mft", "Mokerang" }, { "mfu", "Mbwela" }, { "mfv", "Mandjak" }, { "mfw", "Mulaha" }, { "mfx", "Melo" }, { "mfy", "Mayo" }, { "mfz", "Mabaan" }, { "mga", "Middle Irish (900-1200)" }, { "mgb", "Mararit" }, { "mgc", "Morokodo" }, { "mgd", "Moru" }, { "mge", "Mango" }, { "mgf", "Maklew" }, { "mgg", "Mpumpong" }, { "mgh", "Makhuwa-Meetto" }, { "mgi", "Lijili" }, { "mgj", "Abureni" }, { "mgk", "Mawes" }, { "mgl", "Maleu-Kilenge" }, { "mgm", "Mambae" }, { "mgn", "Mbangi" }, { "mgo", "Meta'" }, { "mgp", "Eastern Magar" }, { "mgq", "Malila" }, { "mgr", "Mambwe-Lungu" }, { "mgs", "Manda (Tanzania)" }, { "mgt", "Mongol" }, { "mgu", "Mailu" }, { "mgv", "Matengo" }, { "mgw", "Matumbi" }, { "mgy", "Mbunga" }, { "mgz", "Mbugwe" }, { "mha", "Manda (India)" }, { "mhb", "Mahongwe" }, { "mhc", "Mocho" }, { "mhd", "Mbugu" }, { "mhe", "Besisi" }, { "mhf", "Mamaa" }, { "mhg", "Margu" }, { "mhh", "Maskoy Pidgin" }, { "mhi", "Ma'di" }, { "mhj", "Mogholi" }, { "mhk", "Mungaka" }, { "mhl", "Mauwake" }, { "mhm", "Makhuwa-Moniga" }, { "mhn", "Mócheno" }, { "mho", "Mashi (Zambia)" }, { "mhp", "Balinese Malay" }, { "mhq", "Mandan" }, { "mhr", "Eastern Mari" }, { "mhs", "Buru (Indonesia)" }, { "mht", "Mandahuaca" }, { "mhu", "Digaro-Mishmi" }, { "mhw", "Mbukushu" }, { "mhx", "Maru" }, { "mhy", "Ma'anyan" }, { "mhz", "Mor (Mor Islands)" }, { "mia", "Miami" }, { "mib", "Atatláhuca Mixtec" }, { "mic", "Mi'kmaq" }, { "mid", "Mandaic" }, { "mie", "Ocotepec Mixtec" }, { "mif", "Mofu-Gudur" }, { "mig", "San Miguel El Grande Mixtec" }, { "mih", "Chayuco Mixtec" }, { "mii", "Chigmecatitlán Mixtec" }, { "mij", "Abar" }, { "mik", "Mikasuki" }, { "mil", "Peñoles Mixtec" }, { "mim", "Alacatlatzala Mixtec" }, { "min", "Minangkabau" }, { "mio", "Pinotepa Nacional Mixtec" }, { "mip", "Apasco-Apoala Mixtec" }, { "miq", "Mískito" }, { "mir", "Isthmus Mixe" }, { "mis", "Uncoded languages" }, { "mit", "Southern Puebla Mixtec" }, { "miu", "Cacaloxtepec Mixtec" }, { "miw", "Akoye" }, { "mix", "Mixtepec Mixtec" }, { "miy", "Ayutla Mixtec" }, { "miz", "Coatzospan Mixtec" }, { "mjc", "San Juan Colorado Mixtec" }, { "mjd", "Northwest Maidu" }, { "mje", "Muskum" }, { "mjg", "Tu" }, { "mjh", "Mwera (Nyasa)" }, { "mji", "Kim Mun" }, { "mjj", "Mawak" }, { "mjk", "Matukar" }, { "mjl", "Mandeali" }, { "mjm", "Medebur" }, { "mjn", "Ma (Papua New Guinea)" }, { "mjo", "Malankuravan" }, { "mjp", "Malapandaram" }, { "mjq", "Malaryan" }, { "mjr", "Malavedan" }, { "mjs", "Miship" }, { "mjt", "Sauria Paharia" }, { "mju", "Manna-Dora" }, { "mjv", "Mannan" }, { "mjw", "Karbi" }, { "mjx", "Mahali" }, { "mjy", "Mahican" }, { "mjz", "Majhi" }, { "mka", "Mbre" }, { "mkb", "Mal Paharia" }, { "mkc", "Siliput" }, { "mkd", "Macedonian" }, { "mke", "Mawchi" }, { "mkf", "Miya" }, { "mkg", "Mak (China)" }, { "mki", "Dhatki" }, { "mkj", "Mokilese" }, { "mkk", "Byep" }, { "mkl", "Mokole" }, { "mkm", "Moklen" }, { "mkn", "Kupang Malay" }, { "mko", "Mingang Doso" }, { "mkp", "Moikodi" }, { "mkq", "Bay Miwok" }, { "mkr", "Malas" }, { "mks", "Silacayoapan Mixtec" }, { "mkt", "Vamale" }, { "mku", "Konyanka Maninka" }, { "mkv", "Mafea" }, { "mkw", "Kituba (Congo)" }, { "mkx", "Kinamiging Manobo" }, { "mky", "East Makian" }, { "mkz", "Makasae" }, { "mla", "Malo" }, { "mlb", "Mbule" }, { "mlc", "Cao Lan" }, { "mle", "Manambu" }, { "mlf", "Mal" }, { "mlg", "Malagasy" }, { "mlh", "Mape" }, { "mli", "Malimpung" }, { "mlj", "Miltu" }, { "mlk", "Ilwana" }, { "mll", "Malua Bay" }, { "mlm", "Mulam" }, { "mln", "Malango" }, { "mlo", "Mlomp" }, { "mlp", "Bargam" }, { "mlq", "Western Maninkakan" }, { "mlr", "Vame" }, { "mls", "Masalit" }, { "mlt", "Maltese" }, { "mlu", "To'abaita" }, { "mlv", "Motlav" }, { "mlw", "Moloko" }, { "mlx", "Malfaxal" }, { "mlz", "Malaynon" }, { "mma", "Mama" }, { "mmb", "Momina" }, { "mmc", "Michoacán Mazahua" }, { "mmd", "Maonan" }, { "mme", "Mae" }, { "mmf", "Mundat" }, { "mmg", "North Ambrym" }, { "mmh", "Mehináku" }, { "mmi", "Musar" }, { "mmj", "Majhwar" }, { "mmk", "Mukha-Dora" }, { "mml", "Man Met" }, { "mmm", "Maii" }, { "mmn", "Mamanwa" }, { "mmo", "Mangga Buang" }, { "mmp", "Siawi" }, { "mmq", "Musak" }, { "mmr", "Western Xiangxi Miao" }, { "mmt", "Malalamai" }, { "mmu", "Mmaala" }, { "mmv", "Miriti" }, { "mmw", "Emae" }, { "mmx", "Madak" }, { "mmy", "Migaama" }, { "mmz", "Mabaale" }, { "mna", "Mbula" }, { "mnb", "Muna" }, { "mnc", "Manchu" }, { "mnd", "Mondé" }, { "mne", "Naba" }, { "mnf", "Mundani" }, { "mng", "Eastern Mnong" }, { "mnh", "Mono (Democratic Republic of Congo)" }, { "mni", "Manipuri" }, { "mnj", "Munji" }, { "mnk", "Mandinka" }, { "mnl", "Tiale" }, { "mnm", "Mapena" }, { "mnn", "Southern Mnong" }, { "mnp", "Min Bei Chinese" }, { "mnq", "Minriq" }, { "mnr", "Mono (USA)" }, { "mns", "Mansi" }, { "mnu", "Mer" }, { "mnv", "Rennell-Bellona" }, { "mnw", "Mon" }, { "mnx", "Manikion" }, { "mny", "Manyawa" }, { "mnz", "Moni" }, { "moa", "Mwan" }, { "moc", "Mocoví" }, { "mod", "Mobilian" }, { "moe", "Montagnais" }, { "mog", "Mongondow" }, { "moh", "Mohawk" }, { "moi", "Mboi" }, { "moj", "Monzombo" }, { "mok", "Morori" }, { "mom", "Mangue" }, { "mon", "Mongolian" }, { "moo", "Monom" }, { "mop", "Mopán Maya" }, { "moq", "Mor (Bomberai Peninsula)" }, { "mor", "Moro" }, { "mos", "Mossi" }, { "mot", "Barí" }, { "mou", "Mogum" }, { "mov", "Mohave" }, { "mow", "Moi (Congo)" }, { "mox", "Molima" }, { "moy", "Shekkacho" }, { "moz", "Mukulu" }, { "mpa", "Mpoto" }, { "mpb", "Mullukmulluk" }, { "mpc", "Mangarayi" }, { "mpd", "Machinere" }, { "mpe", "Majang" }, { "mpg", "Marba" }, { "mph", "Maung" }, { "mpi", "Mpade" }, { "mpj", "Martu Wangka" }, { "mpk", "Mbara (Chad)" }, { "mpl", "Middle Watut" }, { "mpm", "Yosondúa Mixtec" }, { "mpn", "Mindiri" }, { "mpo", "Miu" }, { "mpp", "Migabac" }, { "mpq", "Matís" }, { "mpr", "Vangunu" }, { "mps", "Dadibi" }, { "mpt", "Mian" }, { "mpu", "Makuráp" }, { "mpv", "Mungkip" }, { "mpw", "Mapidian" }, { "mpx", "Misima-Panaeati" }, { "mpy", "Mapia" }, { "mpz", "Mpi" }, { "mqa", "Maba (Indonesia)" }, { "mqb", "Mbuko" }, { "mqc", "Mangole" }, { "mqe", "Matepi" }, { "mqf", "Momuna" }, { "mqg", "Kota Bangun Kutai Malay" }, { "mqh", "Tlazoyaltepec Mixtec" }, { "mqi", "Mariri" }, { "mqj", "Mamasa" }, { "mqk", "Rajah Kabunsuwan Manobo" }, { "mql", "Mbelime" }, { "mqm", "South Marquesan" }, { "mqn", "Moronene" }, { "mqo", "Modole" }, { "mqp", "Manipa" }, { "mqq", "Minokok" }, { "mqr", "Mander" }, { "mqs", "West Makian" }, { "mqt", "Mok" }, { "mqu", "Mandari" }, { "mqv", "Mosimo" }, { "mqw", "Murupi" }, { "mqx", "Mamuju" }, { "mqy", "Manggarai" }, { "mqz", "Pano" }, { "mra", "Mlabri" }, { "mrb", "Marino" }, { "mrc", "Maricopa" }, { "mrd", "Western Magar" }, { "mre", "Martha's Vineyard Sign Language" }, { "mrf", "Elseng" }, { "mrg", "Mising" }, { "mrh", "Mara Chin" }, { "mri", "Maori" }, { "mrj", "Western Mari" }, { "mrk", "Hmwaveke" }, { "mrl", "Mortlockese" }, { "mrm", "Merlav" }, { "mrn", "Cheke Holo" }, { "mro", "Mru" }, { "mrp", "Morouas" }, { "mrq", "North Marquesan" }, { "mrr", "Maria (India)" }, { "mrs", "Maragus" }, { "mrt", "Marghi Central" }, { "mru", "Mono (Cameroon)" }, { "mrv", "Mangareva" }, { "mrw", "Maranao" }, { "mrx", "Maremgi" }, { "mry", "Mandaya" }, { "mrz", "Marind" }, { "msa", "Malay (macrolanguage)" }, { "msb", "Masbatenyo" }, { "msc", "Sankaran Maninka" }, { "msd", "Yucatec Maya Sign Language" }, { "mse", "Musey" }, { "msf", "Mekwei" }, { "msg", "Moraid" }, { "msh", "Masikoro Malagasy" }, { "msi", "Sabah Malay" }, { "msj", "Ma (Democratic Republic of Congo)" }, { "msk", "Mansaka" }, { "msl", "Molof" }, { "msm", "Agusan Manobo" }, { "msn", "Vurës" }, { "mso", "Mombum" }, { "msp", "Maritsauá" }, { "msq", "Caac" }, { "msr", "Mongolian Sign Language" }, { "mss", "West Masela" }, { "msu", "Musom" }, { "msv", "Maslam" }, { "msw", "Mansoanka" }, { "msx", "Moresada" }, { "msy", "Aruamu" }, { "msz", "Momare" }, { "mta", "Cotabato Manobo" }, { "mtb", "Anyin Morofo" }, { "mtc", "Munit" }, { "mtd", "Mualang" }, { "mte", "Mono (Solomon Islands)" }, { "mtf", "Murik (Papua New Guinea)" }, { "mtg", "Una" }, { "mth", "Munggui" }, { "mti", "Maiwa (Papua New Guinea)" }, { "mtj", "Moskona" }, { "mtk", "Mbe'" }, { "mtl", "Montol" }, { "mtm", "Mator" }, { "mtn", "Matagalpa" }, { "mto", "Totontepec Mixe" }, { "mtp", "Wichí Lhamtés Nocten" }, { "mtq", "Muong" }, { "mtr", "Mewari" }, { "mts", "Yora" }, { "mtt", "Mota" }, { "mtu", "Tututepec Mixtec" }, { "mtv", "Asaro'o" }, { "mtw", "Southern Binukidnon" }, { "mtx", "Tidaá Mixtec" }, { "mty", "Nabi" }, { "mua", "Mundang" }, { "mub", "Mubi" }, { "muc", "Ajumbu" }, { "mud", "Mednyj Aleut" }, { "mue", "Media Lengua" }, { "mug", "Musgu" }, { "muh", "Mündü" }, { "mui", "Musi" }, { "muj", "Mabire" }, { "muk", "Mugom" }, { "mul", "Multiple languages" }, { "mum", "Maiwala" }, { "muo", "Nyong" }, { "mup", "Malvi" }, { "muq", "Eastern Xiangxi Miao" }, { "mur", "Murle" }, { "mus", "Creek" }, { "mut", "Western Muria" }, { "muu", "Yaaku" }, { "muv", "Muthuvan" }, { "mux", "Bo-Ung" }, { "muy", "Muyang" }, { "muz", "Mursi" }, { "mva", "Manam" }, { "mvb", "Mattole" }, { "mvd", "Mamboru" }, { "mve", "Marwari (Pakistan)" }, { "mvf", "Peripheral Mongolian" }, { "mvg", "Yucuañe Mixtec" }, { "mvh", "Mulgi" }, { "mvi", "Miyako" }, { "mvk", "Mekmek" }, { "mvl", "Mbara (Australia)" }, { "mvm", "Muya" }, { "mvn", "Minaveha" }, { "mvo", "Marovo" }, { "mvp", "Duri" }, { "mvq", "Moere" }, { "mvr", "Marau" }, { "mvs", "Massep" }, { "mvt", "Mpotovoro" }, { "mvu", "Marfa" }, { "mvv", "Tagal Murut" }, { "mvw", "Machinga" }, { "mvx", "Meoswar" }, { "mvy", "Indus Kohistani" }, { "mvz", "Mesqan" }, { "mwa", "Mwatebu" }, { "mwb", "Juwal" }, { "mwc", "Are" }, { "mwe", "Mwera (Chimwera)" }, { "mwf", "Murrinh-Patha" }, { "mwg", "Aiklep" }, { "mwh", "Mouk-Aria" }, { "mwi", "Labo" }, { "mwj", "Maligo" }, { "mwk", "Kita Maninkakan" }, { "mwl", "Mirandese" }, { "mwm", "Sar" }, { "mwn", "Nyamwanga" }, { "mwo", "Central Maewo" }, { "mwp", "Kala Lagaw Ya" }, { "mwq", "Mün Chin" }, { "mwr", "Marwari" }, { "mws", "Mwimbi-Muthambi" }, { "mwt", "Moken" }, { "mwu", "Mittu" }, { "mwv", "Mentawai" }, { "mww", "Hmong Daw" }, { "mwx", "Mediak" }, { "mwy", "Mosiro" }, { "mwz", "Moingi" }, { "mxa", "Northwest Oaxaca Mixtec" }, { "mxb", "Tezoatlán Mixtec" }, { "mxc", "Manyika" }, { "mxd", "Modang" }, { "mxe", "Mele-Fila" }, { "mxf", "Malgbe" }, { "mxg", "Mbangala" }, { "mxh", "Mvuba" }, { "mxi", "Mozarabic" }, { "mxj", "Miju-Mishmi" }, { "mxk", "Monumbo" }, { "mxl", "Maxi Gbe" }, { "mxm", "Meramera" }, { "mxn", "Moi (Indonesia)" }, { "mxo", "Mbowe" }, { "mxp", "Tlahuitoltepec Mixe" }, { "mxq", "Juquila Mixe" }, { "mxr", "Murik (Malaysia)" }, { "mxs", "Huitepec Mixtec" }, { "mxt", "Jamiltepec Mixtec" }, { "mxu", "Mada (Cameroon)" }, { "mxv", "Metlatónoc Mixtec" }, { "mxw", "Namo" }, { "mxx", "Mahou" }, { "mxy", "Southeastern Nochixtlán Mixtec" }, { "mxz", "Central Masela" }, { "mya", "Burmese" }, { "myb", "Mbay" }, { "myc", "Mayeka" }, { "myd", "Maramba" }, { "mye", "Myene" }, { "myf", "Bambassi" }, { "myg", "Manta" }, { "myh", "Makah" }, { "myi", "Mina (India)" }, { "myj", "Mangayat" }, { "myk", "Mamara Senoufo" }, { "myl", "Moma" }, { "mym", "Me'en" }, { "myo", "Anfillo" }, { "myp", "Pirahã" }, { "myr", "Muniche" }, { "mys", "Mesmes" }, { "myu", "Mundurukú" }, { "myv", "Erzya" }, { "myw", "Muyuw" }, { "myx", "Masaaba" }, { "myy", "Macuna" }, { "myz", "Classical Mandaic" }, { "mza", "Santa María Zacatepec Mixtec" }, { "mzb", "Tumzabt" }, { "mzc", "Madagascar Sign Language" }, { "mzd", "Malimba" }, { "mze", "Morawa" }, { "mzg", "Monastic Sign Language" }, { "mzh", "Wichí Lhamtés Güisnay" }, { "mzi", "Ixcatlán Mazatec" }, { "mzj", "Manya" }, { "mzk", "Nigeria Mambila" }, { "mzl", "Mazatlán Mixe" }, { "mzm", "Mumuye" }, { "mzn", "Mazanderani" }, { "mzo", "Matipuhy" }, { "mzp", "Movima" }, { "mzq", "Mori Atas" }, { "mzr", "Marúbo" }, { "mzs", "Macanese" }, { "mzt", "Mintil" }, { "mzu", "Inapang" }, { "mzv", "Manza" }, { "mzw", "Deg" }, { "mzx", "Mawayana" }, { "mzy", "Mozambican Sign Language" }, { "mzz", "Maiadomu" }, { "naa", "Namla" }, { "nab", "Southern Nambikuára" }, { "nac", "Narak" }, { "nad", "Nijadali" }, { "nae", "Naka'ela" }, { "naf", "Nabak" }, { "nag", "Naga Pidgin" }, { "naj", "Nalu" }, { "nak", "Nakanai" }, { "nal", "Nalik" }, { "nam", "Ngan'gityemerri" }, { "nan", "Min Nan Chinese" }, { "nao", "Naaba" }, { "nap", "Neapolitan" }, { "naq", "Nama (Namibia)" }, { "nar", "Iguta" }, { "nas", "Naasioi" }, { "nat", "Hungworo" }, { "nau", "Nauru" }, { "nav", "Navajo" }, { "naw", "Nawuri" }, { "nax", "Nakwi" }, { "nay", "Narrinyeri" }, { "naz", "Coatepec Nahuatl" }, { "nba", "Nyemba" }, { "nbb", "Ndoe" }, { "nbc", "Chang Naga" }, { "nbd", "Ngbinda" }, { "nbe", "Konyak Naga" }, { "nbg", "Nagarchal" }, { "nbh", "Ngamo" }, { "nbi", "Mao Naga" }, { "nbj", "Ngarinman" }, { "nbk", "Nake" }, { "nbl", "South Ndebele" }, { "nbm", "Ngbaka Ma'bo" }, { "nbn", "Kuri" }, { "nbo", "Nkukoli" }, { "nbp", "Nnam" }, { "nbq", "Nggem" }, { "nbr", "Numana-Nunku-Gbantu-Numbu" }, { "nbs", "Namibian Sign Language" }, { "nbt", "Na" }, { "nbu", "Rongmei Naga" }, { "nbv", "Ngamambo" }, { "nbw", "Southern Ngbandi" }, { "nby", "Ningera" }, { "nca", "Iyo" }, { "ncb", "Central Nicobarese" }, { "ncc", "Ponam" }, { "ncd", "Nachering" }, { "nce", "Yale" }, { "ncf", "Notsi" }, { "ncg", "Nisga'a" }, { "nch", "Central Huasteca Nahuatl" }, { "nci", "Classical Nahuatl" }, { "ncj", "Northern Puebla Nahuatl" }, { "nck", "Nakara" }, { "ncl", "Michoacán Nahuatl" }, { "ncm", "Nambo" }, { "ncn", "Nauna" }, { "nco", "Sibe" }, { "ncp", "Ndaktup" }, { "ncr", "Ncane" }, { "ncs", "Nicaraguan Sign Language" }, { "nct", "Chothe Naga" }, { "ncu", "Chumburung" }, { "ncx", "Central Puebla Nahuatl" }, { "ncz", "Natchez" }, { "nda", "Ndasa" }, { "ndb", "Kenswei Nsei" }, { "ndc", "Ndau" }, { "ndd", "Nde-Nsele-Nta" }, { "nde", "North Ndebele" }, { "ndf", "Nadruvian" }, { "ndg", "Ndengereko" }, { "ndh", "Ndali" }, { "ndi", "Samba Leko" }, { "ndj", "Ndamba" }, { "ndk", "Ndaka" }, { "ndl", "Ndolo" }, { "ndm", "Ndam" }, { "ndn", "Ngundi" }, { "ndo", "Ndonga" }, { "ndp", "Ndo" }, { "ndq", "Ndombe" }, { "ndr", "Ndoola" }, { "nds", "Low German" }, { "ndt", "Ndunga" }, { "ndu", "Dugun" }, { "ndv", "Ndut" }, { "ndw", "Ndobo" }, { "ndx", "Nduga" }, { "ndy", "Lutos" }, { "ndz", "Ndogo" }, { "nea", "Eastern Ngad'a" }, { "neb", "Toura (Côte d'Ivoire)" }, { "nec", "Nedebang" }, { "ned", "Nde-Gbite" }, { "nee", "Nêlêmwa-Nixumwak" }, { "nef", "Nefamese" }, { "neg", "Negidal" }, { "neh", "Nyenkha" }, { "nei", "Neo-Hittite" }, { "nej", "Neko" }, { "nek", "Neku" }, { "nem", "Nemi" }, { "nen", "Nengone" }, { "neo", "Ná-Meo" }, { "nep", "Nepali (macrolanguage)" }, { "neq", "North Central Mixe" }, { "ner", "Yahadian" }, { "nes", "Bhoti Kinnauri" }, { "net", "Nete" }, { "neu", "Neo" }, { "nev", "Nyaheun" }, { "new", "Newari" }, { "nex", "Neme" }, { "ney", "Neyo" }, { "nez", "Nez Perce" }, { "nfa", "Dhao" }, { "nfd", "Ahwai" }, { "nfl", "Ayiwo" }, { "nfr", "Nafaanra" }, { "nfu", "Mfumte" }, { "nga", "Ngbaka" }, { "ngb", "Northern Ngbandi" }, { "ngc", "Ngombe (Democratic Republic of Congo)" }, { "ngd", "Ngando (Central African Republic)" }, { "nge", "Ngemba" }, { "ngg", "Ngbaka Manza" }, { "ngh", "Nu" }, { "ngi", "Ngizim" }, { "ngj", "Ngie" }, { "ngk", "Dalabon" }, { "ngl", "Lomwe" }, { "ngm", "Ngatik Men's Creole" }, { "ngn", "Ngwo" }, { "ngo", "Ngoni" }, { "ngp", "Ngulu" }, { "ngq", "Ngurimi" }, { "ngr", "Engdewu" }, { "ngs", "Gvoko" }, { "ngt", "Ngeq" }, { "ngu", "Guerrero Nahuatl" }, { "ngv", "Nagumi" }, { "ngw", "Ngwaba" }, { "ngx", "Nggwahyi" }, { "ngy", "Tibea" }, { "ngz", "Ngungwel" }, { "nha", "Nhanda" }, { "nhb", "Beng" }, { "nhc", "Tabasco Nahuatl" }, { "nhd", "Chiripá" }, { "nhe", "Eastern Huasteca Nahuatl" }, { "nhf", "Nhuwala" }, { "nhg", "Tetelcingo Nahuatl" }, { "nhh", "Nahari" }, { "nhi", "Zacatlán-Ahuacatlán-Tepetzintla Nahuatl" }, { "nhk", "Isthmus-Cosoleacaque Nahuatl" }, { "nhm", "Morelos Nahuatl" }, { "nhn", "Central Nahuatl" }, { "nho", "Takuu" }, { "nhp", "Isthmus-Pajapan Nahuatl" }, { "nhq", "Huaxcaleca Nahuatl" }, { "nhr", "Naro" }, { "nht", "Ometepec Nahuatl" }, { "nhu", "Noone" }, { "nhv", "Temascaltepec Nahuatl" }, { "nhw", "Western Huasteca Nahuatl" }, { "nhx", "Isthmus-Mecayapan Nahuatl" }, { "nhy", "Northern Oaxaca Nahuatl" }, { "nhz", "Santa María La Alta Nahuatl" }, { "nia", "Nias" }, { "nib", "Nakame" }, { "nid", "Ngandi" }, { "nie", "Niellim" }, { "nif", "Nek" }, { "nig", "Ngalakan" }, { "nih", "Nyiha (Tanzania)" }, { "nii", "Nii" }, { "nij", "Ngaju" }, { "nik", "Southern Nicobarese" }, { "nil", "Nila" }, { "nim", "Nilamba" }, { "nin", "Ninzo" }, { "nio", "Nganasan" }, { "niq", "Nandi" }, { "nir", "Nimboran" }, { "nis", "Nimi" }, { "nit", "Southeastern Kolami" }, { "niu", "Niuean" }, { "niv", "Gilyak" }, { "niw", "Nimo" }, { "nix", "Hema" }, { "niy", "Ngiti" }, { "niz", "Ningil" }, { "nja", "Nzanyi" }, { "njb", "Nocte Naga" }, { "njd", "Ndonde Hamba" }, { "njh", "Lotha Naga" }, { "nji", "Gudanji" }, { "njj", "Njen" }, { "njl", "Njalgulgule" }, { "njm", "Angami Naga" }, { "njn", "Liangmai Naga" }, { "njo", "Ao Naga" }, { "njr", "Njerep" }, { "njs", "Nisa" }, { "njt", "Ndyuka-Trio Pidgin" }, { "nju", "Ngadjunmaya" }, { "njx", "Kunyi" }, { "njy", "Njyem" }, { "njz", "Nyishi" }, { "nka", "Nkoya" }, { "nkb", "Khoibu Naga" }, { "nkc", "Nkongho" }, { "nkd", "Koireng" }, { "nke", "Duke" }, { "nkf", "Inpui Naga" }, { "nkg", "Nekgini" }, { "nkh", "Khezha Naga" }, { "nki", "Thangal Naga" }, { "nkj", "Nakai" }, { "nkk", "Nokuku" }, { "nkm", "Namat" }, { "nkn", "Nkangala" }, { "nko", "Nkonya" }, { "nkp", "Niuatoputapu" }, { "nkq", "Nkami" }, { "nkr", "Nukuoro" }, { "nks", "North Asmat" }, { "nkt", "Nyika (Tanzania)" }, { "nku", "Bouna Kulango" }, { "nkv", "Nyika (Malawi and Zambia)" }, { "nkw", "Nkutu" }, { "nkx", "Nkoroo" }, { "nkz", "Nkari" }, { "nla", "Ngombale" }, { "nlc", "Nalca" }, { "nld", "Dutch" }, { "nle", "East Nyala" }, { "nlg", "Gela" }, { "nli", "Grangali" }, { "nlj", "Nyali" }, { "nlk", "Ninia Yali" }, { "nll", "Nihali" }, { "nlo", "Ngul" }, { "nlq", "Lao Naga" }, { "nlu", "Nchumbulu" }, { "nlv", "Orizaba Nahuatl" }, { "nlw", "Walangama" }, { "nlx", "Nahali" }, { "nly", "Nyamal" }, { "nlz", "Nalögo" }, { "nma", "Maram Naga" }, { "nmb", "Big Nambas" }, { "nmc", "Ngam" }, { "nmd", "Ndumu" }, { "nme", "Mzieme Naga" }, { "nmf", "Tangkhul Naga (India)" }, { "nmg", "Kwasio" }, { "nmh", "Monsang Naga" }, { "nmi", "Nyam" }, { "nmj", "Ngombe (Central African Republic)" }, { "nmk", "Namakura" }, { "nml", "Ndemli" }, { "nmm", "Manangba" }, { "nmn", "!Xóõ" }, { "nmo", "Moyon Naga" }, { "nmp", "Nimanbur" }, { "nmq", "Nambya" }, { "nmr", "Nimbari" }, { "nms", "Letemboi" }, { "nmt", "Namonuito" }, { "nmu", "Northeast Maidu" }, { "nmv", "Ngamini" }, { "nmw", "Nimoa" }, { "nmx", "Nama (Papua New Guinea)" }, { "nmy", "Namuyi" }, { "nmz", "Nawdm" }, { "nna", "Nyangumarta" }, { "nnb", "Nande" }, { "nnc", "Nancere" }, { "nnd", "West Ambae" }, { "nne", "Ngandyera" }, { "nnf", "Ngaing" }, { "nng", "Maring Naga" }, { "nnh", "Ngiemboon" }, { "nni", "North Nuaulu" }, { "nnj", "Nyangatom" }, { "nnk", "Nankina" }, { "nnl", "Northern Rengma Naga" }, { "nnm", "Namia" }, { "nnn", "Ngete" }, { "nno", "Norwegian Nynorsk" }, { "nnp", "Wancho Naga" }, { "nnq", "Ngindo" }, { "nnr", "Narungga" }, { "nns", "Ningye" }, { "nnt", "Nanticoke" }, { "nnu", "Dwang" }, { "nnv", "Nugunu (Australia)" }, { "nnw", "Southern Nuni" }, { "nnx", "Ngong" }, { "nny", "Nyangga" }, { "nnz", "Nda'nda'" }, { "noa", "Woun Meu" }, { "nob", "Norwegian Bokmål" }, { "noc", "Nuk" }, { "nod", "Northern Thai" }, { "noe", "Nimadi" }, { "nof", "Nomane" }, { "nog", "Nogai" }, { "noh", "Nomu" }, { "noi", "Noiri" }, { "noj", "Nonuya" }, { "nok", "Nooksack" }, { "nol", "Nomlaki" }, { "nom", "Nocamán" }, { "non", "Old Norse" }, { "nop", "Numanggang" }, { "noq", "Ngongo" }, { "nor", "Norwegian" }, { "nos", "Eastern Nisu" }, { "not", "Nomatsiguenga" }, { "nou", "Ewage-Notu" }, { "nov", "Novial" }, { "now", "Nyambo" }, { "noy", "Noy" }, { "noz", "Nayi" }, { "npa", "Nar Phu" }, { "npb", "Nupbikha" }, { "npg", "Ponyo-Gongwang Naga" }, { "nph", "Phom Naga" }, { "npi", "Nepali (individual language)" }, { "npl", "Southeastern Puebla Nahuatl" }, { "npn", "Mondropolon" }, { "npo", "Pochuri Naga" }, { "nps", "Nipsan" }, { "npu", "Puimei Naga" }, { "npy", "Napu" }, { "nqg", "Southern Nago" }, { "nqk", "Kura Ede Nago" }, { "nqm", "Ndom" }, { "nqn", "Nen" }, { "nqo", "N'Ko" }, { "nqq", "Kyan-Karyaw Naga" }, { "nqy", "Akyaung Ari Naga" }, { "nra", "Ngom" }, { "nrb", "Nara" }, { "nrc", "Noric" }, { "nre", "Southern Rengma Naga" }, { "nrg", "Narango" }, { "nri", "Chokri Naga" }, { "nrk", "Ngarla" }, { "nrl", "Ngarluma" }, { "nrm", "Narom" }, { "nrn", "Norn" }, { "nrp", "North Picene" }, { "nrr", "Norra" }, { "nrt", "Northern Kalapuya" }, { "nru", "Narua" }, { "nrx", "Ngurmbur" }, { "nrz", "Lala" }, { "nsa", "Sangtam Naga" }, { "nsc", "Nshi" }, { "nsd", "Southern Nisu" }, { "nse", "Nsenga" }, { "nsf", "Northwestern Nisu" }, { "nsg", "Ngasa" }, { "nsh", "Ngoshie" }, { "nsi", "Nigerian Sign Language" }, { "nsk", "Naskapi" }, { "nsl", "Norwegian Sign Language" }, { "nsm", "Sumi Naga" }, { "nsn", "Nehan" }, { "nso", "Pedi" }, { "nsp", "Nepalese Sign Language" }, { "nsq", "Northern Sierra Miwok" }, { "nsr", "Maritime Sign Language" }, { "nss", "Nali" }, { "nst", "Tase Naga" }, { "nsu", "Sierra Negra Nahuatl" }, { "nsv", "Southwestern Nisu" }, { "nsw", "Navut" }, { "nsx", "Nsongo" }, { "nsy", "Nasal" }, { "nsz", "Nisenan" }, { "nte", "Nathembo" }, { "ntg", "Ngantangarra" }, { "nti", "Natioro" }, { "ntj", "Ngaanyatjarra" }, { "ntk", "Ikoma-Nata-Isenye" }, { "ntm", "Nateni" }, { "nto", "Ntomba" }, { "ntp", "Northern Tepehuan" }, { "ntr", "Delo" }, { "nts", "Natagaimas" }, { "ntu", "Natügu" }, { "ntw", "Nottoway" }, { "ntx", "Tangkhul Naga (Myanmar)" }, { "nty", "Mantsi" }, { "ntz", "Natanzi" }, { "nua", "Yuanga" }, { "nuc", "Nukuini" }, { "nud", "Ngala" }, { "nue", "Ngundu" }, { "nuf", "Nusu" }, { "nug", "Nungali" }, { "nuh", "Ndunda" }, { "nui", "Ngumbi" }, { "nuj", "Nyole" }, { "nuk", "Nuu-chah-nulth" }, { "nul", "Nusa Laut" }, { "num", "Niuafo'ou" }, { "nun", "Anong" }, { "nuo", "Nguôn" }, { "nup", "Nupe-Nupe-Tako" }, { "nuq", "Nukumanu" }, { "nur", "Nukuria" }, { "nus", "Nuer" }, { "nut", "Nung (Viet Nam)" }, { "nuu", "Ngbundu" }, { "nuv", "Northern Nuni" }, { "nuw", "Nguluwan" }, { "nux", "Mehek" }, { "nuy", "Nunggubuyu" }, { "nuz", "Tlamacazapa Nahuatl" }, { "nvh", "Nasarian" }, { "nvm", "Namiae" }, { "nvo", "Nyokon" }, { "nwa", "Nawathinehena" }, { "nwb", "Nyabwa" }, { "nwc", "Classical Newari" }, { "nwe", "Ngwe" }, { "nwg", "Ngayawung" }, { "nwi", "Southwest Tanna" }, { "nwm", "Nyamusa-Molo" }, { "nwo", "Nauo" }, { "nwr", "Nawaru" }, { "nwx", "Middle Newar" }, { "nwy", "Nottoway-Meherrin" }, { "nxa", "Nauete" }, { "nxd", "Ngando (Democratic Republic of Congo)" }, { "nxe", "Nage" }, { "nxg", "Ngad'a" }, { "nxi", "Nindi" }, { "nxk", "Koki Naga" }, { "nxl", "South Nuaulu" }, { "nxm", "Numidian" }, { "nxn", "Ngawun" }, { "nxq", "Naxi" }, { "nxr", "Ninggerum" }, { "nxu", "Narau" }, { "nxx", "Nafri" }, { "nya", "Nyanja" }, { "nyb", "Nyangbo" }, { "nyc", "Nyanga-li" }, { "nyd", "Nyore" }, { "nye", "Nyengo" }, { "nyf", "Giryama" }, { "nyg", "Nyindu" }, { "nyh", "Nyigina" }, { "nyi", "Ama (Sudan)" }, { "nyj", "Nyanga" }, { "nyk", "Nyaneka" }, { "nyl", "Nyeu" }, { "nym", "Nyamwezi" }, { "nyn", "Nyankole" }, { "nyo", "Nyoro" }, { "nyp", "Nyang'i" }, { "nyq", "Nayini" }, { "nyr", "Nyiha (Malawi)" }, { "nys", "Nyunga" }, { "nyt", "Nyawaygi" }, { "nyu", "Nyungwe" }, { "nyv", "Nyulnyul" }, { "nyw", "Nyaw" }, { "nyx", "Nganyaywana" }, { "nyy", "Nyakyusa-Ngonde" }, { "nza", "Tigon Mbembe" }, { "nzb", "Njebi" }, { "nzi", "Nzima" }, { "nzk", "Nzakara" }, { "nzm", "Zeme Naga" }, { "nzs", "New Zealand Sign Language" }, { "nzu", "Teke-Nzikou" }, { "nzy", "Nzakambay" }, { "nzz", "Nanga Dama Dogon" }, { "oaa", "Orok" }, { "oac", "Oroch" }, { "oar", "Old Aramaic (up to 700 BCE)" }, { "oav", "Old Avar" }, { "obi", "Obispeño" }, { "obk", "Southern Bontok" }, { "obl", "Oblo" }, { "obm", "Moabite" }, { "obo", "Obo Manobo" }, { "obr", "Old Burmese" }, { "obt", "Old Breton" }, { "obu", "Obulom" }, { "oca", "Ocaina" }, { "och", "Old Chinese" }, { "oci", "Occitan (post 1500)" }, { "oco", "Old Cornish" }, { "ocu", "Atzingo Matlatzinca" }, { "oda", "Odut" }, { "odk", "Od" }, { "odt", "Old Dutch" }, { "odu", "Odual" }, { "ofo", "Ofo" }, { "ofs", "Old Frisian" }, { "ofu", "Efutop" }, { "ogb", "Ogbia" }, { "ogc", "Ogbah" }, { "oge", "Old Georgian" }, { "ogg", "Ogbogolo" }, { "ogo", "Khana" }, { "ogu", "Ogbronuagum" }, { "oht", "Old Hittite" }, { "ohu", "Old Hungarian" }, { "oia", "Oirata" }, { "oin", "Inebu One" }, { "ojb", "Northwestern Ojibwa" }, { "ojc", "Central Ojibwa" }, { "ojg", "Eastern Ojibwa" }, { "oji", "Ojibwa" }, { "ojp", "Old Japanese" }, { "ojs", "Severn Ojibwa" }, { "ojv", "Ontong Java" }, { "ojw", "Western Ojibwa" }, { "oka", "Okanagan" }, { "okb", "Okobo" }, { "okd", "Okodia" }, { "oke", "Okpe (Southwestern Edo)" }, { "okg", "Koko Babangk" }, { "okh", "Koresh-e Rostam" }, { "oki", "Okiek" }, { "okj", "Oko-Juwoi" }, { "okk", "Kwamtim One" }, { "okl", "Old Kentish Sign Language" }, { "okm", "Middle Korean (10th-16th cent.)" }, { "okn", "Oki-No-Erabu" }, { "oko", "Old Korean (3rd-9th cent.)" }, { "okr", "Kirike" }, { "oks", "Oko-Eni-Osayen" }, { "oku", "Oku" }, { "okv", "Orokaiva" }, { "okx", "Okpe (Northwestern Edo)" }, { "ola", "Walungge" }, { "old", "Mochi" }, { "ole", "Olekha" }, { "olk", "Olkol" }, { "olm", "Oloma" }, { "olo", "Livvi" }, { "olr", "Olrat" }, { "oma", "Omaha-Ponca" }, { "omb", "East Ambae" }, { "omc", "Mochica" }, { "ome", "Omejes" }, { "omg", "Omagua" }, { "omi", "Omi" }, { "omk", "Omok" }, { "oml", "Ombo" }, { "omn", "Minoan" }, { "omo", "Utarmbung" }, { "omp", "Old Manipuri" }, { "omr", "Old Marathi" }, { "omt", "Omotik" }, { "omu", "Omurano" }, { "omw", "South Tairora" }, { "omx", "Old Mon" }, { "ona", "Ona" }, { "onb", "Lingao" }, { "one", "Oneida" }, { "ong", "Olo" }, { "oni", "Onin" }, { "onj", "Onjob" }, { "onk", "Kabore One" }, { "onn", "Onobasulu" }, { "ono", "Onondaga" }, { "onp", "Sartang" }, { "onr", "Northern One" }, { "ons", "Ono" }, { "ont", "Ontenu" }, { "onu", "Unua" }, { "onw", "Old Nubian" }, { "onx", "Onin Based Pidgin" }, { "ood", "Tohono O'odham" }, { "oog", "Ong" }, { "oon", "Önge" }, { "oor", "Oorlams" }, { "oos", "Old Ossetic" }, { "opa", "Okpamheri" }, { "opk", "Kopkaka" }, { "opm", "Oksapmin" }, { "opo", "Opao" }, { "opt", "Opata" }, { "opy", "Ofayé" }, { "ora", "Oroha" }, { "orc", "Orma" }, { "ore", "Orejón" }, { "org", "Oring" }, { "orh", "Oroqen" }, { "ori", "Oriya (macrolanguage)" }, { "orm", "Oromo" }, { "orn", "Orang Kanaq" }, { "oro", "Orokolo" }, { "orr", "Oruma" }, { "ors", "Orang Seletar" }, { "ort", "Adivasi Oriya" }, { "oru", "Ormuri" }, { "orv", "Old Russian" }, { "orw", "Oro Win" }, { "orx", "Oro" }, { "ory", "Oriya (individual language)" }, { "orz", "Ormu" }, { "osa", "Osage" }, { "osc", "Oscan" }, { "osi", "Osing" }, { "oso", "Ososo" }, { "osp", "Old Spanish" }, { "oss", "Ossetian" }, { "ost", "Osatu" }, { "osu", "Southern One" }, { "osx", "Old Saxon" }, { "ota", "Ottoman Turkish (1500-1928)" }, { "otb", "Old Tibetan" }, { "otd", "Ot Danum" }, { "ote", "Mezquital Otomi" }, { "oti", "Oti" }, { "otk", "Old Turkish" }, { "otl", "Tilapa Otomi" }, { "otm", "Eastern Highland Otomi" }, { "otn", "Tenango Otomi" }, { "otq", "Querétaro Otomi" }, { "otr", "Otoro" }, { "ots", "Estado de México Otomi" }, { "ott", "Temoaya Otomi" }, { "otu", "Otuke" }, { "otw", "Ottawa" }, { "otx", "Texcatepec Otomi" }, { "oty", "Old Tamil" }, { "otz", "Ixtenco Otomi" }, { "oua", "Tagargrent" }, { "oub", "Glio-Oubi" }, { "oue", "Oune" }, { "oui", "Old Uighur" }, { "oum", "Ouma" }, { "oun", "!O!ung" }, { "owi", "Owiniga" }, { "owl", "Old Welsh" }, { "oyb", "Oy" }, { "oyd", "Oyda" }, { "oym", "Wayampi" }, { "oyy", "Oya'oya" }, { "ozm", "Koonzime" }, { "pab", "Parecís" }, { "pac", "Pacoh" }, { "pad", "Paumarí" }, { "pae", "Pagibete" }, { "paf", "Paranawát" }, { "pag", "Pangasinan" }, { "pah", "Tenharim" }, { "pai", "Pe" }, { "pak", "Parakanã" }, { "pal", "Pahlavi" }, { "pam", "Pampanga" }, { "pan", "Panjabi" }, { "pao", "Northern Paiute" }, { "pap", "Papiamento" }, { "paq", "Parya" }, { "par", "Panamint" }, { "pas", "Papasena" }, { "pat", "Papitalai" }, { "pau", "Palauan" }, { "pav", "Pakaásnovos" }, { "paw", "Pawnee" }, { "pax", "Pankararé" }, { "pay", "Pech" }, { "paz", "Pankararú" }, { "pbb", "Páez" }, { "pbc", "Patamona" }, { "pbe", "Mezontla Popoloca" }, { "pbf", "Coyotepec Popoloca" }, { "pbg", "Paraujano" }, { "pbh", "E'ñapa Woromaipu" }, { "pbi", "Parkwa" }, { "pbl", "Mak (Nigeria)" }, { "pbn", "Kpasam" }, { "pbo", "Papel" }, { "pbp", "Badyara" }, { "pbr", "Pangwa" }, { "pbs", "Central Pame" }, { "pbt", "Southern Pashto" }, { "pbu", "Northern Pashto" }, { "pbv", "Pnar" }, { "pby", "Pyu" }, { "pca", "Santa Inés Ahuatempan Popoloca" }, { "pcb", "Pear" }, { "pcc", "Bouyei" }, { "pcd", "Picard" }, { "pce", "Ruching Palaung" }, { "pcf", "Paliyan" }, { "pcg", "Paniya" }, { "pch", "Pardhan" }, { "pci", "Duruwa" }, { "pcj", "Parenga" }, { "pck", "Paite Chin" }, { "pcl", "Pardhi" }, { "pcm", "Nigerian Pidgin" }, { "pcn", "Piti" }, { "pcp", "Pacahuara" }, { "pcw", "Pyapun" }, { "pda", "Anam" }, { "pdc", "Pennsylvania German" }, { "pdi", "Pa Di" }, { "pdn", "Podena" }, { "pdo", "Padoe" }, { "pdt", "Plautdietsch" }, { "pdu", "Kayan" }, { "pea", "Peranakan Indonesian" }, { "peb", "Eastern Pomo" }, { "ped", "Mala (Papua New Guinea)" }, { "pee", "Taje" }, { "pef", "Northeastern Pomo" }, { "peg", "Pengo" }, { "peh", "Bonan" }, { "pei", "Chichimeca-Jonaz" }, { "pej", "Northern Pomo" }, { "pek", "Penchal" }, { "pel", "Pekal" }, { "pem", "Phende" }, { "peo", "Old Persian (ca. 600-400 B.C.)" }, { "pep", "Kunja" }, { "peq", "Southern Pomo" }, { "pes", "Iranian Persian" }, { "pev", "Pémono" }, { "pex", "Petats" }, { "pey", "Petjo" }, { "pez", "Eastern Penan" }, { "pfa", "Pááfang" }, { "pfe", "Peere" }, { "pfl", "Pfaelzisch" }, { "pga", "Sudanese Creole Arabic" }, { "pgg", "Pangwali" }, { "pgi", "Pagi" }, { "pgk", "Rerep" }, { "pgl", "Primitive Irish" }, { "pgn", "Paelignian" }, { "pgs", "Pangseng" }, { "pgu", "Pagu" }, { "pha", "Pa-Hng" }, { "phd", "Phudagi" }, { "phg", "Phuong" }, { "phh", "Phukha" }, { "phk", "Phake" }, { "phl", "Phalura" }, { "phm", "Phimbi" }, { "phn", "Phoenician" }, { "pho", "Phunoi" }, { "phq", "Phana'" }, { "phr", "Pahari-Potwari" }, { "pht", "Phu Thai" }, { "phu", "Phuan" }, { "phv", "Pahlavani" }, { "phw", "Phangduwali" }, { "pia", "Pima Bajo" }, { "pib", "Yine" }, { "pic", "Pinji" }, { "pid", "Piaroa" }, { "pie", "Piro" }, { "pif", "Pingelapese" }, { "pig", "Pisabo" }, { "pih", "Pitcairn-Norfolk" }, { "pii", "Pini" }, { "pij", "Pijao" }, { "pil", "Yom" }, { "pim", "Powhatan" }, { "pin", "Piame" }, { "pio", "Piapoco" }, { "pip", "Pero" }, { "pir", "Piratapuyo" }, { "pis", "Pijin" }, { "pit", "Pitta Pitta" }, { "piu", "Pintupi-Luritja" }, { "piv", "Pileni" }, { "piw", "Pimbwe" }, { "pix", "Piu" }, { "piy", "Piya-Kwonci" }, { "piz", "Pije" }, { "pjt", "Pitjantjatjara" }, { "pka", "Ardhamāgadhī Prākrit" }, { "pkb", "Pokomo" }, { "pkc", "Paekche" }, { "pkg", "Pak-Tong" }, { "pkh", "Pankhu" }, { "pkn", "Pakanha" }, { "pko", "Pökoot" }, { "pkp", "Pukapuka" }, { "pkr", "Attapady Kurumba" }, { "pks", "Pakistan Sign Language" }, { "pkt", "Maleng" }, { "pku", "Paku" }, { "pla", "Miani" }, { "plb", "Polonombauk" }, { "plc", "Central Palawano" }, { "pld", "Polari" }, { "ple", "Palu'e" }, { "plg", "Pilagá" }, { "plh", "Paulohi" }, { "pli", "Pali" }, { "plj", "Polci" }, { "plk", "Kohistani Shina" }, { "pll", "Shwe Palaung" }, { "pln", "Palenquero" }, { "plo", "Oluta Popoluca" }, { "plp", "Palpa" }, { "plq", "Palaic" }, { "plr", "Palaka Senoufo" }, { "pls", "San Marcos Tlalcoyalco Popoloca" }, { "plt", "Plateau Malagasy" }, { "plu", "Palikúr" }, { "plv", "Southwest Palawano" }, { "plw", "Brooke's Point Palawano" }, { "ply", "Bolyu" }, { "plz", "Paluan" }, { "pma", "Paama" }, { "pmb", "Pambia" }, { "pmc", "Palumata" }, { "pmd", "Pallanganmiddang" }, { "pme", "Pwaamei" }, { "pmf", "Pamona" }, { "pmh", "Māhārāṣṭri Prākrit" }, { "pmi", "Northern Pumi" }, { "pmj", "Southern Pumi" }, { "pmk", "Pamlico" }, { "pml", "Lingua Franca" }, { "pmm", "Pomo" }, { "pmn", "Pam" }, { "pmo", "Pom" }, { "pmq", "Northern Pame" }, { "pmr", "Paynamar" }, { "pms", "Piemontese" }, { "pmt", "Tuamotuan" }, { "pmu", "Mirpur Panjabi" }, { "pmw", "Plains Miwok" }, { "pmx", "Poumei Naga" }, { "pmy", "Papuan Malay" }, { "pmz", "Southern Pame" }, { "pna", "Punan Bah-Biau" }, { "pnb", "Western Panjabi" }, { "pnc", "Pannei" }, { "pne", "Western Penan" }, { "png", "Pongu" }, { "pnh", "Penrhyn" }, { "pni", "Aoheng" }, { "pnj", "Pinjarup" }, { "pnk", "Paunaka" }, { "pnl", "Paleni" }, { "pnm", "Punan Batu 1" }, { "pnn", "Pinai-Hagahai" }, { "pno", "Panobo" }, { "pnp", "Pancana" }, { "pnq", "Pana (Burkina Faso)" }, { "pnr", "Panim" }, { "pns", "Ponosakan" }, { "pnt", "Pontic" }, { "pnu", "Jiongnai Bunu" }, { "pnv", "Pinigura" }, { "pnw", "Panytyima" }, { "pnx", "Phong-Kniang" }, { "pny", "Pinyin" }, { "pnz", "Pana (Central African Republic)" }, { "poc", "Poqomam" }, { "pod", "Ponares" }, { "poe", "San Juan Atzingo Popoloca" }, { "pof", "Poke" }, { "pog", "Potiguára" }, { "poh", "Poqomchi'" }, { "poi", "Highland Popoluca" }, { "pok", "Pokangá" }, { "pol", "Polish" }, { "pom", "Southeastern Pomo" }, { "pon", "Pohnpeian" }, { "poo", "Central Pomo" }, { "pop", "Pwapwâ" }, { "poq", "Texistepec Popoluca" }, { "por", "Portuguese" }, { "pos", "Sayula Popoluca" }, { "pot", "Potawatomi" }, { "pov", "Upper Guinea Crioulo" }, { "pow", "San Felipe Otlaltepec Popoloca" }, { "pox", "Polabian" }, { "poy", "Pogolo" }, { "ppa", "Pao" }, { "ppe", "Papi" }, { "ppi", "Paipai" }, { "ppk", "Uma" }, { "ppl", "Pipil" }, { "ppm", "Papuma" }, { "ppn", "Papapana" }, { "ppo", "Folopa" }, { "ppp", "Pelende" }, { "ppq", "Pei" }, { "pps", "San Luís Temalacayuca Popoloca" }, { "ppt", "Pare" }, { "ppu", "Papora" }, { "pqa", "Pa'a" }, { "pqm", "Malecite-Passamaquoddy" }, { "prb", "Lua'" }, { "prc", "Parachi" }, { "prd", "Parsi-Dari" }, { "pre", "Principense" }, { "prf", "Paranan" }, { "prg", "Prussian" }, { "prh", "Porohanon" }, { "pri", "Paicî" }, { "prk", "Parauk" }, { "prl", "Peruvian Sign Language" }, { "prm", "Kibiri" }, { "prn", "Prasuni" }, { "pro", "Old Provençal (to 1500)" }, { "prp", "Parsi" }, { "prq", "Ashéninka Perené" }, { "prr", "Puri" }, { "prs", "Dari" }, { "prt", "Phai" }, { "pru", "Puragi" }, { "prw", "Parawen" }, { "prx", "Purik" }, { "pry", "Pray 3" }, { "prz", "Providencia Sign Language" }, { "psa", "Asue Awyu" }, { "psc", "Persian Sign Language" }, { "psd", "Plains Indian Sign Language" }, { "pse", "Central Malay" }, { "psg", "Penang Sign Language" }, { "psh", "Southwest Pashayi" }, { "psi", "Southeast Pashayi" }, { "psl", "Puerto Rican Sign Language" }, { "psm", "Pauserna" }, { "psn", "Panasuan" }, { "pso", "Polish Sign Language" }, { "psp", "Philippine Sign Language" }, { "psq", "Pasi" }, { "psr", "Portuguese Sign Language" }, { "pss", "Kaulong" }, { "pst", "Central Pashto" }, { "psu", "Sauraseni Prākrit" }, { "psw", "Port Sandwich" }, { "psy", "Piscataway" }, { "pta", "Pai Tavytera" }, { "pth", "Pataxó Hã-Ha-Hãe" }, { "pti", "Pintiini" }, { "ptn", "Patani" }, { "pto", "Zo'é" }, { "ptp", "Patep" }, { "ptr", "Piamatsina" }, { "ptt", "Enrekang" }, { "ptu", "Bambam" }, { "ptv", "Port Vato" }, { "ptw", "Pentlatch" }, { "pty", "Pathiya" }, { "pua", "Western Highland Purepecha" }, { "pub", "Purum" }, { "puc", "Punan Merap" }, { "pud", "Punan Aput" }, { "pue", "Puelche" }, { "puf", "Punan Merah" }, { "pug", "Phuie" }, { "pui", "Puinave" }, { "puj", "Punan Tubu" }, { "puk", "Pu Ko" }, { "pum", "Puma" }, { "puo", "Puoc" }, { "pup", "Pulabu" }, { "puq", "Puquina" }, { "pur", "Puruborá" }, { "pus", "Pushto" }, { "put", "Putoh" }, { "puu", "Punu" }, { "puw", "Puluwatese" }, { "pux", "Puare" }, { "puy", "Purisimeño" }, { "puz", "Purum Naga" }, { "pwa", "Pawaia" }, { "pwb", "Panawa" }, { "pwg", "Gapapaiwa" }, { "pwi", "Patwin" }, { "pwm", "Molbog" }, { "pwn", "Paiwan" }, { "pwo", "Pwo Western Karen" }, { "pwr", "Powari" }, { "pww", "Pwo Northern Karen" }, { "pxm", "Quetzaltepec Mixe" }, { "pye", "Pye Krumen" }, { "pym", "Fyam" }, { "pyn", "Poyanáwa" }, { "pys", "Paraguayan Sign Language" }, { "pyu", "Puyuma" }, { "pyx", "Pyu (Myanmar)" }, { "pyy", "Pyen" }, { "pzn", "Para Naga" }, { "qaa", "Reserved for local use" }, { "qab", "Reserved for local use" }, { "qac", "Reserved for local use" }, { "qad", "Reserved for local use" }, { "qae", "Reserved for local use" }, { "qaf", "Reserved for local use" }, { "qag", "Reserved for local use" }, { "qah", "Reserved for local use" }, { "qai", "Reserved for local use" }, { "qaj", "Reserved for local use" }, { "qak", "Reserved for local use" }, { "qal", "Reserved for local use" }, { "qam", "Reserved for local use" }, { "qan", "Reserved for local use" }, { "qao", "Reserved for local use" }, { "qap", "Reserved for local use" }, { "qaq", "Reserved for local use" }, { "qar", "Reserved for local use" }, { "qas", "Reserved for local use" }, { "qat", "Reserved for local use" }, { "qau", "Reserved for local use" }, { "qav", "Reserved for local use" }, { "qaw", "Reserved for local use" }, { "qax", "Reserved for local use" }, { "qay", "Reserved for local use" }, { "qaz", "Reserved for local use" }, { "qba", "Reserved for local use" }, { "qbb", "Reserved for local use" }, { "qbc", "Reserved for local use" }, { "qbd", "Reserved for local use" }, { "qbe", "Reserved for local use" }, { "qbf", "Reserved for local use" }, { "qbg", "Reserved for local use" }, { "qbh", "Reserved for local use" }, { "qbi", "Reserved for local use" }, { "qbj", "Reserved for local use" }, { "qbk", "Reserved for local use" }, { "qbl", "Reserved for local use" }, { "qbm", "Reserved for local use" }, { "qbn", "Reserved for local use" }, { "qbo", "Reserved for local use" }, { "qbp", "Reserved for local use" }, { "qbq", "Reserved for local use" }, { "qbr", "Reserved for local use" }, { "qbs", "Reserved for local use" }, { "qbt", "Reserved for local use" }, { "qbu", "Reserved for local use" }, { "qbv", "Reserved for local use" }, { "qbw", "Reserved for local use" }, { "qbx", "Reserved for local use" }, { "qby", "Reserved for local use" }, { "qbz", "Reserved for local use" }, { "qca", "Reserved for local use" }, { "qcb", "Reserved for local use" }, { "qcc", "Reserved for local use" }, { "qcd", "Reserved for local use" }, { "qce", "Reserved for local use" }, { "qcf", "Reserved for local use" }, { "qcg", "Reserved for local use" }, { "qch", "Reserved for local use" }, { "qci", "Reserved for local use" }, { "qcj", "Reserved for local use" }, { "qck", "Reserved for local use" }, { "qcl", "Reserved for local use" }, { "qcm", "Reserved for local use" }, { "qcn", "Reserved for local use" }, { "qco", "Reserved for local use" }, { "qcp", "Reserved for local use" }, { "qcq", "Reserved for local use" }, { "qcr", "Reserved for local use" }, { "qcs", "Reserved for local use" }, { "qct", "Reserved for local use" }, { "qcu", "Reserved for local use" }, { "qcv", "Reserved for local use" }, { "qcw", "Reserved for local use" }, { "qcx", "Reserved for local use" }, { "qcy", "Reserved for local use" }, { "qcz", "Reserved for local use" }, { "qda", "Reserved for local use" }, { "qdb", "Reserved for local use" }, { "qdc", "Reserved for local use" }, { "qdd", "Reserved for local use" }, { "qde", "Reserved for local use" }, { "qdf", "Reserved for local use" }, { "qdg", "Reserved for local use" }, { "qdh", "Reserved for local use" }, { "qdi", "Reserved for local use" }, { "qdj", "Reserved for local use" }, { "qdk", "Reserved for local use" }, { "qdl", "Reserved for local use" }, { "qdm", "Reserved for local use" }, { "qdn", "Reserved for local use" }, { "qdo", "Reserved for local use" }, { "qdp", "Reserved for local use" }, { "qdq", "Reserved for local use" }, { "qdr", "Reserved for local use" }, { "qds", "Reserved for local use" }, { "qdt", "Reserved for local use" }, { "qdu", "Reserved for local use" }, { "qdv", "Reserved for local use" }, { "qdw", "Reserved for local use" }, { "qdx", "Reserved for local use" }, { "qdy", "Reserved for local use" }, { "qdz", "Reserved for local use" }, { "qea", "Reserved for local use" }, { "qeb", "Reserved for local use" }, { "qec", "Reserved for local use" }, { "qed", "Reserved for local use" }, { "qee", "Reserved for local use" }, { "qef", "Reserved for local use" }, { "qeg", "Reserved for local use" }, { "qeh", "Reserved for local use" }, { "qei", "Reserved for local use" }, { "qej", "Reserved for local use" }, { "qek", "Reserved for local use" }, { "qel", "Reserved for local use" }, { "qem", "Reserved for local use" }, { "qen", "Reserved for local use" }, { "qeo", "Reserved for local use" }, { "qep", "Reserved for local use" }, { "qeq", "Reserved for local use" }, { "qer", "Reserved for local use" }, { "qes", "Reserved for local use" }, { "qet", "Reserved for local use" }, { "qeu", "Reserved for local use" }, { "qev", "Reserved for local use" }, { "qew", "Reserved for local use" }, { "qex", "Reserved for local use" }, { "qey", "Reserved for local use" }, { "qez", "Reserved for local use" }, { "qfa", "Reserved for local use" }, { "qfb", "Reserved for local use" }, { "qfc", "Reserved for local use" }, { "qfd", "Reserved for local use" }, { "qfe", "Reserved for local use" }, { "qff", "Reserved for local use" }, { "qfg", "Reserved for local use" }, { "qfh", "Reserved for local use" }, { "qfi", "Reserved for local use" }, { "qfj", "Reserved for local use" }, { "qfk", "Reserved for local use" }, { "qfl", "Reserved for local use" }, { "qfm", "Reserved for local use" }, { "qfn", "Reserved for local use" }, { "qfo", "Reserved for local use" }, { "qfp", "Reserved for local use" }, { "qfq", "Reserved for local use" }, { "qfr", "Reserved for local use" }, { "qfs", "Reserved for local use" }, { "qft", "Reserved for local use" }, { "qfu", "Reserved for local use" }, { "qfv", "Reserved for local use" }, { "qfw", "Reserved for local use" }, { "qfx", "Reserved for local use" }, { "qfy", "Reserved for local use" }, { "qfz", "Reserved for local use" }, { "qga", "Reserved for local use" }, { "qgb", "Reserved for local use" }, { "qgc", "Reserved for local use" }, { "qgd", "Reserved for local use" }, { "qge", "Reserved for local use" }, { "qgf", "Reserved for local use" }, { "qgg", "Reserved for local use" }, { "qgh", "Reserved for local use" }, { "qgi", "Reserved for local use" }, { "qgj", "Reserved for local use" }, { "qgk", "Reserved for local use" }, { "qgl", "Reserved for local use" }, { "qgm", "Reserved for local use" }, { "qgn", "Reserved for local use" }, { "qgo", "Reserved for local use" }, { "qgp", "Reserved for local use" }, { "qgq", "Reserved for local use" }, { "qgr", "Reserved for local use" }, { "qgs", "Reserved for local use" }, { "qgt", "Reserved for local use" }, { "qgu", "Reserved for local use" }, { "qgv", "Reserved for local use" }, { "qgw", "Reserved for local use" }, { "qgx", "Reserved for local use" }, { "qgy", "Reserved for local use" }, { "qgz", "Reserved for local use" }, { "qha", "Reserved for local use" }, { "qhb", "Reserved for local use" }, { "qhc", "Reserved for local use" }, { "qhd", "Reserved for local use" }, { "qhe", "Reserved for local use" }, { "qhf", "Reserved for local use" }, { "qhg", "Reserved for local use" }, { "qhh", "Reserved for local use" }, { "qhi", "Reserved for local use" }, { "qhj", "Reserved for local use" }, { "qhk", "Reserved for local use" }, { "qhl", "Reserved for local use" }, { "qhm", "Reserved for local use" }, { "qhn", "Reserved for local use" }, { "qho", "Reserved for local use" }, { "qhp", "Reserved for local use" }, { "qhq", "Reserved for local use" }, { "qhr", "Reserved for local use" }, { "qhs", "Reserved for local use" }, { "qht", "Reserved for local use" }, { "qhu", "Reserved for local use" }, { "qhv", "Reserved for local use" }, { "qhw", "Reserved for local use" }, { "qhx", "Reserved for local use" }, { "qhy", "Reserved for local use" }, { "qhz", "Reserved for local use" }, { "qia", "Reserved for local use" }, { "qib", "Reserved for local use" }, { "qic", "Reserved for local use" }, { "qid", "Reserved for local use" }, { "qie", "Reserved for local use" }, { "qif", "Reserved for local use" }, { "qig", "Reserved for local use" }, { "qih", "Reserved for local use" }, { "qii", "Reserved for local use" }, { "qij", "Reserved for local use" }, { "qik", "Reserved for local use" }, { "qil", "Reserved for local use" }, { "qim", "Reserved for local use" }, { "qin", "Reserved for local use" }, { "qio", "Reserved for local use" }, { "qip", "Reserved for local use" }, { "qiq", "Reserved for local use" }, { "qir", "Reserved for local use" }, { "qis", "Reserved for local use" }, { "qit", "Reserved for local use" }, { "qiu", "Reserved for local use" }, { "qiv", "Reserved for local use" }, { "qiw", "Reserved for local use" }, { "qix", "Reserved for local use" }, { "qiy", "Reserved for local use" }, { "qiz", "Reserved for local use" }, { "qja", "Reserved for local use" }, { "qjb", "Reserved for local use" }, { "qjc", "Reserved for local use" }, { "qjd", "Reserved for local use" }, { "qje", "Reserved for local use" }, { "qjf", "Reserved for local use" }, { "qjg", "Reserved for local use" }, { "qjh", "Reserved for local use" }, { "qji", "Reserved for local use" }, { "qjj", "Reserved for local use" }, { "qjk", "Reserved for local use" }, { "qjl", "Reserved for local use" }, { "qjm", "Reserved for local use" }, { "qjn", "Reserved for local use" }, { "qjo", "Reserved for local use" }, { "qjp", "Reserved for local use" }, { "qjq", "Reserved for local use" }, { "qjr", "Reserved for local use" }, { "qjs", "Reserved for local use" }, { "qjt", "Reserved for local use" }, { "qju", "Reserved for local use" }, { "qjv", "Reserved for local use" }, { "qjw", "Reserved for local use" }, { "qjx", "Reserved for local use" }, { "qjy", "Reserved for local use" }, { "qjz", "Reserved for local use" }, { "qka", "Reserved for local use" }, { "qkb", "Reserved for local use" }, { "qkc", "Reserved for local use" }, { "qkd", "Reserved for local use" }, { "qke", "Reserved for local use" }, { "qkf", "Reserved for local use" }, { "qkg", "Reserved for local use" }, { "qkh", "Reserved for local use" }, { "qki", "Reserved for local use" }, { "qkj", "Reserved for local use" }, { "qkk", "Reserved for local use" }, { "qkl", "Reserved for local use" }, { "qkm", "Reserved for local use" }, { "qkn", "Reserved for local use" }, { "qko", "Reserved for local use" }, { "qkp", "Reserved for local use" }, { "qkq", "Reserved for local use" }, { "qkr", "Reserved for local use" }, { "qks", "Reserved for local use" }, { "qkt", "Reserved for local use" }, { "qku", "Reserved for local use" }, { "qkv", "Reserved for local use" }, { "qkw", "Reserved for local use" }, { "qkx", "Reserved for local use" }, { "qky", "Reserved for local use" }, { "qkz", "Reserved for local use" }, { "qla", "Reserved for local use" }, { "qlb", "Reserved for local use" }, { "qlc", "Reserved for local use" }, { "qld", "Reserved for local use" }, { "qle", "Reserved for local use" }, { "qlf", "Reserved for local use" }, { "qlg", "Reserved for local use" }, { "qlh", "Reserved for local use" }, { "qli", "Reserved for local use" }, { "qlj", "Reserved for local use" }, { "qlk", "Reserved for local use" }, { "qll", "Reserved for local use" }, { "qlm", "Reserved for local use" }, { "qln", "Reserved for local use" }, { "qlo", "Reserved for local use" }, { "qlp", "Reserved for local use" }, { "qlq", "Reserved for local use" }, { "qlr", "Reserved for local use" }, { "qls", "Reserved for local use" }, { "qlt", "Reserved for local use" }, { "qlu", "Reserved for local use" }, { "qlv", "Reserved for local use" }, { "qlw", "Reserved for local use" }, { "qlx", "Reserved for local use" }, { "qly", "Reserved for local use" }, { "qlz", "Reserved for local use" }, { "qma", "Reserved for local use" }, { "qmb", "Reserved for local use" }, { "qmc", "Reserved for local use" }, { "qmd", "Reserved for local use" }, { "qme", "Reserved for local use" }, { "qmf", "Reserved for local use" }, { "qmg", "Reserved for local use" }, { "qmh", "Reserved for local use" }, { "qmi", "Reserved for local use" }, { "qmj", "Reserved for local use" }, { "qmk", "Reserved for local use" }, { "qml", "Reserved for local use" }, { "qmm", "Reserved for local use" }, { "qmn", "Reserved for local use" }, { "qmo", "Reserved for local use" }, { "qmp", "Reserved for local use" }, { "qmq", "Reserved for local use" }, { "qmr", "Reserved for local use" }, { "qms", "Reserved for local use" }, { "qmt", "Reserved for local use" }, { "qmu", "Reserved for local use" }, { "qmv", "Reserved for local use" }, { "qmw", "Reserved for local use" }, { "qmx", "Reserved for local use" }, { "qmy", "Reserved for local use" }, { "qmz", "Reserved for local use" }, { "qna", "Reserved for local use" }, { "qnb", "Reserved for local use" }, { "qnc", "Reserved for local use" }, { "qnd", "Reserved for local use" }, { "qne", "Reserved for local use" }, { "qnf", "Reserved for local use" }, { "qng", "Reserved for local use" }, { "qnh", "Reserved for local use" }, { "qni", "Reserved for local use" }, { "qnj", "Reserved for local use" }, { "qnk", "Reserved for local use" }, { "qnl", "Reserved for local use" }, { "qnm", "Reserved for local use" }, { "qnn", "Reserved for local use" }, { "qno", "Reserved for local use" }, { "qnp", "Reserved for local use" }, { "qnq", "Reserved for local use" }, { "qnr", "Reserved for local use" }, { "qns", "Reserved for local use" }, { "qnt", "Reserved for local use" }, { "qnu", "Reserved for local use" }, { "qnv", "Reserved for local use" }, { "qnw", "Reserved for local use" }, { "qnx", "Reserved for local use" }, { "qny", "Reserved for local use" }, { "qnz", "Reserved for local use" }, { "qoa", "Reserved for local use" }, { "qob", "Reserved for local use" }, { "qoc", "Reserved for local use" }, { "qod", "Reserved for local use" }, { "qoe", "Reserved for local use" }, { "qof", "Reserved for local use" }, { "qog", "Reserved for local use" }, { "qoh", "Reserved for local use" }, { "qoi", "Reserved for local use" }, { "qoj", "Reserved for local use" }, { "qok", "Reserved for local use" }, { "qol", "Reserved for local use" }, { "qom", "Reserved for local use" }, { "qon", "Reserved for local use" }, { "qoo", "Reserved for local use" }, { "qop", "Reserved for local use" }, { "qoq", "Reserved for local use" }, { "qor", "Reserved for local use" }, { "qos", "Reserved for local use" }, { "qot", "Reserved for local use" }, { "qou", "Reserved for local use" }, { "qov", "Reserved for local use" }, { "qow", "Reserved for local use" }, { "qox", "Reserved for local use" }, { "qoy", "Reserved for local use" }, { "qoz", "Reserved for local use" }, { "qpa", "Reserved for local use" }, { "qpb", "Reserved for local use" }, { "qpc", "Reserved for local use" }, { "qpd", "Reserved for local use" }, { "qpe", "Reserved for local use" }, { "qpf", "Reserved for local use" }, { "qpg", "Reserved for local use" }, { "qph", "Reserved for local use" }, { "qpi", "Reserved for local use" }, { "qpj", "Reserved for local use" }, { "qpk", "Reserved for local use" }, { "qpl", "Reserved for local use" }, { "qpm", "Reserved for local use" }, { "qpn", "Reserved for local use" }, { "qpo", "Reserved for local use" }, { "qpp", "Reserved for local use" }, { "qpq", "Reserved for local use" }, { "qpr", "Reserved for local use" }, { "qps", "Reserved for local use" }, { "qpt", "Reserved for local use" }, { "qpu", "Reserved for local use" }, { "qpv", "Reserved for local use" }, { "qpw", "Reserved for local use" }, { "qpx", "Reserved for local use" }, { "qpy", "Reserved for local use" }, { "qpz", "Reserved for local use" }, { "qqa", "Reserved for local use" }, { "qqb", "Reserved for local use" }, { "qqc", "Reserved for local use" }, { "qqd", "Reserved for local use" }, { "qqe", "Reserved for local use" }, { "qqf", "Reserved for local use" }, { "qqg", "Reserved for local use" }, { "qqh", "Reserved for local use" }, { "qqi", "Reserved for local use" }, { "qqj", "Reserved for local use" }, { "qqk", "Reserved for local use" }, { "qql", "Reserved for local use" }, { "qqm", "Reserved for local use" }, { "qqn", "Reserved for local use" }, { "qqo", "Reserved for local use" }, { "qqp", "Reserved for local use" }, { "qqq", "Reserved for local use" }, { "qqr", "Reserved for local use" }, { "qqs", "Reserved for local use" }, { "qqt", "Reserved for local use" }, { "qqu", "Reserved for local use" }, { "qqv", "Reserved for local use" }, { "qqw", "Reserved for local use" }, { "qqx", "Reserved for local use" }, { "qqy", "Reserved for local use" }, { "qqz", "Reserved for local use" }, { "qra", "Reserved for local use" }, { "qrb", "Reserved for local use" }, { "qrc", "Reserved for local use" }, { "qrd", "Reserved for local use" }, { "qre", "Reserved for local use" }, { "qrf", "Reserved for local use" }, { "qrg", "Reserved for local use" }, { "qrh", "Reserved for local use" }, { "qri", "Reserved for local use" }, { "qrj", "Reserved for local use" }, { "qrk", "Reserved for local use" }, { "qrl", "Reserved for local use" }, { "qrm", "Reserved for local use" }, { "qrn", "Reserved for local use" }, { "qro", "Reserved for local use" }, { "qrp", "Reserved for local use" }, { "qrq", "Reserved for local use" }, { "qrr", "Reserved for local use" }, { "qrs", "Reserved for local use" }, { "qrt", "Reserved for local use" }, { "qru", "Reserved for local use" }, { "qrv", "Reserved for local use" }, { "qrw", "Reserved for local use" }, { "qrx", "Reserved for local use" }, { "qry", "Reserved for local use" }, { "qrz", "Reserved for local use" }, { "qsa", "Reserved for local use" }, { "qsb", "Reserved for local use" }, { "qsc", "Reserved for local use" }, { "qsd", "Reserved for local use" }, { "qse", "Reserved for local use" }, { "qsf", "Reserved for local use" }, { "qsg", "Reserved for local use" }, { "qsh", "Reserved for local use" }, { "qsi", "Reserved for local use" }, { "qsj", "Reserved for local use" }, { "qsk", "Reserved for local use" }, { "qsl", "Reserved for local use" }, { "qsm", "Reserved for local use" }, { "qsn", "Reserved for local use" }, { "qso", "Reserved for local use" }, { "qsp", "Reserved for local use" }, { "qsq", "Reserved for local use" }, { "qsr", "Reserved for local use" }, { "qss", "Reserved for local use" }, { "qst", "Reserved for local use" }, { "qsu", "Reserved for local use" }, { "qsv", "Reserved for local use" }, { "qsw", "Reserved for local use" }, { "qsx", "Reserved for local use" }, { "qsy", "Reserved for local use" }, { "qsz", "Reserved for local use" }, { "qta", "Reserved for local use" }, { "qtb", "Reserved for local use" }, { "qtc", "Reserved for local use" }, { "qtd", "Reserved for local use" }, { "qte", "Reserved for local use" }, { "qtf", "Reserved for local use" }, { "qtg", "Reserved for local use" }, { "qth", "Reserved for local use" }, { "qti", "Reserved for local use" }, { "qtj", "Reserved for local use" }, { "qtk", "Reserved for local use" }, { "qtl", "Reserved for local use" }, { "qtm", "Reserved for local use" }, { "qtn", "Reserved for local use" }, { "qto", "Reserved for local use" }, { "qtp", "Reserved for local use" }, { "qtq", "Reserved for local use" }, { "qtr", "Reserved for local use" }, { "qts", "Reserved for local use" }, { "qtt", "Reserved for local use" }, { "qtu", "Reserved for local use" }, { "qtv", "Reserved for local use" }, { "qtw", "Reserved for local use" }, { "qtx", "Reserved for local use" }, { "qty", "Reserved for local use" }, { "qtz", "Reserved for local use" }, { "qua", "Quapaw" }, { "qub", "Huallaga Huánuco Quechua" }, { "quc", "K'iche'" }, { "qud", "Calderón Highland Quichua" }, { "que", "Quechua" }, { "quf", "Lambayeque Quechua" }, { "qug", "Chimborazo Highland Quichua" }, { "quh", "South Bolivian Quechua" }, { "qui", "Quileute" }, { "quk", "Chachapoyas Quechua" }, { "qul", "North Bolivian Quechua" }, { "qum", "Sipacapense" }, { "qun", "Quinault" }, { "qup", "Southern Pastaza Quechua" }, { "quq", "Quinqui" }, { "qur", "Yanahuanca Pasco Quechua" }, { "qus", "Santiago del Estero Quichua" }, { "quv", "Sacapulteco" }, { "quw", "Tena Lowland Quichua" }, { "qux", "Yauyos Quechua" }, { "quy", "Ayacucho Quechua" }, { "quz", "Cusco Quechua" }, { "qva", "Ambo-Pasco Quechua" }, { "qvc", "Cajamarca Quechua" }, { "qve", "Eastern Apurímac Quechua" }, { "qvh", "Huamalíes-Dos de Mayo Huánuco Quechua" }, { "qvi", "Imbabura Highland Quichua" }, { "qvj", "Loja Highland Quichua" }, { "qvl", "Cajatambo North Lima Quechua" }, { "qvm", "Margos-Yarowilca-Lauricocha Quechua" }, { "qvn", "North Junín Quechua" }, { "qvo", "Napo Lowland Quechua" }, { "qvp", "Pacaraos Quechua" }, { "qvs", "San Martín Quechua" }, { "qvw", "Huaylla Wanca Quechua" }, { "qvy", "Queyu" }, { "qvz", "Northern Pastaza Quichua" }, { "qwa", "Corongo Ancash Quechua" }, { "qwc", "Classical Quechua" }, { "qwh", "Huaylas Ancash Quechua" }, { "qwm", "Kuman (Russia)" }, { "qws", "Sihuas Ancash Quechua" }, { "qwt", "Kwalhioqua-Tlatskanai" }, { "qxa", "Chiquián Ancash Quechua" }, { "qxc", "Chincha Quechua" }, { "qxh", "Panao Huánuco Quechua" }, { "qxl", "Salasaca Highland Quichua" }, { "qxn", "Northern Conchucos Ancash Quechua" }, { "qxo", "Southern Conchucos Ancash Quechua" }, { "qxp", "Puno Quechua" }, { "qxq", "Qashqa'i" }, { "qxr", "Cañar Highland Quichua" }, { "qxs", "Southern Qiang" }, { "qxt", "Santa Ana de Tusi Pasco Quechua" }, { "qxu", "Arequipa-La Unión Quechua" }, { "qxw", "Jauja Wanca Quechua" }, { "qya", "Quenya" }, { "qyp", "Quiripi" }, { "raa", "Dungmali" }, { "rab", "Camling" }, { "rac", "Rasawa" }, { "rad", "Rade" }, { "raf", "Western Meohang" }, { "rag", "Logooli" }, { "rah", "Rabha" }, { "rai", "Ramoaaina" }, { "raj", "Rajasthani" }, { "rak", "Tulu-Bohuai" }, { "ral", "Ralte" }, { "ram", "Canela" }, { "ran", "Riantana" }, { "rao", "Rao" }, { "rap", "Rapanui" }, { "raq", "Saam" }, { "rar", "Rarotongan" }, { "ras", "Tegali" }, { "rat", "Razajerdi" }, { "rau", "Raute" }, { "rav", "Sampang" }, { "raw", "Rawang" }, { "rax", "Rang" }, { "ray", "Rapa" }, { "raz", "Rahambuu" }, { "rbb", "Rumai Palaung" }, { "rbk", "Northern Bontok" }, { "rbl", "Miraya Bikol" }, { "rbp", "Barababaraba" }, { "rcf", "Réunion Creole French" }, { "rdb", "Rudbari" }, { "rea", "Rerau" }, { "reb", "Rembong" }, { "ree", "Rejang Kayan" }, { "reg", "Kara (Tanzania)" }, { "rei", "Reli" }, { "rej", "Rejang" }, { "rel", "Rendille" }, { "rem", "Remo" }, { "ren", "Rengao" }, { "rer", "Rer Bare" }, { "res", "Reshe" }, { "ret", "Retta" }, { "rey", "Reyesano" }, { "rga", "Roria" }, { "rge", "Romano-Greek" }, { "rgk", "Rangkas" }, { "rgn", "Romagnol" }, { "rgr", "Resígaro" }, { "rgs", "Southern Roglai" }, { "rgu", "Ringgou" }, { "rhg", "Rohingya" }, { "rhp", "Yahang" }, { "ria", "Riang (India)" }, { "rie", "Rien" }, { "rif", "Tarifit" }, { "ril", "Riang (Myanmar)" }, { "rim", "Nyaturu" }, { "rin", "Nungu" }, { "rir", "Ribun" }, { "rit", "Ritarungo" }, { "riu", "Riung" }, { "rjg", "Rajong" }, { "rji", "Raji" }, { "rjs", "Rajbanshi" }, { "rka", "Kraol" }, { "rkb", "Rikbaktsa" }, { "rkh", "Rakahanga-Manihiki" }, { "rki", "Rakhine" }, { "rkm", "Marka" }, { "rkt", "Rangpuri" }, { "rkw", "Arakwal" }, { "rma", "Rama" }, { "rmb", "Rembarunga" }, { "rmc", "Carpathian Romani" }, { "rmd", "Traveller Danish" }, { "rme", "Angloromani" }, { "rmf", "Kalo Finnish Romani" }, { "rmg", "Traveller Norwegian" }, { "rmh", "Murkim" }, { "rmi", "Lomavren" }, { "rmk", "Romkun" }, { "rml", "Baltic Romani" }, { "rmm", "Roma" }, { "rmn", "Balkan Romani" }, { "rmo", "Sinte Romani" }, { "rmp", "Rempi" }, { "rmq", "Caló" }, { "rms", "Romanian Sign Language" }, { "rmt", "Domari" }, { "rmu", "Tavringer Romani" }, { "rmv", "Romanova" }, { "rmw", "Welsh Romani" }, { "rmx", "Romam" }, { "rmy", "Vlax Romani" }, { "rmz", "Marma" }, { "rna", "Runa" }, { "rnd", "Ruund" }, { "rng", "Ronga" }, { "rnl", "Ranglong" }, { "rnn", "Roon" }, { "rnp", "Rongpo" }, { "rnr", "Nari Nari" }, { "rnw", "Rungwa" }, { "rob", "Tae'" }, { "roc", "Cacgia Roglai" }, { "rod", "Rogo" }, { "roe", "Ronji" }, { "rof", "Rombo" }, { "rog", "Northern Roglai" }, { "roh", "Romansh" }, { "rol", "Romblomanon" }, { "rom", "Romany" }, { "ron", "Romanian" }, { "roo", "Rotokas" }, { "rop", "Kriol" }, { "ror", "Rongga" }, { "rou", "Runga" }, { "row", "Dela-Oenale" }, { "rpn", "Repanbitip" }, { "rpt", "Rapting" }, { "rri", "Ririo" }, { "rro", "Waima" }, { "rrt", "Arritinngithigh" }, { "rsb", "Romano-Serbian" }, { "rsi", "Rennellese Sign Language" }, { "rsl", "Russian Sign Language" }, { "rtc", "Rungtu Chin" }, { "rth", "Ratahan" }, { "rtm", "Rotuman" }, { "rtw", "Rathawi" }, { "rub", "Gungu" }, { "ruc", "Ruuli" }, { "rue", "Rusyn" }, { "ruf", "Luguru" }, { "rug", "Roviana" }, { "ruh", "Ruga" }, { "rui", "Rufiji" }, { "ruk", "Che" }, { "run", "Rundi" }, { "ruo", "Istro Romanian" }, { "rup", "Macedo-Romanian" }, { "ruq", "Megleno Romanian" }, { "rus", "Russian" }, { "rut", "Rutul" }, { "ruu", "Lanas Lobu" }, { "ruy", "Mala (Nigeria)" }, { "ruz", "Ruma" }, { "rwa", "Rawo" }, { "rwk", "Rwa" }, { "rwm", "Amba (Uganda)" }, { "rwo", "Rawa" }, { "rwr", "Marwari (India)" }, { "rxd", "Ngardi" }, { "rxw", "Karuwali" }, { "ryn", "Northern Amami-Oshima" }, { "rys", "Yaeyama" }, { "ryu", "Central Okinawan" }, { "saa", "Saba" }, { "sab", "Buglere" }, { "sac", "Meskwaki" }, { "sad", "Sandawe" }, { "sae", "Sabanê" }, { "saf", "Safaliba" }, { "sag", "Sango" }, { "sah", "Yakut" }, { "saj", "Sahu" }, { "sak", "Sake" }, { "sam", "Samaritan Aramaic" }, { "san", "Sanskrit" }, { "sao", "Sause" }, { "sap", "Sanapaná" }, { "saq", "Samburu" }, { "sar", "Saraveca" }, { "sas", "Sasak" }, { "sat", "Santali" }, { "sau", "Saleman" }, { "sav", "Saafi-Saafi" }, { "saw", "Sawi" }, { "sax", "Sa" }, { "say", "Saya" }, { "saz", "Saurashtra" }, { "sba", "Ngambay" }, { "sbb", "Simbo" }, { "sbc", "Kele (Papua New Guinea)" }, { "sbd", "Southern Samo" }, { "sbe", "Saliba" }, { "sbf", "Shabo" }, { "sbg", "Seget" }, { "sbh", "Sori-Harengan" }, { "sbi", "Seti" }, { "sbj", "Surbakhal" }, { "sbk", "Safwa" }, { "sbl", "Botolan Sambal" }, { "sbm", "Sagala" }, { "sbn", "Sindhi Bhil" }, { "sbo", "Sabüm" }, { "sbp", "Sangu (Tanzania)" }, { "sbq", "Sileibi" }, { "sbr", "Sembakung Murut" }, { "sbs", "Subiya" }, { "sbt", "Kimki" }, { "sbu", "Stod Bhoti" }, { "sbv", "Sabine" }, { "sbw", "Simba" }, { "sbx", "Seberuang" }, { "sby", "Soli" }, { "sbz", "Sara Kaba" }, { "scb", "Chut" }, { "sce", "Dongxiang" }, { "scf", "San Miguel Creole French" }, { "scg", "Sanggau" }, { "sch", "Sakachep" }, { "sci", "Sri Lankan Creole Malay" }, { "sck", "Sadri" }, { "scl", "Shina" }, { "scn", "Sicilian" }, { "sco", "Scots" }, { "scp", "Helambu Sherpa" }, { "scq", "Sa'och" }, { "scs", "North Slavey" }, { "scu", "Shumcho" }, { "scv", "Sheni" }, { "scw", "Sha" }, { "scx", "Sicel" }, { "sda", "Toraja-Sa'dan" }, { "sdb", "Shabak" }, { "sdc", "Sassarese Sardinian" }, { "sde", "Surubu" }, { "sdf", "Sarli" }, { "sdg", "Savi" }, { "sdh", "Southern Kurdish" }, { "sdj", "Suundi" }, { "sdk", "Sos Kundi" }, { "sdl", "Saudi Arabian Sign Language" }, { "sdm", "Semandang" }, { "sdn", "Gallurese Sardinian" }, { "sdo", "Bukar-Sadung Bidayuh" }, { "sdp", "Sherdukpen" }, { "sdr", "Oraon Sadri" }, { "sds", "Sened" }, { "sdt", "Shuadit" }, { "sdu", "Sarudu" }, { "sdx", "Sibu Melanau" }, { "sdz", "Sallands" }, { "sea", "Semai" }, { "seb", "Shempire Senoufo" }, { "sec", "Sechelt" }, { "sed", "Sedang" }, { "see", "Seneca" }, { "sef", "Cebaara Senoufo" }, { "seg", "Segeju" }, { "seh", "Sena" }, { "sei", "Seri" }, { "sej", "Sene" }, { "sek", "Sekani" }, { "sel", "Selkup" }, { "sen", "Nanerigé Sénoufo" }, { "seo", "Suarmin" }, { "sep", "Sìcìté Sénoufo" }, { "seq", "Senara Sénoufo" }, { "ser", "Serrano" }, { "ses", "Koyraboro Senni Songhai" }, { "set", "Sentani" }, { "seu", "Serui-Laut" }, { "sev", "Nyarafolo Senoufo" }, { "sew", "Sewa Bay" }, { "sey", "Secoya" }, { "sez", "Senthang Chin" }, { "sfb", "Langue des signes de Belgique Francophone" }, { "sfe", "Eastern Subanen" }, { "sfm", "Small Flowery Miao" }, { "sfs", "South African Sign Language" }, { "sfw", "Sehwi" }, { "sga", "Old Irish (to 900)" }, { "sgb", "Mag-antsi Ayta" }, { "sgc", "Kipsigis" }, { "sgd", "Surigaonon" }, { "sge", "Segai" }, { "sgg", "Swiss-German Sign Language" }, { "sgh", "Shughni" }, { "sgi", "Suga" }, { "sgj", "Surgujia" }, { "sgk", "Sangkong" }, { "sgm", "Singa" }, { "sgo", "Songa" }, { "sgp", "Singpho" }, { "sgr", "Sangisari" }, { "sgs", "Samogitian" }, { "sgt", "Brokpake" }, { "sgu", "Salas" }, { "sgw", "Sebat Bet Gurage" }, { "sgx", "Sierra Leone Sign Language" }, { "sgy", "Sanglechi" }, { "sgz", "Sursurunga" }, { "sha", "Shall-Zwall" }, { "shb", "Ninam" }, { "shc", "Sonde" }, { "shd", "Kundal Shahi" }, { "she", "Sheko" }, { "shg", "Shua" }, { "shh", "Shoshoni" }, { "shi", "Tachelhit" }, { "shj", "Shatt" }, { "shk", "Shilluk" }, { "shl", "Shendu" }, { "shm", "Shahrudi" }, { "shn", "Shan" }, { "sho", "Shanga" }, { "shp", "Shipibo-Conibo" }, { "shq", "Sala" }, { "shr", "Shi" }, { "shs", "Shuswap" }, { "sht", "Shasta" }, { "shu", "Chadian Arabic" }, { "shv", "Shehri" }, { "shw", "Shwai" }, { "shx", "She" }, { "shy", "Tachawit" }, { "shz", "Syenara Senoufo" }, { "sia", "Akkala Sami" }, { "sib", "Sebop" }, { "sid", "Sidamo" }, { "sie", "Simaa" }, { "sif", "Siamou" }, { "sig", "Paasaal" }, { "sih", "Zire" }, { "sii", "Shom Peng" }, { "sij", "Numbami" }, { "sik", "Sikiana" }, { "sil", "Tumulung Sisaala" }, { "sim", "Mende (Papua New Guinea)" }, { "sin", "Sinhala" }, { "sip", "Sikkimese" }, { "siq", "Sonia" }, { "sir", "Siri" }, { "sis", "Siuslaw" }, { "siu", "Sinagen" }, { "siv", "Sumariup" }, { "siw", "Siwai" }, { "six", "Sumau" }, { "siy", "Sivandi" }, { "siz", "Siwi" }, { "sja", "Epena" }, { "sjb", "Sajau Basap" }, { "sjd", "Kildin Sami" }, { "sje", "Pite Sami" }, { "sjg", "Assangori" }, { "sjk", "Kemi Sami" }, { "sjl", "Sajalong" }, { "sjm", "Mapun" }, { "sjn", "Sindarin" }, { "sjo", "Xibe" }, { "sjp", "Surjapuri" }, { "sjr", "Siar-Lak" }, { "sjs", "Senhaja De Srair" }, { "sjt", "Ter Sami" }, { "sju", "Ume Sami" }, { "sjw", "Shawnee" }, { "ska", "Skagit" }, { "skb", "Saek" }, { "skc", "Ma Manda" }, { "skd", "Southern Sierra Miwok" }, { "ske", "Seke (Vanuatu)" }, { "skf", "Sakirabiá" }, { "skg", "Sakalava Malagasy" }, { "skh", "Sikule" }, { "ski", "Sika" }, { "skj", "Seke (Nepal)" }, { "skk", "Sok" }, { "skm", "Kutong" }, { "skn", "Kolibugan Subanon" }, { "sko", "Seko Tengah" }, { "skp", "Sekapan" }, { "skq", "Sininkere" }, { "skr", "Seraiki" }, { "sks", "Maia" }, { "skt", "Sakata" }, { "sku", "Sakao" }, { "skv", "Skou" }, { "skw", "Skepi Creole Dutch" }, { "skx", "Seko Padang" }, { "sky", "Sikaiana" }, { "skz", "Sekar" }, { "slc", "Sáliba" }, { "sld", "Sissala" }, { "sle", "Sholaga" }, { "slf", "Swiss-Italian Sign Language" }, { "slg", "Selungai Murut" }, { "slh", "Southern Puget Sound Salish" }, { "sli", "Lower Silesian" }, { "slj", "Salumá" }, { "slk", "Slovak" }, { "sll", "Salt-Yui" }, { "slm", "Pangutaran Sama" }, { "sln", "Salinan" }, { "slp", "Lamaholot" }, { "slq", "Salchuq" }, { "slr", "Salar" }, { "sls", "Singapore Sign Language" }, { "slt", "Sila" }, { "slu", "Selaru" }, { "slv", "Slovenian" }, { "slw", "Sialum" }, { "slx", "Salampasu" }, { "sly", "Selayar" }, { "slz", "Ma'ya" }, { "sma", "Southern Sami" }, { "smb", "Simbari" }, { "smc", "Som" }, { "smd", "Sama" }, { "sme", "Northern Sami" }, { "smf", "Auwe" }, { "smg", "Simbali" }, { "smh", "Samei" }, { "smj", "Lule Sami" }, { "smk", "Bolinao" }, { "sml", "Central Sama" }, { "smm", "Musasa" }, { "smn", "Inari Sami" }, { "smo", "Samoan" }, { "smp", "Samaritan" }, { "smq", "Samo" }, { "smr", "Simeulue" }, { "sms", "Skolt Sami" }, { "smt", "Simte" }, { "smu", "Somray" }, { "smv", "Samvedi" }, { "smw", "Sumbawa" }, { "smx", "Samba" }, { "smy", "Semnani" }, { "smz", "Simeku" }, { "sna", "Shona" }, { "snb", "Sebuyau" }, { "snc", "Sinaugoro" }, { "snd", "Sindhi" }, { "sne", "Bau Bidayuh" }, { "snf", "Noon" }, { "sng", "Sanga (Democratic Republic of Congo)" }, { "snh", "Shinabo" }, { "sni", "Sensi" }, { "snj", "Riverain Sango" }, { "snk", "Soninke" }, { "snl", "Sangil" }, { "snm", "Southern Ma'di" }, { "snn", "Siona" }, { "sno", "Snohomish" }, { "snp", "Siane" }, { "snq", "Sangu (Gabon)" }, { "snr", "Sihan" }, { "sns", "South West Bay" }, { "snu", "Senggi" }, { "snv", "Sa'ban" }, { "snw", "Selee" }, { "snx", "Sam" }, { "sny", "Saniyo-Hiyewe" }, { "snz", "Sinsauru" }, { "soa", "Thai Song" }, { "sob", "Sobei" }, { "soc", "So (Democratic Republic of Congo)" }, { "sod", "Songoora" }, { "soe", "Songomeno" }, { "sog", "Sogdian" }, { "soh", "Aka" }, { "soi", "Sonha" }, { "soj", "Soi" }, { "sok", "Sokoro" }, { "sol", "Solos" }, { "som", "Somali" }, { "soo", "Songo" }, { "sop", "Songe" }, { "soq", "Kanasi" }, { "sor", "Somrai" }, { "sos", "Seeku" }, { "sot", "Southern Sotho" }, { "sou", "Southern Thai" }, { "sov", "Sonsorol" }, { "sow", "Sowanda" }, { "sox", "Swo" }, { "soy", "Miyobe" }, { "soz", "Temi" }, { "spa", "Spanish" }, { "spb", "Sepa (Indonesia)" }, { "spc", "Sapé" }, { "spd", "Saep" }, { "spe", "Sepa (Papua New Guinea)" }, { "spg", "Sian" }, { "spi", "Saponi" }, { "spk", "Sengo" }, { "spl", "Selepet" }, { "spm", "Akukem" }, { "spo", "Spokane" }, { "spp", "Supyire Senoufo" }, { "spq", "Loreto-Ucayali Spanish" }, { "spr", "Saparua" }, { "sps", "Saposa" }, { "spt", "Spiti Bhoti" }, { "spu", "Sapuan" }, { "spv", "Sambalpuri" }, { "spx", "South Picene" }, { "spy", "Sabaot" }, { "sqa", "Shama-Sambuga" }, { "sqh", "Shau" }, { "sqi", "Albanian" }, { "sqk", "Albanian Sign Language" }, { "sqm", "Suma" }, { "sqn", "Susquehannock" }, { "sqo", "Sorkhei" }, { "sqq", "Sou" }, { "sqr", "Siculo Arabic" }, { "sqs", "Sri Lankan Sign Language" }, { "sqt", "Soqotri" }, { "squ", "Squamish" }, { "sra", "Saruga" }, { "srb", "Sora" }, { "src", "Logudorese Sardinian" }, { "srd", "Sardinian" }, { "sre", "Sara" }, { "srf", "Nafi" }, { "srg", "Sulod" }, { "srh", "Sarikoli" }, { "sri", "Siriano" }, { "srk", "Serudung Murut" }, { "srl", "Isirawa" }, { "srm", "Saramaccan" }, { "srn", "Sranan Tongo" }, { "sro", "Campidanese Sardinian" }, { "srp", "Serbian" }, { "srq", "Sirionó" }, { "srr", "Serer" }, { "srs", "Sarsi" }, { "srt", "Sauri" }, { "sru", "Suruí" }, { "srv", "Southern Sorsoganon" }, { "srw", "Serua" }, { "srx", "Sirmauri" }, { "sry", "Sera" }, { "srz", "Shahmirzadi" }, { "ssb", "Southern Sama" }, { "ssc", "Suba-Simbiti" }, { "ssd", "Siroi" }, { "sse", "Balangingi" }, { "ssf", "Thao" }, { "ssg", "Seimat" }, { "ssh", "Shihhi Arabic" }, { "ssi", "Sansi" }, { "ssj", "Sausi" }, { "ssk", "Sunam" }, { "ssl", "Western Sisaala" }, { "ssm", "Semnam" }, { "ssn", "Waata" }, { "sso", "Sissano" }, { "ssp", "Spanish Sign Language" }, { "ssq", "So'a" }, { "ssr", "Swiss-French Sign Language" }, { "sss", "Sô" }, { "sst", "Sinasina" }, { "ssu", "Susuami" }, { "ssv", "Shark Bay" }, { "ssw", "Swati" }, { "ssx", "Samberigi" }, { "ssy", "Saho" }, { "ssz", "Sengseng" }, { "sta", "Settla" }, { "stb", "Northern Subanen" }, { "std", "Sentinel" }, { "ste", "Liana-Seti" }, { "stf", "Seta" }, { "stg", "Trieng" }, { "sth", "Shelta" }, { "sti", "Bulo Stieng" }, { "stj", "Matya Samo" }, { "stk", "Arammba" }, { "stl", "Stellingwerfs" }, { "stm", "Setaman" }, { "stn", "Owa" }, { "sto", "Stoney" }, { "stp", "Southeastern Tepehuan" }, { "stq", "Saterfriesisch" }, { "str", "Straits Salish" }, { "sts", "Shumashti" }, { "stt", "Budeh Stieng" }, { "stu", "Samtao" }, { "stv", "Silt'e" }, { "stw", "Satawalese" }, { "sty", "Siberian Tatar" }, { "sua", "Sulka" }, { "sub", "Suku" }, { "suc", "Western Subanon" }, { "sue", "Suena" }, { "sug", "Suganga" }, { "sui", "Suki" }, { "suj", "Shubi" }, { "suk", "Sukuma" }, { "sun", "Sundanese" }, { "suq", "Suri" }, { "sur", "Mwaghavul" }, { "sus", "Susu" }, { "sut", "Subtiaba" }, { "suv", "Puroik" }, { "suw", "Sumbwa" }, { "sux", "Sumerian" }, { "suy", "Suyá" }, { "suz", "Sunwar" }, { "sva", "Svan" }, { "svb", "Ulau-Suain" }, { "svc", "Vincentian Creole English" }, { "sve", "Serili" }, { "svk", "Slovakian Sign Language" }, { "svm", "Slavomolisano" }, { "svr", "Savara" }, { "svs", "Savosavo" }, { "svx", "Skalvian" }, { "swa", "Swahili (macrolanguage)" }, { "swb", "Maore Comorian" }, { "swc", "Congo Swahili" }, { "swe", "Swedish" }, { "swf", "Sere" }, { "swg", "Swabian" }, { "swh", "Swahili (individual language)" }, { "swi", "Sui" }, { "swj", "Sira" }, { "swk", "Malawi Sena" }, { "swl", "Swedish Sign Language" }, { "swm", "Samosa" }, { "swn", "Sawknah" }, { "swo", "Shanenawa" }, { "swp", "Suau" }, { "swq", "Sharwa" }, { "swr", "Saweru" }, { "sws", "Seluwasan" }, { "swt", "Sawila" }, { "swu", "Suwawa" }, { "swv", "Shekhawati" }, { "sww", "Sowa" }, { "swx", "Suruahá" }, { "swy", "Sarua" }, { "sxb", "Suba" }, { "sxc", "Sicanian" }, { "sxe", "Sighu" }, { "sxg", "Shixing" }, { "sxk", "Southern Kalapuya" }, { "sxl", "Selian" }, { "sxm", "Samre" }, { "sxn", "Sangir" }, { "sxo", "Sorothaptic" }, { "sxr", "Saaroa" }, { "sxs", "Sasaru" }, { "sxu", "Upper Saxon" }, { "sxw", "Saxwe Gbe" }, { "sya", "Siang" }, { "syb", "Central Subanen" }, { "syc", "Classical Syriac" }, { "syi", "Seki" }, { "syk", "Sukur" }, { "syl", "Sylheti" }, { "sym", "Maya Samo" }, { "syn", "Senaya" }, { "syo", "Suoy" }, { "syr", "Syriac" }, { "sys", "Sinyar" }, { "syw", "Kagate" }, { "syy", "Al-Sayyid Bedouin Sign Language" }, { "sza", "Semelai" }, { "szb", "Ngalum" }, { "szc", "Semaq Beri" }, { "szd", "Seru" }, { "sze", "Seze" }, { "szg", "Sengele" }, { "szl", "Silesian" }, { "szn", "Sula" }, { "szp", "Suabo" }, { "szv", "Isu (Fako Division)" }, { "szw", "Sawai" }, { "taa", "Lower Tanana" }, { "tab", "Tabassaran" }, { "tac", "Lowland Tarahumara" }, { "tad", "Tause" }, { "tae", "Tariana" }, { "taf", "Tapirapé" }, { "tag", "Tagoi" }, { "tah", "Tahitian" }, { "taj", "Eastern Tamang" }, { "tak", "Tala" }, { "tal", "Tal" }, { "tam", "Tamil" }, { "tan", "Tangale" }, { "tao", "Yami" }, { "tap", "Taabwa" }, { "taq", "Tamasheq" }, { "tar", "Central Tarahumara" }, { "tas", "Tay Boi" }, { "tat", "Tatar" }, { "tau", "Upper Tanana" }, { "tav", "Tatuyo" }, { "taw", "Tai" }, { "tax", "Tamki" }, { "tay", "Atayal" }, { "taz", "Tocho" }, { "tba", "Aikanã" }, { "tbb", "Tapeba" }, { "tbc", "Takia" }, { "tbd", "Kaki Ae" }, { "tbe", "Tanimbili" }, { "tbf", "Mandara" }, { "tbg", "North Tairora" }, { "tbh", "Thurawal" }, { "tbi", "Gaam" }, { "tbj", "Tiang" }, { "tbk", "Calamian Tagbanwa" }, { "tbl", "Tboli" }, { "tbm", "Tagbu" }, { "tbn", "Barro Negro Tunebo" }, { "tbo", "Tawala" }, { "tbp", "Taworta" }, { "tbr", "Tumtum" }, { "tbs", "Tanguat" }, { "tbt", "Tembo (Kitembo)" }, { "tbu", "Tubar" }, { "tbv", "Tobo" }, { "tbw", "Tagbanwa" }, { "tbx", "Kapin" }, { "tby", "Tabaru" }, { "tbz", "Ditammari" }, { "tca", "Ticuna" }, { "tcb", "Tanacross" }, { "tcc", "Datooga" }, { "tcd", "Tafi" }, { "tce", "Southern Tutchone" }, { "tcf", "Malinaltepec Me'phaa" }, { "tcg", "Tamagario" }, { "tch", "Turks And Caicos Creole English" }, { "tci", "Wára" }, { "tck", "Tchitchege" }, { "tcl", "Taman (Myanmar)" }, { "tcm", "Tanahmerah" }, { "tcn", "Tichurong" }, { "tco", "Taungyo" }, { "tcp", "Tawr Chin" }, { "tcq", "Kaiy" }, { "tcs", "Torres Strait Creole" }, { "tct", "T'en" }, { "tcu", "Southeastern Tarahumara" }, { "tcw", "Tecpatlán Totonac" }, { "tcx", "Toda" }, { "tcy", "Tulu" }, { "tcz", "Thado Chin" }, { "tda", "Tagdal" }, { "tdb", "Panchpargania" }, { "tdc", "Emberá-Tadó" }, { "tdd", "Tai Nüa" }, { "tde", "Tiranige Diga Dogon" }, { "tdf", "Talieng" }, { "tdg", "Western Tamang" }, { "tdh", "Thulung" }, { "tdi", "Tomadino" }, { "tdj", "Tajio" }, { "tdk", "Tambas" }, { "tdl", "Sur" }, { "tdn", "Tondano" }, { "tdo", "Teme" }, { "tdq", "Tita" }, { "tdr", "Todrah" }, { "tds", "Doutai" }, { "tdt", "Tetun Dili" }, { "tdu", "Tempasuk Dusun" }, { "tdv", "Toro" }, { "tdx", "Tandroy-Mahafaly Malagasy" }, { "tdy", "Tadyawan" }, { "tea", "Temiar" }, { "teb", "Tetete" }, { "tec", "Terik" }, { "ted", "Tepo Krumen" }, { "tee", "Huehuetla Tepehua" }, { "tef", "Teressa" }, { "teg", "Teke-Tege" }, { "teh", "Tehuelche" }, { "tei", "Torricelli" }, { "tek", "Ibali Teke" }, { "tel", "Telugu" }, { "tem", "Timne" }, { "ten", "Tama (Colombia)" }, { "teo", "Teso" }, { "tep", "Tepecano" }, { "teq", "Temein" }, { "ter", "Tereno" }, { "tes", "Tengger" }, { "tet", "Tetum" }, { "teu", "Soo" }, { "tev", "Teor" }, { "tew", "Tewa (USA)" }, { "tex", "Tennet" }, { "tey", "Tulishi" }, { "tfi", "Tofin Gbe" }, { "tfn", "Tanaina" }, { "tfo", "Tefaro" }, { "tfr", "Teribe" }, { "tft", "Ternate" }, { "tga", "Sagalla" }, { "tgb", "Tobilung" }, { "tgc", "Tigak" }, { "tgd", "Ciwogai" }, { "tge", "Eastern Gorkha Tamang" }, { "tgf", "Chalikha" }, { "tgh", "Tobagonian Creole English" }, { "tgi", "Lawunuia" }, { "tgj", "Tagin" }, { "tgk", "Tajik" }, { "tgl", "Tagalog" }, { "tgn", "Tandaganon" }, { "tgo", "Sudest" }, { "tgp", "Tangoa" }, { "tgq", "Tring" }, { "tgr", "Tareng" }, { "tgs", "Nume" }, { "tgt", "Central Tagbanwa" }, { "tgu", "Tanggu" }, { "tgv", "Tingui-Boto" }, { "tgw", "Tagwana Senoufo" }, { "tgx", "Tagish" }, { "tgy", "Togoyo" }, { "tgz", "Tagalaka" }, { "tha", "Thai" }, { "thc", "Tai Hang Tong" }, { "thd", "Thayore" }, { "the", "Chitwania Tharu" }, { "thf", "Thangmi" }, { "thh", "Northern Tarahumara" }, { "thi", "Tai Long" }, { "thk", "Tharaka" }, { "thl", "Dangaura Tharu" }, { "thm", "Aheu" }, { "thn", "Thachanadan" }, { "thp", "Thompson" }, { "thq", "Kochila Tharu" }, { "thr", "Rana Tharu" }, { "ths", "Thakali" }, { "tht", "Tahltan" }, { "thu", "Thuri" }, { "thv", "Tahaggart Tamahaq" }, { "thw", "Thudam" }, { "thx", "The" }, { "thy", "Tha" }, { "thz", "Tayart Tamajeq" }, { "tia", "Tidikelt Tamazight" }, { "tic", "Tira" }, { "tid", "Tidong" }, { "tif", "Tifal" }, { "tig", "Tigre" }, { "tih", "Timugon Murut" }, { "tii", "Tiene" }, { "tij", "Tilung" }, { "tik", "Tikar" }, { "til", "Tillamook" }, { "tim", "Timbe" }, { "tin", "Tindi" }, { "tio", "Teop" }, { "tip", "Trimuris" }, { "tiq", "Tiéfo" }, { "tir", "Tigrinya" }, { "tis", "Masadiit Itneg" }, { "tit", "Tinigua" }, { "tiu", "Adasen" }, { "tiv", "Tiv" }, { "tiw", "Tiwi" }, { "tix", "Southern Tiwa" }, { "tiy", "Tiruray" }, { "tiz", "Tai Hongjin" }, { "tja", "Tajuasohn" }, { "tjg", "Tunjung" }, { "tji", "Northern Tujia" }, { "tjl", "Tai Laing" }, { "tjm", "Timucua" }, { "tjn", "Tonjon" }, { "tjo", "Temacine Tamazight" }, { "tjs", "Southern Tujia" }, { "tju", "Tjurruru" }, { "tjw", "Djabwurrung" }, { "tka", "Truká" }, { "tkb", "Buksa" }, { "tkd", "Tukudede" }, { "tke", "Takwane" }, { "tkf", "Tukumanféd" }, { "tkg", "Tesaka Malagasy" }, { "tkl", "Tokelau" }, { "tkm", "Takelma" }, { "tkn", "Toku-No-Shima" }, { "tkp", "Tikopia" }, { "tkq", "Tee" }, { "tkr", "Tsakhur" }, { "tks", "Takestani" }, { "tkt", "Kathoriya Tharu" }, { "tku", "Upper Necaxa Totonac" }, { "tkw", "Teanu" }, { "tkx", "Tangko" }, { "tkz", "Takua" }, { "tla", "Southwestern Tepehuan" }, { "tlb", "Tobelo" }, { "tlc", "Yecuatla Totonac" }, { "tld", "Talaud" }, { "tlf", "Telefol" }, { "tlg", "Tofanma" }, { "tlh", "Klingon" }, { "tli", "Tlingit" }, { "tlj", "Talinga-Bwisi" }, { "tlk", "Taloki" }, { "tll", "Tetela" }, { "tlm", "Tolomako" }, { "tln", "Talondo'" }, { "tlo", "Talodi" }, { "tlp", "Filomena Mata-Coahuitlán Totonac" }, { "tlq", "Tai Loi" }, { "tlr", "Talise" }, { "tls", "Tambotalo" }, { "tlt", "Teluti" }, { "tlu", "Tulehu" }, { "tlv", "Taliabu" }, { "tlx", "Khehek" }, { "tly", "Talysh" }, { "tma", "Tama (Chad)" }, { "tmb", "Katbol" }, { "tmc", "Tumak" }, { "tmd", "Haruai" }, { "tme", "Tremembé" }, { "tmf", "Toba-Maskoy" }, { "tmg", "Ternateño" }, { "tmh", "Tamashek" }, { "tmi", "Tutuba" }, { "tmj", "Samarokena" }, { "tmk", "Northwestern Tamang" }, { "tml", "Tamnim Citak" }, { "tmm", "Tai Thanh" }, { "tmn", "Taman (Indonesia)" }, { "tmo", "Temoq" }, { "tmp", "Tai Mène" }, { "tmq", "Tumleo" }, { "tmr", "Jewish Babylonian Aramaic (ca. 200-1200 CE)" }, { "tms", "Tima" }, { "tmt", "Tasmate" }, { "tmu", "Iau" }, { "tmv", "Tembo (Motembo)" }, { "tmw", "Temuan" }, { "tmy", "Tami" }, { "tmz", "Tamanaku" }, { "tna", "Tacana" }, { "tnb", "Western Tunebo" }, { "tnc", "Tanimuca-Retuarã" }, { "tnd", "Angosturas Tunebo" }, { "tne", "Tinoc Kallahan" }, { "tng", "Tobanga" }, { "tnh", "Maiani" }, { "tni", "Tandia" }, { "tnk", "Kwamera" }, { "tnl", "Lenakel" }, { "tnm", "Tabla" }, { "tnn", "North Tanna" }, { "tno", "Toromono" }, { "tnp", "Whitesands" }, { "tnq", "Taino" }, { "tnr", "Ménik" }, { "tns", "Tenis" }, { "tnt", "Tontemboan" }, { "tnu", "Tay Khang" }, { "tnv", "Tangchangya" }, { "tnw", "Tonsawang" }, { "tnx", "Tanema" }, { "tny", "Tongwe" }, { "tnz", "Tonga (Thailand)" }, { "tob", "Toba" }, { "toc", "Coyutla Totonac" }, { "tod", "Toma" }, { "toe", "Tomedes" }, { "tof", "Gizrra" }, { "tog", "Tonga (Nyasa)" }, { "toh", "Gitonga" }, { "toi", "Tonga (Zambia)" }, { "toj", "Tojolabal" }, { "tol", "Tolowa" }, { "tom", "Tombulu" }, { "ton", "Tonga (Tonga Islands)" }, { "too", "Xicotepec De Juárez Totonac" }, { "top", "Papantla Totonac" }, { "toq", "Toposa" }, { "tor", "Togbo-Vara Banda" }, { "tos", "Highland Totonac" }, { "tou", "Tho" }, { "tov", "Upper Taromi" }, { "tow", "Jemez" }, { "tox", "Tobian" }, { "toy", "Topoiyo" }, { "toz", "To" }, { "tpa", "Taupota" }, { "tpc", "Azoyú Me'phaa" }, { "tpe", "Tippera" }, { "tpf", "Tarpia" }, { "tpg", "Kula" }, { "tpi", "Tok Pisin" }, { "tpj", "Tapieté" }, { "tpk", "Tupinikin" }, { "tpl", "Tlacoapa Me'phaa" }, { "tpm", "Tampulma" }, { "tpn", "Tupinambá" }, { "tpo", "Tai Pao" }, { "tpp", "Pisaflores Tepehua" }, { "tpq", "Tukpa" }, { "tpr", "Tuparí" }, { "tpt", "Tlachichilco Tepehua" }, { "tpu", "Tampuan" }, { "tpv", "Tanapag" }, { "tpw", "Tupí" }, { "tpx", "Acatepec Me'phaa" }, { "tpy", "Trumai" }, { "tpz", "Tinputz" }, { "tqb", "Tembé" }, { "tql", "Lehali" }, { "tqm", "Turumsa" }, { "tqn", "Tenino" }, { "tqo", "Toaripi" }, { "tqp", "Tomoip" }, { "tqq", "Tunni" }, { "tqr", "Torona" }, { "tqt", "Western Totonac" }, { "tqu", "Touo" }, { "tqw", "Tonkawa" }, { "tra", "Tirahi" }, { "trb", "Terebu" }, { "trc", "Copala Triqui" }, { "trd", "Turi" }, { "tre", "East Tarangan" }, { "trf", "Trinidadian Creole English" }, { "trg", "Lishán Didán" }, { "trh", "Turaka" }, { "tri", "Trió" }, { "trj", "Toram" }, { "trl", "Traveller Scottish" }, { "trm", "Tregami" }, { "trn", "Trinitario" }, { "tro", "Tarao Naga" }, { "trp", "Kok Borok" }, { "trq", "San Martín Itunyoso Triqui" }, { "trr", "Taushiro" }, { "trs", "Chicahuaxtla Triqui" }, { "trt", "Tunggare" }, { "tru", "Turoyo" }, { "trv", "Taroko" }, { "trw", "Torwali" }, { "trx", "Tringgus-Sembaan Bidayuh" }, { "try", "Turung" }, { "trz", "Torá" }, { "tsa", "Tsaangi" }, { "tsb", "Tsamai" }, { "tsc", "Tswa" }, { "tsd", "Tsakonian" }, { "tse", "Tunisian Sign Language" }, { "tsf", "Southwestern Tamang" }, { "tsg", "Tausug" }, { "tsh", "Tsuvan" }, { "tsi", "Tsimshian" }, { "tsj", "Tshangla" }, { "tsk", "Tseku" }, { "tsl", "Ts'ün-Lao" }, { "tsm", "Turkish Sign Language" }, { "tsn", "Tswana" }, { "tso", "Tsonga" }, { "tsp", "Northern Toussian" }, { "tsq", "Thai Sign Language" }, { "tsr", "Akei" }, { "tss", "Taiwan Sign Language" }, { "tst", "Tondi Songway Kiini" }, { "tsu", "Tsou" }, { "tsv", "Tsogo" }, { "tsw", "Tsishingini" }, { "tsx", "Mubami" }, { "tsy", "Tebul Sign Language" }, { "tsz", "Purepecha" }, { "tta", "Tutelo" }, { "ttb", "Gaa" }, { "ttc", "Tektiteko" }, { "ttd", "Tauade" }, { "tte", "Bwanabwana" }, { "ttf", "Tuotomb" }, { "ttg", "Tutong" }, { "tth", "Upper Ta'oih" }, { "tti", "Tobati" }, { "ttj", "Tooro" }, { "ttk", "Totoro" }, { "ttl", "Totela" }, { "ttm", "Northern Tutchone" }, { "ttn", "Towei" }, { "tto", "Lower Ta'oih" }, { "ttp", "Tombelala" }, { "ttq", "Tawallammat Tamajaq" }, { "ttr", "Tera" }, { "tts", "Northeastern Thai" }, { "ttt", "Muslim Tat" }, { "ttu", "Torau" }, { "ttv", "Titan" }, { "ttw", "Long Wat" }, { "tty", "Sikaritai" }, { "ttz", "Tsum" }, { "tua", "Wiarumus" }, { "tub", "Tübatulabal" }, { "tuc", "Mutu" }, { "tud", "Tuxá" }, { "tue", "Tuyuca" }, { "tuf", "Central Tunebo" }, { "tug", "Tunia" }, { "tuh", "Taulil" }, { "tui", "Tupuri" }, { "tuj", "Tugutil" }, { "tuk", "Turkmen" }, { "tul", "Tula" }, { "tum", "Tumbuka" }, { "tun", "Tunica" }, { "tuo", "Tucano" }, { "tuq", "Tedaga" }, { "tur", "Turkish" }, { "tus", "Tuscarora" }, { "tuu", "Tututni" }, { "tuv", "Turkana" }, { "tux", "Tuxináwa" }, { "tuy", "Tugen" }, { "tuz", "Turka" }, { "tva", "Vaghua" }, { "tvd", "Tsuvadi" }, { "tve", "Te'un" }, { "tvk", "Southeast Ambrym" }, { "tvl", "Tuvalu" }, { "tvm", "Tela-Masbuar" }, { "tvn", "Tavoyan" }, { "tvo", "Tidore" }, { "tvs", "Taveta" }, { "tvt", "Tutsa Naga" }, { "tvu", "Tunen" }, { "tvw", "Sedoa" }, { "tvy", "Timor Pidgin" }, { "twa", "Twana" }, { "twb", "Western Tawbuid" }, { "twc", "Teshenawa" }, { "twd", "Twents" }, { "twe", "Tewa (Indonesia)" }, { "twf", "Northern Tiwa" }, { "twg", "Tereweng" }, { "twh", "Tai Dón" }, { "twi", "Twi" }, { "twl", "Tawara" }, { "twm", "Tawang Monpa" }, { "twn", "Twendi" }, { "two", "Tswapong" }, { "twp", "Ere" }, { "twq", "Tasawaq" }, { "twr", "Southwestern Tarahumara" }, { "twt", "Turiwára" }, { "twu", "Termanu" }, { "tww", "Tuwari" }, { "twx", "Tewe" }, { "twy", "Tawoyan" }, { "txa", "Tombonuo" }, { "txb", "Tokharian B" }, { "txc", "Tsetsaut" }, { "txe", "Totoli" }, { "txg", "Tangut" }, { "txh", "Thracian" }, { "txi", "Ikpeng" }, { "txm", "Tomini" }, { "txn", "West Tarangan" }, { "txo", "Toto" }, { "txq", "Tii" }, { "txr", "Tartessian" }, { "txs", "Tonsea" }, { "txt", "Citak" }, { "txu", "Kayapó" }, { "txx", "Tatana" }, { "txy", "Tanosy Malagasy" }, { "tya", "Tauya" }, { "tye", "Kyanga" }, { "tyh", "O'du" }, { "tyi", "Teke-Tsaayi" }, { "tyj", "Tai Do" }, { "tyl", "Thu Lao" }, { "tyn", "Kombai" }, { "typ", "Thaypan" }, { "tyr", "Tai Daeng" }, { "tys", "Tày Sa Pa" }, { "tyt", "Tày Tac" }, { "tyu", "Kua" }, { "tyv", "Tuvinian" }, { "tyx", "Teke-Tyee" }, { "tyz", "Tày" }, { "tza", "Tanzanian Sign Language" }, { "tzh", "Tzeltal" }, { "tzj", "Tz'utujil" }, { "tzl", "Talossan" }, { "tzm", "Central Atlas Tamazight" }, { "tzn", "Tugun" }, { "tzo", "Tzotzil" }, { "tzx", "Tabriak" }, { "uam", "Uamué" }, { "uan", "Kuan" }, { "uar", "Tairuma" }, { "uba", "Ubang" }, { "ubi", "Ubi" }, { "ubl", "Buhi'non Bikol" }, { "ubr", "Ubir" }, { "ubu", "Umbu-Ungu" }, { "uby", "Ubykh" }, { "uda", "Uda" }, { "ude", "Udihe" }, { "udg", "Muduga" }, { "udi", "Udi" }, { "udj", "Ujir" }, { "udl", "Wuzlam" }, { "udm", "Udmurt" }, { "udu", "Uduk" }, { "ues", "Kioko" }, { "ufi", "Ufim" }, { "uga", "Ugaritic" }, { "ugb", "Kuku-Ugbanh" }, { "uge", "Ughele" }, { "ugn", "Ugandan Sign Language" }, { "ugo", "Ugong" }, { "ugy", "Uruguayan Sign Language" }, { "uha", "Uhami" }, { "uhn", "Damal" }, { "uig", "Uighur" }, { "uis", "Uisai" }, { "uiv", "Iyive" }, { "uji", "Tanjijili" }, { "uka", "Kaburi" }, { "ukg", "Ukuriguma" }, { "ukh", "Ukhwejo" }, { "ukl", "Ukrainian Sign Language" }, { "ukp", "Ukpe-Bayobiri" }, { "ukq", "Ukwa" }, { "ukr", "Ukrainian" }, { "uks", "Urubú-Kaapor Sign Language" }, { "uku", "Ukue" }, { "ukw", "Ukwuani-Aboh-Ndoni" }, { "uky", "Kuuk-Yak" }, { "ula", "Fungwa" }, { "ulb", "Ulukwumi" }, { "ulc", "Ulch" }, { "ule", "Lule" }, { "ulf", "Usku" }, { "uli", "Ulithian" }, { "ulk", "Meriam" }, { "ull", "Ullatan" }, { "ulm", "Ulumanda'" }, { "uln", "Unserdeutsch" }, { "ulu", "Uma' Lung" }, { "ulw", "Ulwa" }, { "uma", "Umatilla" }, { "umb", "Umbundu" }, { "umc", "Marrucinian" }, { "umd", "Umbindhamu" }, { "umg", "Umbuygamu" }, { "umi", "Ukit" }, { "umm", "Umon" }, { "umn", "Makyan Naga" }, { "umo", "Umotína" }, { "ump", "Umpila" }, { "umr", "Umbugarla" }, { "ums", "Pendau" }, { "umu", "Munsee" }, { "una", "North Watut" }, { "und", "Undetermined" }, { "une", "Uneme" }, { "ung", "Ngarinyin" }, { "unk", "Enawené-Nawé" }, { "unm", "Unami" }, { "unn", "Kurnai" }, { "unr", "Mundari" }, { "unu", "Unubahe" }, { "unx", "Munda" }, { "unz", "Unde Kaili" }, { "uok", "Uokha" }, { "upi", "Umeda" }, { "upv", "Uripiv-Wala-Rano-Atchin" }, { "ura", "Urarina" }, { "urb", "Urubú-Kaapor" }, { "urc", "Urningangg" }, { "urd", "Urdu" }, { "ure", "Uru" }, { "urf", "Uradhi" }, { "urg", "Urigina" }, { "urh", "Urhobo" }, { "uri", "Urim" }, { "urk", "Urak Lawoi'" }, { "url", "Urali" }, { "urm", "Urapmin" }, { "urn", "Uruangnirin" }, { "uro", "Ura (Papua New Guinea)" }, { "urp", "Uru-Pa-In" }, { "urr", "Lehalurup" }, { "urt", "Urat" }, { "uru", "Urumi" }, { "urv", "Uruava" }, { "urw", "Sop" }, { "urx", "Urimo" }, { "ury", "Orya" }, { "urz", "Uru-Eu-Wau-Wau" }, { "usa", "Usarufa" }, { "ush", "Ushojo" }, { "usi", "Usui" }, { "usk", "Usaghade" }, { "usp", "Uspanteco" }, { "usu", "Uya" }, { "uta", "Otank" }, { "ute", "Ute-Southern Paiute" }, { "utp", "Amba (Solomon Islands)" }, { "utr", "Etulo" }, { "utu", "Utu" }, { "uum", "Urum" }, { "uun", "Kulon-Pazeh" }, { "uur", "Ura (Vanuatu)" }, { "uuu", "U" }, { "uve", "West Uvean" }, { "uvh", "Uri" }, { "uvl", "Lote" }, { "uwa", "Kuku-Uwanh" }, { "uya", "Doko-Uyanga" }, { "uzb", "Uzbek" }, { "uzn", "Northern Uzbek" }, { "uzs", "Southern Uzbek" }, { "vaa", "Vaagri Booli" }, { "vae", "Vale" }, { "vaf", "Vafsi" }, { "vag", "Vagla" }, { "vah", "Varhadi-Nagpuri" }, { "vai", "Vai" }, { "vaj", "Vasekela Bushman" }, { "val", "Vehes" }, { "vam", "Vanimo" }, { "van", "Valman" }, { "vao", "Vao" }, { "vap", "Vaiphei" }, { "var", "Huarijio" }, { "vas", "Vasavi" }, { "vau", "Vanuma" }, { "vav", "Varli" }, { "vay", "Wayu" }, { "vbb", "Southeast Babar" }, { "vbk", "Southwestern Bontok" }, { "vec", "Venetian" }, { "ved", "Veddah" }, { "vel", "Veluws" }, { "vem", "Vemgo-Mabas" }, { "ven", "Venda" }, { "veo", "Ventureño" }, { "vep", "Veps" }, { "ver", "Mom Jango" }, { "vgr", "Vaghri" }, { "vgt", "Vlaamse Gebarentaal" }, { "vic", "Virgin Islands Creole English" }, { "vid", "Vidunda" }, { "vie", "Vietnamese" }, { "vif", "Vili" }, { "vig", "Viemo" }, { "vil", "Vilela" }, { "vin", "Vinza" }, { "vis", "Vishavan" }, { "vit", "Viti" }, { "viv", "Iduna" }, { "vka", "Kariyarra" }, { "vki", "Ija-Zuba" }, { "vkj", "Kujarge" }, { "vkk", "Kaur" }, { "vkl", "Kulisusu" }, { "vkm", "Kamakan" }, { "vko", "Kodeoha" }, { "vkp", "Korlai Creole Portuguese" }, { "vkt", "Tenggarong Kutai Malay" }, { "vku", "Kurrama" }, { "vlp", "Valpei" }, { "vls", "Vlaams" }, { "vma", "Martuyhunira" }, { "vmb", "Barbaram" }, { "vmc", "Juxtlahuaca Mixtec" }, { "vmd", "Mudu Koraga" }, { "vme", "East Masela" }, { "vmf", "Mainfränkisch" }, { "vmg", "Lungalunga" }, { "vmh", "Maraghei" }, { "vmi", "Miwa" }, { "vmj", "Ixtayutla Mixtec" }, { "vmk", "Makhuwa-Shirima" }, { "vml", "Malgana" }, { "vmm", "Mitlatongo Mixtec" }, { "vmp", "Soyaltepec Mazatec" }, { "vmq", "Soyaltepec Mixtec" }, { "vmr", "Marenje" }, { "vms", "Moksela" }, { "vmu", "Muluridyi" }, { "vmv", "Valley Maidu" }, { "vmw", "Makhuwa" }, { "vmx", "Tamazola Mixtec" }, { "vmy", "Ayautla Mazatec" }, { "vmz", "Mazatlán Mazatec" }, { "vnk", "Vano" }, { "vnm", "Vinmavis" }, { "vnp", "Vunapu" }, { "vol", "Volapük" }, { "vor", "Voro" }, { "vot", "Votic" }, { "vra", "Vera'a" }, { "vro", "Võro" }, { "vrs", "Varisi" }, { "vrt", "Burmbar" }, { "vsi", "Moldova Sign Language" }, { "vsl", "Venezuelan Sign Language" }, { "vsv", "Valencian Sign Language" }, { "vto", "Vitou" }, { "vum", "Vumbu" }, { "vun", "Vunjo" }, { "vut", "Vute" }, { "vwa", "Awa (China)" }, { "waa", "Walla Walla" }, { "wab", "Wab" }, { "wac", "Wasco-Wishram" }, { "wad", "Wandamen" }, { "wae", "Walser" }, { "waf", "Wakoná" }, { "wag", "Wa'ema" }, { "wah", "Watubela" }, { "wai", "Wares" }, { "waj", "Waffa" }, { "wal", "Wolaytta" }, { "wam", "Wampanoag" }, { "wan", "Wan" }, { "wao", "Wappo" }, { "wap", "Wapishana" }, { "waq", "Wageman" }, { "war", "Waray (Philippines)" }, { "was", "Washo" }, { "wat", "Kaninuwa" }, { "wau", "Waurá" }, { "wav", "Waka" }, { "waw", "Waiwai" }, { "wax", "Watam" }, { "way", "Wayana" }, { "waz", "Wampur" }, { "wba", "Warao" }, { "wbb", "Wabo" }, { "wbe", "Waritai" }, { "wbf", "Wara" }, { "wbh", "Wanda" }, { "wbi", "Vwanji" }, { "wbj", "Alagwa" }, { "wbk", "Waigali" }, { "wbl", "Wakhi" }, { "wbm", "Wa" }, { "wbp", "Warlpiri" }, { "wbq", "Waddar" }, { "wbr", "Wagdi" }, { "wbt", "Wanman" }, { "wbv", "Wajarri" }, { "wbw", "Woi" }, { "wca", "Yanomámi" }, { "wci", "Waci Gbe" }, { "wdd", "Wandji" }, { "wdg", "Wadaginam" }, { "wdj", "Wadjiginy" }, { "wdk", "Wadikali" }, { "wdu", "Wadjigu" }, { "wdy", "Wadjabangayi" }, { "wea", "Wewaw" }, { "wec", "Wè Western" }, { "wed", "Wedau" }, { "weg", "Wergaia" }, { "weh", "Weh" }, { "wei", "Kiunum" }, { "wem", "Weme Gbe" }, { "weo", "Wemale" }, { "wep", "Westphalien" }, { "wer", "Weri" }, { "wes", "Cameroon Pidgin" }, { "wet", "Perai" }, { "weu", "Rawngtu Chin" }, { "wew", "Wejewa" }, { "wfg", "Yafi" }, { "wga", "Wagaya" }, { "wgb", "Wagawaga" }, { "wgg", "Wangganguru" }, { "wgi", "Wahgi" }, { "wgo", "Waigeo" }, { "wgu", "Wirangu" }, { "wgy", "Warrgamay" }, { "wha", "Manusela" }, { "whg", "North Wahgi" }, { "whk", "Wahau Kenyah" }, { "whu", "Wahau Kayan" }, { "wib", "Southern Toussian" }, { "wic", "Wichita" }, { "wie", "Wik-Epa" }, { "wif", "Wik-Keyangan" }, { "wig", "Wik-Ngathana" }, { "wih", "Wik-Me'anha" }, { "wii", "Minidien" }, { "wij", "Wik-Iiyanh" }, { "wik", "Wikalkan" }, { "wil", "Wilawila" }, { "wim", "Wik-Mungkan" }, { "win", "Ho-Chunk" }, { "wir", "Wiraféd" }, { "wiu", "Wiru" }, { "wiv", "Vitu" }, { "wiy", "Wiyot" }, { "wja", "Waja" }, { "wji", "Warji" }, { "wka", "Kw'adza" }, { "wkb", "Kumbaran" }, { "wkd", "Wakde" }, { "wkl", "Kalanadi" }, { "wku", "Kunduvadi" }, { "wkw", "Wakawaka" }, { "wky", "Wangkayutyuru" }, { "wla", "Walio" }, { "wlc", "Mwali Comorian" }, { "wle", "Wolane" }, { "wlg", "Kunbarlang" }, { "wli", "Waioli" }, { "wlk", "Wailaki" }, { "wll", "Wali (Sudan)" }, { "wlm", "Middle Welsh" }, { "wln", "Walloon" }, { "wlo", "Wolio" }, { "wlr", "Wailapa" }, { "wls", "Wallisian" }, { "wlu", "Wuliwuli" }, { "wlv", "Wichí Lhamtés Vejoz" }, { "wlw", "Walak" }, { "wlx", "Wali (Ghana)" }, { "wly", "Waling" }, { "wma", "Mawa (Nigeria)" }, { "wmb", "Wambaya" }, { "wmc", "Wamas" }, { "wmd", "Mamaindé" }, { "wme", "Wambule" }, { "wmh", "Waima'a" }, { "wmi", "Wamin" }, { "wmm", "Maiwa (Indonesia)" }, { "wmn", "Waamwang" }, { "wmo", "Wom (Papua New Guinea)" }, { "wms", "Wambon" }, { "wmt", "Walmajarri" }, { "wmw", "Mwani" }, { "wmx", "Womo" }, { "wnb", "Wanambre" }, { "wnc", "Wantoat" }, { "wnd", "Wandarang" }, { "wne", "Waneci" }, { "wng", "Wanggom" }, { "wni", "Ndzwani Comorian" }, { "wnk", "Wanukaka" }, { "wnm", "Wanggamala" }, { "wnn", "Wunumara" }, { "wno", "Wano" }, { "wnp", "Wanap" }, { "wnu", "Usan" }, { "wnw", "Wintu" }, { "wny", "Wanyi" }, { "woa", "Tyaraity" }, { "wob", "Wè Northern" }, { "woc", "Wogeo" }, { "wod", "Wolani" }, { "woe", "Woleaian" }, { "wof", "Gambian Wolof" }, { "wog", "Wogamusin" }, { "woi", "Kamang" }, { "wok", "Longto" }, { "wol", "Wolof" }, { "wom", "Wom (Nigeria)" }, { "won", "Wongo" }, { "woo", "Manombai" }, { "wor", "Woria" }, { "wos", "Hanga Hundi" }, { "wow", "Wawonii" }, { "woy", "Weyto" }, { "wpc", "Maco" }, { "wra", "Warapu" }, { "wrb", "Warluwara" }, { "wrd", "Warduji" }, { "wrg", "Warungu" }, { "wrh", "Wiradhuri" }, { "wri", "Wariyangga" }, { "wrk", "Garrwa" }, { "wrl", "Warlmanpa" }, { "wrm", "Warumungu" }, { "wrn", "Warnang" }, { "wro", "Worrorra" }, { "wrp", "Waropen" }, { "wrr", "Wardaman" }, { "wrs", "Waris" }, { "wru", "Waru" }, { "wrv", "Waruna" }, { "wrw", "Gugu Warra" }, { "wrx", "Wae Rana" }, { "wry", "Merwari" }, { "wrz", "Waray (Australia)" }, { "wsa", "Warembori" }, { "wsi", "Wusi" }, { "wsk", "Waskia" }, { "wsr", "Owenia" }, { "wss", "Wasa" }, { "wsu", "Wasu" }, { "wsv", "Wotapuri-Katarqalai" }, { "wtf", "Watiwa" }, { "wth", "Wathawurrung" }, { "wti", "Berta" }, { "wtk", "Watakataui" }, { "wtm", "Mewati" }, { "wtw", "Wotu" }, { "wua", "Wikngenchera" }, { "wub", "Wunambal" }, { "wud", "Wudu" }, { "wuh", "Wutunhua" }, { "wul", "Silimo" }, { "wum", "Wumbvu" }, { "wun", "Bungu" }, { "wur", "Wurrugu" }, { "wut", "Wutung" }, { "wuu", "Wu Chinese" }, { "wuv", "Wuvulu-Aua" }, { "wux", "Wulna" }, { "wuy", "Wauyai" }, { "wwa", "Waama" }, { "wwb", "Wakabunga" }, { "wwo", "Wetamut" }, { "wwr", "Warrwa" }, { "www", "Wawa" }, { "wxa", "Waxianghua" }, { "wxw", "Wardandi" }, { "wya", "Wyandot" }, { "wyb", "Wangaaybuwan-Ngiyambaa" }, { "wyi", "Woiwurrung" }, { "wym", "Wymysorys" }, { "wyr", "Wayoró" }, { "wyy", "Western Fijian" }, { "xaa", "Andalusian Arabic" }, { "xab", "Sambe" }, { "xac", "Kachari" }, { "xad", "Adai" }, { "xae", "Aequian" }, { "xag", "Aghwan" }, { "xai", "Kaimbé" }, { "xal", "Kalmyk" }, { "xam", "Xam" }, { "xan", "Xamtanga" }, { "xao", "Khao" }, { "xap", "Apalachee" }, { "xaq", "Aquitanian" }, { "xar", "Karami" }, { "xas", "Kamas" }, { "xat", "Katawixi" }, { "xau", "Kauwera" }, { "xav", "Xavánte" }, { "xaw", "Kawaiisu" }, { "xay", "Kayan Mahakam" }, { "xba", "Kamba (Brazil)" }, { "xbb", "Lower Burdekin" }, { "xbc", "Bactrian" }, { "xbd", "Bindal" }, { "xbe", "Bigambal" }, { "xbg", "Bunganditj" }, { "xbi", "Kombio" }, { "xbj", "Birrpayi" }, { "xbm", "Middle Breton" }, { "xbn", "Kenaboi" }, { "xbo", "Bolgarian" }, { "xbp", "Bibbulman" }, { "xbr", "Kambera" }, { "xbw", "Kambiwá" }, { "xbx", "Kabixí" }, { "xby", "Batyala" }, { "xcb", "Cumbric" }, { "xcc", "Camunic" }, { "xce", "Celtiberian" }, { "xcg", "Cisalpine Gaulish" }, { "xch", "Chemakum" }, { "xcl", "Classical Armenian" }, { "xcm", "Comecrudo" }, { "xcn", "Cotoname" }, { "xco", "Chorasmian" }, { "xcr", "Carian" }, { "xct", "Classical Tibetan" }, { "xcu", "Curonian" }, { "xcv", "Chuvantsy" }, { "xcw", "Coahuilteco" }, { "xcy", "Cayuse" }, { "xda", "Darkinyung" }, { "xdc", "Dacian" }, { "xdk", "Dharuk" }, { "xdm", "Edomite" }, { "xdy", "Malayic Dayak" }, { "xeb", "Eblan" }, { "xed", "Hdi" }, { "xeg", "Xegwi" }, { "xel", "Kelo" }, { "xem", "Kembayan" }, { "xep", "Epi-Olmec" }, { "xer", "Xerénte" }, { "xes", "Kesawai" }, { "xet", "Xetá" }, { "xeu", "Keoru-Ahia" }, { "xfa", "Faliscan" }, { "xga", "Galatian" }, { "xgb", "Gbin" }, { "xgd", "Gudang" }, { "xgf", "Gabrielino-Fernandeño" }, { "xgg", "Goreng" }, { "xgi", "Garingbal" }, { "xgl", "Galindan" }, { "xgm", "Guwinmal" }, { "xgr", "Garza" }, { "xgu", "Unggumi" }, { "xgw", "Guwa" }, { "xha", "Harami" }, { "xhc", "Hunnic" }, { "xhd", "Hadrami" }, { "xhe", "Khetrani" }, { "xho", "Xhosa" }, { "xhr", "Hernican" }, { "xht", "Hattic" }, { "xhu", "Hurrian" }, { "xhv", "Khua" }, { "xib", "Iberian" }, { "xii", "Xiri" }, { "xil", "Illyrian" }, { "xin", "Xinca" }, { "xip", "Xipináwa" }, { "xir", "Xiriâna" }, { "xiv", "Indus Valley Language" }, { "xiy", "Xipaya" }, { "xjb", "Minjungbal" }, { "xjt", "Jaitmatang" }, { "xka", "Kalkoti" }, { "xkb", "Northern Nago" }, { "xkc", "Kho'ini" }, { "xkd", "Mendalam Kayan" }, { "xke", "Kereho" }, { "xkf", "Khengkha" }, { "xkg", "Kagoro" }, { "xkh", "Karahawyana" }, { "xki", "Kenyan Sign Language" }, { "xkj", "Kajali" }, { "xkk", "Kaco'" }, { "xkl", "Mainstream Kenyah" }, { "xkn", "Kayan River Kayan" }, { "xko", "Kiorr" }, { "xkp", "Kabatei" }, { "xkq", "Koroni" }, { "xkr", "Xakriabá" }, { "xks", "Kumbewaha" }, { "xkt", "Kantosi" }, { "xku", "Kaamba" }, { "xkv", "Kgalagadi" }, { "xkw", "Kembra" }, { "xkx", "Karore" }, { "xky", "Uma' Lasan" }, { "xkz", "Kurtokha" }, { "xla", "Kamula" }, { "xlb", "Loup B" }, { "xlc", "Lycian" }, { "xld", "Lydian" }, { "xle", "Lemnian" }, { "xlg", "Ligurian (Ancient)" }, { "xli", "Liburnian" }, { "xln", "Alanic" }, { "xlo", "Loup A" }, { "xlp", "Lepontic" }, { "xls", "Lusitanian" }, { "xlu", "Cuneiform Luwian" }, { "xly", "Elymian" }, { "xma", "Mushungulu" }, { "xmb", "Mbonga" }, { "xmc", "Makhuwa-Marrevone" }, { "xmd", "Mbudum" }, { "xme", "Median" }, { "xmf", "Mingrelian" }, { "xmg", "Mengaka" }, { "xmh", "Kuku-Muminh" }, { "xmj", "Majera" }, { "xmk", "Ancient Macedonian" }, { "xml", "Malaysian Sign Language" }, { "xmm", "Manado Malay" }, { "xmn", "Manichaean Middle Persian" }, { "xmo", "Morerebi" }, { "xmp", "Kuku-Mu'inh" }, { "xmq", "Kuku-Mangk" }, { "xmr", "Meroitic" }, { "xms", "Moroccan Sign Language" }, { "xmt", "Matbat" }, { "xmu", "Kamu" }, { "xmv", "Antankarana Malagasy" }, { "xmw", "Tsimihety Malagasy" }, { "xmx", "Maden" }, { "xmy", "Mayaguduna" }, { "xmz", "Mori Bawah" }, { "xna", "Ancient North Arabian" }, { "xnb", "Kanakanabu" }, { "xng", "Middle Mongolian" }, { "xnh", "Kuanhua" }, { "xni", "Ngarigu" }, { "xnk", "Nganakarti" }, { "xnn", "Northern Kankanay" }, { "xno", "Anglo-Norman" }, { "xnr", "Kangri" }, { "xns", "Kanashi" }, { "xnt", "Narragansett" }, { "xnu", "Nukunul" }, { "xny", "Nyiyaparli" }, { "xnz", "Kenzi" }, { "xoc", "O'chi'chi'" }, { "xod", "Kokoda" }, { "xog", "Soga" }, { "xoi", "Kominimung" }, { "xok", "Xokleng" }, { "xom", "Komo (Sudan)" }, { "xon", "Konkomba" }, { "xoo", "Xukurú" }, { "xop", "Kopar" }, { "xor", "Korubo" }, { "xow", "Kowaki" }, { "xpa", "Pirriya" }, { "xpc", "Pecheneg" }, { "xpe", "Liberia Kpelle" }, { "xpg", "Phrygian" }, { "xpi", "Pictish" }, { "xpj", "Mpalitjanh" }, { "xpk", "Kulina Pano" }, { "xpm", "Pumpokol" }, { "xpn", "Kapinawá" }, { "xpo", "Pochutec" }, { "xpp", "Puyo-Paekche" }, { "xpq", "Mohegan-Pequot" }, { "xpr", "Parthian" }, { "xps", "Pisidian" }, { "xpt", "Punthamara" }, { "xpu", "Punic" }, { "xpy", "Puyo" }, { "xqa", "Karakhanid" }, { "xqt", "Qatabanian" }, { "xra", "Krahô" }, { "xrb", "Eastern Karaboro" }, { "xrd", "Gundungurra" }, { "xre", "Kreye" }, { "xrg", "Minang" }, { "xri", "Krikati-Timbira" }, { "xrm", "Armazic" }, { "xrn", "Arin" }, { "xrq", "Karranga" }, { "xrr", "Raetic" }, { "xrt", "Aranama-Tamique" }, { "xru", "Marriammu" }, { "xrw", "Karawa" }, { "xsa", "Sabaean" }, { "xsb", "Sambal" }, { "xsc", "Scythian" }, { "xsd", "Sidetic" }, { "xse", "Sempan" }, { "xsh", "Shamang" }, { "xsi", "Sio" }, { "xsj", "Subi" }, { "xsl", "South Slavey" }, { "xsm", "Kasem" }, { "xsn", "Sanga (Nigeria)" }, { "xso", "Solano" }, { "xsp", "Silopi" }, { "xsq", "Makhuwa-Saka" }, { "xsr", "Sherpa" }, { "xss", "Assan" }, { "xsu", "Sanumá" }, { "xsv", "Sudovian" }, { "xsy", "Saisiyat" }, { "xta", "Alcozauca Mixtec" }, { "xtb", "Chazumba Mixtec" }, { "xtc", "Katcha-Kadugli-Miri" }, { "xtd", "Diuxi-Tilantongo Mixtec" }, { "xte", "Ketengban" }, { "xtg", "Transalpine Gaulish" }, { "xth", "Yitha Yitha" }, { "xti", "Sinicahua Mixtec" }, { "xtj", "San Juan Teita Mixtec" }, { "xtl", "Tijaltepec Mixtec" }, { "xtm", "Magdalena Peñasco Mixtec" }, { "xtn", "Northern Tlaxiaco Mixtec" }, { "xto", "Tokharian A" }, { "xtp", "San Miguel Piedras Mixtec" }, { "xtq", "Tumshuqese" }, { "xtr", "Early Tripuri" }, { "xts", "Sindihui Mixtec" }, { "xtt", "Tacahua Mixtec" }, { "xtu", "Cuyamecalco Mixtec" }, { "xtv", "Thawa" }, { "xtw", "Tawandê" }, { "xty", "Yoloxochitl Mixtec" }, { "xtz", "Tasmanian" }, { "xua", "Alu Kurumba" }, { "xub", "Betta Kurumba" }, { "xud", "Umiida" }, { "xug", "Kunigami" }, { "xuj", "Jennu Kurumba" }, { "xul", "Ngunawal" }, { "xum", "Umbrian" }, { "xun", "Unggaranggu" }, { "xuo", "Kuo" }, { "xup", "Upper Umpqua" }, { "xur", "Urartian" }, { "xut", "Kuthant" }, { "xuu", "Kxoe" }, { "xve", "Venetic" }, { "xvi", "Kamviri" }, { "xvn", "Vandalic" }, { "xvo", "Volscian" }, { "xvs", "Vestinian" }, { "xwa", "Kwaza" }, { "xwc", "Woccon" }, { "xwd", "Wadi Wadi" }, { "xwe", "Xwela Gbe" }, { "xwg", "Kwegu" }, { "xwj", "Wajuk" }, { "xwk", "Wangkumara" }, { "xwl", "Western Xwla Gbe" }, { "xwo", "Written Oirat" }, { "xwr", "Kwerba Mamberamo" }, { "xwt", "Wotjobaluk" }, { "xww", "Wemba Wemba" }, { "xxb", "Boro (Ghana)" }, { "xxk", "Ke'o" }, { "xxm", "Minkin" }, { "xxr", "Koropó" }, { "xxt", "Tambora" }, { "xya", "Yaygir" }, { "xyb", "Yandjibara" }, { "xyj", "Mayi-Yapi" }, { "xyk", "Mayi-Kulan" }, { "xyl", "Yalakalore" }, { "xyt", "Mayi-Thakurti" }, { "xyy", "Yorta Yorta" }, { "xzh", "Zhang-Zhung" }, { "xzm", "Zemgalian" }, { "xzp", "Ancient Zapotec" }, { "yaa", "Yaminahua" }, { "yab", "Yuhup" }, { "yac", "Pass Valley Yali" }, { "yad", "Yagua" }, { "yae", "Pumé" }, { "yaf", "Yaka (Democratic Republic of Congo)" }, { "yag", "Yámana" }, { "yah", "Yazgulyam" }, { "yai", "Yagnobi" }, { "yaj", "Banda-Yangere" }, { "yak", "Yakama" }, { "yal", "Yalunka" }, { "yam", "Yamba" }, { "yan", "Mayangna" }, { "yao", "Yao" }, { "yap", "Yapese" }, { "yaq", "Yaqui" }, { "yar", "Yabarana" }, { "yas", "Nugunu (Cameroon)" }, { "yat", "Yambeta" }, { "yau", "Yuwana" }, { "yav", "Yangben" }, { "yaw", "Yawalapití" }, { "yax", "Yauma" }, { "yay", "Agwagwune" }, { "yaz", "Lokaa" }, { "yba", "Yala" }, { "ybb", "Yemba" }, { "ybe", "West Yugur" }, { "ybh", "Yakha" }, { "ybi", "Yamphu" }, { "ybj", "Hasha" }, { "ybk", "Bokha" }, { "ybl", "Yukuben" }, { "ybm", "Yaben" }, { "ybn", "Yabaâna" }, { "ybo", "Yabong" }, { "ybx", "Yawiyo" }, { "yby", "Yaweyuha" }, { "ych", "Chesu" }, { "ycl", "Lolopo" }, { "ycn", "Yucuna" }, { "ycp", "Chepya" }, { "yda", "Yanda" }, { "ydd", "Eastern Yiddish" }, { "yde", "Yangum Dey" }, { "ydg", "Yidgha" }, { "ydk", "Yoidik" }, { "yds", "Yiddish Sign Language" }, { "yea", "Ravula" }, { "yec", "Yeniche" }, { "yee", "Yimas" }, { "yei", "Yeni" }, { "yej", "Yevanic" }, { "yel", "Yela" }, { "yer", "Tarok" }, { "yes", "Nyankpa" }, { "yet", "Yetfa" }, { "yeu", "Yerukula" }, { "yev", "Yapunda" }, { "yey", "Yeyi" }, { "yga", "Malyangapa" }, { "ygi", "Yiningayi" }, { "ygl", "Yangum Gel" }, { "ygm", "Yagomi" }, { "ygp", "Gepo" }, { "ygr", "Yagaria" }, { "ygu", "Yugul" }, { "ygw", "Yagwoia" }, { "yha", "Baha Buyang" }, { "yhd", "Judeo-Iraqi Arabic" }, { "yhl", "Hlepho Phowa" }, { "yia", "Yinggarda" }, { "yid", "Yiddish" }, { "yif", "Ache" }, { "yig", "Wusa Nasu" }, { "yih", "Western Yiddish" }, { "yii", "Yidiny" }, { "yij", "Yindjibarndi" }, { "yik", "Dongshanba Lalo" }, { "yil", "Yindjilandji" }, { "yim", "Yimchungru Naga" }, { "yin", "Yinchia" }, { "yip", "Pholo" }, { "yiq", "Miqie" }, { "yir", "North Awyu" }, { "yis", "Yis" }, { "yit", "Eastern Lalu" }, { "yiu", "Awu" }, { "yiv", "Northern Nisu" }, { "yix", "Axi Yi" }, { "yiz", "Azhe" }, { "yka", "Yakan" }, { "ykg", "Northern Yukaghir" }, { "yki", "Yoke" }, { "ykk", "Yakaikeke" }, { "ykl", "Khlula" }, { "ykm", "Kap" }, { "ykn", "Kua-nsi" }, { "yko", "Yasa" }, { "ykr", "Yekora" }, { "ykt", "Kathu" }, { "yku", "Kuamasi" }, { "yky", "Yakoma" }, { "yla", "Yaul" }, { "ylb", "Yaleba" }, { "yle", "Yele" }, { "ylg", "Yelogu" }, { "yli", "Angguruk Yali" }, { "yll", "Yil" }, { "ylm", "Limi" }, { "yln", "Langnian Buyang" }, { "ylo", "Naluo Yi" }, { "ylr", "Yalarnnga" }, { "ylu", "Aribwaung" }, { "yly", "Nyâlayu" }, { "ymb", "Yambes" }, { "ymc", "Southern Muji" }, { "ymd", "Muda" }, { "yme", "Yameo" }, { "ymg", "Yamongeri" }, { "ymh", "Mili" }, { "ymi", "Moji" }, { "ymk", "Makwe" }, { "yml", "Iamalele" }, { "ymm", "Maay" }, { "ymn", "Yamna" }, { "ymo", "Yangum Mon" }, { "ymp", "Yamap" }, { "ymq", "Qila Muji" }, { "ymr", "Malasar" }, { "yms", "Mysian" }, { "ymt", "Mator-Taygi-Karagas" }, { "ymx", "Northern Muji" }, { "ymz", "Muzi" }, { "yna", "Aluo" }, { "ynd", "Yandruwandha" }, { "yne", "Lang'e" }, { "yng", "Yango" }, { "ynh", "Yangho" }, { "ynk", "Naukan Yupik" }, { "ynl", "Yangulam" }, { "ynn", "Yana" }, { "yno", "Yong" }, { "ynq", "Yendang" }, { "yns", "Yansi" }, { "ynu", "Yahuna" }, { "yob", "Yoba" }, { "yog", "Yogad" }, { "yoi", "Yonaguni" }, { "yok", "Yokuts" }, { "yol", "Yola" }, { "yom", "Yombe" }, { "yon", "Yongkom" }, { "yor", "Yoruba" }, { "yot", "Yotti" }, { "yox", "Yoron" }, { "yoy", "Yoy" }, { "ypa", "Phala" }, { "ypb", "Labo Phowa" }, { "ypg", "Phola" }, { "yph", "Phupha" }, { "ypm", "Phuma" }, { "ypn", "Ani Phowa" }, { "ypo", "Alo Phola" }, { "ypp", "Phupa" }, { "ypz", "Phuza" }, { "yra", "Yerakai" }, { "yrb", "Yareba" }, { "yre", "Yaouré" }, { "yri", "Yarí" }, { "yrk", "Nenets" }, { "yrl", "Nhengatu" }, { "yrm", "Yirrk-Mel" }, { "yrn", "Yerong" }, { "yrs", "Yarsun" }, { "yrw", "Yarawata" }, { "yry", "Yarluyandi" }, { "ysc", "Yassic" }, { "ysd", "Samatao" }, { "ysg", "Sonaga" }, { "ysl", "Yugoslavian Sign Language" }, { "ysn", "Sani" }, { "yso", "Nisi (China)" }, { "ysp", "Southern Lolopo" }, { "ysr", "Sirenik Yupik" }, { "yss", "Yessan-Mayo" }, { "ysy", "Sanie" }, { "yta", "Talu" }, { "ytl", "Tanglang" }, { "ytp", "Thopho" }, { "ytw", "Yout Wam" }, { "yty", "Yatay" }, { "yua", "Yucateco" }, { "yub", "Yugambal" }, { "yuc", "Yuchi" }, { "yud", "Judeo-Tripolitanian Arabic" }, { "yue", "Yue Chinese" }, { "yuf", "Havasupai-Walapai-Yavapai" }, { "yug", "Yug" }, { "yui", "Yurutí" }, { "yuj", "Karkar-Yuri" }, { "yuk", "Yuki" }, { "yul", "Yulu" }, { "yum", "Quechan" }, { "yun", "Bena (Nigeria)" }, { "yup", "Yukpa" }, { "yuq", "Yuqui" }, { "yur", "Yurok" }, { "yut", "Yopno" }, { "yuu", "Yugh" }, { "yuw", "Yau (Morobe Province)" }, { "yux", "Southern Yukaghir" }, { "yuy", "East Yugur" }, { "yuz", "Yuracare" }, { "yva", "Yawa" }, { "yvt", "Yavitero" }, { "ywa", "Kalou" }, { "ywg", "Yinhawangka" }, { "ywl", "Western Lalu" }, { "ywn", "Yawanawa" }, { "ywq", "Wuding-Luquan Yi" }, { "ywr", "Yawuru" }, { "ywt", "Xishanba Lalo" }, { "ywu", "Wumeng Nasu" }, { "yww", "Yawarawarga" }, { "yxa", "Mayawali" }, { "yxg", "Yagara" }, { "yxl", "Yardliyawarra" }, { "yxm", "Yinwum" }, { "yxu", "Yuyu" }, { "yxy", "Yabula Yabula" }, { "yyr", "Yir Yoront" }, { "yyu", "Yau (Sandaun Province)" }, { "yyz", "Ayizi" }, { "yzg", "E'ma Buyang" }, { "yzk", "Zokhuo" }, { "zaa", "Sierra de Juárez Zapotec" }, { "zab", "San Juan Guelavía Zapotec" }, { "zac", "Ocotlán Zapotec" }, { "zad", "Cajonos Zapotec" }, { "zae", "Yareni Zapotec" }, { "zaf", "Ayoquesco Zapotec" }, { "zag", "Zaghawa" }, { "zah", "Zangwal" }, { "zai", "Isthmus Zapotec" }, { "zaj", "Zaramo" }, { "zak", "Zanaki" }, { "zal", "Zauzou" }, { "zam", "Miahuatlán Zapotec" }, { "zao", "Ozolotepec Zapotec" }, { "zap", "Zapotec" }, { "zaq", "Aloápam Zapotec" }, { "zar", "Rincón Zapotec" }, { "zas", "Santo Domingo Albarradas Zapotec" }, { "zat", "Tabaa Zapotec" }, { "zau", "Zangskari" }, { "zav", "Yatzachi Zapotec" }, { "zaw", "Mitla Zapotec" }, { "zax", "Xadani Zapotec" }, { "zay", "Zayse-Zergulla" }, { "zaz", "Zari" }, { "zbc", "Central Berawan" }, { "zbe", "East Berawan" }, { "zbl", "Blissymbols" }, { "zbt", "Batui" }, { "zbw", "West Berawan" }, { "zca", "Coatecas Altas Zapotec" }, { "zch", "Central Hongshuihe Zhuang" }, { "zdj", "Ngazidja Comorian" }, { "zea", "Zeeuws" }, { "zeg", "Zenag" }, { "zeh", "Eastern Hongshuihe Zhuang" }, { "zen", "Zenaga" }, { "zga", "Kinga" }, { "zgb", "Guibei Zhuang" }, { "zgh", "Standard Moroccan Tamazight" }, { "zgm", "Minz Zhuang" }, { "zgn", "Guibian Zhuang" }, { "zgr", "Magori" }, { "zha", "Zhuang" }, { "zhb", "Zhaba" }, { "zhd", "Dai Zhuang" }, { "zhi", "Zhire" }, { "zhn", "Nong Zhuang" }, { "zho", "Chinese" }, { "zhw", "Zhoa" }, { "zia", "Zia" }, { "zib", "Zimbabwe Sign Language" }, { "zik", "Zimakani" }, { "zil", "Zialo" }, { "zim", "Mesme" }, { "zin", "Zinza" }, { "zir", "Ziriya" }, { "ziw", "Zigula" }, { "ziz", "Zizilivakan" }, { "zka", "Kaimbulawa" }, { "zkb", "Koibal" }, { "zkd", "Kadu" }, { "zkg", "Koguryo" }, { "zkh", "Khorezmian" }, { "zkk", "Karankawa" }, { "zkn", "Kanan" }, { "zko", "Kott" }, { "zkp", "São Paulo Kaingáng" }, { "zkr", "Zakhring" }, { "zkt", "Kitan" }, { "zku", "Kaurna" }, { "zkv", "Krevinian" }, { "zkz", "Khazar" }, { "zlj", "Liujiang Zhuang" }, { "zlm", "Malay (individual language)" }, { "zln", "Lianshan Zhuang" }, { "zlq", "Liuqian Zhuang" }, { "zma", "Manda (Australia)" }, { "zmb", "Zimba" }, { "zmc", "Margany" }, { "zmd", "Maridan" }, { "zme", "Mangerr" }, { "zmf", "Mfinu" }, { "zmg", "Marti Ke" }, { "zmh", "Makolkol" }, { "zmi", "Negeri Sembilan Malay" }, { "zmj", "Maridjabin" }, { "zmk", "Mandandanyi" }, { "zml", "Madngele" }, { "zmm", "Marimanindji" }, { "zmn", "Mbangwe" }, { "zmo", "Molo" }, { "zmp", "Mpuono" }, { "zmq", "Mituku" }, { "zmr", "Maranunggu" }, { "zms", "Mbesa" }, { "zmt", "Maringarr" }, { "zmu", "Muruwari" }, { "zmv", "Mbariman-Gudhinma" }, { "zmw", "Mbo (Democratic Republic of Congo)" }, { "zmx", "Bomitaba" }, { "zmy", "Mariyedi" }, { "zmz", "Mbandja" }, { "zna", "Zan Gula" }, { "zne", "Zande (individual language)" }, { "zng", "Mang" }, { "znk", "Manangkari" }, { "zns", "Mangas" }, { "zoc", "Copainalá Zoque" }, { "zoh", "Chimalapa Zoque" }, { "zom", "Zou" }, { "zoo", "Asunción Mixtepec Zapotec" }, { "zoq", "Tabasco Zoque" }, { "zor", "Rayón Zoque" }, { "zos", "Francisco León Zoque" }, { "zpa", "Lachiguiri Zapotec" }, { "zpb", "Yautepec Zapotec" }, { "zpc", "Choapan Zapotec" }, { "zpd", "Southeastern Ixtlán Zapotec" }, { "zpe", "Petapa Zapotec" }, { "zpf", "San Pedro Quiatoni Zapotec" }, { "zpg", "Guevea De Humboldt Zapotec" }, { "zph", "Totomachapan Zapotec" }, { "zpi", "Santa María Quiegolani Zapotec" }, { "zpj", "Quiavicuzas Zapotec" }, { "zpk", "Tlacolulita Zapotec" }, { "zpl", "Lachixío Zapotec" }, { "zpm", "Mixtepec Zapotec" }, { "zpn", "Santa Inés Yatzechi Zapotec" }, { "zpo", "Amatlán Zapotec" }, { "zpp", "El Alto Zapotec" }, { "zpq", "Zoogocho Zapotec" }, { "zpr", "Santiago Xanica Zapotec" }, { "zps", "Coatlán Zapotec" }, { "zpt", "San Vicente Coatlán Zapotec" }, { "zpu", "Yalálag Zapotec" }, { "zpv", "Chichicapan Zapotec" }, { "zpw", "Zaniza Zapotec" }, { "zpx", "San Baltazar Loxicha Zapotec" }, { "zpy", "Mazaltepec Zapotec" }, { "zpz", "Texmelucan Zapotec" }, { "zqe", "Qiubei Zhuang" }, { "zra", "Kara (Korea)" }, { "zrg", "Mirgan" }, { "zrn", "Zerenkel" }, { "zro", "Záparo" }, { "zrp", "Zarphatic" }, { "zrs", "Mairasi" }, { "zsa", "Sarasira" }, { "zsk", "Kaskean" }, { "zsl", "Zambian Sign Language" }, { "zsm", "Standard Malay" }, { "zsr", "Southern Rincon Zapotec" }, { "zsu", "Sukurum" }, { "zte", "Elotepec Zapotec" }, { "ztg", "Xanaguía Zapotec" }, { "ztl", "Lapaguía-Guivini Zapotec" }, { "ztm", "San Agustín Mixtepec Zapotec" }, { "ztn", "Santa Catarina Albarradas Zapotec" }, { "ztp", "Loxicha Zapotec" }, { "ztq", "Quioquitani-Quierí Zapotec" }, { "zts", "Tilquiapan Zapotec" }, { "ztt", "Tejalapan Zapotec" }, { "ztu", "Güilá Zapotec" }, { "ztx", "Zaachila Zapotec" }, { "zty", "Yatee Zapotec" }, { "zua", "Zeem" }, { "zuh", "Tokano" }, { "zul", "Zulu" }, { "zum", "Kumzari" }, { "zun", "Zuni" }, { "zuy", "Zumaya" }, { "zwa", "Zay" }, { "zxx", "No linguistic content" }, { "zyb", "Yongbei Zhuang" }, { "zyg", "Yang Zhuang" }, { "zyj", "Youjiang Zhuang" }, { "zyn", "Yongnan Zhuang" }, { "zyp", "Zyphe Chin" }, { "zza", "Zaza" }, { "zzj", "Zuojiang Zhuang" }, }; static int niso639_3= sizeof( iso639_3 ) / sizeof( iso639_3[0] ); char * iso639_3_from_code( const char *code ) { int i; for ( i=0; i #include #include #include "latex.h" #define LATEX_COMBO (0) /* 'combo' no need for protection on output */ #define LATEX_MACRO (1) /* 'macro_name' to be protected by {\macro_name} on output */ #define LATEX_MATH (2) /* 'math_expression' to be protected by $math_expression$ on output */ struct latex_chars { unsigned int unicode; /* unicode code point */ unsigned char type; /* LATEX_COMBO/LATEX_MACRO/LATEX_MATH */ char *out; /* unadorned latex combination for output */ char *variant[3]; /* possible variations on input */ }; static struct latex_chars latex_chars[] = { /* LaTeX special characters */ { 32, LATEX_COMBO, " ", { "\\ ", NULL, NULL } }, /* escaping the space is used to avoid extra space after periods */ { 35, LATEX_MACRO, "#", { "\\#", NULL, NULL } }, /* Number/pound/hash sign */ { 36, LATEX_MACRO, "$", { "\\$", NULL, NULL } }, /* Dollar Sign */ { 37, LATEX_MACRO, "%", { "\\%", NULL, NULL } }, /* Percent Sign */ { 38, LATEX_MACRO, "&", { "\\&", NULL, NULL } }, /* Ampersand */ { 95, LATEX_MACRO, "_", { "\\_", NULL, NULL } }, /* Underscore alone indicates subscript */ { 123, LATEX_MACRO, "{", { "\\{", "{\\textbraceleft}", "\\textbraceleft" } }, /* Left Curly Bracket */ { 125, LATEX_MACRO, "}", { "\\}", "{\\textbraceright}", "\\textbraceright" } }, /* Right Curly Bracket */ { 92, LATEX_MACRO, "backslash", { "{\\backslash}", "\\backslash", NULL } }, /* Backslash */ { 176, LATEX_MACRO, "textdegree", { "{\\textdegree}", "\\textdegree", "^\\circ" } }, /* Degree sign */ { 126, LATEX_MACRO, "textasciitilde", { "{\\textasciitilde}", "\\textasciitilde", "\\~{}" } }, /* Tilde in latex */ /* fix sticky spaces "~" in bibtex token cleaning--allows tokens to be parsed properly */ /* Latin Capital A */ { 192, LATEX_MACRO, "`A", { "{\\`A}", "\\`{A}", "\\`A" } }, /* with grave */ { 193, LATEX_MACRO, "'A", { "{\\'A}", "\\'{A}", "\\'A" } }, /* with acute */ { 194, LATEX_MACRO, "^A", { "{\\^A}", "\\^{A}", "\\^A" } }, /* with circumflex */ { 195, LATEX_MACRO, "~A", { "{\\~A}", "\\~{A}", "\\~A" } }, /* with tilde */ { 196, LATEX_MACRO, "\"A", { "{\\\"A}", "\\\"{A}", "\\\"A" } }, /* with diuresis */ { 197, LATEX_MACRO, "AA", { "{\\AA}", "{\\r{A}}", "\\r{A}"} }, /* with ring above */ { 256, LATEX_MACRO, "={A}", { "{\\={A}}", "\\={A}", "\\=A" } }, /* with macron */ { 258, LATEX_MACRO, "u{A}", { "{\\u{A}}", "\\u{A}", "\\u A" } }, /* with breve */ { 260, LATEX_MACRO, "k{A}", { "{\\k{A}}", "\\k{A}", "\\k A" } }, /* with ogonek */ { 461, LATEX_MACRO, "v{A}", { "{\\v{A}}", "\\v{A}", "\\v A" } }, /* with caron */ /* Latin Small a */ { 224, LATEX_MACRO, "`a", { "{\\`a}", "\\`{a}", "\\`a" } }, /* with grave */ { 225, LATEX_MACRO, "'a", { "{\\'a}", "\\'{a}", "\\'a" } }, /* with acute */ { 226, LATEX_MACRO, "^a", { "{\\^a}", "\\^{a}", "\\^a" } }, /* with circumflex */ { 227, LATEX_MACRO, "~a", { "{\\~a}", "\\~{a}", "\\~a" } }, /* with tilde */ { 228, LATEX_MACRO, "\"a", { "{\\\"a}", "\\\"{a}", "\\\"a" } }, /* with diuresis */ { 229, LATEX_MACRO, "aa", { "{\\aa}", "{\\r{a}}", "\\r{a}"} }, /* with ring above */ { 257, LATEX_MACRO, "={a}", { "{\\={a}}", "\\={a}", "\\=a" } }, /* with macron */ { 259, LATEX_MACRO, "u{a}", { "{\\u{a}}", "\\u{a}", "\\u a" } }, /* with breve */ { 261, LATEX_MACRO, "k{a}", { "{\\k{a}}", "\\k{a}", "\\k a" } }, /* with ogonek */ { 462, LATEX_MACRO, "v{a}", { "{\\v{a}}", "\\v{a}", "\\v a" } }, /* with caron */ { 198, LATEX_MACRO, "AE", { "{\\AE}", "\\AE", NULL } }, /* Latin Capital AE */ { 230, LATEX_MACRO, "ae", { "{\\ae}", "\\ae", NULL } }, /* Latin Small ae */ /* Latin Capital C */ { 199, LATEX_MACRO, "c{C}", { "{\\c{C}}", "\\c{C}", "\\c c" } }, /* with cedilla */ { 262, LATEX_MACRO, "'{C}", { "{\\'{C}}", "\\'{C}", "\\'C" } }, /* with acute */ { 264, LATEX_MACRO, "^{C}", { "{\\^{C}}", "\\^{C}", "\\^C" } }, /* with circumflex */ { 266, LATEX_MACRO, ".{C}", { "{\\.{C}}", "\\.{C}", "\\.C" } }, /* with dot above */ { 268, LATEX_MACRO, "v{C}", { "{\\v{C}}", "\\v{C}", "\\v C" } }, /* with caron (hacek) */ /* Latin Small c */ { 231, LATEX_MACRO, "c{c}", { "{\\c{c}}", "\\c{c}", "\\c C" } }, /* with cedilla*/ { 263, LATEX_MACRO, "'{c}", { "{\\'{c}}", "\\'{c}", "\\'c" } }, /* with acute */ { 265, LATEX_MACRO, "^{c}", { "{\\^{c}}", "\\^{c}", "\\^c" } }, /* with circumflex */ { 267, LATEX_MACRO, ".{c}", { "{\\.{c}}", "\\.{c}", "\\.c" } }, /* with dot above */ { 269, LATEX_MACRO, "v{c}", { "{\\v{c}}", "\\v{c}", "\\v c" } }, /* with caron (hacek) */ /* Latin Capital D */ { 270, LATEX_MACRO, "v{D}", { "{\\v{D}}", "\\v{D}", "\\v D" } }, /* with caron */ { 272, LATEX_MACRO, "DJ", { "{\\DJ}", NULL, NULL } }, /* with stroke */ /* Latin Small d */ { 271, LATEX_MACRO, "v{d}", { "{\\v{d}}", "\\v{d}", "\\v d" } }, /* with caron */ { 273, LATEX_MACRO, "dj", { "{\\dj}", NULL, NULL } }, /* with stroke */ /* Latin Capital E */ { 200, LATEX_MACRO, "`E", { "{\\`E}", "\\`{E}", "\\`E" } }, /* with grave */ { 201, LATEX_MACRO, "'E", { "{\\'E}", "\\'{E}", "\\'E" } }, /* with acute */ { 202, LATEX_MACRO, "^E", { "{\\^E}", "\\^{E}", "\\^E" } }, /* with circumflex */ { 203, LATEX_MACRO, "\"E", { "{\\\"E}", "\\\"{E}", "\\\"E" } }, /* with diuresis */ { 274, LATEX_MACRO, "={E}", { "{\\={E}}", "\\={E}", "\\=E" } }, /* with macron */ { 276, LATEX_MACRO, "u{E}", { "{\\u{E}}", "\\u{E}", "\\u E" } }, /* with breve */ { 278, LATEX_MACRO, ".{E}", { "{\\.{E}}", "\\.{E}", "\\.E" } }, /* with dot above */ { 280, LATEX_MACRO, "k{E}", { "{\\k{E}}", "\\k{E}", "\\k E" } }, /* with ogonek */ { 282, LATEX_MACRO, "v{E}", { "{\\v{E}}", "\\v{E}", "\\v E" } }, /* with caron */ /* Latin Small e */ { 232, LATEX_MACRO, "`e", { "{\\`e}", "\\`{e}", "\\`e" } }, /* with grave */ { 233, LATEX_MACRO, "'e", { "{\\'e}", "\\'{e}", "\\'e" } }, /* with acute */ { 234, LATEX_MACRO, "^e", { "{\\^e}", "\\^{e}", "\\^e" } }, /* with circumflex */ { 235, LATEX_MACRO, "\"e", { "{\\\"e}", "\\\"{e}", "\\\"e" } }, /* with diuresis */ { 275, LATEX_MACRO, "={e}", { "{\\={e}}", "\\={e}", "\\=e" } }, /* with macron */ { 277, LATEX_MACRO, "u{e}", { "{\\u{e}}", "\\u{e}", "\\u e" } }, /* with breve */ { 279, LATEX_MACRO, ".{e}", { "{\\.{e}}", "\\.{e}", "\\.e" } }, /* with dot above */ { 281, LATEX_MACRO, "k{e}", { "{\\k{e}}", "\\k{e}", "\\k e" } }, /* with ogonek */ { 283, LATEX_MACRO, "v{e}", { "{\\v{e}}", "\\v{e}", "\\v e" } }, /* with caron */ /* Latin Capital G */ { 284, LATEX_MACRO, "^{G}", { "{\\^{G}}", "\\^{G}", "\\^G" } }, /* with circumflex */ { 286, LATEX_MACRO, "u{G}", { "{\\u{G}}", "\\u{G}", "\\u G" } }, /* with breve */ { 288, LATEX_MACRO, ".{G}", { "{\\.{G}}", "\\.{G}", "\\.G" } }, /* with dot above */ { 290, LATEX_MACRO, "c{G}", { "{\\c{G}}", "\\c{G}", "\\c G" } }, /* with cedilla */ { 486, LATEX_MACRO, "v{G}", { "{\\v{G}}", "\\v{G}", "\\v G" } }, /* with caron */ { 500, LATEX_MACRO, "'{G}", { "{\\'{G}}", "\\'{G}", "\\'G" } }, /* with acute */ /* Latin Small g */ { 285, LATEX_MACRO, "^{g}", { "{\\^{g}}", "\\^{g}", "\\^g" } }, /* with circumflex */ { 287, LATEX_MACRO, "u{g}", { "{\\u{g}}", "\\u{g}", "\\u g" } }, /* with breve */ { 289, LATEX_MACRO, ".{g}", { "{\\.{g}}", "\\.{g}", "\\.g" } }, /* with dot above */ { 291, LATEX_MACRO, "c{g}", { "{\\c{g}}", "\\c{g}", "\\c g" } }, /* with cedilla */ { 487, LATEX_MACRO, "v{g}", { "{\\v{g}}", "\\v{g}", "\\v g" } }, /* with caron */ { 501, LATEX_MACRO, "'{g}", { "{\\'{g}}", "\\'{g}", "\\'g" } }, /* with acute */ /* Latin Capital H */ { 292, LATEX_MACRO, "^{H}", { "{\\^{H}}", "\\^{H}", "\\^H" } }, /* with circumflex */ /* { 294, LATEX_MACRO, "", { NULL, NULL, NULL } },*//* with stroke */ /* Latin Capital h */ { 293, LATEX_MACRO, "^{h}", { "{\\^{h}}", "\\^{h}", "\\^h" } }, /* with circumflex */ /* { 295, LATEX_MACRO, "", { NULL, NULL, NULL } },*//* with stroke */ /* Latin Capital I */ { 204, LATEX_MACRO, "`I", { "{\\`I}", "\\`{I}", "\\`I" } }, /* with grave */ { 205, LATEX_MACRO, "'I", { "{\\'I}", "\\'{I}", "\\'I" } }, /* with acute */ { 206, LATEX_MACRO, "^I", { "{\\^I}", "\\^{I}", "\\^I" } }, /* with circumflex */ { 207, LATEX_MACRO, "\"I", { "{\\\"I}", "\\\"{I}", "\\\"I" } }, /* with diuresis */ { 296, LATEX_MACRO, "~{I}", { "{\\~{I}}", "\\~{I}", "\\~I" } }, /* with tilde */ { 298, LATEX_MACRO, "={I}", { "{\\={I}}", "\\={I}", "\\=I" } }, /* with macron */ { 300, LATEX_MACRO, "u{I}", { "{\\u{I}}", "\\u{I}", "\\u I" } }, /* with breve */ { 302, LATEX_MACRO, "k{I}", { "{\\k{I}}", "\\k{I}", "\\k I" } }, /* with ogonek */ { 304, LATEX_MACRO, ".{I}", { "{\\.{I}}", "\\.{I}", "\\. I" } }, /* with dot above */ { 463, LATEX_MACRO, "v{I}", { "{\\v{I}}", "\\v{I}", "\\v I" } }, /* with caron */ /* Latin Small i */ { 236, LATEX_MACRO, "`i", { "{\\`i}", "\\`{i}", "\\`i" } }, /* with grave */ { 237, LATEX_MACRO, "'i", { "{\\'i}", "\\'{i}", "\\'i" } }, /* with acute */ { 238, LATEX_MACRO, "^i", { "{\\^i}", "\\^{i}", "\\^i" } }, /* with circumflex */ { 239, LATEX_MACRO, "\"i", { "{\\\"i}", "\\\"{i}", "\\\"i" } }, /* with diuresis */ { 303, LATEX_MACRO, "k{i}", { "{\\k{i}}", "\\k{i}", "\\k i" } }, /* with ogonek */ /* Latex "\i" has no dot on "i" */ { 305, LATEX_MACRO, "i", { "{\\i}", "\\i{}", NULL } }, /* without dot above */ { 236, LATEX_MACRO, "`{\\i}", { "{\\`\\i}", "\\`{\\i}", "\\`\\i" } }, /* with grave */ { 237, LATEX_MACRO, "'{\\i}", { "{\\'\\i}", "\\'{\\i}", "\\'\\i" } }, /* with acute */ { 238, LATEX_MACRO, "^{\\i}", { "{\\^\\i}", "\\^{\\i}", "\\^\\i" } }, /* with circumflex */ { 239, LATEX_MACRO, "\"{\\i}", { "{\\\"\\i}", "\\\"{\\i}","\\\"\\i" } }, /* with diuresis */ { 297, LATEX_MACRO, "`{\\i}", { "{\\~{\\i}}", "\\~{\\i}", "\\~\\i{}" } }, /* with tilde */ { 299, LATEX_MACRO, "={\\i}", { "{\\={\\i}}", "\\={\\i}", "\\=\\i{}" } }, /* with macron */ { 301, LATEX_MACRO, "u{\\i}", { "{\\u{\\i}}", "\\u{\\i}", "\\u\\i{}" } }, /* with breve */ { 464, LATEX_MACRO, "v{\\i}", { "{\\v \\i{}}", "\\v \\i{}", NULL } }, /* with caron */ /* { 306, LATEX_MACRO, "", { NULL, NULL, NULL } },*/ /* Latin Capital IJ */ /* { 307, LATEX_MACRO, "", { NULL, NULL, NULL } },*/ /* Latin Small ij */ /* Latin Capital J */ { 308, LATEX_MACRO, "^{J}", { "{\\^{J}}", "\\^{J}", "\\^J" } }, /* with circumflex */ /* Latin Small j */ { 309, LATEX_MACRO, "^{j}", { "{\\^{j}}", "\\^{j}", "\\^j" } }, /* with circumflex */ /* Latin Capital K */ { 310, LATEX_MACRO, "c{K}", { "{\\c{K}}", "\\c{K}", "\\c K" } }, /* with cedilla */ { 488, LATEX_MACRO, "v{K}", { "{\\v{K}}", "\\v{K}", "\\v K" } }, /* with caron */ /* Latin Small k */ { 311, LATEX_MACRO, "c{k}", { "{\\c{k}}", "\\c{k}", "\\c k" } }, /* with cedilla */ { 489, LATEX_MACRO, "v{k}", { "{\\v{k}}", "\\v{k}", "\\v k" } }, /* with caron */ /* Latin Capital L */ { 313, LATEX_MACRO, "'{L}", { "{\\'{L}}", "\\'{L}", "\\'L" } }, /* with acute */ { 315, LATEX_MACRO, "c{L}", { "{\\c{L}}", "\\c{L}", "\\c L" } }, /* with cedilla */ { 317, LATEX_MACRO, "v{L}", { "{\\v{L}}", "\\v{l}", "\\v L" } }, /* with caron */ { 319, LATEX_COMBO, "{L\\hspace{-0.35em}$\\cdot$}", { "{L\\hspace{-0.35em}$\\cdot$}","L\\hspace{-0.35em}$\\cdot$", NULL } }, /* with middle dot */ { 321, LATEX_MACRO, "L", { "{\\L}", "{\\L{}}", "\\L{}" } }, /* with stroke */ /* Latin Small l */ { 314, LATEX_MACRO, "'{l}", { "{\\'{l}}", "\\'{l}", "\\'l" } }, /* with acute */ { 316, LATEX_MACRO, "c{l}", { "{\\c{l}}", "\\c{l}", "\\c l" } }, /* with cedilla */ { 318, LATEX_MACRO, "v{l}", { "{\\v{l}}", "\\v{l}", "\\v l" } }, /* with caron */ { 320, LATEX_COMBO, "{l$\\cdot$}", { "{l$\\cdot$}","l$\\cdot$", NULL } }, /* with middle dot */ { 322, LATEX_MACRO, "l", { "{\\l}", "{\\l{}}", "\\l{}" } }, /* with stroke */ /* Latin Capital N */ { 209, LATEX_MACRO, "~{N}", { "{\\~{N}}", "\\~{N}", "\\~N" } }, /* with tilde */ { 323, LATEX_MACRO, "'{N}", { "{\\'{N}}", "\\'{N}", "\\'N" } }, /* with acute */ { 325, LATEX_MACRO, "c{N}", { "{\\c{N}}", "\\c{N}", "\\c N" } }, /* with cedilla */ { 327, LATEX_MACRO, "v{N}", { "{\\v{N}}", "\\v{N}", "\\v N" } }, /* with caron */ /* Latin Small n */ { 241, LATEX_MACRO, "~{n}", { "{\\~{n}}", "\\~{n}", "\\~n" } }, /* with tilde */ { 324, LATEX_MACRO, "'{n}", { "{\\'{n}}", "\\'{n}", "\\'n" } }, /* with acute */ { 326, LATEX_MACRO, "c{n}", { "{\\c{n}}", "\\c{n}", "\\c N" } }, /* with cedilla */ { 328, LATEX_MACRO, "v{n}", { "{\\v{n}}", "\\v{n}", "\\v n" } }, /* with caron */ { 329, LATEX_MACRO, "n", { "\\n", NULL, NULL } }, /* preceeded by apostrophe */ /* Latin Capital O */ { 210, LATEX_MACRO, "`O", { "{\\`O}", "\\`{O}", "\\`O" } }, /* with grave */ { 211, LATEX_MACRO, "'O", { "{\\'O}", "\\'{O}", "\\'O" } }, /* with acute */ { 212, LATEX_MACRO, "^O", { "{\\^O}", "\\^{O}", "\\^O" } }, /* with circumflex */ { 213, LATEX_MACRO, "~O", { "{\\~O}", "\\~{O}", "\\~O" } }, /* with tilde */ { 214, LATEX_MACRO, "\"O", { "{\\\"O}", "\\\"{O}", "\\\"O" } }, /* with diaeresis */ { 216, LATEX_MACRO, "O", { "{\\O}", "\\O", NULL } }, /* with stroke */ { 332, LATEX_MACRO, "={O}", { "{\\={O}}", "\\={O}", "\\=O" } }, /* with macron */ { 334, LATEX_MACRO, "u{O}", { "{\\u{O}}", "\\u{O}", "\\u O" } }, /* with breve */ { 336, LATEX_MACRO, "H{O}", { "{\\H{O}}", "\\H{O}", "\\H O" } }, /* with double acute */ { 465, LATEX_MACRO, "v{O}", { "{\\v{O}}", "\\v{O}", "\\v O" } }, /* with caron */ { 490, LATEX_MACRO, "k{O}", { "{\\k{O}}", "\\k{O}", "\\k O" } }, /* with ogonek */ /* Latin Small o */ { 242, LATEX_MACRO, "`o", { "{\\`o}", "\\`{o}", "\\`o" } }, /* with grave */ { 243, LATEX_MACRO, "'o", { "{\\'o}", "\\'{o}", "\\'o" } }, /* with acute */ { 244, LATEX_MACRO, "^o", { "{\\^o}", "\\^{o}", "\\^o" } }, /* with circumflex */ { 245, LATEX_MACRO, "~o", { "{\\~o}", "\\~{o}", "\\~o" } }, /* with tilde */ { 246, LATEX_MACRO, "\"o", { "{\\\"o}", "\\\"{o}", "\\\"o" } }, /* with diaeresis */ { 248, LATEX_MACRO, "o", { "{\\o}", "\\o", NULL } }, /* with stroke */ { 333, LATEX_MACRO, "={o}", { "{\\={o}}", "\\={o}", "\\=o" } }, /* with macron */ { 335, LATEX_MACRO, "u{o}", { "{\\u{o}}", "\\u{o}", "\\u o" } }, /* with breve */ { 337, LATEX_MACRO, "H{o}", { "{\\H{o}}", "\\H{o}", "\\H o" } }, /* with double acute */ { 466, LATEX_MACRO, "v{o}", { "{\\v{o}}", "\\v{o}", "\\v o" } }, /* with caron */ { 491, LATEX_MACRO, "k{o}", { "{\\k{o}}", "\\k{o}", "\\k o" } }, /* with ogonek */ { 338, LATEX_MACRO, "OE", { "{\\OE}", "\\OE", NULL } }, /* Latin Capital OE */ { 339, LATEX_MACRO, "oe", { "{\\oe}", "\\oe", NULL } }, /* Latin Small oe */ /* Latin Capital R */ { 340, LATEX_MACRO, "'R", { "{\\'{R}}", "\\'{R}", "\\'R" } }, /* with acute */ { 342, LATEX_MACRO, "c{R}", { "{\\c{R}}", "\\c{R}", "\\c R" } }, /* with cedilla */ { 344, LATEX_MACRO, "v{R}", { "{\\v{R}}", "\\v{R}", "\\v R" } }, /* with caron */ /* Latin Small r */ { 341, LATEX_MACRO, "'r", { "{\\'{r}}", "\\'{r}", "\\'r" } }, /* with acute */ { 343, LATEX_MACRO, "c{r}", { "{\\c{r}}", "\\c{r}", "\\c r" } }, /* with cedilla */ { 345, LATEX_MACRO, "v{r}", { "{\\v{r}}", "\\v{r}", "\\v r" } }, /* with caron */ /* Latin Capital S */ { 346, LATEX_MACRO, "'{S}", { "{\\'{S}}", "\\'{S}", "\\'S" } }, /* with acute */ { 348, LATEX_MACRO, "^{S}", { "{\\^{S}}", "\\^{S}", "\\^S" } }, /* with circumflex */ { 350, LATEX_MACRO, "c{S}", { "{\\c{S}}", "\\c{S}", "\\c S" } }, /* with cedilla */ { 352, LATEX_MACRO, "v{S}", { "{\\v{S}}", "\\v{S}", "\\v S" } }, /* with caron */ /* Latin Small s */ { 347, LATEX_MACRO, "'{s}", { "{\\'{s}}", "\\'{s}", "\\'s" } }, /* with acute */ { 349, LATEX_MACRO, "^{s}", { "{\\^{s}}", "\\^{s}", "\\^s" } }, /* with circumflex */ { 351, LATEX_MACRO, "c{s}", { "{\\c{s}}", "\\c{s}", "\\c s" } }, /* with cedilla */ { 353, LATEX_MACRO, "v{s}", { "{\\v{s}}", "\\v{s}", "\\v s" } }, /* with caron */ /* Latin Capital T */ { 354, LATEX_MACRO, "c{T}", { "{\\c{T}}", "\\c{T}", NULL } }, /* with cedilla */ { 356, LATEX_MACRO, "v{T}", { "{\\v{T}}", "\\v{T}", NULL } }, /* with caron */ /* { 358, LATEX_MACRO, "", { NULL, NULL, NULL } },*//* with stroke */ /* Latin Small t */ { 355, LATEX_MACRO, "c{T}", { "{\\c{t}}", "\\c{t}", NULL } }, /* with cedilla */ { 357, LATEX_MACRO, "v{T}", { "{\\v{t}}", "\\v{t}", NULL } }, /* with caron */ /* { 359, LATEX_MACRO, "", { NULL, NULL, NULL } },*//* with stroke */ { 223, LATEX_MACRO, "ss", { "{\\ss}", "\\ss", NULL } }, /* German sz ligature, "sharp s" */ /* Latin Capital U */ { 217, LATEX_MACRO, "`U", { "{\\`U}", "\\`{U}", "\\`U" } }, /* with grave */ { 218, LATEX_MACRO, "'U", { "{\\'U}", "\\'{U}", "\\'U" } }, /* with acute */ { 219, LATEX_MACRO, "^U", { "{\\^U}", "\\^{U}", "\\^U" } }, /* with circumflex */ { 220, LATEX_MACRO, "\"U", { "{\\\"U}", "\\\"{U}","\\\"U" } }, /* with diaeresis */ { 360, LATEX_MACRO, "~{U}", { "{\\~{U}}", "\\~{U}", "\\~U" } }, /* with tilde */ { 362, LATEX_MACRO, "={U}", { "{\\={U}}", "\\={U}", "\\=U" } }, /* with macron */ { 364, LATEX_MACRO, "u{U}", { "{\\u{U}}", "\\u{U}", "\\u U" } }, /* with breve */ { 366, LATEX_MACRO, "r{U}", { "{\\r{U}}", "\\r{U}", "\\r U" } }, /* with ring above */ { 368, LATEX_MACRO, "H{U}", { "{\\H{U}}", "\\H{U}", "\\H U" } }, /* with double acute */ { 370, LATEX_MACRO, "k{U}", { "{\\k{U}}", "\\k{U}", "\\k U" } }, /* with ogonek */ { 467, LATEX_MACRO, "v{U}", { "{\\v{U}}", "\\v{U}", "\\v U" } }, /* with caron */ /* Latin Small u */ { 249, LATEX_MACRO, "`u", { "{\\`u}", "\\`{u}", "\\`u" } }, /* with grave */ { 250, LATEX_MACRO, "'u", { "{\\'u}", "\\'{u}", "\\'u" } }, /* with acute */ { 251, LATEX_MACRO, "^u", { "{\\^u}", "\\^{u}", "\\^u" } }, /* with circumflex */ { 252, LATEX_MACRO, "\"u", { "{\\\"u}", "\\\"{u}","\\\"u" } }, /* with diaeresis */ { 361, LATEX_MACRO, "~{u}", { "{\\~{u}}", "\\~{u}", NULL } }, /* with tilde */ { 363, LATEX_MACRO, "={u}", { "{\\={u}}", "\\={u}", "\\=u" } }, /* with macron */ { 365, LATEX_MACRO, "u{u}", { "{\\u{u}}", "\\u{u}", "\\u u" } }, /* with breve */ { 367, LATEX_MACRO, "r{u}", { "{\\r{u}}", "\\r{u}", "\\r u" } }, /* with ring above */ { 369, LATEX_MACRO, "H{u}", { "{\\H{u}}", "\\H{u}", "\\H u" } }, /* with double acute */ { 371, LATEX_MACRO, "k{u}", { "{\\k{u}}", "\\k{u}", "\\k u" } }, /* with ogonek */ { 468, LATEX_MACRO, "v{u}", { "{\\v{u}}", "\\v{u}", "\\v u" } }, /* with caron */ /* Latin Capital W */ { 372, LATEX_MACRO, "^{W}", { "{\\^{W}}", "\\^{W}", "\\^W" } }, /* with circumflex */ /* Latin Small w */ { 373, LATEX_MACRO, "^{w}", { "{\\^{w}}", "\\^{w}", "\\^w" } }, /* with circumflex */ /* Latin Capital Y */ { 221, LATEX_MACRO, "'{Y}", { "{\\'{Y}}", "\\'{Y}", "\\'Y" } }, /* with acute */ { 374, LATEX_MACRO, "^{Y}", { "{\\^{Y}}", "\\^{Y}", "\\^Y" } }, /* with circumflex */ { 376, LATEX_MACRO, "\"{Y}",{ "{\\\"{Y}}","\\\"{Y}","\\\"Y" } }, /* with diaeresis */ /* Latin Small y */ { 253, LATEX_MACRO, "'y", { "{\\'y}", "\\'{y}", "\\'y" } }, /* with acute */ { 255, LATEX_MACRO, "\"y", { "{\\\"y}", "\\\"{y}","\\\"y" } }, /* with diaeresis */ { 375, LATEX_MACRO, "^{y}", { "{\\^{y}}","\\^{y}", "\\^y" } }, /* with circumflex */ /* Latin Capital Z */ { 377, LATEX_MACRO, "'{Z}", { "{\\'{Z}}","\\'{Z}", "\\'Z" } }, /* with acute */ { 379, LATEX_MACRO, ".{Z}", { "{\\.{Z}}","\\.{Z}", "\\.Z" } }, /* with dot above */ { 381, LATEX_MACRO, "v{Z}", { "{\\v{Z}}","\\v{Z}", "\\v Z" } }, /* with caron */ /* Latin Small z */ { 378, LATEX_MACRO, "'{z}", { "{\\'{z}}","\\'{z}", "\\'z" } }, /* with acute */ { 380, LATEX_MACRO, ".{z}", { "{\\.{z}}","\\.{z}", "\\.z" } }, /* with dot above */ { 382, LATEX_MACRO, "v{z}", { "{\\v{z}}","\\v{z}", "\\v z" } }, /* with caron */ /* Needs to be before \nu */ { 8203,LATEX_MATH, "null", { "$\\null$", "\\null", NULL } }, /* No space ​ */ { 913, LATEX_MATH, "Alpha", { "$\\Alpha$", "\\Alpha", NULL } }, /*GREEK CAPITAL LETTERALPHA*/ { 914, LATEX_MATH, "Beta", { "$\\Beta$", "\\Beta", NULL } }, /*GREEK CAPITAL LETTERBETA*/ { 915, LATEX_MATH, "Gamma", { "$\\Gamma$", "\\Gamma", NULL } }, /*GREEK CAPITAL LETTERGAMMA*/ { 916, LATEX_MATH, "Delta", { "$\\Delta$", "\\Delta", NULL } }, /*GREEK CAPITAL LETTERDELTA*/ { 917, LATEX_MATH, "Epsilon", { "$\\Epsilon$", "\\Epsilon", NULL } }, /*GREEK CAPITAL LETTEREPSILON*/ { 918, LATEX_MATH, "Zeta", { "$\\Zeta$", "\\Zeta", NULL } }, /*GREEK CAPITAL LETTERZETA*/ { 919, LATEX_MATH, "Eta", { "$\\Eta$", "\\Eta", NULL } }, /*GREEK CAPITAL LETTERETA*/ { 920, LATEX_MATH, "Theta", { "$\\Theta$", "\\Theta", NULL } }, /*GREEK CAPITAL LETTERTHETA*/ { 921, LATEX_MATH, "Iota", { "$\\Iota$", "\\Iota", NULL } }, /*GREEK CAPITAL LETTERIOTA*/ { 922, LATEX_MATH, "Kappa", { "$\\Kappa$", "\\Kappa", NULL } }, /*GREEK CAPITAL LETTERKAPPA*/ { 923, LATEX_MATH, "Lambda", { "$\\Lambda$", "\\Lambda", NULL } }, /*GREEK CAPITAL LETTERLAMDA*/ { 924, LATEX_MATH, "Mu", { "$\\Mu$", "\\Mu", NULL } }, /*GREEK CAPITAL LETTERMU*/ { 925, LATEX_MATH, "Nu", { "$\\Nu$", "\\Nu", NULL } }, /*GREEK CAPITAL LETTERNU*/ { 926, LATEX_MATH, "Xi", { "$\\Xi$", "\\Xi", NULL } }, /*GREEK CAPITAL LETTERXI*/ { 927, LATEX_MATH, "Omicron", { "$\\Omicron$", "\\Omicron", NULL } }, /*GREEK CAPITAL LETTEROMICRON*/ { 928, LATEX_MATH, "Pi", { "$\\Pi$", "\\Pi", NULL } }, /*GREEK CAPITAL LETTERPI*/ { 929, LATEX_MATH, "Rho", { "$\\Rho$", "\\Rho", NULL } }, /*GREEK CAPITAL LETTERRHO*/ { 931, LATEX_MATH, "Sigma", { "$\\Sigma$", "\\Sigma", NULL } }, /*GREEK CAPITAL LETTERSIGMA*/ { 932, LATEX_MATH, "Tau", { "$\\Tau$", "\\Tau", NULL } }, /*GREEK CAPITAL LETTERTAU*/ { 933, LATEX_MATH, "Upsilon", { "$\\Upsilon$", "\\Upsilon", NULL } }, /*GREEK CAPITAL LETTERUPSILON*/ { 934, LATEX_MATH, "Phi", { "$\\Phi$", "\\Phi", NULL } }, /*GREEK CAPITAL LETTERPHI*/ { 935, LATEX_MATH, "Chi", { "$\\Chi$", "\\Chi", NULL } }, /*GREEK CAPITAL LETTERCHI*/ { 936, LATEX_MATH, "Psi", { "$\\Psi$", "\\Psi", NULL } }, /*GREEK CAPITAL LETTERPSI*/ { 937, LATEX_MATH, "Omega", { "$\\Omega$", "\\Omega", NULL } }, /*GREEK CAPITAL LETTEROMEGA*/ /* 902 = GREEK CAPITAL LETTER ALPHAWITHTONOS*/ /* 904 = GREEK CAPITAL LETTER EPSILONWITHTONOS*/ /* 905 = GREEK CAPITAL LETTER ETAWITHTONOS*/ /* 938 = GREEK CAPITAL LETTER IOTAWITHDIALYTIKA*/ /* 906 = GREEK CAPITAL LETTER IOTAWITHTONOS*/ /* 908 = GREEK CAPITAL LETTER OMICRONWITHTONOS*/ /* 939 = GREEK CAPITAL LETTER UPSILONWITHDIALYTIKA*/ /* 910 = GREEK CAPITAL LETTER UPSILONWITHTONOS*/ /* 911, = GREEK CAPITAL LETTER OMEGAWITHTONOS*/ { 945, LATEX_MATH, "alpha", { "$\\alpha$", "\\alpha", NULL } }, /*GREEK SMALL LETTER ALPHA*/ { 946, LATEX_MATH, "beta", { "$\\beta$", "\\beta", NULL } }, /*GREEK SMALL LETTER BETA*/ { 968, LATEX_MATH, "psi", { "$\\psi$", "\\psi", NULL } }, /*GREEK SMALL LETTER PSI*/ { 948, LATEX_MATH, "delta", { "$\\delta$", "\\delta", NULL } }, /*GREEK SMALL LETTER DELTA*/ { 949, LATEX_MATH, "epsilon", { "$\\epsilon$", "\\epsilon", NULL } }, /*GREEK SMALL LETTER EPSILON*/ { 966, LATEX_MATH, "phi", { "$\\phi$", "\\phi", NULL } }, /*GREEK SMALL LETTER PHI*/ { 947, LATEX_MATH, "gamma", { "$\\gamma$", "\\gamma", NULL } }, /*GREEK SMALL LETTER GAMMA*/ { 951, LATEX_MATH, "eta", { "$\\eta$", "\\eta", NULL } }, /*GREEK SMALL LETTER ETA*/ { 953, LATEX_MATH, "iota", { "$\\iota$", "\\iota", NULL } }, /*GREEK SMALL LETTER IOTA*/ { 958, LATEX_MATH, "xi", { "$\\xi$", "\\xi", NULL } }, /*GREEK SMALL LETTER XI*/ { 954, LATEX_MATH, "kappa", { "$\\kappa$", "\\kappa" , NULL } }, /*GREEK SMALL LETTER KAPPA*/ { 955, LATEX_MATH, "lambda", { "$\\lambda$", "\\lambda", NULL } }, /*GREEK SMALL LETTER LAMDA*/ { 956, LATEX_MATH, "mu", { "$\\mu$", "\\mu", NULL } }, /*GREEK SMALL LETTER MU*/ { 957, LATEX_MATH, "nu", { "$\\nu$", "\\nu", NULL } }, /*GREEK SMALL LETTER NU*/ { 959, LATEX_MATH, "omicron", { "$\\omicron$", "\\omicron", NULL } }, /*GREEK SMALL LETTER OMICRON*/ { 960, LATEX_MATH, "pi", { "$\\pi$", "\\pi", NULL } }, /*GREEK SMALL LETTER PI*/ { 961, LATEX_MATH, "rho", { "$\\rho$", "\\rho", NULL } }, /*GREEK SMALL LETTER RHO*/ { 963, LATEX_MATH, "sigma", { "$\\sigma$", "\\sigma", NULL } }, /*GREEK SMALL LETTER SIGMA*/ { 964, LATEX_MATH, "tau", { "$\\tau$", "\\tau", NULL } }, /*GREEK SMALL LETTER TAU*/ { 952, LATEX_MATH, "theta", { "$\\theta$", "\\theta", NULL } }, /*GREEK SMALL LETTER THETA*/ { 969, LATEX_MATH, "omega", { "$\\omega$", "\\omega", NULL } }, /*GREEK SMALL LETTER OMEGA*/ { 967, LATEX_MATH, "chi", { "$\\chi$", "\\chi", NULL } }, /*GREEK SMALL LETTER CHI*/ { 965, LATEX_MATH, "upsilon", { "$\\upsilon$", "\\upsilon", NULL } }, /*GREEK SMALL LETTER UPSILON*/ { 950, LATEX_MATH, "zeta", { "$\\zeta$", "\\zeta", NULL } }, /*GREEK SMALL LETTER ZETA*/ /* 940 = GREEK SMALL LETTER ALPHAWITHTONOS*/ /* 941 = GREEK SMALL LETTER EPSILONWITHTONOS*/ /* 942 = GREEK SMALL LETTER ETAWITHTONOS */ /* 912 = GREEK SMALL LETTER IOTAWITHDIALYTIKAANDTONOS*/ /* 943 = GREEK SMALL LETTER IOTAWITHTONOS */ /* 970 = GREEK SMALL LETTER IOTAWITHDIALYTIKA */ /* 972 = GREEK SMALL LETTER OMICRONWITHTONOS*/ /* 974 = GREEK SMALL LETTER OMEGAWITHTONOS*/ /* 973 = GREEK SMALL LETTER UPSILONWITHTONOS*/ /* 971 = GREEK SMALL LETTER UPSILONWITHDIALYTIKA*/ /* 944 = GREEK SMALL LETTER UPSILONWITHDIALYTIKAANDTONOS*/ { 181, LATEX_MACRO, "textmu", { "{\\textmu}", "\\textmu", "$\\mu$" } }, /* 181=micro sign, techically µ */ /* Make sure that these don't stomp on other latex things above */ { 8242, LATEX_MACRO, "textasciiacutex", { "{\\textasciiacutex}", "\\textasciiacutex", "$'$" } }, /* Prime symbol ′ */ { 180, LATEX_MACRO, "textasciiacute", { "{\\textasciiacute}", "\\textasciiacute", "\\'" } }, /* acute accent ´ */ { 8243, LATEX_MACRO, "textacutedbl", { "{\\textacutedbl}", "\\textacutedbl", "$''$" } }, /* Double prime ″ */ { 8245, LATEX_MACRO, "textasciigrave", { "{\\textasciigrave}", "\\textasciigrave", "\\`" } }, /* Grave accent ‵ */ /* { 768, LATEX_MACRO, "`", { "\\`", NULL, NULL } },*//* Grave accent ̀--apply to next char */ /* { 769, LATEX_MACRO, "'", { "\\'", NULL, NULL } },*//* Acute accent ́--apply to next char */ { 8963, LATEX_MACRO, "textasciicircum", { "{\\textasciicircum}", "\\textasciicircum", NULL } }, /* ⌃ */ { 184, LATEX_MACRO, "textasciicedilla", { "{\\textasciicedilla}", "\\textasciicedilla", NULL } }, /* cedilla ¸ */ { 168, LATEX_MACRO, "textasciidieresis", { "{\\textasciidieresis}", "\\textasciidieresis", NULL } }, /* dieresis ¨ */ { 175, LATEX_MACRO, "textasciimacron", { "{\\textasciimacron}", "\\textasciimacron", NULL } }, /* macron ¯ */ { 8593, LATEX_MACRO, "textuparrow", { "{\\textuparrow}", "\\textuparrow", NULL } }, /* Up arrow ↑ */ { 8595, LATEX_MACRO, "textdownarrow", { "{\\textdownarrow}", "\\textdownarrow", NULL } }, /* Down arrow ↓ */ { 8594, LATEX_MACRO, "textrightarrow", { "{\\textrightarrow}", "\\textrightarrow", NULL } }, /* Right arrow → */ { 8592, LATEX_MACRO, "textleftarrow", { "{\\textleftarrow}", "\\textleftarrow", NULL } }, /* Left arrow ← */ { 12296,LATEX_MACRO, "textlangle", { "{\\textlangle}", "\\textlangle", NULL } }, /* L-angle 〈 */ { 12297,LATEX_MACRO, "textrangle", { "{\\textrangle}", "\\textrangle", NULL } }, /* L-angle 〉 */ { 166, LATEX_MACRO, "textbrokenbar", { "{\\textbrokenbar}", "\\textbrokenbar", NULL } }, /* Broken vertical bar ¦ */ { 167, LATEX_MACRO, "textsection", { "{\\textsection}", "\\textsection", "\\S{}" } }, /* Section sign, § */ { 170, LATEX_MACRO, "textordfeminine", { "{\\textordfeminine}", "\\textordfeminine", "$^a$" } }, /* ª */ { 172, LATEX_MACRO, "textlnot", { "{\\textlnot}", "\\textlnot", NULL } }, /* Lnot ¬ */ { 182, LATEX_MACRO, "textparagraph", { "{\\textparagraph}", "\\textparagraph", NULL } }, /* Paragraph sign ¶ */ { 183, LATEX_MACRO, "textperiodcentered",{ "{\\textperiodcentered}","\\textperiodcentered", NULL } }, /* Period-centered · */ { 186, LATEX_MACRO, "textordmasculine", { "{\\textordmasculine}", "\\textordmasculine", NULL } }, /* º */ { 8214, LATEX_MACRO, "textbardbl", { "{\\textbardbl}", "\\textbardbl", NULL } }, /* Double vertical bar ‖ */ { 8224, LATEX_MACRO, "textdagger", { "{\\textdagger}", "\\textdagger", NULL } }, /* Dagger † */ { 8225, LATEX_MACRO, "textdaggerdbl", { "{\\textdaggerdbl}", "\\textdaggerdbl", NULL } }, /* Double dagger &x2021; */ { 8226, LATEX_MACRO, "textbullet", { "{\\textbullet}", "\\textbullet", NULL } }, /* Bullet • */ { 8494, LATEX_MACRO, "textestimated", { "{\\textestimated}", "\\textestimated", NULL } }, /* Estimated ℮ */ { 9526, LATEX_MACRO, "textopenbullet", { "{\\textopenbullet}", "\\textopenbullet", NULL } }, /* ┶ */ { 8220, LATEX_COMBO, "``", { "``", "{\\textquotedblleft}", "\\textquotedblleft" } }, /* Opening double quote “ */ { 8221, LATEX_COMBO, "''", { "''", "{\\textquotedblright}", "\\textquotedblright" } }, /* Closing double quote ” */ { 8216, LATEX_COMBO, "`", { "`", "{\\textquoteleft}", "\\textquoteleft" } }, /* Opening single quote ‘ */ { 8217, LATEX_COMBO, "'", { "'", "{\\textquoteright}", "\\textquoteright" } }, /* Closing single quote ’ */ { 8261, LATEX_MACRO, "textlquill", { "{\\textlquill}", "\\textlquill", NULL } }, /* Left quill ⁅ */ { 8262, LATEX_MACRO, "textrquill", { "{\\textrquill}", "\\textrquill", NULL } }, /* Right quill ⁆ */ { 8212, LATEX_COMBO, "---", { "---", "{\\textemdash}", "\\textemdash" } }, /* Em-dash — */ { 8211, LATEX_COMBO, "--", { "--", "{\\textendash}", "\\textendash" } }, /* En-dash – */ { 8230, LATEX_MACRO, "ldots", { "{\\ldots}", "{\\textellipsis}", "\\textellipsis" } }, /* Ellipsis … */ { 8194, LATEX_MACRO, "enspace", { "{\\enspace}", "\\hspace{.5em}", NULL } }, /* En-space   */ { 8195, LATEX_MACRO, "emspace", { "{\\emspace}", "\\hspace{1em}", NULL } }, /* Em-space   */ { 8201, LATEX_MACRO, "thinspace", { "{\\thinspace}", NULL, NULL } }, /* Thin space   */ { 8203, LATEX_MACRO, "textnospace", { "{\\textnospace}", "\\textnospace", NULL } }, /* No space ​ */ { 9251, LATEX_MACRO, "textvisiblespace", { "{\\textvisiblespace}", "\\textvisiblespace", NULL } }, /* Visible space ␣ */ { 215, LATEX_MACRO, "texttimes", { "{\\texttimes}", "\\texttimes", NULL } }, /* Multiplication symbol × */ { 247, LATEX_MACRO, "textdiv", { "{\\textdiv}", "\\textdiv", NULL } }, /* Division symbol ÷ */ { 177, LATEX_MACRO, "textpm", { "{\\textpm}", "\\textpm", NULL } }, /* Plus-minus character &#B1; */ { 189, LATEX_MACRO, "textonehalf", { "{\\textonehalf}", "\\textonehalf", NULL } }, /* Vulgar fraction one half ½ */ { 188, LATEX_MACRO, "textonequarter", { "{\\textonequarter}", "\\textonequarter", NULL } }, /* Vulgar fraction one quarter ½ */ { 190, LATEX_MACRO, "textthreequarters", { "{\\textthreequarters}", "\\textthreequarters", NULL } }, /* Vulgar fraction three quarters ¾ */ { 8240, LATEX_MACRO, "texttenthousand", { "{\\texttenthousand}", "\\texttenthousand", NULL } }, /* Per thousand sign ‰ */ { 8241, LATEX_MACRO, "textpertenthousand",{ "{\\textpertenthousand}","\\textpertenthousand", NULL } }, /* Per ten thousand sign ‱*/ { 8260, LATEX_MACRO, "textfractionssolidus",{"{\\textfractionsolidus}", "\\textfractionsolidus", NULL } }, /* &x8260; */ { 8451, LATEX_MACRO, "textcelcius", { "{\\textcelcius}", "\\textcelcius", NULL } }, /* Celcicus ℃ */ { 8470, LATEX_MACRO, "textnumero", { "{\\textnumero}", "\\textnumero", NULL } }, /* Numero symbol № */ { 8486, LATEX_MACRO, "textohm", { "{\\textohm}", "\\textohm", NULL } }, /* Ohm symbol Ω */ { 8487, LATEX_MACRO, "textmho", { "{\\textmho}", "\\textmho", NULL } }, /* Mho symbol ℧ */ { 8730, LATEX_MACRO, "textsurd", { "{\\textsurd}", "\\textsurd", NULL } }, /* √ */ { 185, LATEX_MACRO, "textonesuperior", { "{\\textonesuperior}", "\\textonesuperior", "$^1$" } }, /*Superscript 1 ¹ */ { 178, LATEX_MACRO, "texttwosuperior", { "{\\texttwosuperior}", "\\texttwosuperior", "$^2$" } }, /*Superscript 2 ² */ { 179, LATEX_MACRO, "textthreesuperior", { "{\\textthreesuperior}", "\\textthreesuperior", "$^3$" } }, /*Superscript 3 ³ */ { 161, LATEX_MACRO, "textexclamdown", { "{\\textexclamdown}", "\\textexclamdown", NULL } }, /* Inverted exclamation mark ¡*/ { 191, LATEX_MACRO, "textquestiondown", { "{\\textquestiondown}", "\\textquestiondown", NULL } }, /* Inverted question mark ¿ */ { 162, LATEX_MACRO, "textcent", { "{\\textcent}", "\\textcent", NULL } }, /* Cent sign ¢ */ { 163, LATEX_MACRO, "textsterling", { "{\\textsterling}", "\\textsterling", "\\pounds" } }, /* Pound sign £ */ { 165, LATEX_MACRO, "textyen", { "{\\textyen}", "\\textyen", NULL } }, /* Yen sign ¥ */ { 402, LATEX_MACRO, "textflorin", { "{\\textflorin}", "\\textflorin", NULL } }, /* Florin sign ƒ */ { 3647, LATEX_MACRO, "textbaht", { "{\\textbaht}", "\\textbaht", NULL } }, /* Thai currency ฿ */ { 8355, LATEX_MACRO, "textfrenchfranc", { "{\\textfrenchfranc}", "\\textfrenchfranc", NULL } }, /* French franc ₣ */ { 8356, LATEX_MACRO, "textlira", { "{\\textlira}", "\\textlira", NULL } }, /* Lira ₤ */ { 8358, LATEX_MACRO, "textnaira", { "{\\textnaira}", "\\textnaria", NULL } }, /* Naira ₦ */ { 8361, LATEX_MACRO, "textwon", { "{\\textwon}", "\\textwon", NULL } }, /* ₩ */ { 8363, LATEX_MACRO, "textdong", { "{\\textdong}", "\\textdong", NULL } }, /* Vietnamese currency ₫ */ { 8364, LATEX_MACRO, "texteuro", { "{\\texteuro}", "\\texteuro", NULL } }, /* Euro sign */ { 169, LATEX_MACRO, "textcopyright", { "{\\textcopyright}", "\\textcopyright", NULL } }, /* Copyright (C) © */ { 175, LATEX_MACRO, "textregistered", { "{\\textregistered}", "\\textregistered", NULL } }, /* Registered sign (R) ¯*/ { 8482, LATEX_MACRO, "texttrademark", { "{\\texttrademark}", "\\texttrademark", "$^{TM}$" } }, /* Trademark (TM) ™ */ { 8480, LATEX_MACRO, "textservicemark", { "{\\textservicemark}", "\\textservicemark", "$^{SM}$" } }, /* Servicemark (SM) ℠*/ { 8471, LATEX_MACRO, "textcircledP", { "{\\textcircledP}", "\\textcircledP", NULL } }, /* Circled P ࡅ */ }; static int nlatex_chars = sizeof(latex_chars)/sizeof(struct latex_chars); /* latex2char() * * Use the latex_chars[] lookup table to determine if any character * is a special LaTeX code. Note that if it is, then the equivalency * is a Unicode character and we need to flag (by setting *unicode to 1) * that we know the output is Unicode. Otherwise, we set *unicode to 0, * meaning that the output is whatever character set was given to us * (which could be Unicode, but is not necessarily Unicode). * */ unsigned int latex2char( char *s, unsigned int *pos, int *unicode ) { unsigned int value; // char *p, *q[3]; int i, j, len; char *p; p = &( s[*pos] ); value = (unsigned char) *p; if ( value=='{' || value=='\\' || value=='~' || value=='$' || value=='\'' || value=='`' || value=='-' || value=='^' ) { // if ( *p=='\\' && ( *p=='{' || *p=='}' ) ) { // } else { for ( i=0; i #include #include #include "latex.h" #define LATEX_COMBO (0) /* 'combo' no need for protection on output */ #define LATEX_MACRO (1) /* 'macro_name' to be protected by {\macro_name} on output */ #define LATEX_MATH (2) /* 'math_expression' to be protected by $math_expression$ on output */ struct latex_chars { unsigned int unicode; /* unicode code point */ unsigned char type; /* LATEX_COMBO/LATEX_MACRO/LATEX_MATH */ char *out; /* unadorned latex combination for output */ char *variant[3]; /* possible variations on input */ }; static struct latex_chars latex_chars[] = { /* LaTeX special characters */ { 32, LATEX_COMBO, " ", { "\\ ", NULL, NULL } }, /* escaping the space is used to avoid extra space after periods */ { 35, LATEX_MACRO, "#", { "\\#", NULL, NULL } }, /* Number/pound/hash sign */ { 36, LATEX_MACRO, "$", { "\\$", NULL, NULL } }, /* Dollar Sign */ { 37, LATEX_MACRO, "%", { "\\%", NULL, NULL } }, /* Percent Sign */ { 38, LATEX_MACRO, "&", { "\\&", NULL, NULL } }, /* Ampersand */ { 95, LATEX_MACRO, "_", { "\\_", NULL, NULL } }, /* Underscore alone indicates subscript */ { 123, LATEX_MACRO, "{", { "\\{", "{\\textbraceleft}", "\\textbraceleft" } }, /* Left Curly Bracket */ { 125, LATEX_MACRO, "}", { "\\}", "{\\textbraceright}", "\\textbraceright" } }, /* Right Curly Bracket */ { 92, LATEX_MACRO, "backslash", { "{\\backslash}", "\\backslash", NULL } }, /* Backslash */ { 176, LATEX_MACRO, "textdegree", { "{\\textdegree}", "\\textdegree", "^\\circ" } }, /* Degree sign */ { 126, LATEX_MACRO, "textasciitilde", { "{\\textasciitilde}", "\\textasciitilde", "\\~{}" } }, /* Tilde in latex */ /* fix sticky spaces "~" in bibtex token cleaning--allows tokens to be parsed properly */ /* Latin Capital A */ { 192, LATEX_MACRO, "`A", { "{\\`A}", "\\`{A}", "\\`A" } }, /* with grave */ { 193, LATEX_MACRO, "'A", { "{\\'A}", "\\'{A}", "\\'A" } }, /* with acute */ { 194, LATEX_MACRO, "^A", { "{\\^A}", "\\^{A}", "\\^A" } }, /* with circumflex */ { 195, LATEX_MACRO, "~A", { "{\\~A}", "\\~{A}", "\\~A" } }, /* with tilde */ { 196, LATEX_MACRO, "\"A", { "{\\\"A}", "\\\"{A}", "\\\"A" } }, /* with diuresis */ { 197, LATEX_MACRO, "AA", { "{\\AA}", "{\\r{A}}", "\\r{A}"} }, /* with ring above */ { 256, LATEX_MACRO, "={A}", { "{\\={A}}", "\\={A}", "\\=A" } }, /* with macron */ { 258, LATEX_MACRO, "u{A}", { "{\\u{A}}", "\\u{A}", "\\u A" } }, /* with breve */ { 260, LATEX_MACRO, "k{A}", { "{\\k{A}}", "\\k{A}", "\\k A" } }, /* with ogonek */ { 461, LATEX_MACRO, "v{A}", { "{\\v{A}}", "\\v{A}", "\\v A" } }, /* with caron */ /* Latin Small a */ { 224, LATEX_MACRO, "`a", { "{\\`a}", "\\`{a}", "\\`a" } }, /* with grave */ { 225, LATEX_MACRO, "'a", { "{\\'a}", "\\'{a}", "\\'a" } }, /* with acute */ { 226, LATEX_MACRO, "^a", { "{\\^a}", "\\^{a}", "\\^a" } }, /* with circumflex */ { 227, LATEX_MACRO, "~a", { "{\\~a}", "\\~{a}", "\\~a" } }, /* with tilde */ { 228, LATEX_MACRO, "\"a", { "{\\\"a}", "\\\"{a}", "\\\"a" } }, /* with diuresis */ { 229, LATEX_MACRO, "aa", { "{\\aa}", "{\\r{a}}", "\\r{a}"} }, /* with ring above */ { 257, LATEX_MACRO, "={a}", { "{\\={a}}", "\\={a}", "\\=a" } }, /* with macron */ { 259, LATEX_MACRO, "u{a}", { "{\\u{a}}", "\\u{a}", "\\u a" } }, /* with breve */ { 261, LATEX_MACRO, "k{a}", { "{\\k{a}}", "\\k{a}", "\\k a" } }, /* with ogonek */ { 462, LATEX_MACRO, "v{a}", { "{\\v{a}}", "\\v{a}", "\\v a" } }, /* with caron */ { 198, LATEX_MACRO, "AE", { "{\\AE}", "\\AE", NULL } }, /* Latin Capital AE */ { 230, LATEX_MACRO, "ae", { "{\\ae}", "\\ae", NULL } }, /* Latin Small ae */ /* Latin Capital C */ { 199, LATEX_MACRO, "c{C}", { "{\\c{C}}", "\\c{C}", "\\c c" } }, /* with cedilla */ { 262, LATEX_MACRO, "'{C}", { "{\\'{C}}", "\\'{C}", "\\'C" } }, /* with acute */ { 264, LATEX_MACRO, "^{C}", { "{\\^{C}}", "\\^{C}", "\\^C" } }, /* with circumflex */ { 266, LATEX_MACRO, ".{C}", { "{\\.{C}}", "\\.{C}", "\\.C" } }, /* with dot above */ { 268, LATEX_MACRO, "v{C}", { "{\\v{C}}", "\\v{C}", "\\v C" } }, /* with caron (hacek) */ /* Latin Small c */ { 231, LATEX_MACRO, "c{c}", { "{\\c{c}}", "\\c{c}", "\\c C" } }, /* with cedilla*/ { 263, LATEX_MACRO, "'{c}", { "{\\'{c}}", "\\'{c}", "\\'c" } }, /* with acute */ { 265, LATEX_MACRO, "^{c}", { "{\\^{c}}", "\\^{c}", "\\^c" } }, /* with circumflex */ { 267, LATEX_MACRO, ".{c}", { "{\\.{c}}", "\\.{c}", "\\.c" } }, /* with dot above */ { 269, LATEX_MACRO, "v{c}", { "{\\v{c}}", "\\v{c}", "\\v c" } }, /* with caron (hacek) */ /* Latin Capital D */ { 270, LATEX_MACRO, "v{D}", { "{\\v{D}}", "\\v{D}", "\\v D" } }, /* with caron */ { 272, LATEX_MACRO, "DJ", { "{\\DJ}", NULL, NULL } }, /* with stroke */ /* Latin Small d */ { 271, LATEX_MACRO, "v{d}", { "{\\v{d}}", "\\v{d}", "\\v d" } }, /* with caron */ { 273, LATEX_MACRO, "dj", { "{\\dj}", NULL, NULL } }, /* with stroke */ /* Latin Capital E */ { 200, LATEX_MACRO, "`E", { "{\\`E}", "\\`{E}", "\\`E" } }, /* with grave */ { 201, LATEX_MACRO, "'E", { "{\\'E}", "\\'{E}", "\\'E" } }, /* with acute */ { 202, LATEX_MACRO, "^E", { "{\\^E}", "\\^{E}", "\\^E" } }, /* with circumflex */ { 203, LATEX_MACRO, "\"E", { "{\\\"E}", "\\\"{E}", "\\\"E" } }, /* with diuresis */ { 274, LATEX_MACRO, "={E}", { "{\\={E}}", "\\={E}", "\\=E" } }, /* with macron */ { 276, LATEX_MACRO, "u{E}", { "{\\u{E}}", "\\u{E}", "\\u E" } }, /* with breve */ { 278, LATEX_MACRO, ".{E}", { "{\\.{E}}", "\\.{E}", "\\.E" } }, /* with dot above */ { 280, LATEX_MACRO, "k{E}", { "{\\k{E}}", "\\k{E}", "\\k E" } }, /* with ogonek */ { 282, LATEX_MACRO, "v{E}", { "{\\v{E}}", "\\v{E}", "\\v E" } }, /* with caron */ /* Latin Small e */ { 232, LATEX_MACRO, "`e", { "{\\`e}", "\\`{e}", "\\`e" } }, /* with grave */ { 233, LATEX_MACRO, "'e", { "{\\'e}", "\\'{e}", "\\'e" } }, /* with acute */ { 234, LATEX_MACRO, "^e", { "{\\^e}", "\\^{e}", "\\^e" } }, /* with circumflex */ { 235, LATEX_MACRO, "\"e", { "{\\\"e}", "\\\"{e}", "\\\"e" } }, /* with diuresis */ { 275, LATEX_MACRO, "={e}", { "{\\={e}}", "\\={e}", "\\=e" } }, /* with macron */ { 277, LATEX_MACRO, "u{e}", { "{\\u{e}}", "\\u{e}", "\\u e" } }, /* with breve */ { 279, LATEX_MACRO, ".{e}", { "{\\.{e}}", "\\.{e}", "\\.e" } }, /* with dot above */ { 281, LATEX_MACRO, "k{e}", { "{\\k{e}}", "\\k{e}", "\\k e" } }, /* with ogonek */ { 283, LATEX_MACRO, "v{e}", { "{\\v{e}}", "\\v{e}", "\\v e" } }, /* with caron */ /* Latin Capital G */ { 284, LATEX_MACRO, "^{G}", { "{\\^{G}}", "\\^{G}", "\\^G" } }, /* with circumflex */ { 286, LATEX_MACRO, "u{G}", { "{\\u{G}}", "\\u{G}", "\\u G" } }, /* with breve */ { 288, LATEX_MACRO, ".{G}", { "{\\.{G}}", "\\.{G}", "\\.G" } }, /* with dot above */ { 290, LATEX_MACRO, "c{G}", { "{\\c{G}}", "\\c{G}", "\\c G" } }, /* with cedilla */ { 486, LATEX_MACRO, "v{G}", { "{\\v{G}}", "\\v{G}", "\\v G" } }, /* with caron */ { 500, LATEX_MACRO, "'{G}", { "{\\'{G}}", "\\'{G}", "\\'G" } }, /* with acute */ /* Latin Small g */ { 285, LATEX_MACRO, "^{g}", { "{\\^{g}}", "\\^{g}", "\\^g" } }, /* with circumflex */ { 287, LATEX_MACRO, "u{g}", { "{\\u{g}}", "\\u{g}", "\\u g" } }, /* with breve */ { 289, LATEX_MACRO, ".{g}", { "{\\.{g}}", "\\.{g}", "\\.g" } }, /* with dot above */ { 291, LATEX_MACRO, "c{g}", { "{\\c{g}}", "\\c{g}", "\\c g" } }, /* with cedilla */ { 487, LATEX_MACRO, "v{g}", { "{\\v{g}}", "\\v{g}", "\\v g" } }, /* with caron */ { 501, LATEX_MACRO, "'{g}", { "{\\'{g}}", "\\'{g}", "\\'g" } }, /* with acute */ /* Latin Capital H */ { 292, LATEX_MACRO, "^{H}", { "{\\^{H}}", "\\^{H}", "\\^H" } }, /* with circumflex */ /* { 294, LATEX_MACRO, "", { NULL, NULL, NULL } },*//* with stroke */ /* Latin Capital h */ { 293, LATEX_MACRO, "^{h}", { "{\\^{h}}", "\\^{h}", "\\^h" } }, /* with circumflex */ /* { 295, LATEX_MACRO, "", { NULL, NULL, NULL } },*//* with stroke */ /* Latin Capital I */ { 204, LATEX_MACRO, "`I", { "{\\`I}", "\\`{I}", "\\`I" } }, /* with grave */ { 205, LATEX_MACRO, "'I", { "{\\'I}", "\\'{I}", "\\'I" } }, /* with acute */ { 206, LATEX_MACRO, "^I", { "{\\^I}", "\\^{I}", "\\^I" } }, /* with circumflex */ { 207, LATEX_MACRO, "\"I", { "{\\\"I}", "\\\"{I}", "\\\"I" } }, /* with diuresis */ { 296, LATEX_MACRO, "~{I}", { "{\\~{I}}", "\\~{I}", "\\~I" } }, /* with tilde */ { 298, LATEX_MACRO, "={I}", { "{\\={I}}", "\\={I}", "\\=I" } }, /* with macron */ { 300, LATEX_MACRO, "u{I}", { "{\\u{I}}", "\\u{I}", "\\u I" } }, /* with breve */ { 302, LATEX_MACRO, "k{I}", { "{\\k{I}}", "\\k{I}", "\\k I" } }, /* with ogonek */ { 304, LATEX_MACRO, ".{I}", { "{\\.{I}}", "\\.{I}", "\\. I" } }, /* with dot above */ { 463, LATEX_MACRO, "v{I}", { "{\\v{I}}", "\\v{I}", "\\v I" } }, /* with caron */ /* Latin Small i */ { 236, LATEX_MACRO, "`i", { "{\\`i}", "\\`{i}", "\\`i" } }, /* with grave */ { 237, LATEX_MACRO, "'i", { "{\\'i}", "\\'{i}", "\\'i" } }, /* with acute */ { 238, LATEX_MACRO, "^i", { "{\\^i}", "\\^{i}", "\\^i" } }, /* with circumflex */ { 239, LATEX_MACRO, "\"i", { "{\\\"i}", "\\\"{i}", "\\\"i" } }, /* with diuresis */ { 303, LATEX_MACRO, "k{i}", { "{\\k{i}}", "\\k{i}", "\\k i" } }, /* with ogonek */ /* Latex "\i" has no dot on "i" */ { 305, LATEX_MACRO, "i", { "{\\i}", "\\i{}", NULL } }, /* without dot above */ { 236, LATEX_MACRO, "`{\\i}", { "{\\`\\i}", "\\`{\\i}", "\\`\\i" } }, /* with grave */ { 237, LATEX_MACRO, "'{\\i}", { "{\\'\\i}", "\\'{\\i}", "\\'\\i" } }, /* with acute */ { 238, LATEX_MACRO, "^{\\i}", { "{\\^\\i}", "\\^{\\i}", "\\^\\i" } }, /* with circumflex */ { 239, LATEX_MACRO, "\"{\\i}", { "{\\\"\\i}", "\\\"{\\i}","\\\"\\i" } }, /* with diuresis */ { 297, LATEX_MACRO, "`{\\i}", { "{\\~{\\i}}", "\\~{\\i}", "\\~\\i{}" } }, /* with tilde */ { 299, LATEX_MACRO, "={\\i}", { "{\\={\\i}}", "\\={\\i}", "\\=\\i{}" } }, /* with macron */ { 301, LATEX_MACRO, "u{\\i}", { "{\\u{\\i}}", "\\u{\\i}", "\\u\\i{}" } }, /* with breve */ { 464, LATEX_MACRO, "v{\\i}", { "{\\v \\i{}}", "\\v \\i{}", NULL } }, /* with caron */ /* { 306, LATEX_MACRO, "", { NULL, NULL, NULL } },*/ /* Latin Capital IJ */ /* { 307, LATEX_MACRO, "", { NULL, NULL, NULL } },*/ /* Latin Small ij */ /* Latin Capital J */ { 308, LATEX_MACRO, "^{J}", { "{\\^{J}}", "\\^{J}", "\\^J" } }, /* with circumflex */ /* Latin Small j */ { 309, LATEX_MACRO, "^{j}", { "{\\^{j}}", "\\^{j}", "\\^j" } }, /* with circumflex */ /* Latin Capital K */ { 310, LATEX_MACRO, "c{K}", { "{\\c{K}}", "\\c{K}", "\\c K" } }, /* with cedilla */ { 488, LATEX_MACRO, "v{K}", { "{\\v{K}}", "\\v{K}", "\\v K" } }, /* with caron */ /* Latin Small k */ { 311, LATEX_MACRO, "c{k}", { "{\\c{k}}", "\\c{k}", "\\c k" } }, /* with cedilla */ { 489, LATEX_MACRO, "v{k}", { "{\\v{k}}", "\\v{k}", "\\v k" } }, /* with caron */ /* Latin Capital L */ { 313, LATEX_MACRO, "'{L}", { "{\\'{L}}", "\\'{L}", "\\'L" } }, /* with acute */ { 315, LATEX_MACRO, "c{L}", { "{\\c{L}}", "\\c{L}", "\\c L" } }, /* with cedilla */ { 317, LATEX_MACRO, "v{L}", { "{\\v{L}}", "\\v{l}", "\\v L" } }, /* with caron */ { 319, LATEX_COMBO, "{L\\hspace{-0.35em}$\\cdot$}", { "{L\\hspace{-0.35em}$\\cdot$}","L\\hspace{-0.35em}$\\cdot$", NULL } }, /* with middle dot */ { 321, LATEX_MACRO, "L", { "{\\L}", "{\\L{}}", "\\L{}" } }, /* with stroke */ /* Latin Small l */ { 314, LATEX_MACRO, "'{l}", { "{\\'{l}}", "\\'{l}", "\\'l" } }, /* with acute */ { 316, LATEX_MACRO, "c{l}", { "{\\c{l}}", "\\c{l}", "\\c l" } }, /* with cedilla */ { 318, LATEX_MACRO, "v{l}", { "{\\v{l}}", "\\v{l}", "\\v l" } }, /* with caron */ { 320, LATEX_COMBO, "{l$\\cdot$}", { "{l$\\cdot$}","l$\\cdot$", NULL } }, /* with middle dot */ { 322, LATEX_MACRO, "l", { "{\\l}", "{\\l{}}", "\\l{}" } }, /* with stroke */ /* Latin Capital N */ { 209, LATEX_MACRO, "~{N}", { "{\\~{N}}", "\\~{N}", "\\~N" } }, /* with tilde */ { 323, LATEX_MACRO, "'{N}", { "{\\'{N}}", "\\'{N}", "\\'N" } }, /* with acute */ { 325, LATEX_MACRO, "c{N}", { "{\\c{N}}", "\\c{N}", "\\c N" } }, /* with cedilla */ { 327, LATEX_MACRO, "v{N}", { "{\\v{N}}", "\\v{N}", "\\v N" } }, /* with caron */ /* Latin Small n */ { 241, LATEX_MACRO, "~{n}", { "{\\~{n}}", "\\~{n}", "\\~n" } }, /* with tilde */ { 324, LATEX_MACRO, "'{n}", { "{\\'{n}}", "\\'{n}", "\\'n" } }, /* with acute */ { 326, LATEX_MACRO, "c{n}", { "{\\c{n}}", "\\c{n}", "\\c N" } }, /* with cedilla */ { 328, LATEX_MACRO, "v{n}", { "{\\v{n}}", "\\v{n}", "\\v n" } }, /* with caron */ { 329, LATEX_MACRO, "n", { "\\n", NULL, NULL } }, /* preceeded by apostrophe */ /* Latin Capital O */ { 210, LATEX_MACRO, "`O", { "{\\`O}", "\\`{O}", "\\`O" } }, /* with grave */ { 211, LATEX_MACRO, "'O", { "{\\'O}", "\\'{O}", "\\'O" } }, /* with acute */ { 212, LATEX_MACRO, "^O", { "{\\^O}", "\\^{O}", "\\^O" } }, /* with circumflex */ { 213, LATEX_MACRO, "~O", { "{\\~O}", "\\~{O}", "\\~O" } }, /* with tilde */ { 214, LATEX_MACRO, "\"O", { "{\\\"O}", "\\\"{O}", "\\\"O" } }, /* with diaeresis */ { 216, LATEX_MACRO, "O", { "{\\O}", "\\O", NULL } }, /* with stroke */ { 332, LATEX_MACRO, "={O}", { "{\\={O}}", "\\={O}", "\\=O" } }, /* with macron */ { 334, LATEX_MACRO, "u{O}", { "{\\u{O}}", "\\u{O}", "\\u O" } }, /* with breve */ { 336, LATEX_MACRO, "H{O}", { "{\\H{O}}", "\\H{O}", "\\H O" } }, /* with double acute */ { 465, LATEX_MACRO, "v{O}", { "{\\v{O}}", "\\v{O}", "\\v O" } }, /* with caron */ { 490, LATEX_MACRO, "k{O}", { "{\\k{O}}", "\\k{O}", "\\k O" } }, /* with ogonek */ /* Latin Small o */ { 242, LATEX_MACRO, "`o", { "{\\`o}", "\\`{o}", "\\`o" } }, /* with grave */ { 243, LATEX_MACRO, "'o", { "{\\'o}", "\\'{o}", "\\'o" } }, /* with acute */ { 244, LATEX_MACRO, "^o", { "{\\^o}", "\\^{o}", "\\^o" } }, /* with circumflex */ { 245, LATEX_MACRO, "~o", { "{\\~o}", "\\~{o}", "\\~o" } }, /* with tilde */ { 246, LATEX_MACRO, "\"o", { "{\\\"o}", "\\\"{o}", "\\\"o" } }, /* with diaeresis */ { 248, LATEX_MACRO, "o", { "{\\o}", "\\o", NULL } }, /* with stroke */ { 333, LATEX_MACRO, "={o}", { "{\\={o}}", "\\={o}", "\\=o" } }, /* with macron */ { 335, LATEX_MACRO, "u{o}", { "{\\u{o}}", "\\u{o}", "\\u o" } }, /* with breve */ { 337, LATEX_MACRO, "H{o}", { "{\\H{o}}", "\\H{o}", "\\H o" } }, /* with double acute */ { 466, LATEX_MACRO, "v{o}", { "{\\v{o}}", "\\v{o}", "\\v o" } }, /* with caron */ { 491, LATEX_MACRO, "k{o}", { "{\\k{o}}", "\\k{o}", "\\k o" } }, /* with ogonek */ { 338, LATEX_MACRO, "OE", { "{\\OE}", "\\OE", NULL } }, /* Latin Capital OE */ { 339, LATEX_MACRO, "oe", { "{\\oe}", "\\oe", NULL } }, /* Latin Small oe */ /* Latin Capital R */ { 340, LATEX_MACRO, "'R", { "{\\'{R}}", "\\'{R}", "\\'R" } }, /* with acute */ { 342, LATEX_MACRO, "c{R}", { "{\\c{R}}", "\\c{R}", "\\c R" } }, /* with cedilla */ { 344, LATEX_MACRO, "v{R}", { "{\\v{R}}", "\\v{R}", "\\v R" } }, /* with caron */ /* Latin Small r */ { 341, LATEX_MACRO, "'r", { "{\\'{r}}", "\\'{r}", "\\'r" } }, /* with acute */ { 343, LATEX_MACRO, "c{r}", { "{\\c{r}}", "\\c{r}", "\\c r" } }, /* with cedilla */ { 345, LATEX_MACRO, "v{r}", { "{\\v{r}}", "\\v{r}", "\\v r" } }, /* with caron */ /* Latin Capital S */ { 346, LATEX_MACRO, "'{S}", { "{\\'{S}}", "\\'{S}", "\\'S" } }, /* with acute */ { 348, LATEX_MACRO, "^{S}", { "{\\^{S}}", "\\^{S}", "\\^S" } }, /* with circumflex */ { 350, LATEX_MACRO, "c{S}", { "{\\c{S}}", "\\c{S}", "\\c S" } }, /* with cedilla */ { 352, LATEX_MACRO, "v{S}", { "{\\v{S}}", "\\v{S}", "\\v S" } }, /* with caron */ /* Latin Small s */ { 347, LATEX_MACRO, "'{s}", { "{\\'{s}}", "\\'{s}", "\\'s" } }, /* with acute */ { 349, LATEX_MACRO, "^{s}", { "{\\^{s}}", "\\^{s}", "\\^s" } }, /* with circumflex */ { 351, LATEX_MACRO, "c{s}", { "{\\c{s}}", "\\c{s}", "\\c s" } }, /* with cedilla */ { 353, LATEX_MACRO, "v{s}", { "{\\v{s}}", "\\v{s}", "\\v s" } }, /* with caron */ /* Latin Capital T */ { 354, LATEX_MACRO, "c{T}", { "{\\c{T}}", "\\c{T}", NULL } }, /* with cedilla */ { 356, LATEX_MACRO, "v{T}", { "{\\v{T}}", "\\v{T}", NULL } }, /* with caron */ /* { 358, LATEX_MACRO, "", { NULL, NULL, NULL } },*//* with stroke */ /* Latin Small t */ { 355, LATEX_MACRO, "c{T}", { "{\\c{t}}", "\\c{t}", NULL } }, /* with cedilla */ { 357, LATEX_MACRO, "v{T}", { "{\\v{t}}", "\\v{t}", NULL } }, /* with caron */ /* { 359, LATEX_MACRO, "", { NULL, NULL, NULL } },*//* with stroke */ { 223, LATEX_MACRO, "ss", { "{\\ss}", "\\ss", NULL } }, /* German sz ligature, "sharp s" */ /* Latin Capital U */ { 217, LATEX_MACRO, "`U", { "{\\`U}", "\\`{U}", "\\`U" } }, /* with grave */ { 218, LATEX_MACRO, "'U", { "{\\'U}", "\\'{U}", "\\'U" } }, /* with acute */ { 219, LATEX_MACRO, "^U", { "{\\^U}", "\\^{U}", "\\^U" } }, /* with circumflex */ { 220, LATEX_MACRO, "\"U", { "{\\\"U}", "\\\"{U}","\\\"U" } }, /* with diaeresis */ { 360, LATEX_MACRO, "~{U}", { "{\\~{U}}", "\\~{U}", "\\~U" } }, /* with tilde */ { 362, LATEX_MACRO, "={U}", { "{\\={U}}", "\\={U}", "\\=U" } }, /* with macron */ { 364, LATEX_MACRO, "u{U}", { "{\\u{U}}", "\\u{U}", "\\u U" } }, /* with breve */ { 366, LATEX_MACRO, "r{U}", { "{\\r{U}}", "\\r{U}", "\\r U" } }, /* with ring above */ { 368, LATEX_MACRO, "H{U}", { "{\\H{U}}", "\\H{U}", "\\H U" } }, /* with double acute */ { 370, LATEX_MACRO, "k{U}", { "{\\k{U}}", "\\k{U}", "\\k U" } }, /* with ogonek */ { 467, LATEX_MACRO, "v{U}", { "{\\v{U}}", "\\v{U}", "\\v U" } }, /* with caron */ /* Latin Small u */ { 249, LATEX_MACRO, "`u", { "{\\`u}", "\\`{u}", "\\`u" } }, /* with grave */ { 250, LATEX_MACRO, "'u", { "{\\'u}", "\\'{u}", "\\'u" } }, /* with acute */ { 251, LATEX_MACRO, "^u", { "{\\^u}", "\\^{u}", "\\^u" } }, /* with circumflex */ { 252, LATEX_MACRO, "\"u", { "{\\\"u}", "\\\"{u}","\\\"u" } }, /* with diaeresis */ { 361, LATEX_MACRO, "~{u}", { "{\\~{u}}", "\\~{u}", NULL } }, /* with tilde */ { 363, LATEX_MACRO, "={u}", { "{\\={u}}", "\\={u}", "\\=u" } }, /* with macron */ { 365, LATEX_MACRO, "u{u}", { "{\\u{u}}", "\\u{u}", "\\u u" } }, /* with breve */ { 367, LATEX_MACRO, "r{u}", { "{\\r{u}}", "\\r{u}", "\\r u" } }, /* with ring above */ { 369, LATEX_MACRO, "H{u}", { "{\\H{u}}", "\\H{u}", "\\H u" } }, /* with double acute */ { 371, LATEX_MACRO, "k{u}", { "{\\k{u}}", "\\k{u}", "\\k u" } }, /* with ogonek */ { 468, LATEX_MACRO, "v{u}", { "{\\v{u}}", "\\v{u}", "\\v u" } }, /* with caron */ /* Latin Capital W */ { 372, LATEX_MACRO, "^{W}", { "{\\^{W}}", "\\^{W}", "\\^W" } }, /* with circumflex */ /* Latin Small w */ { 373, LATEX_MACRO, "^{w}", { "{\\^{w}}", "\\^{w}", "\\^w" } }, /* with circumflex */ /* Latin Capital Y */ { 221, LATEX_MACRO, "'{Y}", { "{\\'{Y}}", "\\'{Y}", "\\'Y" } }, /* with acute */ { 374, LATEX_MACRO, "^{Y}", { "{\\^{Y}}", "\\^{Y}", "\\^Y" } }, /* with circumflex */ { 376, LATEX_MACRO, "\"{Y}",{ "{\\\"{Y}}","\\\"{Y}","\\\"Y" } }, /* with diaeresis */ /* Latin Small y */ { 253, LATEX_MACRO, "'y", { "{\\'y}", "\\'{y}", "\\'y" } }, /* with acute */ { 255, LATEX_MACRO, "\"y", { "{\\\"y}", "\\\"{y}","\\\"y" } }, /* with diaeresis */ { 375, LATEX_MACRO, "^{y}", { "{\\^{y}}","\\^{y}", "\\^y" } }, /* with circumflex */ /* Latin Capital Z */ { 377, LATEX_MACRO, "'{Z}", { "{\\'{Z}}","\\'{Z}", "\\'Z" } }, /* with acute */ { 379, LATEX_MACRO, ".{Z}", { "{\\.{Z}}","\\.{Z}", "\\.Z" } }, /* with dot above */ { 381, LATEX_MACRO, "v{Z}", { "{\\v{Z}}","\\v{Z}", "\\v Z" } }, /* with caron */ /* Latin Small z */ { 378, LATEX_MACRO, "'{z}", { "{\\'{z}}","\\'{z}", "\\'z" } }, /* with acute */ { 380, LATEX_MACRO, ".{z}", { "{\\.{z}}","\\.{z}", "\\.z" } }, /* with dot above */ { 382, LATEX_MACRO, "v{z}", { "{\\v{z}}","\\v{z}", "\\v z" } }, /* with caron */ /* Needs to be before \nu */ { 8203,LATEX_MATH, "null", { "$\\null$", "\\null", NULL } }, /* No space ​ */ { 913, LATEX_MATH, "Alpha", { "$\\Alpha$", "\\Alpha", NULL } }, /*GREEK CAPITAL LETTERALPHA*/ { 914, LATEX_MATH, "Beta", { "$\\Beta$", "\\Beta", NULL } }, /*GREEK CAPITAL LETTERBETA*/ { 915, LATEX_MATH, "Gamma", { "$\\Gamma$", "\\Gamma", NULL } }, /*GREEK CAPITAL LETTERGAMMA*/ { 916, LATEX_MATH, "Delta", { "$\\Delta$", "\\Delta", NULL } }, /*GREEK CAPITAL LETTERDELTA*/ { 917, LATEX_MATH, "Epsilon", { "$\\Epsilon$", "\\Epsilon", NULL } }, /*GREEK CAPITAL LETTEREPSILON*/ { 918, LATEX_MATH, "Zeta", { "$\\Zeta$", "\\Zeta", NULL } }, /*GREEK CAPITAL LETTERZETA*/ { 919, LATEX_MATH, "Eta", { "$\\Eta$", "\\Eta", NULL } }, /*GREEK CAPITAL LETTERETA*/ { 920, LATEX_MATH, "Theta", { "$\\Theta$", "\\Theta", NULL } }, /*GREEK CAPITAL LETTERTHETA*/ { 921, LATEX_MATH, "Iota", { "$\\Iota$", "\\Iota", NULL } }, /*GREEK CAPITAL LETTERIOTA*/ { 922, LATEX_MATH, "Kappa", { "$\\Kappa$", "\\Kappa", NULL } }, /*GREEK CAPITAL LETTERKAPPA*/ { 923, LATEX_MATH, "Lambda", { "$\\Lambda$", "\\Lambda", NULL } }, /*GREEK CAPITAL LETTERLAMDA*/ { 924, LATEX_MATH, "Mu", { "$\\Mu$", "\\Mu", NULL } }, /*GREEK CAPITAL LETTERMU*/ { 925, LATEX_MATH, "Nu", { "$\\Nu$", "\\Nu", NULL } }, /*GREEK CAPITAL LETTERNU*/ { 926, LATEX_MATH, "Xi", { "$\\Xi$", "\\Xi", NULL } }, /*GREEK CAPITAL LETTERXI*/ { 927, LATEX_MATH, "Omicron", { "$\\Omicron$", "\\Omicron", NULL } }, /*GREEK CAPITAL LETTEROMICRON*/ { 928, LATEX_MATH, "Pi", { "$\\Pi$", "\\Pi", NULL } }, /*GREEK CAPITAL LETTERPI*/ { 929, LATEX_MATH, "Rho", { "$\\Rho$", "\\Rho", NULL } }, /*GREEK CAPITAL LETTERRHO*/ { 931, LATEX_MATH, "Sigma", { "$\\Sigma$", "\\Sigma", NULL } }, /*GREEK CAPITAL LETTERSIGMA*/ { 932, LATEX_MATH, "Tau", { "$\\Tau$", "\\Tau", NULL } }, /*GREEK CAPITAL LETTERTAU*/ { 933, LATEX_MATH, "Upsilon", { "$\\Upsilon$", "\\Upsilon", NULL } }, /*GREEK CAPITAL LETTERUPSILON*/ { 934, LATEX_MATH, "Phi", { "$\\Phi$", "\\Phi", NULL } }, /*GREEK CAPITAL LETTERPHI*/ { 935, LATEX_MATH, "Chi", { "$\\Chi$", "\\Chi", NULL } }, /*GREEK CAPITAL LETTERCHI*/ { 936, LATEX_MATH, "Psi", { "$\\Psi$", "\\Psi", NULL } }, /*GREEK CAPITAL LETTERPSI*/ { 937, LATEX_MATH, "Omega", { "$\\Omega$", "\\Omega", NULL } }, /*GREEK CAPITAL LETTEROMEGA*/ /* 902 = GREEK CAPITAL LETTER ALPHAWITHTONOS*/ /* 904 = GREEK CAPITAL LETTER EPSILONWITHTONOS*/ /* 905 = GREEK CAPITAL LETTER ETAWITHTONOS*/ /* 938 = GREEK CAPITAL LETTER IOTAWITHDIALYTIKA*/ /* 906 = GREEK CAPITAL LETTER IOTAWITHTONOS*/ /* 908 = GREEK CAPITAL LETTER OMICRONWITHTONOS*/ /* 939 = GREEK CAPITAL LETTER UPSILONWITHDIALYTIKA*/ /* 910 = GREEK CAPITAL LETTER UPSILONWITHTONOS*/ /* 911, = GREEK CAPITAL LETTER OMEGAWITHTONOS*/ { 945, LATEX_MATH, "alpha", { "$\\alpha$", "\\alpha", NULL } }, /*GREEK SMALL LETTER ALPHA*/ { 946, LATEX_MATH, "beta", { "$\\beta$", "\\beta", NULL } }, /*GREEK SMALL LETTER BETA*/ { 968, LATEX_MATH, "psi", { "$\\psi$", "\\psi", NULL } }, /*GREEK SMALL LETTER PSI*/ { 948, LATEX_MATH, "delta", { "$\\delta$", "\\delta", NULL } }, /*GREEK SMALL LETTER DELTA*/ { 949, LATEX_MATH, "epsilon", { "$\\epsilon$", "\\epsilon", NULL } }, /*GREEK SMALL LETTER EPSILON*/ { 966, LATEX_MATH, "phi", { "$\\phi$", "\\phi", NULL } }, /*GREEK SMALL LETTER PHI*/ { 947, LATEX_MATH, "gamma", { "$\\gamma$", "\\gamma", NULL } }, /*GREEK SMALL LETTER GAMMA*/ { 951, LATEX_MATH, "eta", { "$\\eta$", "\\eta", NULL } }, /*GREEK SMALL LETTER ETA*/ { 953, LATEX_MATH, "iota", { "$\\iota$", "\\iota", NULL } }, /*GREEK SMALL LETTER IOTA*/ { 958, LATEX_MATH, "xi", { "$\\xi$", "\\xi", NULL } }, /*GREEK SMALL LETTER XI*/ { 954, LATEX_MATH, "kappa", { "$\\kappa$", "\\kappa" , NULL } }, /*GREEK SMALL LETTER KAPPA*/ { 955, LATEX_MATH, "lambda", { "$\\lambda$", "\\lambda", NULL } }, /*GREEK SMALL LETTER LAMDA*/ { 956, LATEX_MATH, "mu", { "$\\mu$", "\\mu", NULL } }, /*GREEK SMALL LETTER MU*/ { 957, LATEX_MATH, "nu", { "$\\nu$", "\\nu", NULL } }, /*GREEK SMALL LETTER NU*/ { 959, LATEX_MATH, "omicron", { "$\\omicron$", "\\omicron", NULL } }, /*GREEK SMALL LETTER OMICRON*/ { 960, LATEX_MATH, "pi", { "$\\pi$", "\\pi", NULL } }, /*GREEK SMALL LETTER PI*/ { 961, LATEX_MATH, "rho", { "$\\rho$", "\\rho", NULL } }, /*GREEK SMALL LETTER RHO*/ { 963, LATEX_MATH, "sigma", { "$\\sigma$", "\\sigma", NULL } }, /*GREEK SMALL LETTER SIGMA*/ { 964, LATEX_MATH, "tau", { "$\\tau$", "\\tau", NULL } }, /*GREEK SMALL LETTER TAU*/ { 952, LATEX_MATH, "theta", { "$\\theta$", "\\theta", NULL } }, /*GREEK SMALL LETTER THETA*/ { 969, LATEX_MATH, "omega", { "$\\omega$", "\\omega", NULL } }, /*GREEK SMALL LETTER OMEGA*/ { 967, LATEX_MATH, "chi", { "$\\chi$", "\\chi", NULL } }, /*GREEK SMALL LETTER CHI*/ { 965, LATEX_MATH, "upsilon", { "$\\upsilon$", "\\upsilon", NULL } }, /*GREEK SMALL LETTER UPSILON*/ { 950, LATEX_MATH, "zeta", { "$\\zeta$", "\\zeta", NULL } }, /*GREEK SMALL LETTER ZETA*/ /* 940 = GREEK SMALL LETTER ALPHAWITHTONOS*/ /* 941 = GREEK SMALL LETTER EPSILONWITHTONOS*/ /* 942 = GREEK SMALL LETTER ETAWITHTONOS */ /* 912 = GREEK SMALL LETTER IOTAWITHDIALYTIKAANDTONOS*/ /* 943 = GREEK SMALL LETTER IOTAWITHTONOS */ /* 970 = GREEK SMALL LETTER IOTAWITHDIALYTIKA */ /* 972 = GREEK SMALL LETTER OMICRONWITHTONOS*/ /* 974 = GREEK SMALL LETTER OMEGAWITHTONOS*/ /* 973 = GREEK SMALL LETTER UPSILONWITHTONOS*/ /* 971 = GREEK SMALL LETTER UPSILONWITHDIALYTIKA*/ /* 944 = GREEK SMALL LETTER UPSILONWITHDIALYTIKAANDTONOS*/ { 181, LATEX_MACRO, "textmu", { "{\\textmu}", "\\textmu", "$\\mu$" } }, /* 181=micro sign, techically µ */ /* Make sure that these don't stomp on other latex things above */ { 8242, LATEX_MACRO, "textasciiacutex", { "{\\textasciiacutex}", "\\textasciiacutex", "$'$" } }, /* Prime symbol ′ */ { 180, LATEX_MACRO, "textasciiacute", { "{\\textasciiacute}", "\\textasciiacute", "\\'" } }, /* acute accent ´ */ { 8243, LATEX_MACRO, "textacutedbl", { "{\\textacutedbl}", "\\textacutedbl", "$''$" } }, /* Double prime ″ */ { 8245, LATEX_MACRO, "textasciigrave", { "{\\textasciigrave}", "\\textasciigrave", "\\`" } }, /* Grave accent ‵ */ /* { 768, LATEX_MACRO, "`", { "\\`", NULL, NULL } },*//* Grave accent ̀--apply to next char */ /* { 769, LATEX_MACRO, "'", { "\\'", NULL, NULL } },*//* Acute accent ́--apply to next char */ { 8963, LATEX_MACRO, "textasciicircum", { "{\\textasciicircum}", "\\textasciicircum", NULL } }, /* ⌃ */ { 184, LATEX_MACRO, "textasciicedilla", { "{\\textasciicedilla}", "\\textasciicedilla", NULL } }, /* cedilla ¸ */ { 168, LATEX_MACRO, "textasciidieresis", { "{\\textasciidieresis}", "\\textasciidieresis", NULL } }, /* dieresis ¨ */ { 175, LATEX_MACRO, "textasciimacron", { "{\\textasciimacron}", "\\textasciimacron", NULL } }, /* macron ¯ */ { 8593, LATEX_MACRO, "textuparrow", { "{\\textuparrow}", "\\textuparrow", NULL } }, /* Up arrow ↑ */ { 8595, LATEX_MACRO, "textdownarrow", { "{\\textdownarrow}", "\\textdownarrow", NULL } }, /* Down arrow ↓ */ { 8594, LATEX_MACRO, "textrightarrow", { "{\\textrightarrow}", "\\textrightarrow", NULL } }, /* Right arrow → */ { 8592, LATEX_MACRO, "textleftarrow", { "{\\textleftarrow}", "\\textleftarrow", NULL } }, /* Left arrow ← */ { 12296,LATEX_MACRO, "textlangle", { "{\\textlangle}", "\\textlangle", NULL } }, /* L-angle 〈 */ { 12297,LATEX_MACRO, "textrangle", { "{\\textrangle}", "\\textrangle", NULL } }, /* L-angle 〉 */ { 166, LATEX_MACRO, "textbrokenbar", { "{\\textbrokenbar}", "\\textbrokenbar", NULL } }, /* Broken vertical bar ¦ */ { 167, LATEX_MACRO, "textsection", { "{\\textsection}", "\\textsection", "\\S{}" } }, /* Section sign, § */ { 170, LATEX_MACRO, "textordfeminine", { "{\\textordfeminine}", "\\textordfeminine", "$^a$" } }, /* ª */ { 172, LATEX_MACRO, "textlnot", { "{\\textlnot}", "\\textlnot", NULL } }, /* Lnot ¬ */ { 182, LATEX_MACRO, "textparagraph", { "{\\textparagraph}", "\\textparagraph", NULL } }, /* Paragraph sign ¶ */ { 183, LATEX_MACRO, "textperiodcentered",{ "{\\textperiodcentered}","\\textperiodcentered", NULL } }, /* Period-centered · */ { 186, LATEX_MACRO, "textordmasculine", { "{\\textordmasculine}", "\\textordmasculine", NULL } }, /* º */ { 8214, LATEX_MACRO, "textbardbl", { "{\\textbardbl}", "\\textbardbl", NULL } }, /* Double vertical bar ‖ */ { 8224, LATEX_MACRO, "textdagger", { "{\\textdagger}", "\\textdagger", NULL } }, /* Dagger † */ { 8225, LATEX_MACRO, "textdaggerdbl", { "{\\textdaggerdbl}", "\\textdaggerdbl", NULL } }, /* Double dagger &x2021; */ { 8226, LATEX_MACRO, "textbullet", { "{\\textbullet}", "\\textbullet", NULL } }, /* Bullet • */ { 8494, LATEX_MACRO, "textestimated", { "{\\textestimated}", "\\textestimated", NULL } }, /* Estimated ℮ */ { 9526, LATEX_MACRO, "textopenbullet", { "{\\textopenbullet}", "\\textopenbullet", NULL } }, /* ┶ */ { 8220, LATEX_COMBO, "``", { "``", "{\\textquotedblleft}", "\\textquotedblleft" } }, /* Opening double quote “ */ { 8221, LATEX_COMBO, "''", { "''", "{\\textquotedblright}", "\\textquotedblright" } }, /* Closing double quote ” */ { 8216, LATEX_COMBO, "`", { "`", "{\\textquoteleft}", "\\textquoteleft" } }, /* Opening single quote ‘ */ { 8217, LATEX_COMBO, "'", { "'", "{\\textquoteright}", "\\textquoteright" } }, /* Closing single quote ’ */ { 8261, LATEX_MACRO, "textlquill", { "{\\textlquill}", "\\textlquill", NULL } }, /* Left quill ⁅ */ { 8262, LATEX_MACRO, "textrquill", { "{\\textrquill}", "\\textrquill", NULL } }, /* Right quill ⁆ */ { 8212, LATEX_COMBO, "---", { "---", "{\\textemdash}", "\\textemdash" } }, /* Em-dash — */ { 8211, LATEX_COMBO, "--", { "--", "{\\textendash}", "\\textendash" } }, /* En-dash – */ { 8230, LATEX_MACRO, "ldots", { "{\\ldots}", "{\\textellipsis}", "\\textellipsis" } }, /* Ellipsis … */ { 8194, LATEX_MACRO, "enspace", { "{\\enspace}", "\\hspace{.5em}", NULL } }, /* En-space   */ { 8195, LATEX_MACRO, "emspace", { "{\\emspace}", "\\hspace{1em}", NULL } }, /* Em-space   */ { 8201, LATEX_MACRO, "thinspace", { "{\\thinspace}", NULL, NULL } }, /* Thin space   */ { 8203, LATEX_MACRO, "textnospace", { "{\\textnospace}", "\\textnospace", NULL } }, /* No space ​ */ { 9251, LATEX_MACRO, "textvisiblespace", { "{\\textvisiblespace}", "\\textvisiblespace", NULL } }, /* Visible space ␣ */ { 215, LATEX_MACRO, "texttimes", { "{\\texttimes}", "\\texttimes", NULL } }, /* Multiplication symbol × */ { 247, LATEX_MACRO, "textdiv", { "{\\textdiv}", "\\textdiv", NULL } }, /* Division symbol ÷ */ { 177, LATEX_MACRO, "textpm", { "{\\textpm}", "\\textpm", NULL } }, /* Plus-minus character &#B1; */ { 189, LATEX_MACRO, "textonehalf", { "{\\textonehalf}", "\\textonehalf", NULL } }, /* Vulgar fraction one half ½ */ { 188, LATEX_MACRO, "textonequarter", { "{\\textonequarter}", "\\textonequarter", NULL } }, /* Vulgar fraction one quarter ½ */ { 190, LATEX_MACRO, "textthreequarters", { "{\\textthreequarters}", "\\textthreequarters", NULL } }, /* Vulgar fraction three quarters ¾ */ { 8240, LATEX_MACRO, "texttenthousand", { "{\\texttenthousand}", "\\texttenthousand", NULL } }, /* Per thousand sign ‰ */ { 8241, LATEX_MACRO, "textpertenthousand",{ "{\\textpertenthousand}","\\textpertenthousand", NULL } }, /* Per ten thousand sign ‱*/ { 8260, LATEX_MACRO, "textfractionssolidus",{"{\\textfractionsolidus}", "\\textfractionsolidus", NULL } }, /* &x8260; */ { 8451, LATEX_MACRO, "textcelcius", { "{\\textcelcius}", "\\textcelcius", NULL } }, /* Celcicus ℃ */ { 8470, LATEX_MACRO, "textnumero", { "{\\textnumero}", "\\textnumero", NULL } }, /* Numero symbol № */ { 8486, LATEX_MACRO, "textohm", { "{\\textohm}", "\\textohm", NULL } }, /* Ohm symbol Ω */ { 8487, LATEX_MACRO, "textmho", { "{\\textmho}", "\\textmho", NULL } }, /* Mho symbol ℧ */ { 8730, LATEX_MACRO, "textsurd", { "{\\textsurd}", "\\textsurd", NULL } }, /* √ */ { 185, LATEX_MACRO, "textonesuperior", { "{\\textonesuperior}", "\\textonesuperior", "$^1$" } }, /*Superscript 1 ¹ */ { 178, LATEX_MACRO, "texttwosuperior", { "{\\texttwosuperior}", "\\texttwosuperior", "$^2$" } }, /*Superscript 2 ² */ { 179, LATEX_MACRO, "textthreesuperior", { "{\\textthreesuperior}", "\\textthreesuperior", "$^3$" } }, /*Superscript 3 ³ */ { 161, LATEX_MACRO, "textexclamdown", { "{\\textexclamdown}", "\\textexclamdown", NULL } }, /* Inverted exclamation mark ¡*/ { 191, LATEX_MACRO, "textquestiondown", { "{\\textquestiondown}", "\\textquestiondown", NULL } }, /* Inverted question mark ¿ */ { 162, LATEX_MACRO, "textcent", { "{\\textcent}", "\\textcent", NULL } }, /* Cent sign ¢ */ { 163, LATEX_MACRO, "textsterling", { "{\\textsterling}", "\\textsterling", "\\pounds" } }, /* Pound sign £ */ { 165, LATEX_MACRO, "textyen", { "{\\textyen}", "\\textyen", NULL } }, /* Yen sign ¥ */ { 402, LATEX_MACRO, "textflorin", { "{\\textflorin}", "\\textflorin", NULL } }, /* Florin sign ƒ */ { 3647, LATEX_MACRO, "textbaht", { "{\\textbaht}", "\\textbaht", NULL } }, /* Thai currency ฿ */ { 8355, LATEX_MACRO, "textfrenchfranc", { "{\\textfrenchfranc}", "\\textfrenchfranc", NULL } }, /* French franc ₣ */ { 8356, LATEX_MACRO, "textlira", { "{\\textlira}", "\\textlira", NULL } }, /* Lira ₤ */ { 8358, LATEX_MACRO, "textnaira", { "{\\textnaira}", "\\textnaria", NULL } }, /* Naira ₦ */ { 8361, LATEX_MACRO, "textwon", { "{\\textwon}", "\\textwon", NULL } }, /* ₩ */ { 8363, LATEX_MACRO, "textdong", { "{\\textdong}", "\\textdong", NULL } }, /* Vietnamese currency ₫ */ { 8364, LATEX_MACRO, "texteuro", { "{\\texteuro}", "\\texteuro", NULL } }, /* Euro sign */ { 169, LATEX_MACRO, "textcopyright", { "{\\textcopyright}", "\\textcopyright", NULL } }, /* Copyright (C) © */ { 175, LATEX_MACRO, "textregistered", { "{\\textregistered}", "\\textregistered", NULL } }, /* Registered sign (R) ¯*/ { 8482, LATEX_MACRO, "texttrademark", { "{\\texttrademark}", "\\texttrademark", "$^{TM}$" } }, /* Trademark (TM) ™ */ { 8480, LATEX_MACRO, "textservicemark", { "{\\textservicemark}", "\\textservicemark", "$^{SM}$" } }, /* Servicemark (SM) ℠*/ { 8471, LATEX_MACRO, "textcircledP", { "{\\textcircledP}", "\\textcircledP", NULL } }, /* Circled P ࡅ */ }; static int nlatex_chars = sizeof(latex_chars)/sizeof(struct latex_chars); /* latex2char() * * Use the latex_chars[] lookup table to determine if any character * is a special LaTeX code. Note that if it is, then the equivalency * is a Unicode character and we need to flag (by setting *unicode to 1) * that we know the output is Unicode. Otherwise, we set *unicode to 0, * meaning that the output is whatever character set was given to us * (which could be Unicode, but is not necessarily Unicode). * */ unsigned int latex2char( char *s, unsigned int *pos, int *unicode ) { unsigned int value; // char *p, *q[3]; int i, j, len; char *p; p = &( s[*pos] ); value = (unsigned char) *p; if ( value=='{' || value=='\\' || value=='~' || value=='$' || value=='\'' || value=='`' || value=='-' || value=='^' ) { // if ( *p=='\\' && ( *p=='{' || *p=='}' ) ) { // } else { for ( i=0; i static const char *marc_genre[] = { "abstract or summary", "art original", "art reproduction", "article", "atlas", "autobiography", "bibliography", "biography", "book", "calendar", "catalog", "chart", "comic or graphic novel", "comic strip", "conference publication", "database", "dictionary", "diorama", "directory", "discography", "drama", "encyclopedia", "essay", "festschrift", "fiction", "filmography", "filmstrip", "finding aid", "flash card", "folktale", "font", "game", "government publication", "graphic", "globe", "handbook", "history", "humor, satire", "hymnal", "index", "instruction", "interview", "issue", "journal", "kit", "language instruction", "law report or digest", "legal article", "legal case and case notes", "legislation", "letter", "loose-leaf", "map", "memoir", "microscope slide", "model", "motion picture", "multivolume monograph", "newspaper", "novel", "numeric data", "offprint", "online system or service", "patent", "periodical", "picture", "poetry", "programmed text", "realia", "rehearsal", "remote sensing image", "reporting", "review", "series", "short story", "slide", "sound", "speech", "standard or specification", "statistics", "survey of literature", "technical drawing", "technical report", "thesis", "toy", "transparency", "treaty", "videorecording", "web site", "yearbook", }; static const int nmarc_genre = sizeof( marc_genre ) / sizeof( const char* ); static const char *marc_resource[] = { "cartographic", "kit", "mixed material", "moving image", "notated music", "software, multimedia", "sound recording", "sound recording - musical", "sound recording - nonmusical", "still image", "text", "three dimensional object" }; static const int nmarc_resource = sizeof( marc_resource ) / sizeof( const char* ); /* www.loc.gov/marc/relators/relacode.html */ typedef struct marc_trans { char *abbreviation; char *internal_name; } marc_trans; static const marc_trans relators[] = { { "abr", "ABRIDGER" }, /* Abridger */ { "acp", "ART_COPYIST" }, /* Art copyist */ { "act", "ACTOR" }, /* Actor */ { "adi", "ART_DIRECTOR" }, /* Art director */ { "adp", "ADAPTER" }, /* Adapter */ { "aft", "AUTHOR" }, /* Author of afterword, colophon, etc. */ { "anl", "ANALYST" }, /* Analyst */ { "anm", "ANIMATOR" }, /* Animator */ { "ann", "ANNOTATOR" }, /* Annotator */ { "ant", "BIBLIOGRAPHIC_ANTECENDENT" }, /* Bibliographic antecedent */ { "ape", "APPELLEE" }, /* Appellee */ { "apl", "APPELLANT" }, /* Appellant */ { "app", "APPLICANT" }, /* Applicant */ { "aqt", "AUTHOR" }, /* Author in quotations or text abstracts */ { "arc", "ARCHITECT" }, /* Architect */ { "ard", "ARTISTIC_DIRECTOR" }, /* Artistic director */ { "arr", "ARRANGER" }, /* Arranger */ { "art", "ARTIST" }, /* Artist */ { "asg", "ASSIGNEE" }, /* Assignee */ { "asn", "ASSOCIATED_NAME" }, /* Associated name */ { "ato", "AUTOGRAPHER" }, /* Autographer */ { "att", "ATTRIBUTED_NAME" }, /* Attributed name */ { "auc", "AUCTIONEER" }, /* Auctioneer */ { "aud", "AUTHOR" }, /* Author of dialog */ { "aui", "AUTHOR" }, /* Author of introduction, etc. */ { "aus", "AUTHOR" }, /* Screenwriter */ { "aut", "AUTHOR" }, /* Author */ { "author", "AUTHOR" }, { "bdd", "BINDING_DESIGNER" }, /* Binding designer */ { "bjd", "BOOKJACKET_DESIGNER" }, /* Bookjacket designer */ { "bkd", "BOOK_DESIGNER" }, /* Book designer */ { "bkp", "BOOK_PRODUCER" }, /* Book producer */ { "blw", "AUTHOR" }, /* Blurb writer */ { "bnd", "BINDER" }, /* Binder */ { "bpd", "BOOKPLATE_DESIGNER" }, /* Bookplate designer */ { "brd", "BROADCASTER" }, /* Broadcaster */ { "brl", "BRAILLE_EMBOSSER" }, /* Braille embosser */ { "bsl", "BOOKSELLER" }, /* Bookseller */ { "cas", "CASTER" }, /* Caster */ { "ccp", "CONCEPTOR" }, /* Conceptor */ { "chr", "CHOREOGRAPHER" }, /* Choreographer */ { "clb", "COLLABORATOR" }, /* Collaborator */ { "cli", "CLIENT" }, /* Client */ { "cll", "CALLIGRAPHER" }, /* Calligrapher */ { "clr", "COLORIST" }, /* Colorist */ { "clt", "COLLOTYPER" }, /* Collotyper */ { "cmm", "COMMENTATOR" }, /* Commentator */ { "cmp", "COMPOSER" }, /* Composer */ { "cmt", "COMPOSITOR" }, /* Compositor */ { "cnd", "CONDUCTOR" }, /* Conductor */ { "cng", "CINEMATOGRAPHER" }, /* Cinematographer */ { "cns", "CENSOR" }, /* Censor */ { "coe", "CONTESTANT-APPELLEE" }, /* Contestant-appellee */ { "col", "COLLECTOR" }, /* Collector */ { "com", "COMPILER" }, /* Compiler */ { "con", "CONSERVATOR" }, /* Conservator */ { "cor", "COLLECTION_REGISTRAR" }, /* Collection registrar */ { "cos", "CONTESTANT" }, /* Contestant */ { "cot", "CONTESTANT-APPELLANT" }, /* Contestant-appellant */ { "cou", "COURT_GOVERNED" }, /* Court governed */ { "cov", "COVER_DESIGNER" }, /* Cover designer */ { "cpc", "COPYRIGHT_CLAIMANT" }, /* Copyright claimant */ { "cpe", "COMPLAINANT-APPELLEE" }, /* Complainant-appellee */ { "cph", "COPYRIGHT_HOLDER" }, /* Copyright holder */ { "cpl", "COMPLAINANT" }, /* Complainant */ { "cpt", "COMPLAINANT-APPELLANT" }, /* Complainant-appellant */ { "cre", "AUTHOR" }, /* Creator */ { "creator", "AUTHOR" }, { "crp", "CORRESPONDENT" }, /* Correspondent */ { "crr", "CORRECTOR" }, /* Corrector */ { "crt", "COURT_REPORTER" }, /* Court reporter */ { "csl", "CONSULTANT" }, /* Consultant */ { "csp", "CONSULTANT_TO_A_PROJECT" }, /* Consultant to a project */ { "cst", "COSTUME_DESIGNER" }, /* Costume designer */ { "ctb", "CONTRIBUTOR" }, /* Contributor */ { "cte", "CONTESTEE-APPELLEE" }, /* Contestee-appellee */ { "ctg", "CARTOGRAPHER" }, /* Cartographer */ { "ctr", "CONTRACTOR" }, /* Contractor */ { "cts", "CONTESTEE" }, /* Contestee */ { "ctt", "CONTESTEE-APPELLANT" }, /* Contestee-appellant */ { "cur", "CURATOR" }, /* Curator */ { "cwt", "COMMENTATOR_FOR_WRITTEN_TEXT" }, /* Commentator for written text */ { "dbp", "DISTRIBUTION_PLACE" }, /* Distribution place */ { "degree grantor", "DEGREEGRANTOR" }, { "dfd", "DEFENDANT" }, /* Defendant */ { "dfe", "DEFENDANT-APPELLEE" }, /* Defendant-appellee */ { "dft", "DEFENDANT-APPELLANT" }, /* Defendant-appellant */ { "dgg", "DEGREEGRANTOR" }, /* Degree granting institution */ { "dgs", "DEGREE_SUPERVISOR" }, /* Degree supervisor */ { "dis", "DISSERTANT" }, /* Dissertant */ { "dln", "DELINEATOR" }, /* Delineator */ { "dnc", "DANCER" }, /* Dancer */ { "dnr", "DONOR" }, /* Donor */ { "dpc", "DEPICTED" }, /* Depicted */ { "dpt", "DEPOSITOR" }, /* Depositor */ { "drm", "DRAFTSMAN" }, /* Draftsman */ { "drt", "DIRECTOR" }, /* Director */ { "dsr", "DESIGNER" }, /* Designer */ { "dst", "DISTRIBUTOR" }, /* Distributor */ { "dtc", "DATA_CONTRIBUTOR" }, /* Data contributor */ { "dte", "DEDICATEE" }, /* Dedicatee */ { "dtm", "DATA_MANAGER" }, /* Data manager */ { "dto", "DEDICATOR" }, /* Dedicator */ { "dub", "AUTHOR" }, /* Dubious author */ { "edc", "EDITOR" }, /* Editor of compilation */ { "edm", "EDITOR" }, /* Editor of moving image work */ { "edt", "EDITOR" }, /* Editor */ { "egr", "ENGRAVER" }, /* Engraver */ { "elg", "ELECTRICIAN" }, /* Electrician */ { "elt", "ELECTROTYPER" }, /* Electrotyper */ { "eng", "ENGINEER" }, /* Engineer */ { "enj", "ENACTING_JURISICTION" }, /* Enacting jurisdiction */ { "etr", "ETCHER" }, /* Etcher */ { "evp", "EVENT_PLACE" }, /* Event place */ { "exp", "EXPERT" }, /* Expert */ { "fac", "FACSIMILIST" }, /* Facsimilist */ { "fds", "FILM_DISTRIBUTOR" }, /* Film distributor */ { "fld", "FIELD_DIRECTOR" }, /* Field director */ { "flm", "FILM_EDITOR" }, /* Film editor */ { "fmd", "FILM_DIRECTOR" }, /* Film director */ { "fmk", "FILMMAKER" }, /* Filmmaker */ { "fmo", "FORMER_OWNER" }, /* Former owner */ { "fmp", "FILM_PRODUCER" }, /* Film producer */ { "fnd", "FUNDER" }, /* Funder */ { "fpy", "FIRST_PARTY" }, /* First party */ { "frg", "FORGER" }, /* Forger */ { "gis", "GEOGRAPHIC_INFORMATON_SPECIALIST" }, /* Geographic information specialist */ { "grt", "GRAPHIC_TECHNICIAN" }, /* Graphic technician */ { "his", "HOST_INSTITUTION" }, /* Host institution */ { "hnr", "HONOREE" }, /* Honoree */ { "hst", "HOST" }, /* Host */ { "ill", "ILLUSTRATOR" }, /* Illustrator */ { "ilu", "ILLUMINATOR" }, /* Illuminator */ { "ins", "INSCRIBER" }, /* Inscriber */ { "inv", "INVENTOR" }, /* Inventor */ { "isb", "ISSUING_BODY" }, /* Issuing body */ { "itr", "INSTRUMENTALIST" }, /* Instrumentalist */ { "ive", "INTERVIEWEE" }, /* Interviewee */ { "ivr", "INTERVIEWER" }, /* Interviewer */ { "jud", "JUDGE" }, /* Judge */ { "jug", "JURISDICTION_GOVERNED" }, /* Jurisdiction governed */ { "lbr", "LABORATORY" }, /* Laboratory */ { "lbt", "LIBRETTIST" }, /* Librettist */ { "ldr", "LABORATORY_DIRECTORY" }, /* Laboratory director */ { "led", "LEAD" }, /* Lead */ { "lee", "LIBELEE-APPELLEE" }, /* Libelee-appellee */ { "lel", "LIBELEE" }, /* Libelee */ { "len", "LENDER" }, /* Lender */ { "let", "LIBELEE-APPELLANT" }, /* Libelee-appellant */ { "lgd", "LIGHTING_DESIGNER" }, /* Lighting designer */ { "lie", "LIBELANT-APPELLEE" }, /* Libelant-appellee */ { "lil", "LIBELANT" }, /* Libelant */ { "lit", "LIBELANT-APPELLANT" }, /* Libelant-appellant */ { "lsa", "LANDSCAPE_ARCHITECT" }, /* Landscape architect */ { "lse", "LICENSEE" }, /* Licensee */ { "lso", "LICENSOR" }, /* Licensor */ { "ltg", "LITHOGRAPHER" }, /* Lithographer */ { "lyr", "LYRICIST" }, /* Lyricist */ { "mcp", "MUSIC_COPYIST" }, /* Music copyist */ { "mdc", "METADATA_CONTACT" }, /* Metadata contact */ { "med", "MEDIUM" }, /* Medium */ { "mfp", "MANUFACTURE_PLACE" }, /* Manufacture place */ { "mfr", "MANUFACTURER" }, /* Manufacturer */ { "mod", "MODERATOR" }, /* Moderator */ { "mon", "THESIS_EXAMINER" }, /* Monitor */ { "mrb", "MARBLER" }, /* Marbler */ { "mrk", "EDITOR" }, /* Markup editor */ { "msd", "MUSICAL_DIRECTOR" }, /* Musical director */ { "mte", "METAL-ENGRAVER" }, /* Metal-engraver */ { "mtk", "MINUTE_TAKER" }, /* Minute taker */ { "mus", "MUSICIAN" }, /* Musician */ { "nrt", "NARRATOR" }, /* Narrator */ { "opn", "THESIS_OPPONENT" }, /* Opponent */ { "org", "ORIGINATOR" }, /* Originator */ { "organizer of meeting", "ORGANIZER" }, { "orm", "ORGANIZER" }, /* Organizer */ { "osp", "ONSCREEN_PRESENTER" }, /* Onscreen presenter */ { "oth", "THESIS_OTHER" }, /* Other */ { "own", "OWNER" }, /* Owner */ { "pan", "PANELIST" }, /* Panelist */ { "pat", "PATRON" }, /* Patron */ { "patent holder", "ASSIGNEE" }, { "pbd", "PUBLISHING_DIRECTOR" }, /* Publishing director */ { "pbl", "PUBLISHER" }, /* Publisher */ { "pdr", "PROJECT_DIRECTOR" }, /* Project director */ { "pfr", "PROOFREADER" }, /* Proofreader */ { "pht", "PHOTOGRAPHER" }, /* Photographer */ { "plt", "PLATEMAKER" }, /* Platemaker */ { "pma", "PERMITTING_AGENCY" }, /* Permitting agency */ { "pmn", "PRODUCTION_MANAGER" }, /* Production manager */ { "pop", "PRINTER_OF_PLATES" }, /* Printer of plates */ { "ppm", "PAPERMAKER" }, /* Papermaker */ { "ppt", "PUPPETEER" }, /* Puppeteer */ { "pra", "PRAESES" }, /* Praeses */ { "prc", "PROCESS_CONTRACT" }, /* Process contact */ { "prd", "PRODUCTION_PERSONNEL" }, /* Production personnel */ { "pre", "PRESENTER" }, /* Presenter */ { "prf", "PERFORMER" }, /* Performer */ { "prg", "AUTHOR" }, /* Programmer */ { "prm", "PRINTMAKER" }, /* Printmaker */ { "prn", "PRODUCTION_COMPANY" }, /* Production company */ { "pro", "PRODUCER" }, /* Producer */ { "prp", "PRODUCTION_PLACE" }, /* Production place */ { "prs", "PRODUCTION_DESIGNER" }, /* Production designer */ { "prt", "PRINTER" }, /* Printer */ { "prv", "PROVIDER" }, /* Provider */ { "pta", "PATENT_APPLICANT" }, /* Patent applicant */ { "pte", "PLAINTIFF-APPELLEE" }, /* Plaintiff-appellee */ { "ptf", "PLAINTIFF" }, /* Plaintiff */ { "pth", "ASSIGNEE" }, /* Patent holder */ { "ptt", "PLAINTIFF-APPELLANT" }, /* Plaintiff-appellant */ { "pup", "PUBLICATION_PLACE" }, /* Publication place */ { "rbr", "RUBRICATOR" }, /* Rubricator */ { "rcd", "RECORDIST" }, /* Recordist */ { "rce", "RECORDING_ENGINEER" }, /* Recording engineer */ { "rcp", "ADDRESSEE" }, /* Addressee */ { "rdd", "RADIO_DIRECTOR" }, /* Radio director */ { "red", "REDAKTOR" }, /* Redaktor */ { "ren", "RENDERER" }, /* Renderer */ { "res", "RESEARCHER" }, /* Researcher */ { "rev", "REVIEWER" }, /* Reviewer */ { "rpc", "RADIO_PRODUCER" }, /* Radio producer */ { "rps", "REPOSITORY" }, /* Repository */ { "rpt", "REPORTER" }, /* Reporter */ { "rpy", "RESPONSIBLE_PARTY" }, /* Responsible party */ { "rse", "RESPONDENT-APPELLEE" }, /* Respondent-appellee */ { "rsg", "RESTAGER" }, /* Restager */ { "rsp", "RESPONDENT" }, /* Respondent */ { "rsr", "RESTORATIONIST" }, /* Restorationist */ { "rst", "RESPONDENT-APPELLANT" }, /* Respondent-appellant */ { "rth", "RESEARCH_TEAM_HEAD" }, /* Research team head */ { "rtm", "RESEARCH_TEAM_MEMBER" }, /* Research team member */ { "sad", "SCIENTIFIC_ADVISOR" }, /* Scientific advisor */ { "sce", "SCENARIST" }, /* Scenarist */ { "scl", "SCULPTOR" }, /* Sculptor */ { "scr", "SCRIBE" }, /* Scribe */ { "sds", "SOUND_DESIGNER" }, /* Sound designer */ { "sec", "SECRETARY" }, /* Secretary */ { "sgd", "STAGE_DIRECTOR" }, /* Stage director */ { "sgn", "SIGNER" }, /* Signer */ { "sht", "SUPPORTING_HOST" }, /* Supporting host */ { "sll", "SELLER" }, /* Seller */ { "sng", "SINGER" }, /* Singer */ { "spk", "SPEAKER" }, /* Speaker */ { "spn", "SPONSOR" }, /* Sponsor */ { "spy", "SECOND_PARTY" }, /* Second party */ { "srv", "SURVEYOR" }, /* Surveyor */ { "std", "SET_DESIGNER" }, /* Set designer */ { "stg", "SETTING" }, /* Setting */ { "stl", "STORYTELLER" }, /* Storyteller */ { "stm", "STAGE_MANAGER" }, /* Stage manager */ { "stn", "STANDARDS_BODY" }, /* Standards body */ { "str", "STEREOTYPER" }, /* Stereotyper */ { "tcd", "TECHNICAL_DIRECTOR" }, /* Technical director */ { "tch", "TEACHER" }, /* Teacher */ { "ths", "THESIS_ADVISOR" }, /* Thesis advisor */ { "tld", "TELEVISION_DIRECTOR" }, /* Television director */ { "tlp", "TELEVISION_PRODUCER" }, /* Television producer */ { "trc", "TRANSCRIBER" }, /* Transcriber */ { "trl", "TRANSLATOR" }, /* Translator */ { "tyd", "TYPE_DIRECTOR" }, /* Type designer */ { "tyg", "TYPOGRAPHER" }, /* Typographer */ { "uvp", "UNIVERSITY_PLACE" }, /* University place */ { "vac", "VOICE_ACTOR" }, /* Voice actor */ { "vdg", "VIDEOGRAPHER" }, /* Videographer */ { "voc", "VOCALIST" }, /* Vocalist */ { "wac", "AUTHOR" }, /* Writer of added commentary */ { "wal", "AUTHOR" }, /* Writer of added lyrics */ { "wam", "AUTHOR" }, /* Writer of accompanying material */ { "wat", "AUTHOR" }, /* Writer of added text */ { "wdc", "WOODCUTTER" }, /* Woodcutter */ { "wde", "WOOD_ENGRAVER" }, /* Wood engraver */ { "win", "AUTHOR" }, /* Writer of introduction */ { "wit", "WITNESS" }, /* Witness */ { "wpr", "AUTHOR" }, /* Writer of preface */ { "wst", "AUTHOR" }, /* Writer of supplementary textual content */ }; static const int nrealtors = sizeof( relators ) / sizeof( relators[0] ); char * marc_convertrole( const char *query ) { int i; for ( i=0; i static const char *marc_genre[] = { "abstract or summary", "art original", "art reproduction", "article", "atlas", "autobiography", "bibliography", "biography", "book", "calendar", "catalog", "chart", "comic or graphic novel", "comic strip", "conference publication", "database", "dictionary", "diorama", "directory", "discography", "drama", "encyclopedia", "essay", "festschrift", "fiction", "filmography", "filmstrip", "finding aid", "flash card", "folktale", "font", "game", "government publication", "graphic", "globe", "handbook", "history", "humor, satire", "hymnal", "index", "instruction", "interview", "issue", "journal", "kit", "language instruction", "law report or digest", "legal article", "legal case and case notes", "legislation", "letter", "loose-leaf", "map", "memoir", "microscope slide", "model", "motion picture", "multivolume monograph", "newspaper", "novel", "numeric data", "offprint", "online system or service", "patent", "periodical", "picture", "poetry", "programmed text", "realia", "rehearsal", "remote sensing image", "reporting", "review", "series", "short story", "slide", "sound", "speech", "standard or specification", "statistics", "survey of literature", "technical drawing", "technical report", "thesis", "toy", "transparency", "treaty", "videorecording", "web site", "yearbook", }; static const int nmarc_genre = sizeof( marc_genre ) / sizeof( const char* ); static const char *marc_resource[] = { "cartographic", "kit", "mixed material", "moving image", "notated music", "software, multimedia", "sound recording", "sound recording - musical", "sound recording - nonmusical", "still image", "text", "three dimensional object" }; static const int nmarc_resource = sizeof( marc_resource ) / sizeof( const char* ); /* www.loc.gov/marc/relators/relacode.html */ typedef struct marc_trans { char *abbreviation; char *internal_name; } marc_trans; static const marc_trans relators[] = { { "abr", "ABRIDGER" }, /* Abridger */ { "acp", "ART_COPYIST" }, /* Art copyist */ { "act", "ACTOR" }, /* Actor */ { "adi", "ART_DIRECTOR" }, /* Art director */ { "adp", "ADAPTER" }, /* Adapter */ { "aft", "AUTHOR" }, /* Author of afterword, colophon, etc. */ { "anl", "ANALYST" }, /* Analyst */ { "anm", "ANIMATOR" }, /* Animator */ { "ann", "ANNOTATOR" }, /* Annotator */ { "ant", "BIBLIOGRAPHIC_ANTECENDENT" }, /* Bibliographic antecedent */ { "ape", "APPELLEE" }, /* Appellee */ { "apl", "APPELLANT" }, /* Appellant */ { "app", "APPLICANT" }, /* Applicant */ { "aqt", "AUTHOR" }, /* Author in quotations or text abstracts */ { "arc", "ARCHITECT" }, /* Architect */ { "ard", "ARTISTIC_DIRECTOR" }, /* Artistic director */ { "arr", "ARRANGER" }, /* Arranger */ { "art", "ARTIST" }, /* Artist */ { "asg", "ASSIGNEE" }, /* Assignee */ { "asn", "ASSOCIATED_NAME" }, /* Associated name */ { "ato", "AUTOGRAPHER" }, /* Autographer */ { "att", "ATTRIBUTED_NAME" }, /* Attributed name */ { "auc", "AUCTIONEER" }, /* Auctioneer */ { "aud", "AUTHOR" }, /* Author of dialog */ { "aui", "AUTHOR" }, /* Author of introduction, etc. */ { "aus", "AUTHOR" }, /* Screenwriter */ { "aut", "AUTHOR" }, /* Author */ { "author", "AUTHOR" }, { "bdd", "BINDING_DESIGNER" }, /* Binding designer */ { "bjd", "BOOKJACKET_DESIGNER" }, /* Bookjacket designer */ { "bkd", "BOOK_DESIGNER" }, /* Book designer */ { "bkp", "BOOK_PRODUCER" }, /* Book producer */ { "blw", "AUTHOR" }, /* Blurb writer */ { "bnd", "BINDER" }, /* Binder */ { "bpd", "BOOKPLATE_DESIGNER" }, /* Bookplate designer */ { "brd", "BROADCASTER" }, /* Broadcaster */ { "brl", "BRAILLE_EMBOSSER" }, /* Braille embosser */ { "bsl", "BOOKSELLER" }, /* Bookseller */ { "cas", "CASTER" }, /* Caster */ { "ccp", "CONCEPTOR" }, /* Conceptor */ { "chr", "CHOREOGRAPHER" }, /* Choreographer */ { "clb", "COLLABORATOR" }, /* Collaborator */ { "cli", "CLIENT" }, /* Client */ { "cll", "CALLIGRAPHER" }, /* Calligrapher */ { "clr", "COLORIST" }, /* Colorist */ { "clt", "COLLOTYPER" }, /* Collotyper */ { "cmm", "COMMENTATOR" }, /* Commentator */ { "cmp", "COMPOSER" }, /* Composer */ { "cmt", "COMPOSITOR" }, /* Compositor */ { "cnd", "CONDUCTOR" }, /* Conductor */ { "cng", "CINEMATOGRAPHER" }, /* Cinematographer */ { "cns", "CENSOR" }, /* Censor */ { "coe", "CONTESTANT-APPELLEE" }, /* Contestant-appellee */ { "col", "COLLECTOR" }, /* Collector */ { "com", "COMPILER" }, /* Compiler */ { "con", "CONSERVATOR" }, /* Conservator */ { "cor", "COLLECTION_REGISTRAR" }, /* Collection registrar */ { "cos", "CONTESTANT" }, /* Contestant */ { "cot", "CONTESTANT-APPELLANT" }, /* Contestant-appellant */ { "cou", "COURT_GOVERNED" }, /* Court governed */ { "cov", "COVER_DESIGNER" }, /* Cover designer */ { "cpc", "COPYRIGHT_CLAIMANT" }, /* Copyright claimant */ { "cpe", "COMPLAINANT-APPELLEE" }, /* Complainant-appellee */ { "cph", "COPYRIGHT_HOLDER" }, /* Copyright holder */ { "cpl", "COMPLAINANT" }, /* Complainant */ { "cpt", "COMPLAINANT-APPELLANT" }, /* Complainant-appellant */ { "cre", "AUTHOR" }, /* Creator */ { "creator", "AUTHOR" }, { "crp", "CORRESPONDENT" }, /* Correspondent */ { "crr", "CORRECTOR" }, /* Corrector */ { "crt", "COURT_REPORTER" }, /* Court reporter */ { "csl", "CONSULTANT" }, /* Consultant */ { "csp", "CONSULTANT_TO_A_PROJECT" }, /* Consultant to a project */ { "cst", "COSTUME_DESIGNER" }, /* Costume designer */ { "ctb", "CONTRIBUTOR" }, /* Contributor */ { "cte", "CONTESTEE-APPELLEE" }, /* Contestee-appellee */ { "ctg", "CARTOGRAPHER" }, /* Cartographer */ { "ctr", "CONTRACTOR" }, /* Contractor */ { "cts", "CONTESTEE" }, /* Contestee */ { "ctt", "CONTESTEE-APPELLANT" }, /* Contestee-appellant */ { "cur", "CURATOR" }, /* Curator */ { "cwt", "COMMENTATOR_FOR_WRITTEN_TEXT" }, /* Commentator for written text */ { "dbp", "DISTRIBUTION_PLACE" }, /* Distribution place */ { "degree grantor", "DEGREEGRANTOR" }, { "dfd", "DEFENDANT" }, /* Defendant */ { "dfe", "DEFENDANT-APPELLEE" }, /* Defendant-appellee */ { "dft", "DEFENDANT-APPELLANT" }, /* Defendant-appellant */ { "dgg", "DEGREEGRANTOR" }, /* Degree granting institution */ { "dgs", "DEGREE_SUPERVISOR" }, /* Degree supervisor */ { "dis", "DISSERTANT" }, /* Dissertant */ { "dln", "DELINEATOR" }, /* Delineator */ { "dnc", "DANCER" }, /* Dancer */ { "dnr", "DONOR" }, /* Donor */ { "dpc", "DEPICTED" }, /* Depicted */ { "dpt", "DEPOSITOR" }, /* Depositor */ { "drm", "DRAFTSMAN" }, /* Draftsman */ { "drt", "DIRECTOR" }, /* Director */ { "dsr", "DESIGNER" }, /* Designer */ { "dst", "DISTRIBUTOR" }, /* Distributor */ { "dtc", "DATA_CONTRIBUTOR" }, /* Data contributor */ { "dte", "DEDICATEE" }, /* Dedicatee */ { "dtm", "DATA_MANAGER" }, /* Data manager */ { "dto", "DEDICATOR" }, /* Dedicator */ { "dub", "AUTHOR" }, /* Dubious author */ { "edc", "EDITOR" }, /* Editor of compilation */ { "edm", "EDITOR" }, /* Editor of moving image work */ { "edt", "EDITOR" }, /* Editor */ { "egr", "ENGRAVER" }, /* Engraver */ { "elg", "ELECTRICIAN" }, /* Electrician */ { "elt", "ELECTROTYPER" }, /* Electrotyper */ { "eng", "ENGINEER" }, /* Engineer */ { "enj", "ENACTING_JURISICTION" }, /* Enacting jurisdiction */ { "etr", "ETCHER" }, /* Etcher */ { "evp", "EVENT_PLACE" }, /* Event place */ { "exp", "EXPERT" }, /* Expert */ { "fac", "FACSIMILIST" }, /* Facsimilist */ { "fds", "FILM_DISTRIBUTOR" }, /* Film distributor */ { "fld", "FIELD_DIRECTOR" }, /* Field director */ { "flm", "FILM_EDITOR" }, /* Film editor */ { "fmd", "FILM_DIRECTOR" }, /* Film director */ { "fmk", "FILMMAKER" }, /* Filmmaker */ { "fmo", "FORMER_OWNER" }, /* Former owner */ { "fmp", "FILM_PRODUCER" }, /* Film producer */ { "fnd", "FUNDER" }, /* Funder */ { "fpy", "FIRST_PARTY" }, /* First party */ { "frg", "FORGER" }, /* Forger */ { "gis", "GEOGRAPHIC_INFORMATON_SPECIALIST" }, /* Geographic information specialist */ { "grt", "GRAPHIC_TECHNICIAN" }, /* Graphic technician */ { "his", "HOST_INSTITUTION" }, /* Host institution */ { "hnr", "HONOREE" }, /* Honoree */ { "hst", "HOST" }, /* Host */ { "ill", "ILLUSTRATOR" }, /* Illustrator */ { "ilu", "ILLUMINATOR" }, /* Illuminator */ { "ins", "INSCRIBER" }, /* Inscriber */ { "inv", "INVENTOR" }, /* Inventor */ { "isb", "ISSUING_BODY" }, /* Issuing body */ { "itr", "INSTRUMENTALIST" }, /* Instrumentalist */ { "ive", "INTERVIEWEE" }, /* Interviewee */ { "ivr", "INTERVIEWER" }, /* Interviewer */ { "jud", "JUDGE" }, /* Judge */ { "jug", "JURISDICTION_GOVERNED" }, /* Jurisdiction governed */ { "lbr", "LABORATORY" }, /* Laboratory */ { "lbt", "LIBRETTIST" }, /* Librettist */ { "ldr", "LABORATORY_DIRECTORY" }, /* Laboratory director */ { "led", "LEAD" }, /* Lead */ { "lee", "LIBELEE-APPELLEE" }, /* Libelee-appellee */ { "lel", "LIBELEE" }, /* Libelee */ { "len", "LENDER" }, /* Lender */ { "let", "LIBELEE-APPELLANT" }, /* Libelee-appellant */ { "lgd", "LIGHTING_DESIGNER" }, /* Lighting designer */ { "lie", "LIBELANT-APPELLEE" }, /* Libelant-appellee */ { "lil", "LIBELANT" }, /* Libelant */ { "lit", "LIBELANT-APPELLANT" }, /* Libelant-appellant */ { "lsa", "LANDSCAPE_ARCHITECT" }, /* Landscape architect */ { "lse", "LICENSEE" }, /* Licensee */ { "lso", "LICENSOR" }, /* Licensor */ { "ltg", "LITHOGRAPHER" }, /* Lithographer */ { "lyr", "LYRICIST" }, /* Lyricist */ { "mcp", "MUSIC_COPYIST" }, /* Music copyist */ { "mdc", "METADATA_CONTACT" }, /* Metadata contact */ { "med", "MEDIUM" }, /* Medium */ { "mfp", "MANUFACTURE_PLACE" }, /* Manufacture place */ { "mfr", "MANUFACTURER" }, /* Manufacturer */ { "mod", "MODERATOR" }, /* Moderator */ { "mon", "THESIS_EXAMINER" }, /* Monitor */ { "mrb", "MARBLER" }, /* Marbler */ { "mrk", "EDITOR" }, /* Markup editor */ { "msd", "MUSICAL_DIRECTOR" }, /* Musical director */ { "mte", "METAL-ENGRAVER" }, /* Metal-engraver */ { "mtk", "MINUTE_TAKER" }, /* Minute taker */ { "mus", "MUSICIAN" }, /* Musician */ { "nrt", "NARRATOR" }, /* Narrator */ { "opn", "THESIS_OPPONENT" }, /* Opponent */ { "org", "ORIGINATOR" }, /* Originator */ { "organizer of meeting", "ORGANIZER" }, { "orm", "ORGANIZER" }, /* Organizer */ { "osp", "ONSCREEN_PRESENTER" }, /* Onscreen presenter */ { "oth", "THESIS_OTHER" }, /* Other */ { "own", "OWNER" }, /* Owner */ { "pan", "PANELIST" }, /* Panelist */ { "pat", "PATRON" }, /* Patron */ { "patent holder", "ASSIGNEE" }, { "pbd", "PUBLISHING_DIRECTOR" }, /* Publishing director */ { "pbl", "PUBLISHER" }, /* Publisher */ { "pdr", "PROJECT_DIRECTOR" }, /* Project director */ { "pfr", "PROOFREADER" }, /* Proofreader */ { "pht", "PHOTOGRAPHER" }, /* Photographer */ { "plt", "PLATEMAKER" }, /* Platemaker */ { "pma", "PERMITTING_AGENCY" }, /* Permitting agency */ { "pmn", "PRODUCTION_MANAGER" }, /* Production manager */ { "pop", "PRINTER_OF_PLATES" }, /* Printer of plates */ { "ppm", "PAPERMAKER" }, /* Papermaker */ { "ppt", "PUPPETEER" }, /* Puppeteer */ { "pra", "PRAESES" }, /* Praeses */ { "prc", "PROCESS_CONTRACT" }, /* Process contact */ { "prd", "PRODUCTION_PERSONNEL" }, /* Production personnel */ { "pre", "PRESENTER" }, /* Presenter */ { "prf", "PERFORMER" }, /* Performer */ { "prg", "AUTHOR" }, /* Programmer */ { "prm", "PRINTMAKER" }, /* Printmaker */ { "prn", "PRODUCTION_COMPANY" }, /* Production company */ { "pro", "PRODUCER" }, /* Producer */ { "prp", "PRODUCTION_PLACE" }, /* Production place */ { "prs", "PRODUCTION_DESIGNER" }, /* Production designer */ { "prt", "PRINTER" }, /* Printer */ { "prv", "PROVIDER" }, /* Provider */ { "pta", "PATENT_APPLICANT" }, /* Patent applicant */ { "pte", "PLAINTIFF-APPELLEE" }, /* Plaintiff-appellee */ { "ptf", "PLAINTIFF" }, /* Plaintiff */ { "pth", "ASSIGNEE" }, /* Patent holder */ { "ptt", "PLAINTIFF-APPELLANT" }, /* Plaintiff-appellant */ { "pup", "PUBLICATION_PLACE" }, /* Publication place */ { "rbr", "RUBRICATOR" }, /* Rubricator */ { "rcd", "RECORDIST" }, /* Recordist */ { "rce", "RECORDING_ENGINEER" }, /* Recording engineer */ { "rcp", "ADDRESSEE" }, /* Addressee */ { "rdd", "RADIO_DIRECTOR" }, /* Radio director */ { "red", "REDAKTOR" }, /* Redaktor */ { "ren", "RENDERER" }, /* Renderer */ { "res", "RESEARCHER" }, /* Researcher */ { "rev", "REVIEWER" }, /* Reviewer */ { "rpc", "RADIO_PRODUCER" }, /* Radio producer */ { "rps", "REPOSITORY" }, /* Repository */ { "rpt", "REPORTER" }, /* Reporter */ { "rpy", "RESPONSIBLE_PARTY" }, /* Responsible party */ { "rse", "RESPONDENT-APPELLEE" }, /* Respondent-appellee */ { "rsg", "RESTAGER" }, /* Restager */ { "rsp", "RESPONDENT" }, /* Respondent */ { "rsr", "RESTORATIONIST" }, /* Restorationist */ { "rst", "RESPONDENT-APPELLANT" }, /* Respondent-appellant */ { "rth", "RESEARCH_TEAM_HEAD" }, /* Research team head */ { "rtm", "RESEARCH_TEAM_MEMBER" }, /* Research team member */ { "sad", "SCIENTIFIC_ADVISOR" }, /* Scientific advisor */ { "sce", "SCENARIST" }, /* Scenarist */ { "scl", "SCULPTOR" }, /* Sculptor */ { "scr", "SCRIBE" }, /* Scribe */ { "sds", "SOUND_DESIGNER" }, /* Sound designer */ { "sec", "SECRETARY" }, /* Secretary */ { "sgd", "STAGE_DIRECTOR" }, /* Stage director */ { "sgn", "SIGNER" }, /* Signer */ { "sht", "SUPPORTING_HOST" }, /* Supporting host */ { "sll", "SELLER" }, /* Seller */ { "sng", "SINGER" }, /* Singer */ { "spk", "SPEAKER" }, /* Speaker */ { "spn", "SPONSOR" }, /* Sponsor */ { "spy", "SECOND_PARTY" }, /* Second party */ { "srv", "SURVEYOR" }, /* Surveyor */ { "std", "SET_DESIGNER" }, /* Set designer */ { "stg", "SETTING" }, /* Setting */ { "stl", "STORYTELLER" }, /* Storyteller */ { "stm", "STAGE_MANAGER" }, /* Stage manager */ { "stn", "STANDARDS_BODY" }, /* Standards body */ { "str", "STEREOTYPER" }, /* Stereotyper */ { "tcd", "TECHNICAL_DIRECTOR" }, /* Technical director */ { "tch", "TEACHER" }, /* Teacher */ { "ths", "THESIS_ADVISOR" }, /* Thesis advisor */ { "tld", "TELEVISION_DIRECTOR" }, /* Television director */ { "tlp", "TELEVISION_PRODUCER" }, /* Television producer */ { "trc", "TRANSCRIBER" }, /* Transcriber */ { "trl", "TRANSLATOR" }, /* Translator */ { "tyd", "TYPE_DIRECTOR" }, /* Type designer */ { "tyg", "TYPOGRAPHER" }, /* Typographer */ { "uvp", "UNIVERSITY_PLACE" }, /* University place */ { "vac", "VOICE_ACTOR" }, /* Voice actor */ { "vdg", "VIDEOGRAPHER" }, /* Videographer */ { "voc", "VOCALIST" }, /* Vocalist */ { "wac", "AUTHOR" }, /* Writer of added commentary */ { "wal", "AUTHOR" }, /* Writer of added lyrics */ { "wam", "AUTHOR" }, /* Writer of accompanying material */ { "wat", "AUTHOR" }, /* Writer of added text */ { "wdc", "WOODCUTTER" }, /* Woodcutter */ { "wde", "WOOD_ENGRAVER" }, /* Wood engraver */ { "win", "AUTHOR" }, /* Writer of introduction */ { "wit", "WITNESS" }, /* Witness */ { "wpr", "AUTHOR" }, /* Writer of preface */ { "wst", "AUTHOR" }, /* Writer of supplementary textual content */ }; static const int nrealtors = sizeof( relators ) / sizeof( relators[0] ); char * marc_convertrole( const char *query ) { int i; for ( i=0; i #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "xml.h" #include "xml_encoding.h" #include "iso639_2.h" #include "bibutils.h" #include "bibformats.h" static int medin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int medin_processf( fields *medin, char *data, char *filename, long nref, param *p ); /***************************************************** PUBLIC: void medin_initparams() *****************************************************/ void medin_initparams( param *p, const char *progname ) { p->readformat = BIBL_MEDLINEIN; p->charsetin = BIBL_CHARSET_UNICODE; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 1; p->utf8in = 1; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; p->readf = medin_readf; p->processf = medin_processf; p->cleanf = NULL; p->typef = NULL; p->convertf = NULL; p->all = NULL; p->nall = 0; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int medin_readf() *****************************************************/ /* * The only difference between MEDLINE and PUBMED in format is * that the entire library is wrapped in * or tags... */ static char *wrapper[] = { "PubmedArticle", "MedlineCitation" }; static int nwrapper = sizeof( wrapper ) / sizeof( wrapper[0] ); static char * medin_findstartwrapper( char *buf, int *ntype ) { char *startptr=NULL; int i; for ( i=0; idata ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( line->data ) { startptr = medin_findstartwrapper( line->data, &type ); } if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = medin_findendwrapper( str_cstr( &tmp ), type ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int medin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; static int medin_doconvert( xml *node, fields *info, xml_convert *c, int nc, int *found ) { int i, fstatus; char *d; *found = 0; if ( !xml_has_value( node ) ) return BIBL_OK; d = xml_value_cstr( node ); for ( i=0; iMechanism and..... */ static int medin_articletitle( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_has_value( node ) ) { fstatus = fields_add( info, "TITLE", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } return status; } /* 2003 Jan-Feb */ static int medin_medlinedate( fields *info, char *p, int level ) { int fstatus; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { fstatus = fields_add( info, "PARTDATE:YEAR", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { str_findreplace( &tmp, "-", "/" ); fstatus = fields_add( info, "PARTDATE:MONTH", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } (void) str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { fstatus = fields_add( info, "PARTDATE:DAY", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &tmp ); return BIBL_OK; } /* eng */ static int medin_language( xml *node, fields *info, int level ) { char *code, *language; int fstatus; code = xml_value_cstr( node ); if ( !code ) return BIBL_OK; language = iso639_2_from_code( code ); if ( language ) fstatus = fields_add( info, "LANGUAGE", language, level ); else fstatus = fields_add( info, "LANGUAGE", code, level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* * 0027-8424 * * 100 * 21 * * 2003 * Oct * 14 * * * * * or.... * * * 0735-0414 * * 38 * 1 * * 2003 Jan-Feb * * * Alcohol and alcoholism (Oxford, Oxfordshire) * Alcohol Alcohol. * */ static int medin_journal1( xml *node, fields *info ) { xml_convert c[] = { { "Title", NULL, NULL, "TITLE", 1 }, { "ISOAbbreviation", NULL, NULL, "SHORTTITLE", 1 }, { "ISSN", NULL, NULL, "ISSN", 1 }, { "Volume", NULL, NULL, "VOLUME", 1 }, { "Issue", NULL, NULL, "ISSUE", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, }; int nc = sizeof( c ) / sizeof( c[0] ), status, found; if ( xml_has_value( node ) ) { status = medin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { if ( xml_tag_matches( node, "MedlineDate" ) ) { status = medin_medlinedate( info, xml_value_cstr( node ), 1 ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node, "Language" ) ) { status = medin_language( node, info, 1 ); if ( status!=BIBL_OK ) return status; } } } if ( node->down ) { status = medin_journal1( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = medin_journal1( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 12111-6 * */ static int medin_pagination( xml *node, fields *info ) { int i, fstatus, status; str sp, ep; char *p, *pp; if ( xml_tag_matches( node, "MedlinePgn" ) && node->value.len ) { strs_init( &sp, &ep, NULL ); p = str_cpytodelim( &sp, xml_value_cstr( node ), "-", 1 ); if ( str_memerr( &sp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &sp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &sp ), 1 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } (void) str_cpytodelim( &ep, p, "", 0 ); if ( str_memerr( &ep ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &ep ) ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idown ) { status = medin_pagination( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = medin_pagination( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * ljwejrelr * */ static int medin_abstract( xml *node, fields *info ) { int fstatus; if ( xml_tag_matches_has_value( node, "AbstractText" ) ) { fstatus = fields_add( info, "ABSTRACT", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( node->next ) return medin_abstract( node->next, info ); return BIBL_OK; } /* * * Barondeau * David P * ( or David P ) * DP * * * Organization * * */ static int medin_author( xml *node, str *name ) { char *p; if ( xml_tag_matches( node, "LastName" ) ) { if ( str_has_value( name ) ) { str_prepend( name, "|" ); str_prepend( name, xml_value_cstr( node ) ); } else str_strcat( name, xml_value( node ) ); } else if ( xml_tag_matches( node, "ForeName" ) || xml_tag_matches( node, "FirstName" ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); while ( *p==' ' ) p++; while ( *p && *p!=' ' ) str_addchar( name, *p++ ); } } else if ( xml_tag_matches( node, "Initials" ) && !strchr( name->data, '|' )) { p = xml_value_cstr( node ); while ( p && *p ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); if ( !is_ws(*p) ) str_addchar( name, *p++ ); } } if ( node->next ) medin_author( node->next, name ); return BIBL_OK; } static int medin_corpauthor( xml *node, str *name ) { if ( xml_tag_matches( node, "CollectiveName" ) ) { str_strcpy( name, xml_value( node ) ); } else if ( node->next ) medin_corpauthor( node->next, name ); return BIBL_OK; } static int medin_authorlist( xml *node, fields *info ) { int fstatus, status; str name; char *tag; str_init( &name ); node = node->down; while ( node ) { if ( xml_tag_matches( node, "Author" ) && node->down ) { status = medin_author( node->down, &name ); tag = "AUTHOR"; if ( str_is_empty( &name ) ) { status = medin_corpauthor( node->down, &name ); tag = "AUTHOR:CORP"; } if ( str_memerr( &name ) || status!=BIBL_OK ) return BIBL_ERR_MEMERR; if ( str_has_value( &name ) ) { fstatus = fields_add(info,tag,name.data,0); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &name ); } node = node->next; } str_free( &name ); return BIBL_OK; } /* * Journal Article * */ /* * United States * Proc Natl Acad Sci U S A * 7507876 * */ static int medin_journal2( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "MedlineTA" ) && fields_find( info, "TITLE", LEVEL_HOST )==FIELDS_NOTFOUND ) { fstatus = fields_add( info, "TITLE", xml_value_cstr( node ), 1 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = medin_journal2( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_journal2( node->next, info ); return status; } /* Biophysics Crystallography, X-Ray */ static int medin_meshheading( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "DescriptorName" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->next ) status = medin_meshheading( node->next, info ); return status; } static int medin_meshheadinglist( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "MeshHeading" ) && node->down ) { status = medin_meshheading( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_meshheadinglist( node->next, info ); return status; } /* * .... * * 14523232 * 10.1073/pnas.2133463100 * 2133463100 * PMC4833866 * * * * I think "pii" is "Publisher Item Identifier" */ static int medin_pubmeddata( xml *node, fields *info ) { xml_convert c[] = { { "ArticleId", "IdType", "doi", "DOI", 0 }, { "ArticleId", "IdType", "pubmed", "PMID", 0 }, { "ArticleId", "IdType", "medline", "MEDLINE", 0 }, { "ArticleId", "IdType", "pmc", "PMC", 0 }, { "ArticleId", "IdType", "pii", "PII", 0 }, }; int nc = sizeof( c ) / sizeof( c[0] ), found, status; status = medin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = medin_pubmeddata( node->next, info ); if ( status!=BIBL_OK ) return status; } if ( node->down ) { medin_pubmeddata( node->down, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int medin_article( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches( node, "Journal" ) ) status = medin_journal1( node, info ); else if ( xml_tag_matches( node, "ArticleTitle" ) ) status = medin_articletitle( node, info ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = medin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = medin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = medin_authorlist( node, info ); else if ( xml_tag_matches( node, "Language" ) ) status = medin_language( node, info, 0 ); else if ( xml_tag_matches( node, "Affiliation" ) ) { fstatus = fields_add( info, "ADDRESS", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } if ( status!=BIBL_OK ) return status; if ( node->next ) status = medin_article( node->next, info ); return status; } static int medin_medlinecitation( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "PMID" ) ) { fstatus = fields_add( info, "PMID", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { if ( xml_tag_matches( node, "Article" ) ) { status = medin_article( node->down, info ); } else if ( xml_tag_matches( node, "MedlineJournalInfo" ) ) { status = medin_journal2( node->down, info ); } else if ( xml_tag_matches( node, "MeshHeadingList" ) ) status = medin_meshheadinglist( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_medlinecitation( node->next, info ); return status; } static int medin_pubmedarticle( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "MedlineCitation" ) ) status = medin_medlinecitation( node->down, info ); else if ( xml_tag_matches( node, "PubmedData" ) ) status = medin_pubmeddata( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_pubmedarticle( node->next, info ); return status; } static int medin_assembleref( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "PubmedArticle" ) ) status = medin_pubmedarticle( node->down, info ); else if ( xml_tag_matches( node, "MedlineCitation" ) ) status = medin_medlinecitation( node->down, info ); else status = medin_assembleref( node->down, info ); } if ( status!=BIBL_OK ) return status; if ( node->next ) { status = medin_assembleref( node->next, info ); if ( status!=BIBL_OK ) return status; } /* assume everything is a journal article */ if ( fields_num( info ) ) { status = fields_add( info, "RESOURCE", "text", 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "ISSUANCE", "continuing", 1 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "GENRE:MARC", "periodical", 1 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "GENRE:BIBUTILS", "academic journal", 1 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = BIBL_OK; } return status; } static int medin_processf( fields *medin, char *data, char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = medin_assembleref( &top, medin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; return 0; } hs-bibutils-6.7.0.0/bibutils/medin.c0000755000000000000000000004353600000000000015331 0ustar0000000000000000/* * medin.c * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "xml.h" #include "xml_encoding.h" #include "iso639_2.h" #include "bibutils.h" #include "bibformats.h" static int medin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int medin_processf( fields *medin, char *data, char *filename, long nref, param *p ); /***************************************************** PUBLIC: void medin_initparams() *****************************************************/ void medin_initparams( param *p, const char *progname ) { p->readformat = BIBL_MEDLINEIN; p->charsetin = BIBL_CHARSET_UNICODE; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 1; p->utf8in = 1; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; p->readf = medin_readf; p->processf = medin_processf; p->cleanf = NULL; p->typef = NULL; p->convertf = NULL; p->all = NULL; p->nall = 0; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int medin_readf() *****************************************************/ /* * The only difference between MEDLINE and PUBMED in format is * that the entire library is wrapped in * or tags... */ static char *wrapper[] = { "PubmedArticle", "MedlineCitation" }; static int nwrapper = sizeof( wrapper ) / sizeof( wrapper[0] ); static char * medin_findstartwrapper( char *buf, int *ntype ) { char *startptr=NULL; int i; for ( i=0; idata ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( line->data ) { startptr = medin_findstartwrapper( line->data, &type ); } if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = medin_findendwrapper( str_cstr( &tmp ), type ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int medin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; static int medin_doconvert( xml *node, fields *info, xml_convert *c, int nc, int *found ) { int i, fstatus; char *d; *found = 0; if ( !xml_has_value( node ) ) return BIBL_OK; d = xml_value_cstr( node ); for ( i=0; iMechanism and..... */ static int medin_articletitle( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_has_value( node ) ) { fstatus = fields_add( info, "TITLE", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } return status; } /* 2003 Jan-Feb */ static int medin_medlinedate( fields *info, char *p, int level ) { int fstatus; str tmp; str_init( &tmp ); p = str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { fstatus = fields_add( info, "PARTDATE:YEAR", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } p = str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { str_findreplace( &tmp, "-", "/" ); fstatus = fields_add( info, "PARTDATE:MONTH", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } (void) str_cpytodelim( &tmp, skip_ws( p ), " \t\n\r", 0 ); if ( str_memerr( &tmp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &tmp ) ) { fstatus = fields_add( info, "PARTDATE:DAY", str_cstr( &tmp ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &tmp ); return BIBL_OK; } /* eng */ static int medin_language( xml *node, fields *info, int level ) { char *code, *language; int fstatus; code = xml_value_cstr( node ); if ( !code ) return BIBL_OK; language = iso639_2_from_code( code ); if ( language ) fstatus = fields_add( info, "LANGUAGE", language, level ); else fstatus = fields_add( info, "LANGUAGE", code, level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* * 0027-8424 * * 100 * 21 * * 2003 * Oct * 14 * * * * * or.... * * * 0735-0414 * * 38 * 1 * * 2003 Jan-Feb * * * Alcohol and alcoholism (Oxford, Oxfordshire) * Alcohol Alcohol. * */ static int medin_journal1( xml *node, fields *info ) { xml_convert c[] = { { "Title", NULL, NULL, "TITLE", 1 }, { "ISOAbbreviation", NULL, NULL, "SHORTTITLE", 1 }, { "ISSN", NULL, NULL, "ISSN", 1 }, { "Volume", NULL, NULL, "VOLUME", 1 }, { "Issue", NULL, NULL, "ISSUE", 1 }, { "Year", NULL, NULL, "PARTDATE:YEAR", 1 }, { "Month", NULL, NULL, "PARTDATE:MONTH", 1 }, { "Day", NULL, NULL, "PARTDATE:DAY", 1 }, }; int nc = sizeof( c ) / sizeof( c[0] ), status, found; if ( xml_has_value( node ) ) { status = medin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( !found ) { if ( xml_tag_matches( node, "MedlineDate" ) ) { status = medin_medlinedate( info, xml_value_cstr( node ), 1 ); if ( status!=BIBL_OK ) return status; } if ( xml_tag_matches( node, "Language" ) ) { status = medin_language( node, info, 1 ); if ( status!=BIBL_OK ) return status; } } } if ( node->down ) { status = medin_journal1( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = medin_journal1( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * 12111-6 * */ static int medin_pagination( xml *node, fields *info ) { int i, fstatus, status; str sp, ep; char *p, *pp; if ( xml_tag_matches( node, "MedlinePgn" ) && node->value.len ) { strs_init( &sp, &ep, NULL ); p = str_cpytodelim( &sp, xml_value_cstr( node ), "-", 1 ); if ( str_memerr( &sp ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &sp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &sp ), 1 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } (void) str_cpytodelim( &ep, p, "", 0 ); if ( str_memerr( &ep ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &ep ) ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idown ) { status = medin_pagination( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) { status = medin_pagination( node->next, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } /* * ljwejrelr * */ static int medin_abstract( xml *node, fields *info ) { int fstatus; if ( xml_tag_matches_has_value( node, "AbstractText" ) ) { fstatus = fields_add( info, "ABSTRACT", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( node->next ) return medin_abstract( node->next, info ); return BIBL_OK; } /* * * Barondeau * David P * ( or David P ) * DP * * * Organization * * */ static int medin_author( xml *node, str *name ) { char *p; if ( xml_tag_matches( node, "LastName" ) ) { if ( str_has_value( name ) ) { str_prepend( name, "|" ); str_prepend( name, xml_value_cstr( node ) ); } else str_strcat( name, xml_value( node ) ); } else if ( xml_tag_matches( node, "ForeName" ) || xml_tag_matches( node, "FirstName" ) ) { p = xml_value_cstr( node ); while ( p && *p ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); while ( *p==' ' ) p++; while ( *p && *p!=' ' ) str_addchar( name, *p++ ); } } else if ( xml_tag_matches( node, "Initials" ) && !strchr( name->data, '|' )) { p = xml_value_cstr( node ); while ( p && *p ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); if ( !is_ws(*p) ) str_addchar( name, *p++ ); } } if ( node->next ) medin_author( node->next, name ); return BIBL_OK; } static int medin_corpauthor( xml *node, str *name ) { if ( xml_tag_matches( node, "CollectiveName" ) ) { str_strcpy( name, xml_value( node ) ); } else if ( node->next ) medin_corpauthor( node->next, name ); return BIBL_OK; } static int medin_authorlist( xml *node, fields *info ) { int fstatus, status; str name; char *tag; str_init( &name ); node = node->down; while ( node ) { if ( xml_tag_matches( node, "Author" ) && node->down ) { status = medin_author( node->down, &name ); tag = "AUTHOR"; if ( str_is_empty( &name ) ) { status = medin_corpauthor( node->down, &name ); tag = "AUTHOR:CORP"; } if ( str_memerr( &name ) || status!=BIBL_OK ) return BIBL_ERR_MEMERR; if ( str_has_value( &name ) ) { fstatus = fields_add(info,tag,name.data,0); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &name ); } node = node->next; } str_free( &name ); return BIBL_OK; } /* * Journal Article * */ /* * United States * Proc Natl Acad Sci U S A * 7507876 * */ static int medin_journal2( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "MedlineTA" ) && fields_find( info, "TITLE", LEVEL_HOST )==FIELDS_NOTFOUND ) { fstatus = fields_add( info, "TITLE", xml_value_cstr( node ), 1 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = medin_journal2( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_journal2( node->next, info ); return status; } /* Biophysics Crystallography, X-Ray */ static int medin_meshheading( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "DescriptorName" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->next ) status = medin_meshheading( node->next, info ); return status; } static int medin_meshheadinglist( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "MeshHeading" ) && node->down ) { status = medin_meshheading( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_meshheadinglist( node->next, info ); return status; } /* * .... * * 14523232 * 10.1073/pnas.2133463100 * 2133463100 * PMC4833866 * * * * I think "pii" is "Publisher Item Identifier" */ static int medin_pubmeddata( xml *node, fields *info ) { xml_convert c[] = { { "ArticleId", "IdType", "doi", "DOI", 0 }, { "ArticleId", "IdType", "pubmed", "PMID", 0 }, { "ArticleId", "IdType", "medline", "MEDLINE", 0 }, { "ArticleId", "IdType", "pmc", "PMC", 0 }, { "ArticleId", "IdType", "pii", "PII", 0 }, }; int nc = sizeof( c ) / sizeof( c[0] ), found, status; status = medin_doconvert( node, info, c, nc, &found ); if ( status!=BIBL_OK ) return status; if ( node->next ) { status = medin_pubmeddata( node->next, info ); if ( status!=BIBL_OK ) return status; } if ( node->down ) { medin_pubmeddata( node->down, info ); if ( status!=BIBL_OK ) return status; } return BIBL_OK; } static int medin_article( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches( node, "Journal" ) ) status = medin_journal1( node, info ); else if ( xml_tag_matches( node, "ArticleTitle" ) ) status = medin_articletitle( node, info ); else if ( xml_tag_matches( node, "Pagination" ) && node->down ) status = medin_pagination( node->down, info ); else if ( xml_tag_matches( node, "Abstract" ) && node->down ) status = medin_abstract( node->down, info ); else if ( xml_tag_matches( node, "AuthorList" ) ) status = medin_authorlist( node, info ); else if ( xml_tag_matches( node, "Language" ) ) status = medin_language( node, info, 0 ); else if ( xml_tag_matches( node, "Affiliation" ) ) { fstatus = fields_add( info, "ADDRESS", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; } if ( status!=BIBL_OK ) return status; if ( node->next ) status = medin_article( node->next, info ); return status; } static int medin_medlinecitation( xml *node, fields *info ) { int fstatus, status = BIBL_OK; if ( xml_tag_matches_has_value( node, "PMID" ) ) { fstatus = fields_add( info, "PMID", xml_value_cstr( node ), 0 ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { if ( xml_tag_matches( node, "Article" ) ) { status = medin_article( node->down, info ); } else if ( xml_tag_matches( node, "MedlineJournalInfo" ) ) { status = medin_journal2( node->down, info ); } else if ( xml_tag_matches( node, "MeshHeadingList" ) ) status = medin_meshheadinglist( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_medlinecitation( node->next, info ); return status; } static int medin_pubmedarticle( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "MedlineCitation" ) ) status = medin_medlinecitation( node->down, info ); else if ( xml_tag_matches( node, "PubmedData" ) ) status = medin_pubmeddata( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = medin_pubmedarticle( node->next, info ); return status; } static int medin_assembleref( xml *node, fields *info ) { int status = BIBL_OK; if ( node->down ) { if ( xml_tag_matches( node, "PubmedArticle" ) ) status = medin_pubmedarticle( node->down, info ); else if ( xml_tag_matches( node, "MedlineCitation" ) ) status = medin_medlinecitation( node->down, info ); else status = medin_assembleref( node->down, info ); } if ( status!=BIBL_OK ) return status; if ( node->next ) { status = medin_assembleref( node->next, info ); if ( status!=BIBL_OK ) return status; } /* assume everything is a journal article */ if ( fields_num( info ) ) { status = fields_add( info, "RESOURCE", "text", 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "ISSUANCE", "continuing", 1 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "GENRE:MARC", "periodical", 1 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = fields_add( info, "GENRE:BIBUTILS", "academic journal", 1 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; status = BIBL_OK; } return status; } static int medin_processf( fields *medin, char *data, char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = medin_assembleref( &top, medin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; return 0; } hs-bibutils-6.7.0.0/bibutils/modsin.c0000644000000000000000000007722600000000000015526 0ustar0000000000000000/* * modsin.c * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "xml.h" #include "xml_encoding.h" #include "fields.h" #include "name.h" #include "reftypes.h" #include "modstypes.h" #include "bu_auth.h" #include "marc_auth.h" #include "url.h" #include "iso639_1.h" #include "iso639_2.h" #include "iso639_3.h" #include "bibutils.h" #include "bibformats.h" static int modsin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int modsin_processf( fields *medin, char *data, char *filename, long nref, param *p ); /***************************************************** PUBLIC: void modsin_initparams() *****************************************************/ void modsin_initparams( param *p, const char *progname ) { p->readformat = BIBL_MODSIN; p->format_opts = 0; p->charsetin = BIBL_CHARSET_UNICODE; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->utf8in = 1; p->xmlin = 1; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; p->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; p->readf = modsin_readf; p->processf = modsin_processf; p->cleanf = NULL; p->typef = NULL; p->convertf = NULL; p->all = NULL; p->nall = 0; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int modsin_processf() *****************************************************/ static char modsns[]="mods"; static int modsin_detailr( xml *node, str *value ) { int status = BIBL_OK; if ( xml_has_value( node ) ) { if ( value->len ) str_addchar( value, ' ' ); str_strcat( value, xml_value( node ) ); if ( str_memerr( value ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_detailr( node->down, value ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_detailr( node->next, value ); return status; } static int modsin_detail( xml *node, fields *info, int level ) { str type, value, *tp; int fstatus, status = BIBL_OK; if ( node->down ) { strs_init( &type, &value, NULL ); tp = xml_attribute( node, "type" ); if ( tp ) { str_strcpy( &type, tp ); str_toupper( &type ); if ( str_memerr( &type ) ) goto out; } status = modsin_detailr( node->down, &value ); if ( status!=BIBL_OK ) goto out; if ( type.data && !strcasecmp( type.data, "PAGE" ) ) { fstatus = fields_add( info, "PAGES:START", value.data, level ); } else { fstatus = fields_add( info, type.data, value.data, level ); } if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &type, &value, NULL ); } return status; } static int modsin_date( xml *node, fields *info, int level, int part ) { int fstatus, status = BIBL_OK; char *tag, *p; str s; str_init( &s ); p = xml_value_cstr( node ); if ( p ) { p = str_cpytodelim( &s, skip_ws( p ), "-", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:YEAR" : "DATE:YEAR"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } p = str_cpytodelim( &s, skip_ws( p ), "-", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:MONTH" : "DATE:MONTH"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } (void) str_cpytodelim( &s, skip_ws( p ), "", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:DAY" : "DATE:DAY"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: str_free( &s ); return status; } static int modsin_pager( xml *node, str *sp, str *ep, str *tp, str *lp ) { int status = BIBL_OK; if ( xml_tag_matches_has_value( node, "start" ) ) { str_strcpy( sp, xml_value( node ) ); if ( str_memerr( sp ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "end" ) ) { str_strcpy( ep, xml_value( node ) ); if ( str_memerr( ep ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "total" ) ) { str_strcpy( tp, xml_value( node ) ); if ( str_memerr( tp ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "list" ) ) { str_strcpy( lp, xml_value( node ) ); if ( str_memerr( lp ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_pager( node->down, sp, ep, tp, lp ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_pager( node->next, sp, ep, tp, lp ); return status; } static int modsin_page( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str sp, ep, tp, lp; xml *dnode = node->down; if ( !dnode ) return BIBL_OK; strs_init( &sp, &ep, &tp, &lp, NULL ); status = modsin_pager( dnode, &sp, &ep, &tp, &lp ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &sp ) || str_has_value( &ep ) ) { if ( str_has_value( &sp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &sp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &ep ) ) { fstatus = fields_add( info, "PAGES:STOP", str_cstr( &ep ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } else if ( str_has_value( &lp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &lp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &tp ) ) { fstatus = fields_add( info, "PAGES:TOTAL", str_cstr( &tp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &sp, &ep, &tp, &lp, NULL ); return status; } static int modsin_titler( xml *node, str *title, str *subtitle ) { int status = BIBL_OK; if ( xml_tag_matches_has_value( node, "title" ) ) { if ( str_has_value( title ) ) str_strcatc( title, " : " ); str_strcat( title, xml_value( node ) ); if ( str_memerr( title ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "subTitle" ) ) { str_strcat( subtitle, xml_value( node ) ); if ( str_memerr( subtitle ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_titler( node->down, title, subtitle ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_titler( node->next, title, subtitle ); return status; } static int modsin_title( xml *node, fields *info, int level ) { char *titletag[2][2] = { { "TITLE", "SHORTTITLE" }, { "SUBTITLE", "SHORTSUBTITLE" }, }; int fstatus, status = BIBL_OK; str title, subtitle; xml *dnode; int abbr; dnode = node->down; if ( !dnode ) return status; strs_init( &title, &subtitle, NULL ); abbr = xml_tag_has_attribute( node, "titleInfo", "type", "abbreviated" ); status = modsin_titler( dnode, &title, &subtitle ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &title ) ) { fstatus = fields_add( info, titletag[0][abbr], str_cstr( &title ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &subtitle ) ) { fstatus = fields_add( info, titletag[1][abbr], str_cstr( &subtitle ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &title, &subtitle, NULL ); return status; } /* modsin_marcrole_convert() * * Map MARC-authority roles for people or organizations associated * with a reference to internal roles. * * Take input strings with roles separated by '|' characters, e.g. * "author" or "author|creator" or "edt" or "editor|edt". */ static int modsin_marcrole_convert( str *s, char *suffix, str *out ) { int i, sstatus, status = BIBL_OK; slist tokens; char *p; slist_init( &tokens ); /* ...default to author on an empty string */ if ( str_is_empty( s ) ) { str_strcpyc( out, "AUTHOR" ); } else { sstatus = slist_tokenize( &tokens, s, "|", 1 ); if ( sstatus!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto done; } /* ...take first match */ for ( i=0; ilen ) str_addchar( role, '|' ); str_strcat( role, xml_value( node ) ); if ( str_memerr( role ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_asis_corp_r( node->down, name, role ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_asis_corp_r( node->next, name, role ); return status; } static int modsin_asis_corp( xml *node, fields *info, int level, char *suffix ) { int fstatus, status = BIBL_OK; str name, roles, role_out; xml *dnode = node->down; if ( dnode ) { strs_init( &name, &roles, &role_out, NULL ); status = modsin_asis_corp_r( dnode, &name, &roles ); if ( status!=BIBL_OK ) goto out; status = modsin_marcrole_convert( &roles, suffix, &role_out ); if ( status!=BIBL_OK ) goto out; fstatus = fields_add( info, str_cstr( &role_out ), str_cstr( &name ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &name, &roles, &role_out, NULL ); } return status; } static int modsin_roler( xml *node, str *roles ) { if ( xml_has_value( node ) ) { if ( roles->len ) str_addchar( roles, '|' ); str_strcat( roles, xml_value( node ) ); } if ( str_memerr( roles ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int modsin_personr( xml *node, str *familyname, str *givenname, str *suffix ) { int status = BIBL_OK; if ( !xml_has_value( node ) ) return status; if ( xml_tag_has_attribute( node, "namePart", "type", "family" ) ) { if ( str_has_value( familyname ) ) str_addchar( familyname, ' ' ); str_strcat( familyname, xml_value( node ) ); if ( str_memerr( familyname ) ) status = BIBL_ERR_MEMERR; } else if ( xml_tag_has_attribute( node, "namePart", "type", "suffix" ) || xml_tag_has_attribute( node, "namePart", "type", "termsOfAddress" ) ) { if ( str_has_value( suffix ) ) str_addchar( suffix, ' ' ); str_strcat( suffix, xml_value( node ) ); if ( str_memerr( suffix ) ) status = BIBL_ERR_MEMERR; } else if ( xml_tag_has_attribute( node, "namePart", "type", "date" ) ) { /* no nothing */ } else { if ( str_has_value( givenname ) ) str_addchar( givenname, '|' ); str_strcat( givenname, xml_value( node ) ); if ( str_memerr( givenname ) ) status = BIBL_ERR_MEMERR; } return status; } static int modsin_person( xml *node, fields *info, int level ) { str familyname, givenname, name, suffix, roles, role_out; int fstatus, status = BIBL_OK; xml *dnode, *rnode; dnode = node->down; if ( !dnode ) return status; strs_init( &name, &familyname, &givenname, &suffix, &roles, &role_out, NULL ); while ( dnode ) { if ( xml_tag_matches( dnode, "namePart" ) ) { status = modsin_personr( dnode, &familyname, &givenname, &suffix ); if ( status!=BIBL_OK ) goto out; } else if ( xml_tag_matches( dnode, "role" ) ) { rnode = dnode->down; while ( rnode ) { if ( xml_tag_matches( rnode, "roleTerm" ) ) { status = modsin_roler( rnode, &roles ); if ( status!=BIBL_OK ) goto out; } rnode = rnode->next; } } dnode = dnode->next; } /* * Handle: * Noah A. * Smith * without mangling the order of "Noah A." */ if ( str_has_value( &familyname ) ) { str_strcpy( &name, &familyname ); if ( givenname.len ) { str_addchar( &name, '|' ); str_strcat( &name, &givenname ); } } /* * Handle: * Noah A. Smith * with name order mangling. */ else { if ( str_has_value( &givenname ) ) name_parse( &name, &givenname, NULL, NULL ); } if ( str_has_value( &suffix ) ) { str_strcatc( &name, "||" ); str_strcat( &name, &suffix ); } if ( str_memerr( &name ) ) { status=BIBL_ERR_MEMERR; goto out; } status = modsin_marcrole_convert( &roles, NULL, &role_out ); if ( status!=BIBL_OK ) goto out; fstatus = fields_add_can_dup( info, str_cstr( &role_out ), str_cstr( &name ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &name, &familyname, &givenname, &suffix, &roles, &role_out, NULL ); return status; } static int modsin_placeterm_text( xml *node, fields *info, int level, int school ) { char address_tag[] = "ADDRESS"; char school_tag[] = "SCHOOL"; char *tag; int fstatus; tag = ( school ) ? school_tag : address_tag; fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; return BIBL_OK; } static int modsin_placeterm_code( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str s, *auth; str_init( &s ); auth = xml_attribute( node, "authority" ); if ( auth && auth->len ) { str_strcpy( &s, auth ); str_addchar( &s, '|' ); } str_strcat( &s, xml_value( node ) ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( info, "CODEDADDRESS", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: str_free( &s ); return status; } static int modsin_placeterm( xml *node, fields *info, int level, int school ) { int status = BIBL_OK; str *type; type = xml_attribute( node, "type" ); if ( str_has_value( type ) ) { if ( !strcmp( str_cstr( type ), "text" ) ) status = modsin_placeterm_text( node, info, level, school ); else if ( !strcmp( str_cstr( type ), "code" ) ) status = modsin_placeterm_code( node, info, level ); } return status; } static int modsin_placer( xml *node, fields *info, int level, int school ) { int status = BIBL_OK; if ( xml_tag_has_attribute( node, "place", "type", "school" ) ) { school = 1; } else if ( xml_tag_matches( node, "placeTerm" ) ) { status = modsin_placeterm( node, info, level, school ); } if ( node->down ) { status = modsin_placer( node->down, info, level, school ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_placer( node->next, info, level, school ); return status; } static int modsin_origininfor( xml *node, fields *info, int level, str *pub, str *add, str *addc, str *ed, str *iss ) { int status = BIBL_OK; if ( xml_tag_matches( node, "dateIssued" ) ) { status = modsin_date( node, info, level, 0 ); } else if ( xml_tag_matches( node, "place" ) ) { status = modsin_placer( node, info, level, 0 ); } else if ( xml_tag_matches_has_value( node, "publisher" ) ) { str_strcat( pub, xml_value( node ) ); if ( str_memerr( pub ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "edition" ) ) { str_strcat( ed, xml_value( node ) ); if( str_memerr( ed ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "issuance" ) ) { str_strcat( iss, xml_value( node ) ); if ( str_memerr( iss ) ) return BIBL_ERR_MEMERR; } if ( status!=BIBL_OK ) return status; if ( node->down ) { status = modsin_origininfor( node->down, info, level, pub, add, addc, ed, iss ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_origininfor( node->next, info, level, pub, add, addc, ed, iss ); return status; } static int modsin_origininfo( xml *node, fields *info, int level ) { str publisher, address, addcode, edition, issuance; int fstatus, status = BIBL_OK; if ( node->down ) { strs_init( &publisher, &address, &addcode, &edition, &issuance, NULL ); status = modsin_origininfor( node->down, info, level, &publisher, &address, &addcode, &edition, &issuance ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &publisher ) ) { fstatus = fields_add( info, "PUBLISHER", str_cstr( &publisher ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &address ) ) { fstatus = fields_add( info, "ADDRESS", str_cstr( &address ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &addcode ) ) { fstatus = fields_add( info, "CODEDADDRESS", str_cstr( &addcode ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &edition ) ) { fstatus = fields_add( info, "EDITION", str_cstr( &edition ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &issuance ) ) { fstatus = fields_add( info, "ISSUANCE", str_cstr( &issuance ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } out: strs_free( &publisher, &address, &addcode, &edition, &issuance, NULL ); } return status; } static int modsin_subjectr( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; if ( xml_tag_has_attribute( node, "topic", "class", "primary" ) && xml_has_value( node ) ) { fstatus = fields_add( info, "EPRINTCLASS", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "topic" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "geographic" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_subjectr( node->down, info, level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_subjectr( node->next, info, level ); return status; } static int modsin_subject( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( node->down ) status = modsin_subjectr( node->down, info, level ); return status; } static int modsin_id1( xml *node, fields *info, int level ) { int fstatus; str *ns; ns = xml_attribute( node, "ID" ); if ( str_has_value( ns ) ) { fstatus = fields_add( info, "REFNUM", str_cstr( ns ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* modsin_genre() * * MARC authority terms tagged with "GENRE:MARC" * bibutils authority terms tagged with "GENRE:BIBUTILS" * unknown terms tagged with "GENRE:UNKNOWN" */ static int modsin_genre( xml *node, fields *info, int level ) { int fstatus; char *d; if ( !xml_has_value( node ) ) return BIBL_OK; d = xml_value_cstr( node ); /* ...handle special genres in KTH DivA */ if ( !strcmp( d, "conferenceProceedings" ) || !strcmp( d, "conferencePaper" ) ) d = "conference publication"; else if ( !strcmp( d, "artisticOutput" ) || !strcmp( d, "other" ) ) d = "miscellaneous"; else if ( !strcmp( d, "studentThesis" ) ) d = "thesis"; else if ( !strcmp( d, "monographDoctoralThesis" ) ) d = "Ph.D. thesis"; else if ( !strcmp( d, "comprehensiveDoctoralThesis" ) ) d = "Ph.D. thesis"; else if ( !strcmp( d, "monographLicentiateThesis" ) ) d = "Licentiate thesis"; else if ( !strcmp( d, "comprehensiveLicentiateThesis" ) ) d = "Licentiate thesis"; if ( is_marc_genre( d ) ) fstatus = fields_add( info, "GENRE:MARC", d, level ); else if ( is_bu_genre( d ) ) fstatus = fields_add( info, "GENRE:BIBUTILS", d, level ); else fstatus = fields_add( info, "GENRE:UNKNOWN", d, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; else return BIBL_OK; } /* in MODS version 3.5 * .... * ... * xxx = rfc3066 * xxx = iso639-2b * xxx = iso639-3 * xxx = rfc4646 * xxx = rfc5646 */ static int modsin_languager( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *d = NULL; if ( xml_tag_matches( node, "languageTerm" ) ) { if ( xml_has_value( node ) ) { if ( xml_has_attribute( node, "type", "code" ) ) { if ( xml_has_attribute( node, "authority", "iso639-1" ) ) d = iso639_1_from_code( xml_value_cstr( node ) ); else if ( xml_has_attribute( node, "authority", "iso639-2b" ) ) d = iso639_2_from_code( xml_value_cstr( node ) ); else if ( xml_has_attribute( node, "authority", "iso639-3" )) d = iso639_3_from_code( xml_value_cstr( node ) ); } if ( !d ) d = xml_value_cstr( node ); fstatus = fields_add( info, "LANGUAGE", d, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } if ( node->next ) status = modsin_languager( node->next, info, level ); return status; } static int modsin_language( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; /* Old versions of MODS had English */ if ( xml_has_value( node ) ) { fstatus = fields_add( info, "LANGUAGE", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } /* New versions of MODS have English */ if ( node->down ) status = modsin_languager( node->down, info, level ); return status; } static int modsin_simple( xml *node, fields *info, char *tag, int level ) { int fstatus; if ( xml_has_value( node ) ) { fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int modsin_locationr( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *url = "URL"; char *fileattach = "FILEATTACH"; char *tag=NULL; if ( xml_tag_matches( node, "url" ) ) { if ( xml_has_attribute( node, "access", "raw object" ) ) tag = fileattach; else tag = url; } else if ( xml_tag_matches( node, "physicalLocation" ) ) { if ( xml_has_attribute( node, "type", "school" ) ) tag = "SCHOOL"; else tag = "LOCATION"; } if ( tag == url ) { status = urls_split_and_add( xml_value_cstr( node ), info, level ); if ( status!=BIBL_OK ) return status; } else if ( tag ) { fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_locationr( node->down, info, level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_locationr( node->next, info, level ); return status; } static int modsin_location( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( node->down ) status = modsin_locationr( node->down, info, level ); return status; } static int modsin_descriptionr( xml *node, str *s ) { int status = BIBL_OK; if ( xml_tag_matches( node, "extent" ) || xml_tag_matches( node, "note" ) ) { str_strcpy( s, &(node->value) ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_descriptionr( node->down, s ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_descriptionr( node->next, s ); return status; } static int modsin_description( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); if ( node->down ) { status = modsin_descriptionr( node->down, &s ); if ( status!=BIBL_OK ) goto out; } else { if ( node->value.len > 0 ) str_strcpy( &s, &(node->value) ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "DESCRIPTION", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &s ); return status; } static int modsin_partr( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( xml_tag_matches( node, "detail" ) ) status = modsin_detail( node, info, level ); else if ( xml_tag_has_attribute( node, "extent", "unit", "page" ) ) status = modsin_page( node, info, level ); else if ( xml_tag_has_attribute( node, "extent", "unit", "pages" ) ) status = modsin_page( node, info, level ); else if ( xml_tag_matches( node, "date" ) ) status = modsin_date( node, info, level, 1 ); if ( status!=BIBL_OK ) return status; if ( node->next ) status = modsin_partr( node->next, info, level ); return status; } static int modsin_part( xml *node, fields *info, int level ) { if ( node->down ) return modsin_partr( node->down, info, level ); return BIBL_OK; } /* Q3 .A65 */ static int modsin_classification( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *tag; if ( xml_has_value( node ) ) { if ( xml_tag_has_attribute( node, "classification", "authority", "lcc" ) ) tag = "LCC"; else tag = "CLASSIFICATION"; fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) status = modsin_classification( node->down, info, level ); return status; } static int modsin_recordinfo( xml *node, fields *info, int level ) { int fstatus; xml *curr; /* extract recordIdentifier */ curr = node; while ( curr ) { if ( xml_tag_matches_has_value( curr, "recordIdentifier" ) ) { fstatus = fields_add( info, "REFNUM", xml_value_cstr( curr ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } curr = curr->next; } return BIBL_OK; } static int modsin_identifier( xml *node, fields *info, int level ) { convert ids[] = { { "citekey", "REFNUM", 0, 0 }, { "issn", "ISSN", 0, 0 }, { "coden", "CODEN", 0, 0 }, { "isbn", "ISBN", 0, 0 }, { "doi", "DOI", 0, 0 }, { "url", "URL", 0, 0 }, { "uri", "URL", 0, 0 }, { "pmid", "PMID", 0, 0 }, { "pubmed", "PMID", 0, 0 }, { "medline", "MEDLINE", 0, 0 }, { "pmc", "PMC", 0, 0 }, { "arXiv", "ARXIV", 0, 0 }, { "MRnumber", "MRNUMBER", 0, 0 }, { "pii", "PII", 0, 0 }, { "isi", "ISIREFNUM", 0, 0 }, { "serial number", "SERIALNUMBER",0, 0 }, { "accessnum", "ACCESSNUM", 0, 0 }, { "jstor", "JSTOR", 0, 0 }, }; int i, fstatus, n = sizeof( ids ) / sizeof( ids[0] ); if ( node->value.len==0 ) return BIBL_OK; for ( i=0; idown ) status = modsin_recordinfo( node->down, info, level ); else if ( xml_tag_matches( node, "part" ) ) modsin_part( node, info, level ); else if ( xml_tag_matches( node, "identifier" ) ) status = modsin_identifier( node, info, level ); else if ( xml_tag_matches( node, "originInfo" ) ) status = modsin_origininfo( node, info, level ); else if ( xml_tag_matches( node, "language" ) ) status = modsin_language( node, info, level ); else if ( xml_tag_matches( node, "genre" ) ) status = modsin_genre( node, info, level ); else if ( xml_tag_matches( node, "date" ) ) status = modsin_date( node, info, level, 0 ); else if ( xml_tag_matches( node, "subject" ) ) status = modsin_subject( node, info, level ); else if ( xml_tag_matches( node, "classification" ) ) status = modsin_classification( node, info, level ); else if ( xml_tag_matches( node, "location" ) ) status = modsin_location( node, info, level ); else if ( xml_tag_matches( node, "physicalDescription" ) ) status = modsin_description( node, info, level ); else if ( xml_tag_has_attribute( node, "relatedItem", "type", "host" ) || xml_tag_has_attribute( node, "relatedItem", "type", "series" ) ) { if ( node->down ) status = modsin_mods( node->down, info, level+1 ); } else if ( xml_tag_has_attribute( node, "relatedItem", "type", "original" ) ) { if ( node->down ) status = modsin_mods( node->down, info, LEVEL_ORIG ); } if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_mods( node->next, info, level ); return status; } static int modsin_assembleref( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "mods" ) ) { status = modsin_id1( node, info, 0 ); if ( status!=BIBL_OK ) return status; if ( node->down ) { status = modsin_mods( node->down, info, 0 ); if ( status!=BIBL_OK ) return status; } } else if ( node->down ) { status = modsin_assembleref( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_assembleref( node->next, info ); return status; } static int modsin_processf( fields *modsin, char *data, char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = modsin_assembleref( &top, modsin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; else return 0; } /***************************************************** PUBLIC: int modsin_readf() *****************************************************/ static char * modsin_startptr( char *p ) { char *startptr; startptr = xml_find_start( p, "mods:mods" ); if ( startptr ) { /* set namespace if found */ xml_pns = modsns; } else { startptr = xml_find_start( p, "mods" ); if ( startptr ) xml_pns = NULL; } return startptr; } static char * modsin_endptr( char *p ) { return xml_find_end( p, "mods" ); } static int modsin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { str tmp; int m, file_charset = CHARSET_UNKNOWN; char *startptr = NULL, *endptr = NULL; str_init( &tmp ); do { if ( line->data ) str_strcat( &tmp, line ); if ( str_has_value( &tmp ) ) { m = xml_getencoding( &tmp ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; startptr = modsin_startptr( tmp.data ); endptr = modsin_endptr( tmp.data ); } else startptr = endptr = NULL; str_empty( line ); if ( startptr && endptr ) { str_segcpy( reference, startptr, endptr ); str_strcpyc( line, endptr ); } } while ( !endptr && str_fget( fp, buf, bufsize, bufpos, line ) ); str_free( &tmp ); *fcharset = file_charset; return ( reference->len > 0 ); } hs-bibutils-6.7.0.0/bibutils/modsin.c0000755000000000000000000007722600000000000015531 0ustar0000000000000000/* * modsin.c * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "xml.h" #include "xml_encoding.h" #include "fields.h" #include "name.h" #include "reftypes.h" #include "modstypes.h" #include "bu_auth.h" #include "marc_auth.h" #include "url.h" #include "iso639_1.h" #include "iso639_2.h" #include "iso639_3.h" #include "bibutils.h" #include "bibformats.h" static int modsin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int modsin_processf( fields *medin, char *data, char *filename, long nref, param *p ); /***************************************************** PUBLIC: void modsin_initparams() *****************************************************/ void modsin_initparams( param *p, const char *progname ) { p->readformat = BIBL_MODSIN; p->format_opts = 0; p->charsetin = BIBL_CHARSET_UNICODE; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->utf8in = 1; p->xmlin = 1; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; p->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; p->readf = modsin_readf; p->processf = modsin_processf; p->cleanf = NULL; p->typef = NULL; p->convertf = NULL; p->all = NULL; p->nall = 0; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int modsin_processf() *****************************************************/ static char modsns[]="mods"; static int modsin_detailr( xml *node, str *value ) { int status = BIBL_OK; if ( xml_has_value( node ) ) { if ( value->len ) str_addchar( value, ' ' ); str_strcat( value, xml_value( node ) ); if ( str_memerr( value ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_detailr( node->down, value ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_detailr( node->next, value ); return status; } static int modsin_detail( xml *node, fields *info, int level ) { str type, value, *tp; int fstatus, status = BIBL_OK; if ( node->down ) { strs_init( &type, &value, NULL ); tp = xml_attribute( node, "type" ); if ( tp ) { str_strcpy( &type, tp ); str_toupper( &type ); if ( str_memerr( &type ) ) goto out; } status = modsin_detailr( node->down, &value ); if ( status!=BIBL_OK ) goto out; if ( type.data && !strcasecmp( type.data, "PAGE" ) ) { fstatus = fields_add( info, "PAGES:START", value.data, level ); } else { fstatus = fields_add( info, type.data, value.data, level ); } if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &type, &value, NULL ); } return status; } static int modsin_date( xml *node, fields *info, int level, int part ) { int fstatus, status = BIBL_OK; char *tag, *p; str s; str_init( &s ); p = xml_value_cstr( node ); if ( p ) { p = str_cpytodelim( &s, skip_ws( p ), "-", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:YEAR" : "DATE:YEAR"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } p = str_cpytodelim( &s, skip_ws( p ), "-", 1 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:MONTH" : "DATE:MONTH"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } (void) str_cpytodelim( &s, skip_ws( p ), "", 0 ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { tag = ( part ) ? "PARTDATE:DAY" : "DATE:DAY"; fstatus = fields_add( info, tag, str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: str_free( &s ); return status; } static int modsin_pager( xml *node, str *sp, str *ep, str *tp, str *lp ) { int status = BIBL_OK; if ( xml_tag_matches_has_value( node, "start" ) ) { str_strcpy( sp, xml_value( node ) ); if ( str_memerr( sp ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "end" ) ) { str_strcpy( ep, xml_value( node ) ); if ( str_memerr( ep ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "total" ) ) { str_strcpy( tp, xml_value( node ) ); if ( str_memerr( tp ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "list" ) ) { str_strcpy( lp, xml_value( node ) ); if ( str_memerr( lp ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_pager( node->down, sp, ep, tp, lp ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_pager( node->next, sp, ep, tp, lp ); return status; } static int modsin_page( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str sp, ep, tp, lp; xml *dnode = node->down; if ( !dnode ) return BIBL_OK; strs_init( &sp, &ep, &tp, &lp, NULL ); status = modsin_pager( dnode, &sp, &ep, &tp, &lp ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &sp ) || str_has_value( &ep ) ) { if ( str_has_value( &sp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &sp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &ep ) ) { fstatus = fields_add( info, "PAGES:STOP", str_cstr( &ep ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } else if ( str_has_value( &lp ) ) { fstatus = fields_add( info, "PAGES:START", str_cstr( &lp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &tp ) ) { fstatus = fields_add( info, "PAGES:TOTAL", str_cstr( &tp ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &sp, &ep, &tp, &lp, NULL ); return status; } static int modsin_titler( xml *node, str *title, str *subtitle ) { int status = BIBL_OK; if ( xml_tag_matches_has_value( node, "title" ) ) { if ( str_has_value( title ) ) str_strcatc( title, " : " ); str_strcat( title, xml_value( node ) ); if ( str_memerr( title ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "subTitle" ) ) { str_strcat( subtitle, xml_value( node ) ); if ( str_memerr( subtitle ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_titler( node->down, title, subtitle ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_titler( node->next, title, subtitle ); return status; } static int modsin_title( xml *node, fields *info, int level ) { char *titletag[2][2] = { { "TITLE", "SHORTTITLE" }, { "SUBTITLE", "SHORTSUBTITLE" }, }; int fstatus, status = BIBL_OK; str title, subtitle; xml *dnode; int abbr; dnode = node->down; if ( !dnode ) return status; strs_init( &title, &subtitle, NULL ); abbr = xml_tag_has_attribute( node, "titleInfo", "type", "abbreviated" ); status = modsin_titler( dnode, &title, &subtitle ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &title ) ) { fstatus = fields_add( info, titletag[0][abbr], str_cstr( &title ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &subtitle ) ) { fstatus = fields_add( info, titletag[1][abbr], str_cstr( &subtitle ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: strs_free( &title, &subtitle, NULL ); return status; } /* modsin_marcrole_convert() * * Map MARC-authority roles for people or organizations associated * with a reference to internal roles. * * Take input strings with roles separated by '|' characters, e.g. * "author" or "author|creator" or "edt" or "editor|edt". */ static int modsin_marcrole_convert( str *s, char *suffix, str *out ) { int i, sstatus, status = BIBL_OK; slist tokens; char *p; slist_init( &tokens ); /* ...default to author on an empty string */ if ( str_is_empty( s ) ) { str_strcpyc( out, "AUTHOR" ); } else { sstatus = slist_tokenize( &tokens, s, "|", 1 ); if ( sstatus!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto done; } /* ...take first match */ for ( i=0; ilen ) str_addchar( role, '|' ); str_strcat( role, xml_value( node ) ); if ( str_memerr( role ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_asis_corp_r( node->down, name, role ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_asis_corp_r( node->next, name, role ); return status; } static int modsin_asis_corp( xml *node, fields *info, int level, char *suffix ) { int fstatus, status = BIBL_OK; str name, roles, role_out; xml *dnode = node->down; if ( dnode ) { strs_init( &name, &roles, &role_out, NULL ); status = modsin_asis_corp_r( dnode, &name, &roles ); if ( status!=BIBL_OK ) goto out; status = modsin_marcrole_convert( &roles, suffix, &role_out ); if ( status!=BIBL_OK ) goto out; fstatus = fields_add( info, str_cstr( &role_out ), str_cstr( &name ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &name, &roles, &role_out, NULL ); } return status; } static int modsin_roler( xml *node, str *roles ) { if ( xml_has_value( node ) ) { if ( roles->len ) str_addchar( roles, '|' ); str_strcat( roles, xml_value( node ) ); } if ( str_memerr( roles ) ) return BIBL_ERR_MEMERR; else return BIBL_OK; } static int modsin_personr( xml *node, str *familyname, str *givenname, str *suffix ) { int status = BIBL_OK; if ( !xml_has_value( node ) ) return status; if ( xml_tag_has_attribute( node, "namePart", "type", "family" ) ) { if ( str_has_value( familyname ) ) str_addchar( familyname, ' ' ); str_strcat( familyname, xml_value( node ) ); if ( str_memerr( familyname ) ) status = BIBL_ERR_MEMERR; } else if ( xml_tag_has_attribute( node, "namePart", "type", "suffix" ) || xml_tag_has_attribute( node, "namePart", "type", "termsOfAddress" ) ) { if ( str_has_value( suffix ) ) str_addchar( suffix, ' ' ); str_strcat( suffix, xml_value( node ) ); if ( str_memerr( suffix ) ) status = BIBL_ERR_MEMERR; } else if ( xml_tag_has_attribute( node, "namePart", "type", "date" ) ) { /* no nothing */ } else { if ( str_has_value( givenname ) ) str_addchar( givenname, '|' ); str_strcat( givenname, xml_value( node ) ); if ( str_memerr( givenname ) ) status = BIBL_ERR_MEMERR; } return status; } static int modsin_person( xml *node, fields *info, int level ) { str familyname, givenname, name, suffix, roles, role_out; int fstatus, status = BIBL_OK; xml *dnode, *rnode; dnode = node->down; if ( !dnode ) return status; strs_init( &name, &familyname, &givenname, &suffix, &roles, &role_out, NULL ); while ( dnode ) { if ( xml_tag_matches( dnode, "namePart" ) ) { status = modsin_personr( dnode, &familyname, &givenname, &suffix ); if ( status!=BIBL_OK ) goto out; } else if ( xml_tag_matches( dnode, "role" ) ) { rnode = dnode->down; while ( rnode ) { if ( xml_tag_matches( rnode, "roleTerm" ) ) { status = modsin_roler( rnode, &roles ); if ( status!=BIBL_OK ) goto out; } rnode = rnode->next; } } dnode = dnode->next; } /* * Handle: * Noah A. * Smith * without mangling the order of "Noah A." */ if ( str_has_value( &familyname ) ) { str_strcpy( &name, &familyname ); if ( givenname.len ) { str_addchar( &name, '|' ); str_strcat( &name, &givenname ); } } /* * Handle: * Noah A. Smith * with name order mangling. */ else { if ( str_has_value( &givenname ) ) name_parse( &name, &givenname, NULL, NULL ); } if ( str_has_value( &suffix ) ) { str_strcatc( &name, "||" ); str_strcat( &name, &suffix ); } if ( str_memerr( &name ) ) { status=BIBL_ERR_MEMERR; goto out; } status = modsin_marcrole_convert( &roles, NULL, &role_out ); if ( status!=BIBL_OK ) goto out; fstatus = fields_add_can_dup( info, str_cstr( &role_out ), str_cstr( &name ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: strs_free( &name, &familyname, &givenname, &suffix, &roles, &role_out, NULL ); return status; } static int modsin_placeterm_text( xml *node, fields *info, int level, int school ) { char address_tag[] = "ADDRESS"; char school_tag[] = "SCHOOL"; char *tag; int fstatus; tag = ( school ) ? school_tag : address_tag; fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; return BIBL_OK; } static int modsin_placeterm_code( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str s, *auth; str_init( &s ); auth = xml_attribute( node, "authority" ); if ( auth && auth->len ) { str_strcpy( &s, auth ); str_addchar( &s, '|' ); } str_strcat( &s, xml_value( node ) ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } fstatus = fields_add( info, "CODEDADDRESS", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) status = BIBL_ERR_MEMERR; out: str_free( &s ); return status; } static int modsin_placeterm( xml *node, fields *info, int level, int school ) { int status = BIBL_OK; str *type; type = xml_attribute( node, "type" ); if ( str_has_value( type ) ) { if ( !strcmp( str_cstr( type ), "text" ) ) status = modsin_placeterm_text( node, info, level, school ); else if ( !strcmp( str_cstr( type ), "code" ) ) status = modsin_placeterm_code( node, info, level ); } return status; } static int modsin_placer( xml *node, fields *info, int level, int school ) { int status = BIBL_OK; if ( xml_tag_has_attribute( node, "place", "type", "school" ) ) { school = 1; } else if ( xml_tag_matches( node, "placeTerm" ) ) { status = modsin_placeterm( node, info, level, school ); } if ( node->down ) { status = modsin_placer( node->down, info, level, school ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_placer( node->next, info, level, school ); return status; } static int modsin_origininfor( xml *node, fields *info, int level, str *pub, str *add, str *addc, str *ed, str *iss ) { int status = BIBL_OK; if ( xml_tag_matches( node, "dateIssued" ) ) { status = modsin_date( node, info, level, 0 ); } else if ( xml_tag_matches( node, "place" ) ) { status = modsin_placer( node, info, level, 0 ); } else if ( xml_tag_matches_has_value( node, "publisher" ) ) { str_strcat( pub, xml_value( node ) ); if ( str_memerr( pub ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "edition" ) ) { str_strcat( ed, xml_value( node ) ); if( str_memerr( ed ) ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "issuance" ) ) { str_strcat( iss, xml_value( node ) ); if ( str_memerr( iss ) ) return BIBL_ERR_MEMERR; } if ( status!=BIBL_OK ) return status; if ( node->down ) { status = modsin_origininfor( node->down, info, level, pub, add, addc, ed, iss ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_origininfor( node->next, info, level, pub, add, addc, ed, iss ); return status; } static int modsin_origininfo( xml *node, fields *info, int level ) { str publisher, address, addcode, edition, issuance; int fstatus, status = BIBL_OK; if ( node->down ) { strs_init( &publisher, &address, &addcode, &edition, &issuance, NULL ); status = modsin_origininfor( node->down, info, level, &publisher, &address, &addcode, &edition, &issuance ); if ( status!=BIBL_OK ) goto out; if ( str_has_value( &publisher ) ) { fstatus = fields_add( info, "PUBLISHER", str_cstr( &publisher ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &address ) ) { fstatus = fields_add( info, "ADDRESS", str_cstr( &address ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &addcode ) ) { fstatus = fields_add( info, "CODEDADDRESS", str_cstr( &addcode ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &edition ) ) { fstatus = fields_add( info, "EDITION", str_cstr( &edition ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &issuance ) ) { fstatus = fields_add( info, "ISSUANCE", str_cstr( &issuance ), level ); if ( fstatus!=FIELDS_OK ) { status=BIBL_ERR_MEMERR; goto out; } } out: strs_free( &publisher, &address, &addcode, &edition, &issuance, NULL ); } return status; } static int modsin_subjectr( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; if ( xml_tag_has_attribute( node, "topic", "class", "primary" ) && xml_has_value( node ) ) { fstatus = fields_add( info, "EPRINTCLASS", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "topic" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } else if ( xml_tag_matches_has_value( node, "geographic" ) ) { fstatus = fields_add( info, "KEYWORD", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_subjectr( node->down, info, level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_subjectr( node->next, info, level ); return status; } static int modsin_subject( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( node->down ) status = modsin_subjectr( node->down, info, level ); return status; } static int modsin_id1( xml *node, fields *info, int level ) { int fstatus; str *ns; ns = xml_attribute( node, "ID" ); if ( str_has_value( ns ) ) { fstatus = fields_add( info, "REFNUM", str_cstr( ns ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* modsin_genre() * * MARC authority terms tagged with "GENRE:MARC" * bibutils authority terms tagged with "GENRE:BIBUTILS" * unknown terms tagged with "GENRE:UNKNOWN" */ static int modsin_genre( xml *node, fields *info, int level ) { int fstatus; char *d; if ( !xml_has_value( node ) ) return BIBL_OK; d = xml_value_cstr( node ); /* ...handle special genres in KTH DivA */ if ( !strcmp( d, "conferenceProceedings" ) || !strcmp( d, "conferencePaper" ) ) d = "conference publication"; else if ( !strcmp( d, "artisticOutput" ) || !strcmp( d, "other" ) ) d = "miscellaneous"; else if ( !strcmp( d, "studentThesis" ) ) d = "thesis"; else if ( !strcmp( d, "monographDoctoralThesis" ) ) d = "Ph.D. thesis"; else if ( !strcmp( d, "comprehensiveDoctoralThesis" ) ) d = "Ph.D. thesis"; else if ( !strcmp( d, "monographLicentiateThesis" ) ) d = "Licentiate thesis"; else if ( !strcmp( d, "comprehensiveLicentiateThesis" ) ) d = "Licentiate thesis"; if ( is_marc_genre( d ) ) fstatus = fields_add( info, "GENRE:MARC", d, level ); else if ( is_bu_genre( d ) ) fstatus = fields_add( info, "GENRE:BIBUTILS", d, level ); else fstatus = fields_add( info, "GENRE:UNKNOWN", d, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; else return BIBL_OK; } /* in MODS version 3.5 * .... * ... * xxx = rfc3066 * xxx = iso639-2b * xxx = iso639-3 * xxx = rfc4646 * xxx = rfc5646 */ static int modsin_languager( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *d = NULL; if ( xml_tag_matches( node, "languageTerm" ) ) { if ( xml_has_value( node ) ) { if ( xml_has_attribute( node, "type", "code" ) ) { if ( xml_has_attribute( node, "authority", "iso639-1" ) ) d = iso639_1_from_code( xml_value_cstr( node ) ); else if ( xml_has_attribute( node, "authority", "iso639-2b" ) ) d = iso639_2_from_code( xml_value_cstr( node ) ); else if ( xml_has_attribute( node, "authority", "iso639-3" )) d = iso639_3_from_code( xml_value_cstr( node ) ); } if ( !d ) d = xml_value_cstr( node ); fstatus = fields_add( info, "LANGUAGE", d, level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } } if ( node->next ) status = modsin_languager( node->next, info, level ); return status; } static int modsin_language( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; /* Old versions of MODS had English */ if ( xml_has_value( node ) ) { fstatus = fields_add( info, "LANGUAGE", xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } /* New versions of MODS have English */ if ( node->down ) status = modsin_languager( node->down, info, level ); return status; } static int modsin_simple( xml *node, fields *info, char *tag, int level ) { int fstatus; if ( xml_has_value( node ) ) { fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int modsin_locationr( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *url = "URL"; char *fileattach = "FILEATTACH"; char *tag=NULL; if ( xml_tag_matches( node, "url" ) ) { if ( xml_has_attribute( node, "access", "raw object" ) ) tag = fileattach; else tag = url; } else if ( xml_tag_matches( node, "physicalLocation" ) ) { if ( xml_has_attribute( node, "type", "school" ) ) tag = "SCHOOL"; else tag = "LOCATION"; } if ( tag == url ) { status = urls_split_and_add( xml_value_cstr( node ), info, level ); if ( status!=BIBL_OK ) return status; } else if ( tag ) { fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_locationr( node->down, info, level ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_locationr( node->next, info, level ); return status; } static int modsin_location( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( node->down ) status = modsin_locationr( node->down, info, level ); return status; } static int modsin_descriptionr( xml *node, str *s ) { int status = BIBL_OK; if ( xml_tag_matches( node, "extent" ) || xml_tag_matches( node, "note" ) ) { str_strcpy( s, &(node->value) ); if ( str_memerr( s ) ) return BIBL_ERR_MEMERR; } if ( node->down ) { status = modsin_descriptionr( node->down, s ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_descriptionr( node->next, s ); return status; } static int modsin_description( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; str s; str_init( &s ); if ( node->down ) { status = modsin_descriptionr( node->down, &s ); if ( status!=BIBL_OK ) goto out; } else { if ( node->value.len > 0 ) str_strcpy( &s, &(node->value) ); if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &s ) ) { fstatus = fields_add( info, "DESCRIPTION", str_cstr( &s ), level ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &s ); return status; } static int modsin_partr( xml *node, fields *info, int level ) { int status = BIBL_OK; if ( xml_tag_matches( node, "detail" ) ) status = modsin_detail( node, info, level ); else if ( xml_tag_has_attribute( node, "extent", "unit", "page" ) ) status = modsin_page( node, info, level ); else if ( xml_tag_has_attribute( node, "extent", "unit", "pages" ) ) status = modsin_page( node, info, level ); else if ( xml_tag_matches( node, "date" ) ) status = modsin_date( node, info, level, 1 ); if ( status!=BIBL_OK ) return status; if ( node->next ) status = modsin_partr( node->next, info, level ); return status; } static int modsin_part( xml *node, fields *info, int level ) { if ( node->down ) return modsin_partr( node->down, info, level ); return BIBL_OK; } /* Q3 .A65 */ static int modsin_classification( xml *node, fields *info, int level ) { int fstatus, status = BIBL_OK; char *tag; if ( xml_has_value( node ) ) { if ( xml_tag_has_attribute( node, "classification", "authority", "lcc" ) ) tag = "LCC"; else tag = "CLASSIFICATION"; fstatus = fields_add( info, tag, xml_value_cstr( node ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } if ( node->down ) status = modsin_classification( node->down, info, level ); return status; } static int modsin_recordinfo( xml *node, fields *info, int level ) { int fstatus; xml *curr; /* extract recordIdentifier */ curr = node; while ( curr ) { if ( xml_tag_matches_has_value( curr, "recordIdentifier" ) ) { fstatus = fields_add( info, "REFNUM", xml_value_cstr( curr ), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } curr = curr->next; } return BIBL_OK; } static int modsin_identifier( xml *node, fields *info, int level ) { convert ids[] = { { "citekey", "REFNUM", 0, 0 }, { "issn", "ISSN", 0, 0 }, { "coden", "CODEN", 0, 0 }, { "isbn", "ISBN", 0, 0 }, { "doi", "DOI", 0, 0 }, { "url", "URL", 0, 0 }, { "uri", "URL", 0, 0 }, { "pmid", "PMID", 0, 0 }, { "pubmed", "PMID", 0, 0 }, { "medline", "MEDLINE", 0, 0 }, { "pmc", "PMC", 0, 0 }, { "arXiv", "ARXIV", 0, 0 }, { "MRnumber", "MRNUMBER", 0, 0 }, { "pii", "PII", 0, 0 }, { "isi", "ISIREFNUM", 0, 0 }, { "serial number", "SERIALNUMBER",0, 0 }, { "accessnum", "ACCESSNUM", 0, 0 }, { "jstor", "JSTOR", 0, 0 }, }; int i, fstatus, n = sizeof( ids ) / sizeof( ids[0] ); if ( node->value.len==0 ) return BIBL_OK; for ( i=0; idown ) status = modsin_recordinfo( node->down, info, level ); else if ( xml_tag_matches( node, "part" ) ) modsin_part( node, info, level ); else if ( xml_tag_matches( node, "identifier" ) ) status = modsin_identifier( node, info, level ); else if ( xml_tag_matches( node, "originInfo" ) ) status = modsin_origininfo( node, info, level ); else if ( xml_tag_matches( node, "language" ) ) status = modsin_language( node, info, level ); else if ( xml_tag_matches( node, "genre" ) ) status = modsin_genre( node, info, level ); else if ( xml_tag_matches( node, "date" ) ) status = modsin_date( node, info, level, 0 ); else if ( xml_tag_matches( node, "subject" ) ) status = modsin_subject( node, info, level ); else if ( xml_tag_matches( node, "classification" ) ) status = modsin_classification( node, info, level ); else if ( xml_tag_matches( node, "location" ) ) status = modsin_location( node, info, level ); else if ( xml_tag_matches( node, "physicalDescription" ) ) status = modsin_description( node, info, level ); else if ( xml_tag_has_attribute( node, "relatedItem", "type", "host" ) || xml_tag_has_attribute( node, "relatedItem", "type", "series" ) ) { if ( node->down ) status = modsin_mods( node->down, info, level+1 ); } else if ( xml_tag_has_attribute( node, "relatedItem", "type", "original" ) ) { if ( node->down ) status = modsin_mods( node->down, info, LEVEL_ORIG ); } if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_mods( node->next, info, level ); return status; } static int modsin_assembleref( xml *node, fields *info ) { int status = BIBL_OK; if ( xml_tag_matches( node, "mods" ) ) { status = modsin_id1( node, info, 0 ); if ( status!=BIBL_OK ) return status; if ( node->down ) { status = modsin_mods( node->down, info, 0 ); if ( status!=BIBL_OK ) return status; } } else if ( node->down ) { status = modsin_assembleref( node->down, info ); if ( status!=BIBL_OK ) return status; } if ( node->next ) status = modsin_assembleref( node->next, info ); return status; } static int modsin_processf( fields *modsin, char *data, char *filename, long nref, param *p ) { int status; xml top; xml_init( &top ); xml_parse( data, &top ); status = modsin_assembleref( &top, modsin ); xml_free( &top ); if ( status==BIBL_OK ) return 1; else return 0; } /***************************************************** PUBLIC: int modsin_readf() *****************************************************/ static char * modsin_startptr( char *p ) { char *startptr; startptr = xml_find_start( p, "mods:mods" ); if ( startptr ) { /* set namespace if found */ xml_pns = modsns; } else { startptr = xml_find_start( p, "mods" ); if ( startptr ) xml_pns = NULL; } return startptr; } static char * modsin_endptr( char *p ) { return xml_find_end( p, "mods" ); } static int modsin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { str tmp; int m, file_charset = CHARSET_UNKNOWN; char *startptr = NULL, *endptr = NULL; str_init( &tmp ); do { if ( line->data ) str_strcat( &tmp, line ); if ( str_has_value( &tmp ) ) { m = xml_getencoding( &tmp ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; startptr = modsin_startptr( tmp.data ); endptr = modsin_endptr( tmp.data ); } else startptr = endptr = NULL; str_empty( line ); if ( startptr && endptr ) { str_segcpy( reference, startptr, endptr ); str_strcpyc( line, endptr ); } } while ( !endptr && str_fget( fp, buf, bufsize, bufpos, line ) ); str_free( &tmp ); *fcharset = file_charset; return ( reference->len > 0 ); } hs-bibutils-6.7.0.0/bibutils/modsout.c0000644000000000000000000011311600000000000015714 0ustar0000000000000000/* * modsout.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "charsets.h" #include "str_conv.h" #include "fields.h" #include "iso639_2.h" #include "utf8.h" #include "modstypes.h" #include "bu_auth.h" #include "marc_auth.h" #include "bibformats.h" static void modsout_writeheader( FILE *outptr, param *p ); static void modsout_writefooter( FILE *outptr ); static int modsout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ); void modsout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_MODSOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_UNICODE; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = 1; p->utf8bom = 1; p->xmlout = BIBL_XMLOUT_TRUE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; p->headerf = modsout_writeheader; p->footerf = modsout_writefooter; p->writef = modsout_write; } /* output_tag() * * mode = TAG_OPEN, "" * mode = TAG_CLOSE, "" * mode = TAG_OPENCLOSE, "data" * mode = TAG_SELFCLOSE, "" * * newline = TAG_NONEWLINE, "" * newline = TAG_NEWLINE, "\n" * */ #define TAG_OPEN (0) #define TAG_CLOSE (1) #define TAG_OPENCLOSE (2) #define TAG_SELFCLOSE (3) #define TAG_NONEWLINE (0) #define TAG_NEWLINE (1) static void output_tag_core( FILE *outptr, int nindents, char *tag, char *data, unsigned char mode, unsigned char newline, va_list *attrs ) { char *attr, *val; int i; for ( i=0; i" ); else fprintf( outptr, "/>" ); if ( mode==TAG_OPENCLOSE ) { fprintf( outptr, "%s", data, tag ); } if ( newline==TAG_NEWLINE ) fprintf( outptr, "\n" ); } /* output_tag() * * output XML tag * * mode = [ TAG_OPEN | TAG_CLOSE | TAG_OPENCLOSE | TAG_SELFCLOSE ] * newline = [ TAG_NEWLINE | TAG_NONEWLINE ] * * for mode TAG_OPENCLOSE, ensure that value is non-NULL, as string pointed to by value * will be output in the tag */ static void output_tag( FILE *outptr, int nindents, char *tag, char *value, unsigned char mode, unsigned char newline, ... ) { va_list attrs; va_start( attrs, newline ); output_tag_core( outptr, nindents, tag, value, mode, newline, &attrs ); va_end( attrs ); } /* output_fil() * * output XML tag, but lookup data in fields struct * * mode = [ TAG_OPEN | TAG_CLOSE | TAG_OPENCLOSE | TAG_SELFCLOSE ] * newline = [ TAG_NEWLINE | TAG_NONEWLINE ] * * value looked up in fields will only be used in mode TAG_OPENCLOSE */ static void output_fil( FILE *outptr, int nindents, char *tag, fields *f, int n, unsigned char mode, unsigned char newline, ... ) { va_list attrs; char *value; if ( n!=-1 ) { value = (char *) fields_value( f, n, FIELDS_CHRP ); va_start( attrs, newline ); output_tag_core( outptr, nindents, tag, value, mode, newline, &attrs ); va_end( attrs ); } } static inline int lvl2indent( int level ) { if ( level < -1 ) return -level + 1; else return level + 1; } static inline int incr_level( int level, int amt ) { if ( level > -1 ) return level+amt; else return level-amt; } /* convert_findallfields() * * Find the positions of all convert.internal tags in the fields * structure and store the locations in convert.pos element. * * Return number of the tags found. */ static int convert_findallfields( fields *f, convert *parts, int nparts, int level ) { int i, n = 0; for ( i=0; i element */ if ( ttl==-1 && subttl==-1 ) output_tag( outptr, lvl2indent(incr_level(level,1)), "title", NULL, TAG_SELFCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); /* output shorttitle if it's different from normal title */ if ( shrttl!=FIELDS_NOTFOUND ) { val = (char *) fields_value( f, shrttl, FIELDS_CHRP ); if ( ttl==FIELDS_NOTFOUND || subttl!=FIELDS_NOTFOUND || strcmp(f->data[ttl].data,val) ) { output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_OPEN, TAG_NEWLINE, "type", "abbreviated", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "title", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } } static void output_name( FILE *outptr, char *p, int level ) { str family, part, suffix; int n=0; strs_init( &family, &part, &suffix, NULL ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); if ( *p=='|' ) p++; while ( *p ) { while ( *p && *p!='|' ) str_addchar( &part, *p++ ); /* truncate periods from "A. B. Jones" names */ if ( part.len ) { if ( part.len==2 && part.data[1]=='.' ) { part.len=1; part.data[1]='\0'; } if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", part.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "given", NULL ); n++; } if ( *p=='|' ) { p++; if ( *p=='|' ) { p++; while ( *p && *p!='|' ) str_addchar( &suffix, *p++ ); } str_empty( &part ); } } if ( family.len ) { if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", family.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "family", NULL ); n++; } if ( suffix.len ) { if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", suffix.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "suffix", NULL ); } strs_free( &part, &family, &suffix, NULL ); } /* MODS v 3.4 * * * * * * * * * * */ #define NO_AUTHORITY (0) #define MARC_AUTHORITY (1) static void output_names( fields *f, FILE *outptr, int level ) { convert names[] = { { "author", "AUTHOR", 0, MARC_AUTHORITY }, { "editor", "EDITOR", 0, MARC_AUTHORITY }, { "annotator", "ANNOTATOR", 0, MARC_AUTHORITY }, { "artist", "ARTIST", 0, MARC_AUTHORITY }, { "author", "2ND_AUTHOR", 0, MARC_AUTHORITY }, { "author", "3RD_AUTHOR", 0, MARC_AUTHORITY }, { "author", "SUB_AUTHOR", 0, MARC_AUTHORITY }, { "author", "COMMITTEE", 0, MARC_AUTHORITY }, { "author", "COURT", 0, MARC_AUTHORITY }, { "author", "LEGISLATIVEBODY", 0, MARC_AUTHORITY }, { "author of afterword, colophon, etc.", "AFTERAUTHOR", 0, MARC_AUTHORITY }, { "author of introduction, etc.", "INTROAUTHOR", 0, MARC_AUTHORITY }, { "cartographer", "CARTOGRAPHER", 0, MARC_AUTHORITY }, { "collaborator", "COLLABORATOR", 0, MARC_AUTHORITY }, { "commentator", "COMMENTATOR", 0, MARC_AUTHORITY }, { "compiler", "COMPILER", 0, MARC_AUTHORITY }, { "degree grantor", "DEGREEGRANTOR", 0, MARC_AUTHORITY }, { "director", "DIRECTOR", 0, MARC_AUTHORITY }, { "event", "EVENT", 0, NO_AUTHORITY }, { "inventor", "INVENTOR", 0, MARC_AUTHORITY }, { "organizer of meeting", "ORGANIZER", 0, MARC_AUTHORITY }, { "patent holder", "ASSIGNEE", 0, MARC_AUTHORITY }, { "performer", "PERFORMER", 0, MARC_AUTHORITY }, { "producer", "PRODUCER", 0, MARC_AUTHORITY }, { "addressee", "ADDRESSEE", 0, MARC_AUTHORITY }, { "redactor", "REDACTOR", 0, MARC_AUTHORITY }, { "reporter", "REPORTER", 0, MARC_AUTHORITY }, { "sponsor", "SPONSOR", 0, MARC_AUTHORITY }, { "translator", "TRANSLATOR", 0, MARC_AUTHORITY }, { "writer", "WRITER", 0, MARC_AUTHORITY }, }; int i, n, nfields, ntypes = sizeof( names ) / sizeof( convert ); int f_asis, f_corp, f_conf; str role; str_init( &role ); nfields = fields_num( f ); for ( n=0; ndata[i].len==0 ) continue; f_asis = f_corp = f_conf = 0; str_strcpyc( &role, f->tag[i].data ); if ( str_findreplace( &role, ":ASIS", "" )) f_asis=1; if ( str_findreplace( &role, ":CORP", "" )) f_corp=1; if ( str_findreplace( &role, ":CONF", "" )) f_conf=1; if ( strcasecmp( role.data, names[n].internal ) ) continue; if ( f_asis ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else if ( f_corp ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "corporate", NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else if ( f_conf ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "conference", NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else { output_name(outptr, f->data[i].data, level); } output_tag( outptr, lvl2indent(incr_level(level,1)), "role", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); if ( names[n].code & MARC_AUTHORITY ) output_tag( outptr, lvl2indent(incr_level(level,2)), "roleTerm", names[n].mods, TAG_OPENCLOSE, TAG_NEWLINE, "authority", "marcrelator", "type", "text", NULL ); else output_tag( outptr, lvl2indent(incr_level(level,2)), "roleTerm", names[n].mods, TAG_OPENCLOSE, TAG_NEWLINE, "type", "text", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "role", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "name", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); fields_setused( f, i ); } } str_free( &role ); } /* datepos[ NUM_DATE_TYPES ] * use define to ensure that the array and loops don't get out of sync * datepos[0] -> DATE:YEAR/PARTDATE:YEAR * datepos[1] -> DATE:MONTH/PARTDATE:MONTH * datepos[2] -> DATE:DAY/PARTDATE:DAY * datepos[3] -> DATE/PARTDATE */ #define DATE_YEAR (0) #define DATE_MONTH (1) #define DATE_DAY (2) #define DATE_ALL (3) #define NUM_DATE_TYPES (4) static int find_datepos( fields *f, int level, unsigned char use_altnames, int datepos[NUM_DATE_TYPES] ) { char *src_names[] = { "DATE:YEAR", "DATE:MONTH", "DATE:DAY", "DATE" }; char *alt_names[] = { "PARTDATE:YEAR", "PARTDATE:MONTH", "PARTDATE:DAY", "PARTDATE" }; int found = 0; int i; for ( i=0; i0 ) fprintf( outptr, "-" ); /* zero pad month or days written as "1", "2", "3" ... */ if ( i==DATE_MONTH || i==DATE_DAY ) { s = fields_value( f, pos[i], FIELDS_STRP_NOUSE ); if ( s->len==1 ) { fprintf( outptr, "0" ); } } fprintf( outptr, "%s", (char *) fields_value( f, pos[i], FIELDS_CHRP ) ); } } static void output_dateissued( fields *f, FILE *outptr, int level, int pos[ NUM_DATE_TYPES ] ) { output_tag( outptr, lvl2indent(incr_level(level,1)), "dateIssued", NULL, TAG_OPEN, TAG_NONEWLINE, NULL ); if ( pos[ DATE_YEAR ]!=-1 || pos[ DATE_MONTH ]!=-1 || pos[ DATE_DAY ]!=-1 ) { output_datepieces( f, outptr, pos ); } else { fprintf( outptr, "%s", (char *) fields_value( f, pos[ DATE_ALL ], FIELDS_CHRP ) ); } fprintf( outptr, "\n" ); } static void output_origin( fields *f, FILE *outptr, int level ) { convert parts[] = { { "issuance", "ISSUANCE", 0, 0 }, { "publisher", "PUBLISHER", 0, 0 }, { "place", "ADDRESS", 0, 1 }, { "place", "AUTHORADDRESS", 0, 0 }, { "edition", "EDITION", 0, 0 }, { "dateCaptured", "URLDATE", 0, 0 } }; int nparts = sizeof( parts ) / sizeof( parts[0] ); int i, found, datefound, datepos[ NUM_DATE_TYPES ]; found = convert_findallfields( f, parts, nparts, level ); datefound = find_dateinfo( f, level, datepos ); if ( !found && !datefound ) return; output_tag( outptr, lvl2indent(level), "originInfo", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); /* issuance must precede date */ if ( parts[0].pos!=-1 ) output_fil( outptr, lvl2indent(incr_level(level,1)), "issuance", f, parts[0].pos, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); /* date */ if ( datefound ) output_dateissued( f, outptr, level, datepos ); /* rest of the originInfo elements */ for ( i=1; i * xxx * * * * xxx * xxx * * */ static void output_language_core( fields *f, int n, FILE *outptr, char *tag, int level ) { char *lang, *code; lang = (char *) fields_value( f, n, FIELDS_CHRP ); code = iso639_2_from_language( lang ); output_tag( outptr, lvl2indent(level), tag, NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "languageTerm", lang, TAG_OPENCLOSE, TAG_NEWLINE, "type", "text", NULL ); if ( code ) { output_tag( outptr, lvl2indent(incr_level(level,1)), "languageTerm", code, TAG_OPENCLOSE, TAG_NEWLINE, "type", "code", "authority", "iso639-2b", NULL ); } output_tag( outptr, lvl2indent(level), tag, NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } static void output_language( fields *f, FILE *outptr, int level ) { int n; n = fields_find( f, "LANGUAGE", level ); if ( n!=FIELDS_NOTFOUND ) output_language_core( f, n, outptr, "language", level ); } static void output_description( fields *f, FILE *outptr, int level ) { char *val; int n; n = fields_find( f, "DESCRIPTION", level ); if ( n!=FIELDS_NOTFOUND ) { val = ( char * ) fields_value( f, n, FIELDS_CHRP ); output_tag( outptr, lvl2indent(level), "physicalDescription", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "note", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "physicalDescription", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } static void output_toc( fields *f, FILE *outptr, int level ) { char *val; int n; n = fields_find( f, "CONTENTS", level ); if ( n!=FIELDS_NOTFOUND ) { val = (char *) fields_value( f, n, FIELDS_CHRP ); output_tag( outptr, lvl2indent(level), "tableOfContents", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } } /* detail output * * for example: * * xxx * xxx * xxx * */ static void mods_output_extents( fields *f, FILE *outptr, int start, int end, int total, char *extype, int level ) { char *val; output_tag( outptr, lvl2indent(incr_level(level,1)), "extent", NULL, TAG_OPEN, TAG_NEWLINE, "unit", extype, NULL ); if ( start!=-1 ) { val = (char *) fields_value( f, start, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "start", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } if ( end!=-1 ) { val = (char *) fields_value( f, end, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "end", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } if ( total!=-1 ) { val = (char *) fields_value( f, total, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "total", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } output_tag( outptr, lvl2indent(incr_level(level,1)), "extent", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } static void try_output_partheader( FILE *outptr, int wrote_header, int level ) { if ( !wrote_header ) output_tag( outptr, lvl2indent(level), "part", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); } static void try_output_partfooter( FILE *outptr, int wrote_header, int level ) { if ( wrote_header ) output_tag( outptr, lvl2indent(level), "part", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* part date output * * xxxx-xx-xx * */ static int output_partdate( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "PARTDATE:YEAR", 0, 0 }, { "", "PARTDATE:MONTH", 0, 0 }, { "", "PARTDATE:DAY", 0, 0 }, }; int nparts = sizeof(parts)/sizeof(parts[0]); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); output_tag( outptr, lvl2indent(incr_level(level,1)), "date", NULL, TAG_OPEN, TAG_NONEWLINE, NULL ); if ( parts[0].pos!=-1 ) { fprintf( outptr, "%s", (char *) fields_value( f, parts[0].pos, FIELDS_CHRP ) ); } else fprintf( outptr, "XXXX" ); if ( parts[1].pos!=-1 ) { fprintf( outptr, "-%s", (char *) fields_value( f, parts[1].pos, FIELDS_CHRP ) ); } if ( parts[2].pos!=-1 ) { if ( parts[1].pos==-1 ) fprintf( outptr, "-XX" ); fprintf( outptr, "-%s", (char *) fields_value( f, parts[2].pos, FIELDS_CHRP ) ); } fprintf( outptr,"\n"); return 1; } static int output_partpages( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "PAGES:START", 0, 0 }, { "", "PAGES:STOP", 0, 0 }, { "", "PAGES", 0, 0 }, { "", "PAGES:TOTAL", 0, 0 } }; int nparts = sizeof(parts)/sizeof(parts[0]); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); /* If PAGES:START or PAGES:STOP are undefined */ if ( parts[0].pos==-1 || parts[1].pos==-1 ) { if ( parts[0].pos!=-1 ) mods_output_detail( f, outptr, parts[0].pos, "page", level ); if ( parts[1].pos!=-1 ) mods_output_detail( f, outptr, parts[1].pos, "page", level ); if ( parts[2].pos!=-1 ) mods_output_detail( f, outptr, parts[2].pos, "page", level ); if ( parts[3].pos!=-1 ) mods_output_extents( f, outptr, -1, -1, parts[3].pos, "page", level ); } /* If both PAGES:START and PAGES:STOP are defined */ else { mods_output_extents( f, outptr, parts[0].pos, parts[1].pos, parts[3].pos, "page", level ); } return 1; } static int output_partelement( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "NUMVOLUMES", 0, 0 }, { "volume", "VOLUME", 0, 0 }, { "section", "SECTION", 0, 0 }, { "issue", "ISSUE", 0, 0 }, { "number", "NUMBER", 0, 0 }, { "publiclawnumber", "PUBLICLAWNUMBER", 0, 0 }, { "session", "SESSION", 0, 0 }, { "articlenumber", "ARTICLENUMBER", 0, 0 }, { "part", "PART", 0, 0 }, { "chapter", "CHAPTER", 0, 0 }, { "report number", "REPORTNUMBER", 0, 0 }, }; int i, nparts = sizeof( parts ) / sizeof( convert ); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); /* start loop at 1 to skip NUMVOLUMES */ for ( i=1; ithesis * Diploma thesis */ static void output_genre( fields *f, FILE *outptr, int level ) { char *value, *attr = NULL, *attrvalue = NULL; int i, n; n = fields_num( f ); for ( i=0; itext */ static void output_resource( fields *f, FILE *outptr, int level ) { char *value; int n; n = fields_find( f, "RESOURCE", level ); if ( n!=FIELDS_NOTFOUND ) { value = fields_value( f, n, FIELDS_CHRP ); if ( is_marc_resource( value ) ) { output_fil( outptr, lvl2indent(level), "typeOfResource", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else { fprintf( stderr, "Illegal typeofResource = '%s'\n", value ); } } } static void output_type( fields *f, FILE *outptr, int level ) { int n; /* silence warnings about INTERNAL_TYPE being unused */ n = fields_find( f, "INTERNAL_TYPE", LEVEL_MAIN ); if ( n!=FIELDS_NOTFOUND ) fields_setused( f, n ); output_resource( f, outptr, level ); output_genre( f, outptr, level ); } /* output_abs() * * xxxx */ static void output_abs( fields *f, FILE *outptr, int level ) { int n; n = fields_find( f, "ABSTRACT", level ); output_fil( outptr, lvl2indent(level), "abstract", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } static void output_notes( fields *f, FILE *outptr, int level ) { int i, n; char *t; n = fields_num( f ); for ( i=0; i * xxxx * */ static void output_key( fields *f, FILE *outptr, int level ) { int i, n; n = fields_num( f ); for ( i=0; itag[i].data, "KEYWORD" ) ) { output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "topic", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } else if ( !strcasecmp( f->tag[i].data, "EPRINTCLASS" ) ) { output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "topic", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "class", "primary", NULL ); output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } } static void output_sn( fields *f, FILE *outptr, int level ) { convert sn_types[] = { { "isbn", "ISBN", 0, 0 }, { "isbn", "ISBN13", 0, 0 }, { "lccn", "LCCN", 0, 0 }, { "issn", "ISSN", 0, 0 }, { "coden", "CODEN", 0, 0 }, { "citekey", "REFNUM", 0, 0 }, { "doi", "DOI", 0, 0 }, { "eid", "EID", 0, 0 }, { "eprint", "EPRINT", 0, 0 }, { "eprinttype","EPRINTTYPE",0, 0 }, { "pubmed", "PMID", 0, 0 }, { "MRnumber", "MRNUMBER", 0, 0 }, { "medline", "MEDLINE", 0, 0 }, { "pii", "PII", 0, 0 }, { "pmc", "PMC", 0, 0 }, { "arXiv", "ARXIV", 0, 0 }, { "isi", "ISIREFNUM", 0, 0 }, { "accessnum", "ACCESSNUM", 0, 0 }, { "jstor", "JSTOR", 0, 0 }, { "isrn", "ISRN", 0, 0 }, }; int ntypes = sizeof( sn_types ) / sizeof( sn_types[0] ); int i, n; /* output call number */ n = fields_find( f, "CALLNUMBER", level ); output_fil( outptr, lvl2indent(level), "classification", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); /* output specialized serialnumber */ convert_findallfields( f, sn_types, ntypes, level ); for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "SERIALNUMBER" ) ) continue; output_fil( outptr, lvl2indent(level), "identifier", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "type", "serial number", NULL ); } } /* output_url() * * * URL * PDFLINK * PDFLINK * LOCATION * */ static void output_url( fields *f, FILE *outptr, int level ) { int location = fields_find( f, "LOCATION", level ); int url = fields_find( f, "URL", level ); int fileattach = fields_find( f, "FILEATTACH", level ); int pdflink = fields_find( f, "PDFLINK", level ); int i, n; if ( url==FIELDS_NOTFOUND && location==FIELDS_NOTFOUND && pdflink==FIELDS_NOTFOUND && fileattach==FIELDS_NOTFOUND ) return; output_tag( outptr, lvl2indent(level), "location", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); n = fields_num( f ); for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "URL" ) ) continue; output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "PDFLINK" ) ) continue; /* output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "urlType", "pdf", NULL ); */ output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "FILEATTACH" ) ) continue; output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "displayLabel", "Electronic full text", "access", "raw object", NULL ); } if ( location!=-1 ) output_fil( outptr, lvl2indent(incr_level(level,1)), "physicalLocation", f, location, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "location", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* refnum should start with a non-number and not include spaces -- ignore this */ static void output_refnum( fields *f, int n, FILE *outptr ) { char *p = fields_value( f, n, FIELDS_CHRP_NOUSE ); /* if ( p && ((*p>='0' && *p<='9') || *p=='-' || *p=='_' )) fprintf( outptr, "ref" );*/ while ( p && *p ) { if ( !is_ws(*p) ) fprintf( outptr, "%c", *p ); /* if ( (*p>='A' && *p<='Z') || (*p>='a' && *p<='z') || (*p>='0' && *p<='9') || (*p=='-') || (*p==' (*p=='_') ) fprintf( outptr, "%c", *p );*/ p++; } } static void output_head( fields *f, FILE *outptr, int dropkey, unsigned long numrefs ) { int n; fprintf( outptr, "\n" ); } static int original_items( fields *f, int level ) { int i, targetlevel, n; if ( level < 0 ) return 0; targetlevel = -( level + 2 ); n = fields_num( f ); for ( i=0; i= 0 && level < max ) { output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_OPEN, TAG_NEWLINE, "type", "host", NULL ); output_citeparts( f, outptr, incr_level(level,1), max ); output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* Look for original item things */ orig_level = original_items( f, level ); if ( orig_level ) { output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_OPEN, TAG_NEWLINE, "type", "original", NULL ); output_citeparts( f, outptr, orig_level, max ); output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } output_abs( f, outptr, level ); output_notes( f, outptr, level ); output_toc( f, outptr, level ); output_key( f, outptr, level ); output_sn( f, outptr, level ); output_url( f, outptr, level ); output_part( f, outptr, level ); output_recordInfo( f, outptr, level ); } static void modsout_report_unused_tags( fields *f, param *p, unsigned long numrefs ) { int i, n, nwritten, nunused = 0, level; char *tag, *value; n = fields_num( f ); for ( i=0; iprogname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Reference %lu has unused tags.\n", numrefs+1 ); /* Find author from level 0 */ nwritten = 0; for ( i=0; iformat_opts & BIBL_FORMAT_MODSOUT_DROPKEY ); output_head( f, outptr, dropkey, numrefs ); output_citeparts( f, outptr, 0, max ); modsout_report_unused_tags( f, p, numrefs ); fprintf( outptr, "\n" ); fflush( outptr ); return BIBL_OK; } static void modsout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); fprintf(outptr,"\n", charset_get_xmlname( p->charsetout ) ); fprintf(outptr,"\n"); } static void modsout_writefooter( FILE *outptr ) { fprintf(outptr,"\n"); fflush( outptr ); } hs-bibutils-6.7.0.0/bibutils/modsout.c0000755000000000000000000011311600000000000015717 0ustar0000000000000000/* * modsout.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "charsets.h" #include "str_conv.h" #include "fields.h" #include "iso639_2.h" #include "utf8.h" #include "modstypes.h" #include "bu_auth.h" #include "marc_auth.h" #include "bibformats.h" static void modsout_writeheader( FILE *outptr, param *p ); static void modsout_writefooter( FILE *outptr ); static int modsout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ); void modsout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_MODSOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_UNICODE; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = 1; p->utf8bom = 1; p->xmlout = BIBL_XMLOUT_TRUE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; p->headerf = modsout_writeheader; p->footerf = modsout_writefooter; p->writef = modsout_write; } /* output_tag() * * mode = TAG_OPEN, "" * mode = TAG_CLOSE, "" * mode = TAG_OPENCLOSE, "data" * mode = TAG_SELFCLOSE, "" * * newline = TAG_NONEWLINE, "" * newline = TAG_NEWLINE, "\n" * */ #define TAG_OPEN (0) #define TAG_CLOSE (1) #define TAG_OPENCLOSE (2) #define TAG_SELFCLOSE (3) #define TAG_NONEWLINE (0) #define TAG_NEWLINE (1) static void output_tag_core( FILE *outptr, int nindents, char *tag, char *data, unsigned char mode, unsigned char newline, va_list *attrs ) { char *attr, *val; int i; for ( i=0; i" ); else fprintf( outptr, "/>" ); if ( mode==TAG_OPENCLOSE ) { fprintf( outptr, "%s", data, tag ); } if ( newline==TAG_NEWLINE ) fprintf( outptr, "\n" ); } /* output_tag() * * output XML tag * * mode = [ TAG_OPEN | TAG_CLOSE | TAG_OPENCLOSE | TAG_SELFCLOSE ] * newline = [ TAG_NEWLINE | TAG_NONEWLINE ] * * for mode TAG_OPENCLOSE, ensure that value is non-NULL, as string pointed to by value * will be output in the tag */ static void output_tag( FILE *outptr, int nindents, char *tag, char *value, unsigned char mode, unsigned char newline, ... ) { va_list attrs; va_start( attrs, newline ); output_tag_core( outptr, nindents, tag, value, mode, newline, &attrs ); va_end( attrs ); } /* output_fil() * * output XML tag, but lookup data in fields struct * * mode = [ TAG_OPEN | TAG_CLOSE | TAG_OPENCLOSE | TAG_SELFCLOSE ] * newline = [ TAG_NEWLINE | TAG_NONEWLINE ] * * value looked up in fields will only be used in mode TAG_OPENCLOSE */ static void output_fil( FILE *outptr, int nindents, char *tag, fields *f, int n, unsigned char mode, unsigned char newline, ... ) { va_list attrs; char *value; if ( n!=-1 ) { value = (char *) fields_value( f, n, FIELDS_CHRP ); va_start( attrs, newline ); output_tag_core( outptr, nindents, tag, value, mode, newline, &attrs ); va_end( attrs ); } } static inline int lvl2indent( int level ) { if ( level < -1 ) return -level + 1; else return level + 1; } static inline int incr_level( int level, int amt ) { if ( level > -1 ) return level+amt; else return level-amt; } /* convert_findallfields() * * Find the positions of all convert.internal tags in the fields * structure and store the locations in convert.pos element. * * Return number of the tags found. */ static int convert_findallfields( fields *f, convert *parts, int nparts, int level ) { int i, n = 0; for ( i=0; i element */ if ( ttl==-1 && subttl==-1 ) output_tag( outptr, lvl2indent(incr_level(level,1)), "title", NULL, TAG_SELFCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); /* output shorttitle if it's different from normal title */ if ( shrttl!=FIELDS_NOTFOUND ) { val = (char *) fields_value( f, shrttl, FIELDS_CHRP ); if ( ttl==FIELDS_NOTFOUND || subttl!=FIELDS_NOTFOUND || strcmp(f->data[ttl].data,val) ) { output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_OPEN, TAG_NEWLINE, "type", "abbreviated", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "title", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "titleInfo", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } } static void output_name( FILE *outptr, char *p, int level ) { str family, part, suffix; int n=0; strs_init( &family, &part, &suffix, NULL ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); if ( *p=='|' ) p++; while ( *p ) { while ( *p && *p!='|' ) str_addchar( &part, *p++ ); /* truncate periods from "A. B. Jones" names */ if ( part.len ) { if ( part.len==2 && part.data[1]=='.' ) { part.len=1; part.data[1]='\0'; } if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", part.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "given", NULL ); n++; } if ( *p=='|' ) { p++; if ( *p=='|' ) { p++; while ( *p && *p!='|' ) str_addchar( &suffix, *p++ ); } str_empty( &part ); } } if ( family.len ) { if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", family.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "family", NULL ); n++; } if ( suffix.len ) { if ( n==0 ) output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "personal", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "namePart", suffix.data, TAG_OPENCLOSE, TAG_NEWLINE, "type", "suffix", NULL ); } strs_free( &part, &family, &suffix, NULL ); } /* MODS v 3.4 * * * * * * * * * * */ #define NO_AUTHORITY (0) #define MARC_AUTHORITY (1) static void output_names( fields *f, FILE *outptr, int level ) { convert names[] = { { "author", "AUTHOR", 0, MARC_AUTHORITY }, { "editor", "EDITOR", 0, MARC_AUTHORITY }, { "annotator", "ANNOTATOR", 0, MARC_AUTHORITY }, { "artist", "ARTIST", 0, MARC_AUTHORITY }, { "author", "2ND_AUTHOR", 0, MARC_AUTHORITY }, { "author", "3RD_AUTHOR", 0, MARC_AUTHORITY }, { "author", "SUB_AUTHOR", 0, MARC_AUTHORITY }, { "author", "COMMITTEE", 0, MARC_AUTHORITY }, { "author", "COURT", 0, MARC_AUTHORITY }, { "author", "LEGISLATIVEBODY", 0, MARC_AUTHORITY }, { "author of afterword, colophon, etc.", "AFTERAUTHOR", 0, MARC_AUTHORITY }, { "author of introduction, etc.", "INTROAUTHOR", 0, MARC_AUTHORITY }, { "cartographer", "CARTOGRAPHER", 0, MARC_AUTHORITY }, { "collaborator", "COLLABORATOR", 0, MARC_AUTHORITY }, { "commentator", "COMMENTATOR", 0, MARC_AUTHORITY }, { "compiler", "COMPILER", 0, MARC_AUTHORITY }, { "degree grantor", "DEGREEGRANTOR", 0, MARC_AUTHORITY }, { "director", "DIRECTOR", 0, MARC_AUTHORITY }, { "event", "EVENT", 0, NO_AUTHORITY }, { "inventor", "INVENTOR", 0, MARC_AUTHORITY }, { "organizer of meeting", "ORGANIZER", 0, MARC_AUTHORITY }, { "patent holder", "ASSIGNEE", 0, MARC_AUTHORITY }, { "performer", "PERFORMER", 0, MARC_AUTHORITY }, { "producer", "PRODUCER", 0, MARC_AUTHORITY }, { "addressee", "ADDRESSEE", 0, MARC_AUTHORITY }, { "redactor", "REDACTOR", 0, MARC_AUTHORITY }, { "reporter", "REPORTER", 0, MARC_AUTHORITY }, { "sponsor", "SPONSOR", 0, MARC_AUTHORITY }, { "translator", "TRANSLATOR", 0, MARC_AUTHORITY }, { "writer", "WRITER", 0, MARC_AUTHORITY }, }; int i, n, nfields, ntypes = sizeof( names ) / sizeof( convert ); int f_asis, f_corp, f_conf; str role; str_init( &role ); nfields = fields_num( f ); for ( n=0; ndata[i].len==0 ) continue; f_asis = f_corp = f_conf = 0; str_strcpyc( &role, f->tag[i].data ); if ( str_findreplace( &role, ":ASIS", "" )) f_asis=1; if ( str_findreplace( &role, ":CORP", "" )) f_corp=1; if ( str_findreplace( &role, ":CONF", "" )) f_conf=1; if ( strcasecmp( role.data, names[n].internal ) ) continue; if ( f_asis ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else if ( f_corp ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "corporate", NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else if ( f_conf ) { output_tag( outptr, lvl2indent(level), "name", NULL, TAG_OPEN, TAG_NEWLINE, "type", "conference", NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "namePart", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else { output_name(outptr, f->data[i].data, level); } output_tag( outptr, lvl2indent(incr_level(level,1)), "role", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); if ( names[n].code & MARC_AUTHORITY ) output_tag( outptr, lvl2indent(incr_level(level,2)), "roleTerm", names[n].mods, TAG_OPENCLOSE, TAG_NEWLINE, "authority", "marcrelator", "type", "text", NULL ); else output_tag( outptr, lvl2indent(incr_level(level,2)), "roleTerm", names[n].mods, TAG_OPENCLOSE, TAG_NEWLINE, "type", "text", NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "role", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "name", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); fields_setused( f, i ); } } str_free( &role ); } /* datepos[ NUM_DATE_TYPES ] * use define to ensure that the array and loops don't get out of sync * datepos[0] -> DATE:YEAR/PARTDATE:YEAR * datepos[1] -> DATE:MONTH/PARTDATE:MONTH * datepos[2] -> DATE:DAY/PARTDATE:DAY * datepos[3] -> DATE/PARTDATE */ #define DATE_YEAR (0) #define DATE_MONTH (1) #define DATE_DAY (2) #define DATE_ALL (3) #define NUM_DATE_TYPES (4) static int find_datepos( fields *f, int level, unsigned char use_altnames, int datepos[NUM_DATE_TYPES] ) { char *src_names[] = { "DATE:YEAR", "DATE:MONTH", "DATE:DAY", "DATE" }; char *alt_names[] = { "PARTDATE:YEAR", "PARTDATE:MONTH", "PARTDATE:DAY", "PARTDATE" }; int found = 0; int i; for ( i=0; i0 ) fprintf( outptr, "-" ); /* zero pad month or days written as "1", "2", "3" ... */ if ( i==DATE_MONTH || i==DATE_DAY ) { s = fields_value( f, pos[i], FIELDS_STRP_NOUSE ); if ( s->len==1 ) { fprintf( outptr, "0" ); } } fprintf( outptr, "%s", (char *) fields_value( f, pos[i], FIELDS_CHRP ) ); } } static void output_dateissued( fields *f, FILE *outptr, int level, int pos[ NUM_DATE_TYPES ] ) { output_tag( outptr, lvl2indent(incr_level(level,1)), "dateIssued", NULL, TAG_OPEN, TAG_NONEWLINE, NULL ); if ( pos[ DATE_YEAR ]!=-1 || pos[ DATE_MONTH ]!=-1 || pos[ DATE_DAY ]!=-1 ) { output_datepieces( f, outptr, pos ); } else { fprintf( outptr, "%s", (char *) fields_value( f, pos[ DATE_ALL ], FIELDS_CHRP ) ); } fprintf( outptr, "\n" ); } static void output_origin( fields *f, FILE *outptr, int level ) { convert parts[] = { { "issuance", "ISSUANCE", 0, 0 }, { "publisher", "PUBLISHER", 0, 0 }, { "place", "ADDRESS", 0, 1 }, { "place", "AUTHORADDRESS", 0, 0 }, { "edition", "EDITION", 0, 0 }, { "dateCaptured", "URLDATE", 0, 0 } }; int nparts = sizeof( parts ) / sizeof( parts[0] ); int i, found, datefound, datepos[ NUM_DATE_TYPES ]; found = convert_findallfields( f, parts, nparts, level ); datefound = find_dateinfo( f, level, datepos ); if ( !found && !datefound ) return; output_tag( outptr, lvl2indent(level), "originInfo", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); /* issuance must precede date */ if ( parts[0].pos!=-1 ) output_fil( outptr, lvl2indent(incr_level(level,1)), "issuance", f, parts[0].pos, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); /* date */ if ( datefound ) output_dateissued( f, outptr, level, datepos ); /* rest of the originInfo elements */ for ( i=1; i * xxx * * * * xxx * xxx * * */ static void output_language_core( fields *f, int n, FILE *outptr, char *tag, int level ) { char *lang, *code; lang = (char *) fields_value( f, n, FIELDS_CHRP ); code = iso639_2_from_language( lang ); output_tag( outptr, lvl2indent(level), tag, NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "languageTerm", lang, TAG_OPENCLOSE, TAG_NEWLINE, "type", "text", NULL ); if ( code ) { output_tag( outptr, lvl2indent(incr_level(level,1)), "languageTerm", code, TAG_OPENCLOSE, TAG_NEWLINE, "type", "code", "authority", "iso639-2b", NULL ); } output_tag( outptr, lvl2indent(level), tag, NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } static void output_language( fields *f, FILE *outptr, int level ) { int n; n = fields_find( f, "LANGUAGE", level ); if ( n!=FIELDS_NOTFOUND ) output_language_core( f, n, outptr, "language", level ); } static void output_description( fields *f, FILE *outptr, int level ) { char *val; int n; n = fields_find( f, "DESCRIPTION", level ); if ( n!=FIELDS_NOTFOUND ) { val = ( char * ) fields_value( f, n, FIELDS_CHRP ); output_tag( outptr, lvl2indent(level), "physicalDescription", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(incr_level(level,1)), "note", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "physicalDescription", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } static void output_toc( fields *f, FILE *outptr, int level ) { char *val; int n; n = fields_find( f, "CONTENTS", level ); if ( n!=FIELDS_NOTFOUND ) { val = (char *) fields_value( f, n, FIELDS_CHRP ); output_tag( outptr, lvl2indent(level), "tableOfContents", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } } /* detail output * * for example: * * xxx * xxx * xxx * */ static void mods_output_extents( fields *f, FILE *outptr, int start, int end, int total, char *extype, int level ) { char *val; output_tag( outptr, lvl2indent(incr_level(level,1)), "extent", NULL, TAG_OPEN, TAG_NEWLINE, "unit", extype, NULL ); if ( start!=-1 ) { val = (char *) fields_value( f, start, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "start", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } if ( end!=-1 ) { val = (char *) fields_value( f, end, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "end", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } if ( total!=-1 ) { val = (char *) fields_value( f, total, FIELDS_CHRP ); output_tag( outptr, lvl2indent(incr_level(level,2)), "total", val, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } output_tag( outptr, lvl2indent(incr_level(level,1)), "extent", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } static void try_output_partheader( FILE *outptr, int wrote_header, int level ) { if ( !wrote_header ) output_tag( outptr, lvl2indent(level), "part", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); } static void try_output_partfooter( FILE *outptr, int wrote_header, int level ) { if ( wrote_header ) output_tag( outptr, lvl2indent(level), "part", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* part date output * * xxxx-xx-xx * */ static int output_partdate( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "PARTDATE:YEAR", 0, 0 }, { "", "PARTDATE:MONTH", 0, 0 }, { "", "PARTDATE:DAY", 0, 0 }, }; int nparts = sizeof(parts)/sizeof(parts[0]); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); output_tag( outptr, lvl2indent(incr_level(level,1)), "date", NULL, TAG_OPEN, TAG_NONEWLINE, NULL ); if ( parts[0].pos!=-1 ) { fprintf( outptr, "%s", (char *) fields_value( f, parts[0].pos, FIELDS_CHRP ) ); } else fprintf( outptr, "XXXX" ); if ( parts[1].pos!=-1 ) { fprintf( outptr, "-%s", (char *) fields_value( f, parts[1].pos, FIELDS_CHRP ) ); } if ( parts[2].pos!=-1 ) { if ( parts[1].pos==-1 ) fprintf( outptr, "-XX" ); fprintf( outptr, "-%s", (char *) fields_value( f, parts[2].pos, FIELDS_CHRP ) ); } fprintf( outptr,"\n"); return 1; } static int output_partpages( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "PAGES:START", 0, 0 }, { "", "PAGES:STOP", 0, 0 }, { "", "PAGES", 0, 0 }, { "", "PAGES:TOTAL", 0, 0 } }; int nparts = sizeof(parts)/sizeof(parts[0]); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); /* If PAGES:START or PAGES:STOP are undefined */ if ( parts[0].pos==-1 || parts[1].pos==-1 ) { if ( parts[0].pos!=-1 ) mods_output_detail( f, outptr, parts[0].pos, "page", level ); if ( parts[1].pos!=-1 ) mods_output_detail( f, outptr, parts[1].pos, "page", level ); if ( parts[2].pos!=-1 ) mods_output_detail( f, outptr, parts[2].pos, "page", level ); if ( parts[3].pos!=-1 ) mods_output_extents( f, outptr, -1, -1, parts[3].pos, "page", level ); } /* If both PAGES:START and PAGES:STOP are defined */ else { mods_output_extents( f, outptr, parts[0].pos, parts[1].pos, parts[3].pos, "page", level ); } return 1; } static int output_partelement( fields *f, FILE *outptr, int level, int wrote_header ) { convert parts[] = { { "", "NUMVOLUMES", 0, 0 }, { "volume", "VOLUME", 0, 0 }, { "section", "SECTION", 0, 0 }, { "issue", "ISSUE", 0, 0 }, { "number", "NUMBER", 0, 0 }, { "publiclawnumber", "PUBLICLAWNUMBER", 0, 0 }, { "session", "SESSION", 0, 0 }, { "articlenumber", "ARTICLENUMBER", 0, 0 }, { "part", "PART", 0, 0 }, { "chapter", "CHAPTER", 0, 0 }, { "report number", "REPORTNUMBER", 0, 0 }, }; int i, nparts = sizeof( parts ) / sizeof( convert ); if ( !convert_findallfields( f, parts, nparts, level ) ) return 0; try_output_partheader( outptr, wrote_header, level ); /* start loop at 1 to skip NUMVOLUMES */ for ( i=1; ithesis * Diploma thesis */ static void output_genre( fields *f, FILE *outptr, int level ) { char *value, *attr = NULL, *attrvalue = NULL; int i, n; n = fields_num( f ); for ( i=0; itext */ static void output_resource( fields *f, FILE *outptr, int level ) { char *value; int n; n = fields_find( f, "RESOURCE", level ); if ( n!=FIELDS_NOTFOUND ) { value = fields_value( f, n, FIELDS_CHRP ); if ( is_marc_resource( value ) ) { output_fil( outptr, lvl2indent(level), "typeOfResource", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } else { fprintf( stderr, "Illegal typeofResource = '%s'\n", value ); } } } static void output_type( fields *f, FILE *outptr, int level ) { int n; /* silence warnings about INTERNAL_TYPE being unused */ n = fields_find( f, "INTERNAL_TYPE", LEVEL_MAIN ); if ( n!=FIELDS_NOTFOUND ) fields_setused( f, n ); output_resource( f, outptr, level ); output_genre( f, outptr, level ); } /* output_abs() * * xxxx */ static void output_abs( fields *f, FILE *outptr, int level ) { int n; n = fields_find( f, "ABSTRACT", level ); output_fil( outptr, lvl2indent(level), "abstract", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } static void output_notes( fields *f, FILE *outptr, int level ) { int i, n; char *t; n = fields_num( f ); for ( i=0; i * xxxx * */ static void output_key( fields *f, FILE *outptr, int level ) { int i, n; n = fields_num( f ); for ( i=0; itag[i].data, "KEYWORD" ) ) { output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "topic", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } else if ( !strcasecmp( f->tag[i].data, "EPRINTCLASS" ) ) { output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); output_fil( outptr, lvl2indent(incr_level(level,1)), "topic", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "class", "primary", NULL ); output_tag( outptr, lvl2indent(level), "subject", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } } } static void output_sn( fields *f, FILE *outptr, int level ) { convert sn_types[] = { { "isbn", "ISBN", 0, 0 }, { "isbn", "ISBN13", 0, 0 }, { "lccn", "LCCN", 0, 0 }, { "issn", "ISSN", 0, 0 }, { "coden", "CODEN", 0, 0 }, { "citekey", "REFNUM", 0, 0 }, { "doi", "DOI", 0, 0 }, { "eid", "EID", 0, 0 }, { "eprint", "EPRINT", 0, 0 }, { "eprinttype","EPRINTTYPE",0, 0 }, { "pubmed", "PMID", 0, 0 }, { "MRnumber", "MRNUMBER", 0, 0 }, { "medline", "MEDLINE", 0, 0 }, { "pii", "PII", 0, 0 }, { "pmc", "PMC", 0, 0 }, { "arXiv", "ARXIV", 0, 0 }, { "isi", "ISIREFNUM", 0, 0 }, { "accessnum", "ACCESSNUM", 0, 0 }, { "jstor", "JSTOR", 0, 0 }, { "isrn", "ISRN", 0, 0 }, }; int ntypes = sizeof( sn_types ) / sizeof( sn_types[0] ); int i, n; /* output call number */ n = fields_find( f, "CALLNUMBER", level ); output_fil( outptr, lvl2indent(level), "classification", f, n, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); /* output specialized serialnumber */ convert_findallfields( f, sn_types, ntypes, level ); for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "SERIALNUMBER" ) ) continue; output_fil( outptr, lvl2indent(level), "identifier", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "type", "serial number", NULL ); } } /* output_url() * * * URL * PDFLINK * PDFLINK * LOCATION * */ static void output_url( fields *f, FILE *outptr, int level ) { int location = fields_find( f, "LOCATION", level ); int url = fields_find( f, "URL", level ); int fileattach = fields_find( f, "FILEATTACH", level ); int pdflink = fields_find( f, "PDFLINK", level ); int i, n; if ( url==FIELDS_NOTFOUND && location==FIELDS_NOTFOUND && pdflink==FIELDS_NOTFOUND && fileattach==FIELDS_NOTFOUND ) return; output_tag( outptr, lvl2indent(level), "location", NULL, TAG_OPEN, TAG_NEWLINE, NULL ); n = fields_num( f ); for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "URL" ) ) continue; output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "PDFLINK" ) ) continue; /* output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "urlType", "pdf", NULL ); */ output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); } for ( i=0; ilevel[i]!=level ) continue; if ( strcasecmp( f->tag[i].data, "FILEATTACH" ) ) continue; output_fil( outptr, lvl2indent(incr_level(level,1)), "url", f, i, TAG_OPENCLOSE, TAG_NEWLINE, "displayLabel", "Electronic full text", "access", "raw object", NULL ); } if ( location!=-1 ) output_fil( outptr, lvl2indent(incr_level(level,1)), "physicalLocation", f, location, TAG_OPENCLOSE, TAG_NEWLINE, NULL ); output_tag( outptr, lvl2indent(level), "location", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* refnum should start with a non-number and not include spaces -- ignore this */ static void output_refnum( fields *f, int n, FILE *outptr ) { char *p = fields_value( f, n, FIELDS_CHRP_NOUSE ); /* if ( p && ((*p>='0' && *p<='9') || *p=='-' || *p=='_' )) fprintf( outptr, "ref" );*/ while ( p && *p ) { if ( !is_ws(*p) ) fprintf( outptr, "%c", *p ); /* if ( (*p>='A' && *p<='Z') || (*p>='a' && *p<='z') || (*p>='0' && *p<='9') || (*p=='-') || (*p==' (*p=='_') ) fprintf( outptr, "%c", *p );*/ p++; } } static void output_head( fields *f, FILE *outptr, int dropkey, unsigned long numrefs ) { int n; fprintf( outptr, "\n" ); } static int original_items( fields *f, int level ) { int i, targetlevel, n; if ( level < 0 ) return 0; targetlevel = -( level + 2 ); n = fields_num( f ); for ( i=0; i= 0 && level < max ) { output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_OPEN, TAG_NEWLINE, "type", "host", NULL ); output_citeparts( f, outptr, incr_level(level,1), max ); output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } /* Look for original item things */ orig_level = original_items( f, level ); if ( orig_level ) { output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_OPEN, TAG_NEWLINE, "type", "original", NULL ); output_citeparts( f, outptr, orig_level, max ); output_tag( outptr, lvl2indent(level), "relatedItem", NULL, TAG_CLOSE, TAG_NEWLINE, NULL ); } output_abs( f, outptr, level ); output_notes( f, outptr, level ); output_toc( f, outptr, level ); output_key( f, outptr, level ); output_sn( f, outptr, level ); output_url( f, outptr, level ); output_part( f, outptr, level ); output_recordInfo( f, outptr, level ); } static void modsout_report_unused_tags( fields *f, param *p, unsigned long numrefs ) { int i, n, nwritten, nunused = 0, level; char *tag, *value; n = fields_num( f ); for ( i=0; iprogname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Reference %lu has unused tags.\n", numrefs+1 ); /* Find author from level 0 */ nwritten = 0; for ( i=0; iformat_opts & BIBL_FORMAT_MODSOUT_DROPKEY ); output_head( f, outptr, dropkey, numrefs ); output_citeparts( f, outptr, 0, max ); modsout_report_unused_tags( f, p, numrefs ); fprintf( outptr, "\n" ); fflush( outptr ); return BIBL_OK; } static void modsout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); fprintf(outptr,"\n", charset_get_xmlname( p->charsetout ) ); fprintf(outptr,"\n"); } static void modsout_writefooter( FILE *outptr ) { fprintf(outptr,"\n"); fflush( outptr ); } hs-bibutils-6.7.0.0/bibutils/modstypes.c0000644000000000000000000000250000000000000016243 0ustar0000000000000000/* * modstypes.c * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * */ #include #include #include "modstypes.h" /* Conversion information for identifier type attributes: * * XXXX-XXXX * */ convert identifier_types[] = { { "citekey", "REFNUM" }, { "issn", "ISSN" }, { "isbn", "ISBN" }, { "doi", "DOI" }, { "url", "URL" }, { "uri", "URL" }, { "pubmed", "PMID", }, { "medline", "MEDLINE" }, { "pmc", "PMC" }, { "pii", "PII" }, { "isi", "ISIREFNUM" }, { "lccn", "LCCN" }, { "serial number", "SERIALNUMBER" }, { "accessnum", "ACCESSNUM" } }; int nidentifier_types = sizeof( identifier_types ) / sizeof( identifier_types[0] ); char * mods_find_attrib( char *internal_name, convert *data, int ndata ) { int i; for ( i=0; i #include #include "modstypes.h" /* Conversion information for identifier type attributes: * * XXXX-XXXX * */ convert identifier_types[] = { { "citekey", "REFNUM" }, { "issn", "ISSN" }, { "isbn", "ISBN" }, { "doi", "DOI" }, { "url", "URL" }, { "uri", "URL" }, { "pubmed", "PMID", }, { "medline", "MEDLINE" }, { "pmc", "PMC" }, { "pii", "PII" }, { "isi", "ISIREFNUM" }, { "lccn", "LCCN" }, { "serial number", "SERIALNUMBER" }, { "accessnum", "ACCESSNUM" } }; int nidentifier_types = sizeof( identifier_types ) / sizeof( identifier_types[0] ); char * mods_find_attrib( char *internal_name, convert *data, int ndata ) { int i; for ( i=0; i #include #include #include "utf8.h" #include "unicode.h" #include "is_ws.h" #include "str.h" #include "fields.h" #include "slist.h" #include "intlist.h" #include "name.h" /* name_build_withcomma() * * reconstruct parsed names in format: 'family|given|given||suffix' * to 'family suffix, given given */ void name_build_withcomma( str *s, char *p ) { int nseps = 0, nch; char *suffix, *stopat; str_empty( s ); suffix = strstr( p, "||" ); if ( suffix ) stopat = suffix; else stopat = strchr( p, '\0' ); while ( p != stopat ) { nch = 0; if ( nseps==1 ) { if ( suffix ) { str_strcatc( s, " " ); str_strcatc( s, suffix+2 ); } str_addchar( s, ',' ); } if ( nseps ) str_addchar( s, ' ' ); while ( p!=stopat && *p!='|' ) { str_addchar( s, *p++ ); nch++; } if ( p!=stopat && *p=='|' ) p++; if ( nseps!=0 && nch==1 ) str_addchar( s, '.' ); nseps++; } } /* name_findetal() * * Returns number of final tokens to be skipped in processing * of name lists. */ int name_findetal( slist *tokens ) { str *s1, *s2; if ( tokens->n==0 ) return 0; /* ...check last entry for full 'et al.' or variant */ s2 = slist_str( tokens, tokens->n - 1 ); if ( !strcasecmp( s2->data, "et alia" ) || !strcasecmp( s2->data, "et al." ) || !strcasecmp( s2->data, "et al.," ) || !strcasecmp( s2->data, "et al" ) || !strcasecmp( s2->data, "etalia" ) || !strcasecmp( s2->data, "etal." ) || !strcasecmp( s2->data, "etal" ) ) { return 1; } if ( tokens->n==1 ) return 0; /* ...check last two entries for full 'et' and 'al.' */ s1 = slist_str( tokens, tokens->n - 2 ); if ( !strcasecmp( s1->data, "et" ) ) { if ( !strcasecmp( s2->data, "alia" ) || !strcasecmp( s2->data, "al." ) || !strcasecmp( s2->data, "al.," ) || !strcasecmp( s2->data, "al" ) ) { return 2; } } return 0; } #define WITHCOMMA (1) #define JUNIOR (2) #define SENIOR (4) #define THIRD (8) #define FOURTH (16) typedef struct { char *s; unsigned short value; } suffix_value_t; static int identify_suffix( char *p ) { suffix_value_t suffixes[] = { { "Jr." , JUNIOR }, { "Jr" , JUNIOR }, { "Jr.," , JUNIOR | WITHCOMMA }, { "Jr," , JUNIOR | WITHCOMMA }, { "Sr." , SENIOR }, { "Sr" , SENIOR }, { "Sr.," , SENIOR | WITHCOMMA }, { "Sr," , SENIOR | WITHCOMMA }, { "III" , THIRD }, { "III," , THIRD | WITHCOMMA }, { "IV" , FOURTH }, { "IV," , FOURTH | WITHCOMMA }, }; int i, nsuffixes = sizeof( suffixes ) / sizeof( suffixes[0] ); for ( i=0; idata ); if ( ret ) { *suffixpos = end - 1; return ret; } /* ...try to find one after a comma, e.g. "Author, Sr., H. F." */ for ( i=begin; ilen && s->data[ s->len - 1 ]==',' ) { s = slist_str( tokens, i+1 ); ret = identify_suffix( s->data ); if ( ret ) { *suffixpos = i+1; return ret; } } } return 0; } static int add_given_split( str *name, str *s ) { unsigned int unicode_char; unsigned int pos = 0; char utf8s[7]; while ( pos < s->len ) { unicode_char = utf8_decode( s->data, &pos ); if ( is_ws( (char) unicode_char ) ) continue; else if ( unicode_char==(unsigned int)'.' ) { if ( s->data[pos]=='-' ) { str_strcatc( name, ".-" ); pos += 1; unicode_char = utf8_decode( s->data, &pos ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); str_addchar( name, '.' ); } } else if ( unicode_char==(unsigned int)'-' ) { str_strcatc( name, ".-" ); unicode_char = utf8_decode( s->data, &pos ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); str_addchar( name, '.' ); } else if ( unicode_char==(unsigned int)',' ) { /* nothing */ } else { str_addchar( name, '|' ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); } } return 1; } static unsigned char token_has_no_upper( slist *tokens, int n ) { unsigned short m; str *s; s = slist_str( tokens, n ); m = unicode_utf8_classify_str( s ); if ( m & UNICODE_UPPER ) return 0; else return 1; } static unsigned char token_has_upper( slist *tokens, int n ) { if ( token_has_no_upper( tokens, n ) ) return 0; else return 1; } static int name_multielement_nocomma( intlist *given, intlist *family, slist *tokens, int begin, int end, int suffixpos ) { int family_start, family_end; int i, n; /* ...family name(s) */ family_start = family_end = end - 1; if ( family_start == suffixpos ) family_start = family_end = end - 2; /* ...if family name is capitalized, then look for first non-capitalized * ...token and combine range to family name, e.g. single quoted parts of * ..."Ludwig 'von Beethoven'" * ..."Johannes Diderik 'van der Waals'" * ..."Charles Louis Xavier Joseph 'de la Valla Poussin' */ if ( token_has_upper( tokens, family_start ) ) { i = family_start - 1; n = -1; while ( i >= begin && ( n==-1 || token_has_no_upper( tokens, i ) ) ) { if ( token_has_no_upper( tokens, i ) ) n = i; i--; } if ( n != -1 ) family_start = n; } for ( i=family_start; i=family_start && i<=family_end ) continue; if ( i==suffixpos ) continue; intlist_add( given, i ); } return 1; } static int name_multielement_comma( intlist *given, intlist *family, slist *tokens, int begin, int end, int comma, int suffixpos ) { str *s; int i; /* ...family names */ for ( i=begin; in; ++i ) { m = intlist_get( family, i ); s = slist_str( tokens, m ); if ( i ) str_addchar( name, ' ' ); str_strcat( name, s ); case_family |= unicode_utf8_classify_str( s ); } /* ...check given name case */ for ( i=0; in; ++i ) { m = intlist_get( given, i ); s = slist_str( tokens, m ); case_given |= unicode_utf8_classify_str( s ); } if ( ( ( case_family & UNICODE_MIXEDCASE ) == UNICODE_MIXEDCASE ) && ( ( case_given & UNICODE_MIXEDCASE ) == UNICODE_UPPER ) ) { should_split = 1; } for ( i=0; in; ++i ) { m = intlist_get( given, i ); s = slist_str( tokens, m ); if ( !should_split ) { str_addchar( name, '|' ); str_strcat( name, s ); } else add_given_split( name, s ); } return 1; } static int name_construct_multi( str *outname, slist *tokens, int begin, int end ) { int i, suffix, suffixpos=-1, comma=-1; intlist given, family; str *s; intlist_init( &family ); intlist_init( &given ); str_empty( outname ); suffix = has_suffix( tokens, begin, end, &suffixpos ); for ( i=begin; idata[ s->len -1 ] == ',' ) { if ( suffix && i==suffixpos-1 && !(suffix&WITHCOMMA) ) str_trimend( s, 1 ); else comma = i; } } if ( comma != -1 ) name_multielement_comma( &given, &family, tokens, begin, end, comma, suffixpos ); else name_multielement_nocomma( &given, &family, tokens, begin, end, suffixpos ); name_mutlielement_build( outname, &given, &family, tokens ); if ( suffix ) { if ( suffix & JUNIOR ) str_strcatc( outname, "||Jr." ); if ( suffix & SENIOR ) str_strcatc( outname, "||Sr." ); if ( suffix & THIRD ) str_strcatc( outname, "||III" ); if ( suffix & FOURTH ) str_strcatc( outname, "||IV" ); } intlist_free( &given ); intlist_free( &family ); return 1; } int name_addmultielement( fields *info, char *tag, slist *tokens, int begin, int end, int level ) { int status, ok = 1; str name; str_init( &name ); name_construct_multi( &name, tokens, begin, end ); status = fields_add_can_dup( info, tag, name.data, level ); if ( status!=FIELDS_OK ) ok = 0; str_free( &name ); return ok; } /* name_addsingleelement() * * Treat names that are single tokens, e.g. {Random Corporation, Inc.} in bibtex * as a name that should not be mangled (e.g. AUTHOR:ASIS or AUTHOR:CORP, if corp * is set). */ int name_addsingleelement( fields *info, char *tag, char *name, int level, int corp ) { int status, ok = 1; str outtag; str_init( &outtag ); str_strcpyc( &outtag, tag ); if ( !corp ) str_strcatc( &outtag, ":ASIS" ); else str_strcatc( &outtag, ":CORP" ); status = fields_add_can_dup( info, outtag.data, name, level ); if ( status!=FIELDS_OK ) ok = 0; str_free( &outtag ); return ok; } /* * Takes a single name in a string and parses it. * Skipped by bibtex/biblatex that come pre-parsed. * * Returns 0 on error. * Returns 1 on ok. * Returns 2 on ok and name in asis list * Returns 3 on ok and name in corps list */ int name_parse( str *outname, str *inname, slist *asis, slist *corps ) { int status, ret = 1; slist tokens; str_empty( outname ); if ( !inname || !inname->len ) return ret; slist_init( &tokens ); if ( asis && slist_find( asis, inname ) !=-1 ) { str_strcpy( outname, inname ); ret = 2; goto out; } else if ( corps && slist_find( corps, inname ) != -1 ) { str_strcpy( outname, inname ); ret = 3; goto out; } str_findreplace( inname, ",", ", " ); status = slist_tokenize( &tokens, inname, " ", 1 ); if ( status!=SLIST_OK ) { str_strcpy( outname, inname ); ret = 2; goto out; } if ( tokens.n==1 ) { str_strcpy( outname, inname ); ret = 2; } else { name_construct_multi( outname, &tokens, 0, tokens.n ); ret = 1; } out: slist_free( &tokens ); return ret; } static char * name_copy( str *name, char *p ) { char *start, *end, *q; str_empty( name ); start = p = skip_ws( p ); /* strip tailing whitespace and commas */ while ( *p && *p!='|' ) p++; end = p; while ( is_ws( *end ) || *end==',' || *end=='|' || *end=='\0' ) end--; if ( *p=='|' ) p++; for ( q=start; q<=end; q++ ) str_addchar( name, *q ); return p; } /* * name_add( info, newtag, data, level ) * * take name(s) in data, multiple names should be separated by * '|' characters and divide into individual name, e.g. * "H. F. Author|W. G. Author|Q. X. Author" * * for each name, compare to names in the "as is" or "corporation" * lists...these are not personal names and should be added to the * bibliography fields directly and should not be mangled * * for each personal name, send to appropriate algorithm depending * on if the author name is in the format "H. F. Author" or * "Author, H. F." */ int name_add( fields *info, char *tag, char *q, int level, slist *asis, slist *corps ) { int ok, status, nametype, ret = 1; str inname, outname; slist tokens; if ( !q ) return 0; slist_init( &tokens ); strs_init( &inname, &outname, NULL ); while ( *q ) { q = name_copy( &inname, q ); nametype = name_parse( &outname, &inname, asis, corps ); if ( !nametype ) { ret = 0; goto out; } if ( nametype==1 ) { status = fields_add_can_dup( info, tag, outname.data, level ); ok = ( status==FIELDS_OK ) ? 1 : 0; } else if ( nametype==2 ) ok = name_addsingleelement( info, tag, outname.data, level, 0 ); else ok = name_addsingleelement( info, tag, outname.data, level, 1 ); if ( !ok ) { ret = 0; goto out; } } out: strs_free( &inname, &outname, NULL ); slist_free( &tokens ); return ret; } hs-bibutils-6.7.0.0/bibutils/name.c0000755000000000000000000003011500000000000015142 0ustar0000000000000000/* * name.c * * mangle names w/ and w/o commas * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include "utf8.h" #include "unicode.h" #include "is_ws.h" #include "str.h" #include "fields.h" #include "slist.h" #include "intlist.h" #include "name.h" /* name_build_withcomma() * * reconstruct parsed names in format: 'family|given|given||suffix' * to 'family suffix, given given */ void name_build_withcomma( str *s, char *p ) { int nseps = 0, nch; char *suffix, *stopat; str_empty( s ); suffix = strstr( p, "||" ); if ( suffix ) stopat = suffix; else stopat = strchr( p, '\0' ); while ( p != stopat ) { nch = 0; if ( nseps==1 ) { if ( suffix ) { str_strcatc( s, " " ); str_strcatc( s, suffix+2 ); } str_addchar( s, ',' ); } if ( nseps ) str_addchar( s, ' ' ); while ( p!=stopat && *p!='|' ) { str_addchar( s, *p++ ); nch++; } if ( p!=stopat && *p=='|' ) p++; if ( nseps!=0 && nch==1 ) str_addchar( s, '.' ); nseps++; } } /* name_findetal() * * Returns number of final tokens to be skipped in processing * of name lists. */ int name_findetal( slist *tokens ) { str *s1, *s2; if ( tokens->n==0 ) return 0; /* ...check last entry for full 'et al.' or variant */ s2 = slist_str( tokens, tokens->n - 1 ); if ( !strcasecmp( s2->data, "et alia" ) || !strcasecmp( s2->data, "et al." ) || !strcasecmp( s2->data, "et al.," ) || !strcasecmp( s2->data, "et al" ) || !strcasecmp( s2->data, "etalia" ) || !strcasecmp( s2->data, "etal." ) || !strcasecmp( s2->data, "etal" ) ) { return 1; } if ( tokens->n==1 ) return 0; /* ...check last two entries for full 'et' and 'al.' */ s1 = slist_str( tokens, tokens->n - 2 ); if ( !strcasecmp( s1->data, "et" ) ) { if ( !strcasecmp( s2->data, "alia" ) || !strcasecmp( s2->data, "al." ) || !strcasecmp( s2->data, "al.," ) || !strcasecmp( s2->data, "al" ) ) { return 2; } } return 0; } #define WITHCOMMA (1) #define JUNIOR (2) #define SENIOR (4) #define THIRD (8) #define FOURTH (16) typedef struct { char *s; unsigned short value; } suffix_value_t; static int identify_suffix( char *p ) { suffix_value_t suffixes[] = { { "Jr." , JUNIOR }, { "Jr" , JUNIOR }, { "Jr.," , JUNIOR | WITHCOMMA }, { "Jr," , JUNIOR | WITHCOMMA }, { "Sr." , SENIOR }, { "Sr" , SENIOR }, { "Sr.," , SENIOR | WITHCOMMA }, { "Sr," , SENIOR | WITHCOMMA }, { "III" , THIRD }, { "III," , THIRD | WITHCOMMA }, { "IV" , FOURTH }, { "IV," , FOURTH | WITHCOMMA }, }; int i, nsuffixes = sizeof( suffixes ) / sizeof( suffixes[0] ); for ( i=0; idata ); if ( ret ) { *suffixpos = end - 1; return ret; } /* ...try to find one after a comma, e.g. "Author, Sr., H. F." */ for ( i=begin; ilen && s->data[ s->len - 1 ]==',' ) { s = slist_str( tokens, i+1 ); ret = identify_suffix( s->data ); if ( ret ) { *suffixpos = i+1; return ret; } } } return 0; } static int add_given_split( str *name, str *s ) { unsigned int unicode_char; unsigned int pos = 0; char utf8s[7]; while ( pos < s->len ) { unicode_char = utf8_decode( s->data, &pos ); if ( is_ws( (char) unicode_char ) ) continue; else if ( unicode_char==(unsigned int)'.' ) { if ( s->data[pos]=='-' ) { str_strcatc( name, ".-" ); pos += 1; unicode_char = utf8_decode( s->data, &pos ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); str_addchar( name, '.' ); } } else if ( unicode_char==(unsigned int)'-' ) { str_strcatc( name, ".-" ); unicode_char = utf8_decode( s->data, &pos ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); str_addchar( name, '.' ); } else if ( unicode_char==(unsigned int)',' ) { /* nothing */ } else { str_addchar( name, '|' ); utf8_encode_str( unicode_char, utf8s ); str_strcatc( name, utf8s ); } } return 1; } static unsigned char token_has_no_upper( slist *tokens, int n ) { unsigned short m; str *s; s = slist_str( tokens, n ); m = unicode_utf8_classify_str( s ); if ( m & UNICODE_UPPER ) return 0; else return 1; } static unsigned char token_has_upper( slist *tokens, int n ) { if ( token_has_no_upper( tokens, n ) ) return 0; else return 1; } static int name_multielement_nocomma( intlist *given, intlist *family, slist *tokens, int begin, int end, int suffixpos ) { int family_start, family_end; int i, n; /* ...family name(s) */ family_start = family_end = end - 1; if ( family_start == suffixpos ) family_start = family_end = end - 2; /* ...if family name is capitalized, then look for first non-capitalized * ...token and combine range to family name, e.g. single quoted parts of * ..."Ludwig 'von Beethoven'" * ..."Johannes Diderik 'van der Waals'" * ..."Charles Louis Xavier Joseph 'de la Valla Poussin' */ if ( token_has_upper( tokens, family_start ) ) { i = family_start - 1; n = -1; while ( i >= begin && ( n==-1 || token_has_no_upper( tokens, i ) ) ) { if ( token_has_no_upper( tokens, i ) ) n = i; i--; } if ( n != -1 ) family_start = n; } for ( i=family_start; i=family_start && i<=family_end ) continue; if ( i==suffixpos ) continue; intlist_add( given, i ); } return 1; } static int name_multielement_comma( intlist *given, intlist *family, slist *tokens, int begin, int end, int comma, int suffixpos ) { str *s; int i; /* ...family names */ for ( i=begin; in; ++i ) { m = intlist_get( family, i ); s = slist_str( tokens, m ); if ( i ) str_addchar( name, ' ' ); str_strcat( name, s ); case_family |= unicode_utf8_classify_str( s ); } /* ...check given name case */ for ( i=0; in; ++i ) { m = intlist_get( given, i ); s = slist_str( tokens, m ); case_given |= unicode_utf8_classify_str( s ); } if ( ( ( case_family & UNICODE_MIXEDCASE ) == UNICODE_MIXEDCASE ) && ( ( case_given & UNICODE_MIXEDCASE ) == UNICODE_UPPER ) ) { should_split = 1; } for ( i=0; in; ++i ) { m = intlist_get( given, i ); s = slist_str( tokens, m ); if ( !should_split ) { str_addchar( name, '|' ); str_strcat( name, s ); } else add_given_split( name, s ); } return 1; } static int name_construct_multi( str *outname, slist *tokens, int begin, int end ) { int i, suffix, suffixpos=-1, comma=-1; intlist given, family; str *s; intlist_init( &family ); intlist_init( &given ); str_empty( outname ); suffix = has_suffix( tokens, begin, end, &suffixpos ); for ( i=begin; idata[ s->len -1 ] == ',' ) { if ( suffix && i==suffixpos-1 && !(suffix&WITHCOMMA) ) str_trimend( s, 1 ); else comma = i; } } if ( comma != -1 ) name_multielement_comma( &given, &family, tokens, begin, end, comma, suffixpos ); else name_multielement_nocomma( &given, &family, tokens, begin, end, suffixpos ); name_mutlielement_build( outname, &given, &family, tokens ); if ( suffix ) { if ( suffix & JUNIOR ) str_strcatc( outname, "||Jr." ); if ( suffix & SENIOR ) str_strcatc( outname, "||Sr." ); if ( suffix & THIRD ) str_strcatc( outname, "||III" ); if ( suffix & FOURTH ) str_strcatc( outname, "||IV" ); } intlist_free( &given ); intlist_free( &family ); return 1; } int name_addmultielement( fields *info, char *tag, slist *tokens, int begin, int end, int level ) { int status, ok = 1; str name; str_init( &name ); name_construct_multi( &name, tokens, begin, end ); status = fields_add_can_dup( info, tag, name.data, level ); if ( status!=FIELDS_OK ) ok = 0; str_free( &name ); return ok; } /* name_addsingleelement() * * Treat names that are single tokens, e.g. {Random Corporation, Inc.} in bibtex * as a name that should not be mangled (e.g. AUTHOR:ASIS or AUTHOR:CORP, if corp * is set). */ int name_addsingleelement( fields *info, char *tag, char *name, int level, int corp ) { int status, ok = 1; str outtag; str_init( &outtag ); str_strcpyc( &outtag, tag ); if ( !corp ) str_strcatc( &outtag, ":ASIS" ); else str_strcatc( &outtag, ":CORP" ); status = fields_add_can_dup( info, outtag.data, name, level ); if ( status!=FIELDS_OK ) ok = 0; str_free( &outtag ); return ok; } /* * Takes a single name in a string and parses it. * Skipped by bibtex/biblatex that come pre-parsed. * * Returns 0 on error. * Returns 1 on ok. * Returns 2 on ok and name in asis list * Returns 3 on ok and name in corps list */ int name_parse( str *outname, str *inname, slist *asis, slist *corps ) { int status, ret = 1; slist tokens; str_empty( outname ); if ( !inname || !inname->len ) return ret; slist_init( &tokens ); if ( asis && slist_find( asis, inname ) !=-1 ) { str_strcpy( outname, inname ); ret = 2; goto out; } else if ( corps && slist_find( corps, inname ) != -1 ) { str_strcpy( outname, inname ); ret = 3; goto out; } str_findreplace( inname, ",", ", " ); status = slist_tokenize( &tokens, inname, " ", 1 ); if ( status!=SLIST_OK ) { str_strcpy( outname, inname ); ret = 2; goto out; } if ( tokens.n==1 ) { str_strcpy( outname, inname ); ret = 2; } else { name_construct_multi( outname, &tokens, 0, tokens.n ); ret = 1; } out: slist_free( &tokens ); return ret; } static char * name_copy( str *name, char *p ) { char *start, *end, *q; str_empty( name ); start = p = skip_ws( p ); /* strip tailing whitespace and commas */ while ( *p && *p!='|' ) p++; end = p; while ( is_ws( *end ) || *end==',' || *end=='|' || *end=='\0' ) end--; if ( *p=='|' ) p++; for ( q=start; q<=end; q++ ) str_addchar( name, *q ); return p; } /* * name_add( info, newtag, data, level ) * * take name(s) in data, multiple names should be separated by * '|' characters and divide into individual name, e.g. * "H. F. Author|W. G. Author|Q. X. Author" * * for each name, compare to names in the "as is" or "corporation" * lists...these are not personal names and should be added to the * bibliography fields directly and should not be mangled * * for each personal name, send to appropriate algorithm depending * on if the author name is in the format "H. F. Author" or * "Author, H. F." */ int name_add( fields *info, char *tag, char *q, int level, slist *asis, slist *corps ) { int ok, status, nametype, ret = 1; str inname, outname; slist tokens; if ( !q ) return 0; slist_init( &tokens ); strs_init( &inname, &outname, NULL ); while ( *q ) { q = name_copy( &inname, q ); nametype = name_parse( &outname, &inname, asis, corps ); if ( !nametype ) { ret = 0; goto out; } if ( nametype==1 ) { status = fields_add_can_dup( info, tag, outname.data, level ); ok = ( status==FIELDS_OK ) ? 1 : 0; } else if ( nametype==2 ) ok = name_addsingleelement( info, tag, outname.data, level, 0 ); else ok = name_addsingleelement( info, tag, outname.data, level, 1 ); if ( !ok ) { ret = 0; goto out; } } out: strs_free( &inname, &outname, NULL ); slist_free( &tokens ); return ret; } hs-bibutils-6.7.0.0/bibutils/name.h0000755000000000000000000000132300000000000015146 0ustar0000000000000000/* * name.h * * mangle names w/ and w/o commas * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * */ #ifndef NAME_H #define NAME_H #include "str.h" #include "slist.h" #include "fields.h" extern int name_add( fields *info, char *tag, char *q, int level, slist *asis, slist *corps ); extern void name_build_withcomma( str *s, char *p ); extern int name_parse( str *outname, str *inname, slist *asis, slist *corps ); extern int name_addsingleelement( fields *info, char *tag, char *name, int level, int corp ); extern int name_addmultielement( fields *info, char *tag, slist *tokens, int begin, int end, int level ); extern int name_findetal( slist *tokens ); #endif hs-bibutils-6.7.0.0/bibutils/nbibin.c0000644000000000000000000002723600000000000015472 0ustar0000000000000000/* * nbibin.c * * Copyright (c) Chris Putnam 2016-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "serialno.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants nbib_all[]; extern int nbib_nall; /***************************************************** PUBLIC: void nbib_initparams() *****************************************************/ static int nbib_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int nbib_processf( fields *nbib, char *p, char *filename, long nref, param *pm ); static int nbib_typef( fields *nbib, char *filename, int nref, param *p ); static int nbib_convertf( fields *nbib, fields *info, int reftype, param *p ); void nbibin_initparams( param *p, const char *progname ) { p->readformat = BIBL_NBIBIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = nbib_readf; p->processf = nbib_processf; p->cleanf = NULL; p->typef = nbib_typef; p->convertf = nbib_convertf; p->all = nbib_all; p->nall = nbib_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int nbib_readf() *****************************************************/ /* RIS definition of a tag is strict: character 1 = uppercase alphabetic character character 2 = uppercase alphabetic character character 3 = character or space (ansi 32) character 4 = character or space (ansi 32) character 5 = dash (ansi 45) character 6 = space (ansi 32) */ static int is_upperchar( char c ) { if ( c>='A' && c<='Z' ) return 1; else return 0; } static int is_upperchar_space( char c ) { if ( c==' ' ) return 1; if ( c>='A' && c<='Z' ) return 1; else return 0; } static int nbib_istag( char *buf ) { if ( !is_upperchar( buf[0] ) ) return 0; if ( !is_upperchar( buf[1] ) ) return 0; if ( !is_upperchar_space( buf[2] ) ) return 0; if ( !is_upperchar_space( buf[3] ) ) return 0; if (buf[4]!='-') return 0; if (buf[5]!=' ') return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int skip_utf8_bom( str *line, int *fcharset ) { unsigned char *up; if ( line->len < 3 ) return 0; up = ( unsigned char *) str_cstr( line ); if ( up[0]==0xEF && up[1]==0xBB && up[2]==0xBF ) { *fcharset = CHARSET_UNICODE; return 3; } return 0; } static int nbib_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int n, haveref = 0, inref = 0, readtoofar = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { /* ...references are terminated by an empty line */ if ( !line->data || line->len==0 ) { if ( reference->len ) haveref = 1; continue; } /* ...recognize and skip over UTF8 BOM */ n = skip_utf8_bom( line, fcharset ); p = &( line->data[n] ); /* Each reference starts with 'PMID- ' && ends with blank line */ if ( strncmp(p,"PMID- ",6)==0 ) { if ( !inref ) { inref = 1; } else { /* we've read too far.... */ readtoofar = 1; inref = 0; } } if ( nbib_istag( p ) ) { if ( !inref ) { fprintf(stderr,"Warning. Tagged line not " "in properly started reference.\n"); fprintf(stderr,"Ignored: '%s'\n", p ); } else if ( !strncmp(p,"ER -",5) ) { inref = 0; } else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } } /* not a tag, but we'll append to last values ...*/ else if ( inref && strlen( p ) >= 6 ) { str_strcatc( reference, p+5 ); } if ( !readtoofar ) str_empty( line ); } if ( inref ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int nbib_processf() *****************************************************/ static char* process_line2( str *tag, str *data, char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static char* process_line( str *tag, str *data, char *p ) { int i; i = 0; while ( i<6 && *p ) { if ( *p!=' ' && *p!='-' ) str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static int nbib_processf( fields *nbib, char *p, char *filename, long nref, param *pm ) { str tag, data; int status, n; strs_init( &tag, &data, NULL ); while ( *p ) { if ( nbib_istag( p ) ) p = process_line( &tag, &data, p ); /* no anonymous fields allowed */ if ( str_has_value( &tag ) ) { status = fields_add( nbib, str_cstr( &tag ), str_cstr( &data ), 0 ); if ( status!=FIELDS_OK ) return 0; } else { p = process_line2( &tag, &data, p ); n = fields_num( nbib ); if ( data.len && n>0 ) { str *od; od = fields_value( nbib, n-1, FIELDS_STRP ); str_addchar( od, ' ' ); str_strcat( od, &data ); } } strs_empty( &tag, &data, NULL ); } strs_free( &tag, &data, NULL ); return 1; } /***************************************************** PUBLIC: int nbib_typef() *****************************************************/ /* * PT - Case Reports * PT - Journal Article * PT - Research Support, N.I.H., Extramural * PT - Review */ static int nbib_typef( fields *nbib, char *filename, int nref, param *p ) { int reftype, nrefname, is_default; char *typename, *refname = ""; vplist_index i; vplist a; nrefname = fields_find( nbib, "PMID", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( nbib, nrefname, FIELDS_CHRP_NOUSE ); vplist_init( &a ); fields_findv_each( nbib, LEVEL_MAIN, FIELDS_CHRP_NOUSE, &a, "PT" ); is_default = 1; for ( i=0; iprogname, p->all, p->nall, refname, &is_default, REFTYPE_SILENT ); if ( !is_default ) break; } if ( a.n==0 ) reftype = get_reftype( "", nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); else if ( is_default ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not recognize type of refnum %d (%s).\n" "\tDefaulting to %s.\n", nref, refname, p->all[0].type ); } vplist_free( &a ); return reftype; } /***************************************************** PUBLIC: int nbib_convertf() *****************************************************/ /* PB - 2016 May 7 */ static int nbibin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str s; char *p; p = str_cstr( invalue ); if ( !p ) return status; str_init( &s ); /* ...handle year */ while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:YEAR", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } /* ...handle month */ str_empty( &s ); while ( is_ws( *p ) ) p++; while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:MONTH", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } /* ...handle day */ str_empty( &s ); while ( is_ws( *p ) ) p++; while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:DAY", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &s ); return status; } /* the LID and AID fields that can be doi's or pii's */ static int nbibin_doi( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, sstatus, status = BIBL_OK; char *id, *type, *usetag=""; slist tokens; slist_init( &tokens ); sstatus = slist_tokenize( &tokens, invalue, " ", 1 ); if ( sstatus!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto out; } if ( tokens.n == 2 ) { id = slist_cstr( &tokens, 0 ); type = slist_cstr( &tokens, 1 ); if ( !strcmp( type, "[doi]" ) ) usetag = "DOI"; else if ( !strcmp( type, "[pii]" ) ) usetag = "PII"; if ( strlen( outtag ) > 0 ) { fstatus = fields_add( bibout, usetag, id, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: slist_free( &tokens ); return status; } static int nbibin_pages( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str sp, tmp, ep; char *p; int i; p = str_cstr( invalue ); if ( !p ) return BIBL_OK; strs_init( &sp, &tmp, &ep, NULL ); while ( *p && *p!='-' ) { str_addchar( &sp, *p ); p++; } if ( str_memerr( &sp ) ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p=='-' ) p++; while ( *p ) { str_addchar( &tmp, *p ); p++; } if ( sp.len ) { fstatus = fields_add( bibout, "PAGES:START", str_cstr( &sp ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( tmp.len ) { for ( i=0; iverbose && strcmp( tag, "TY" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify NBIB tag '%s'\n", tag ); } } static int nbib_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int i, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SKIP ] = generic_skip, [ DATE ] = nbibin_date, [ PAGES ] = nbibin_pages, [ DOI ] = nbibin_doi, }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; idata, reftype, p->all, p->nall, &process, &level, &outtag ) ) { nbib_report_notag( p, intag->data ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.7.0.0/bibutils/nbibin.c0000755000000000000000000002723600000000000015475 0ustar0000000000000000/* * nbibin.c * * Copyright (c) Chris Putnam 2016-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "serialno.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants nbib_all[]; extern int nbib_nall; /***************************************************** PUBLIC: void nbib_initparams() *****************************************************/ static int nbib_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int nbib_processf( fields *nbib, char *p, char *filename, long nref, param *pm ); static int nbib_typef( fields *nbib, char *filename, int nref, param *p ); static int nbib_convertf( fields *nbib, fields *info, int reftype, param *p ); void nbibin_initparams( param *p, const char *progname ) { p->readformat = BIBL_NBIBIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = nbib_readf; p->processf = nbib_processf; p->cleanf = NULL; p->typef = nbib_typef; p->convertf = nbib_convertf; p->all = nbib_all; p->nall = nbib_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int nbib_readf() *****************************************************/ /* RIS definition of a tag is strict: character 1 = uppercase alphabetic character character 2 = uppercase alphabetic character character 3 = character or space (ansi 32) character 4 = character or space (ansi 32) character 5 = dash (ansi 45) character 6 = space (ansi 32) */ static int is_upperchar( char c ) { if ( c>='A' && c<='Z' ) return 1; else return 0; } static int is_upperchar_space( char c ) { if ( c==' ' ) return 1; if ( c>='A' && c<='Z' ) return 1; else return 0; } static int nbib_istag( char *buf ) { if ( !is_upperchar( buf[0] ) ) return 0; if ( !is_upperchar( buf[1] ) ) return 0; if ( !is_upperchar_space( buf[2] ) ) return 0; if ( !is_upperchar_space( buf[3] ) ) return 0; if (buf[4]!='-') return 0; if (buf[5]!=' ') return 0; return 1; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int skip_utf8_bom( str *line, int *fcharset ) { unsigned char *up; if ( line->len < 3 ) return 0; up = ( unsigned char *) str_cstr( line ); if ( up[0]==0xEF && up[1]==0xBB && up[2]==0xBF ) { *fcharset = CHARSET_UNICODE; return 3; } return 0; } static int nbib_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int n, haveref = 0, inref = 0, readtoofar = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { /* ...references are terminated by an empty line */ if ( !line->data || line->len==0 ) { if ( reference->len ) haveref = 1; continue; } /* ...recognize and skip over UTF8 BOM */ n = skip_utf8_bom( line, fcharset ); p = &( line->data[n] ); /* Each reference starts with 'PMID- ' && ends with blank line */ if ( strncmp(p,"PMID- ",6)==0 ) { if ( !inref ) { inref = 1; } else { /* we've read too far.... */ readtoofar = 1; inref = 0; } } if ( nbib_istag( p ) ) { if ( !inref ) { fprintf(stderr,"Warning. Tagged line not " "in properly started reference.\n"); fprintf(stderr,"Ignored: '%s'\n", p ); } else if ( !strncmp(p,"ER -",5) ) { inref = 0; } else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } } /* not a tag, but we'll append to last values ...*/ else if ( inref && strlen( p ) >= 6 ) { str_strcatc( reference, p+5 ); } if ( !readtoofar ) str_empty( line ); } if ( inref ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int nbib_processf() *****************************************************/ static char* process_line2( str *tag, str *data, char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static char* process_line( str *tag, str *data, char *p ) { int i; i = 0; while ( i<6 && *p ) { if ( *p!=' ' && *p!='-' ) str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( data, *p++ ); str_trimendingws( data ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static int nbib_processf( fields *nbib, char *p, char *filename, long nref, param *pm ) { str tag, data; int status, n; strs_init( &tag, &data, NULL ); while ( *p ) { if ( nbib_istag( p ) ) p = process_line( &tag, &data, p ); /* no anonymous fields allowed */ if ( str_has_value( &tag ) ) { status = fields_add( nbib, str_cstr( &tag ), str_cstr( &data ), 0 ); if ( status!=FIELDS_OK ) return 0; } else { p = process_line2( &tag, &data, p ); n = fields_num( nbib ); if ( data.len && n>0 ) { str *od; od = fields_value( nbib, n-1, FIELDS_STRP ); str_addchar( od, ' ' ); str_strcat( od, &data ); } } strs_empty( &tag, &data, NULL ); } strs_free( &tag, &data, NULL ); return 1; } /***************************************************** PUBLIC: int nbib_typef() *****************************************************/ /* * PT - Case Reports * PT - Journal Article * PT - Research Support, N.I.H., Extramural * PT - Review */ static int nbib_typef( fields *nbib, char *filename, int nref, param *p ) { int reftype, nrefname, is_default; char *typename, *refname = ""; vplist_index i; vplist a; nrefname = fields_find( nbib, "PMID", LEVEL_MAIN ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( nbib, nrefname, FIELDS_CHRP_NOUSE ); vplist_init( &a ); fields_findv_each( nbib, LEVEL_MAIN, FIELDS_CHRP_NOUSE, &a, "PT" ); is_default = 1; for ( i=0; iprogname, p->all, p->nall, refname, &is_default, REFTYPE_SILENT ); if ( !is_default ) break; } if ( a.n==0 ) reftype = get_reftype( "", nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); else if ( is_default ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not recognize type of refnum %d (%s).\n" "\tDefaulting to %s.\n", nref, refname, p->all[0].type ); } vplist_free( &a ); return reftype; } /***************************************************** PUBLIC: int nbib_convertf() *****************************************************/ /* PB - 2016 May 7 */ static int nbibin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str s; char *p; p = str_cstr( invalue ); if ( !p ) return status; str_init( &s ); /* ...handle year */ while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:YEAR", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } /* ...handle month */ str_empty( &s ); while ( is_ws( *p ) ) p++; while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:MONTH", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } /* ...handle day */ str_empty( &s ); while ( is_ws( *p ) ) p++; while ( *p && !is_ws( *p ) ) { str_addchar( &s, *p ); p++; } if ( str_memerr( &s ) ) { status = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &s ) ) { fstatus = fields_add( bibout, "DATE:DAY", str_cstr( &s ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &s ); return status; } /* the LID and AID fields that can be doi's or pii's */ static int nbibin_doi( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, sstatus, status = BIBL_OK; char *id, *type, *usetag=""; slist tokens; slist_init( &tokens ); sstatus = slist_tokenize( &tokens, invalue, " ", 1 ); if ( sstatus!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto out; } if ( tokens.n == 2 ) { id = slist_cstr( &tokens, 0 ); type = slist_cstr( &tokens, 1 ); if ( !strcmp( type, "[doi]" ) ) usetag = "DOI"; else if ( !strcmp( type, "[pii]" ) ) usetag = "PII"; if ( strlen( outtag ) > 0 ) { fstatus = fields_add( bibout, usetag, id, LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } } out: slist_free( &tokens ); return status; } static int nbibin_pages( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, status = BIBL_OK; str sp, tmp, ep; char *p; int i; p = str_cstr( invalue ); if ( !p ) return BIBL_OK; strs_init( &sp, &tmp, &ep, NULL ); while ( *p && *p!='-' ) { str_addchar( &sp, *p ); p++; } if ( str_memerr( &sp ) ) { status = BIBL_ERR_MEMERR; goto out; } while ( *p=='-' ) p++; while ( *p ) { str_addchar( &tmp, *p ); p++; } if ( sp.len ) { fstatus = fields_add( bibout, "PAGES:START", str_cstr( &sp ), LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } if ( tmp.len ) { for ( i=0; iverbose && strcmp( tag, "TY" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify NBIB tag '%s'\n", tag ); } } static int nbib_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int i, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ PERSON ] = generic_person, [ SKIP ] = generic_skip, [ DATE ] = nbibin_date, [ PAGES ] = nbibin_pages, [ DOI ] = nbibin_doi, }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; idata, reftype, p->all, p->nall, &process, &level, &outtag ) ) { nbib_report_notag( p, intag->data ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.7.0.0/bibutils/nbibout.c0000644000000000000000000003255700000000000015675 0ustar0000000000000000/* * nbibout.c * * Copyright (c) Chris Putnam 2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "is_ws.h" #include "strsearch.h" #include "fields.h" #include "iso639_3.h" #include "title.h" #include "bibutils.h" #include "bibformats.h" static int nbibout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); static void nbibout_writeheader( FILE *outptr, param *p ); void nbibout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_NBIBOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; if ( p->charsetout == BIBL_CHARSET_UNICODE ) { p->utf8out = p->utf8bom = 1; } p->headerf = nbibout_writeheader; p->footerf = NULL; p->writef = nbibout_write; } enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE = 1, TYPE_INBOOK = 2, TYPE_BOOK = 3, }; static void append_type( fields *in, fields *out, int *status ) { int fstatus; char *s; int type = TYPE_UNKNOWN, i, n, level; char *tag, *value; n = fields_num( in ); for ( i=0; ilen < 82 ) { fprintf( fp, "%s", str_cstr( value ) ); return; } p = str_cstr( value ); while ( p && *p ) { n = 0; q = p; lastws = NULL; while ( n < 82 && *q ) { if ( is_ws( *q ) ) lastws = q; q++; n++; } if ( *q && lastws ) { while ( p!=lastws ) { fprintf( fp, "%c", *p ); p++; } p++; /* skip ws separator */ } else { while ( p!=q ) { fprintf( fp, "%c", *p ); p++; } p = q; } if ( *p ) { fprintf( fp, "\n" ); fprintf( fp, " " ); } } } static void output_reference( FILE *fp, fields *out ) { int i; for ( i=0; in; ++i ) { output_tag( fp, ( char * ) fields_tag( out, i, FIELDS_CHRP ) ); output_value( fp, ( str * ) fields_value( out, i, FIELDS_STRP ) ); fprintf( fp, "\n" ); } fprintf( fp, "\n\n" ); fflush( fp ); } static int nbibout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( in, "IN", refnum ); status = append_data( in, &out ); if ( status==BIBL_OK ) output_reference( fp, &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( &out, "OUT", refnum ); fields_free( &out ); return status; } static void nbibout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/nbibout.c0000755000000000000000000003255700000000000015700 0ustar0000000000000000/* * nbibout.c * * Copyright (c) Chris Putnam 2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "is_ws.h" #include "strsearch.h" #include "fields.h" #include "iso639_3.h" #include "title.h" #include "bibutils.h" #include "bibformats.h" static int nbibout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); static void nbibout_writeheader( FILE *outptr, param *p ); void nbibout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_NBIBOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; if ( p->charsetout == BIBL_CHARSET_UNICODE ) { p->utf8out = p->utf8bom = 1; } p->headerf = nbibout_writeheader; p->footerf = NULL; p->writef = nbibout_write; } enum { TYPE_UNKNOWN = 0, TYPE_ARTICLE = 1, TYPE_INBOOK = 2, TYPE_BOOK = 3, }; static void append_type( fields *in, fields *out, int *status ) { int fstatus; char *s; int type = TYPE_UNKNOWN, i, n, level; char *tag, *value; n = fields_num( in ); for ( i=0; ilen < 82 ) { fprintf( fp, "%s", str_cstr( value ) ); return; } p = str_cstr( value ); while ( p && *p ) { n = 0; q = p; lastws = NULL; while ( n < 82 && *q ) { if ( is_ws( *q ) ) lastws = q; q++; n++; } if ( *q && lastws ) { while ( p!=lastws ) { fprintf( fp, "%c", *p ); p++; } p++; /* skip ws separator */ } else { while ( p!=q ) { fprintf( fp, "%c", *p ); p++; } p = q; } if ( *p ) { fprintf( fp, "\n" ); fprintf( fp, " " ); } } } static void output_reference( FILE *fp, fields *out ) { int i; for ( i=0; in; ++i ) { output_tag( fp, ( char * ) fields_tag( out, i, FIELDS_CHRP ) ); output_value( fp, ( str * ) fields_value( out, i, FIELDS_STRP ) ); fprintf( fp, "\n" ); } fprintf( fp, "\n\n" ); fflush( fp ); } static int nbibout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( in, "IN", refnum ); status = append_data( in, &out ); if ( status==BIBL_OK ) output_reference( fp, &out ); if ( p->format_opts & BIBL_FORMAT_VERBOSE ) output_verbose( &out, "OUT", refnum ); fields_free( &out ); return status; } static void nbibout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/nbibtypes.c0000644000000000000000000000623700000000000016226 0ustar0000000000000000/* * nbibtypes.c * * Copyright (c) Chris Putnam 2016-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" static lookups article[] = { { "PMID", "PMID", SIMPLE, LEVEL_MAIN }, { "OWN", "", SKIP, LEVEL_MAIN }, { "STAT", "", SKIP, LEVEL_MAIN }, { "DA", "", SKIP, LEVEL_MAIN }, { "DCOM", "", SKIP, LEVEL_MAIN }, { "LR", "", SKIP, LEVEL_MAIN }, { "IS", "", SKIP, LEVEL_MAIN }, { "VI", "VOLUME", SIMPLE, LEVEL_MAIN }, { "IP", "ISSUE", SIMPLE, LEVEL_MAIN }, { "DP", "", DATE, LEVEL_MAIN }, /* date published? */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "PG", "PAGES", PAGES, LEVEL_MAIN }, { "LID", "DOI", DOI, LEVEL_MAIN }, /* linking ID? -- can be DOI/PII */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "FAU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AU", "", SKIP, LEVEL_MAIN }, { "AD", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "GR", "", SKIP, LEVEL_MAIN }, { "DEP", "", SKIP, LEVEL_MAIN }, /* a date */ { "PL", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Publisher location */ { "TA", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* Journal title abbreviation */ { "JT", "TITLE", SIMPLE, LEVEL_HOST }, /* Journal title */ { "JID", "", SKIP, LEVEL_HOST }, /* Journal ID? */ { "SB", "", SKIP, LEVEL_MAIN }, { "MH", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "OT", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "PMC", "PMC", SIMPLE, LEVEL_MAIN }, { "OID", "", SKIP, LEVEL_MAIN }, { "EDAT", "", SKIP, LEVEL_MAIN }, { "MHDA", "", SKIP, LEVEL_MAIN }, { "CRDT", "", SKIP, LEVEL_MAIN }, { "PHST", "", SKIP, LEVEL_MAIN }, /* Publication history? */ { "AID", "DOI", DOI, LEVEL_MAIN }, /* Article ID? -- can be DOI/PII */ { "PST", "", SKIP, LEVEL_MAIN }, { "SO", "", SKIP, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants nbib_all[] = { REFTYPE( "Journal article", article ), REFTYPE( "News", article ), }; int nbib_nall = sizeof( nbib_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/nbibtypes.c0000755000000000000000000000623700000000000016231 0ustar0000000000000000/* * nbibtypes.c * * Copyright (c) Chris Putnam 2016-2018 * * Program and source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" static lookups article[] = { { "PMID", "PMID", SIMPLE, LEVEL_MAIN }, { "OWN", "", SKIP, LEVEL_MAIN }, { "STAT", "", SKIP, LEVEL_MAIN }, { "DA", "", SKIP, LEVEL_MAIN }, { "DCOM", "", SKIP, LEVEL_MAIN }, { "LR", "", SKIP, LEVEL_MAIN }, { "IS", "", SKIP, LEVEL_MAIN }, { "VI", "VOLUME", SIMPLE, LEVEL_MAIN }, { "IP", "ISSUE", SIMPLE, LEVEL_MAIN }, { "DP", "", DATE, LEVEL_MAIN }, /* date published? */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, { "PG", "PAGES", PAGES, LEVEL_MAIN }, { "LID", "DOI", DOI, LEVEL_MAIN }, /* linking ID? -- can be DOI/PII */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, { "FAU", "AUTHOR", PERSON, LEVEL_MAIN }, { "AU", "", SKIP, LEVEL_MAIN }, { "AD", "ADDRESS:AUTHOR", SIMPLE, LEVEL_MAIN }, { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, { "GR", "", SKIP, LEVEL_MAIN }, { "DEP", "", SKIP, LEVEL_MAIN }, /* a date */ { "PL", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Publisher location */ { "TA", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* Journal title abbreviation */ { "JT", "TITLE", SIMPLE, LEVEL_HOST }, /* Journal title */ { "JID", "", SKIP, LEVEL_HOST }, /* Journal ID? */ { "SB", "", SKIP, LEVEL_MAIN }, { "MH", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "OT", "KEYWORD", SIMPLE, LEVEL_MAIN }, { "PMC", "PMC", SIMPLE, LEVEL_MAIN }, { "OID", "", SKIP, LEVEL_MAIN }, { "EDAT", "", SKIP, LEVEL_MAIN }, { "MHDA", "", SKIP, LEVEL_MAIN }, { "CRDT", "", SKIP, LEVEL_MAIN }, { "PHST", "", SKIP, LEVEL_MAIN }, /* Publication history? */ { "AID", "DOI", DOI, LEVEL_MAIN }, /* Article ID? -- can be DOI/PII */ { "PST", "", SKIP, LEVEL_MAIN }, { "SO", "", SKIP, LEVEL_MAIN }, { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants nbib_all[] = { REFTYPE( "Journal article", article ), REFTYPE( "News", article ), }; int nbib_nall = sizeof( nbib_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/notes.c0000644000000000000000000000471100000000000015352 0ustar0000000000000000/* * notes.c * * Copyright (c) Chris Putnam 2016-2018 * * Program and source code released under the GPL version 2 * */ #include #include "url.h" #include "notes.h" /* * notes are mostly directly copies; however, lots of formats hide * URLs/DOIs in the notes fields. For example: * * For RIS, Oxford Journals hides DOI in the N1 field. * For Endnote, Wiley hides DOI in the %1 field. * etc. */ typedef struct url_t { char *prefix; char *tag; int offset; } url_t; static void notes_added_url( fields *bibout, str *invalue, int level, int *ok ) { url_t prefixes[] = { { "arXiv:", "ARXIV", 6 }, { "http://arxiv.org/abs/", "ARXIV", 21 }, { "jstor:", "JSTOR", 6 }, { "http://www.jstor.org/stable/", "JSTOR", 28 }, { "medline:", "MEDLINE", 8 }, { "pubmed:", "PMID", 7 }, { "http://www.ncbi.nlm.nih.gov/pubmed/", "PMID", 35 }, { "http://www.ncbi.nlm.nih.gov/pmc/articles/", "PMC", 41 }, { "http://dx.doi.org/", "DOI", 19 }, { "isi:", "ISIREFNUM", 4 }, }; int nprefixes = sizeof( prefixes ) / sizeof( prefixes[0] ); char *p = invalue->data; char *tag = "URL"; int fstatus; int i; /* bibtex/biblatex-specific */ if ( !strncasecmp( p, "\\urllink", 8 ) ) p += 8; if ( !strncasecmp( p, "\\url", 4 ) ) p += 4; for ( i=0; idata ); if ( doi != -1 ) { fstatus = fields_add( bibout, "DOI", &(invalue->data[doi]), level ); if ( fstatus != FIELDS_OK ) *ok = 0; return 1; } else return 0; } int notes_add( fields *bibout, str *invalue, int level ) { int fstatus, done = 0, ok = 1; if ( !is_embedded_link( invalue->data ) ) { fstatus = fields_add( bibout, "NOTES", invalue->data, level ); if ( fstatus != FIELDS_OK ) ok = 0; } else { done = notes_added_doi( bibout, invalue, level, &ok ); if ( !done ) notes_added_url( bibout, invalue, level, &ok ); } return ok; } hs-bibutils-6.7.0.0/bibutils/notes.c0000755000000000000000000000471100000000000015355 0ustar0000000000000000/* * notes.c * * Copyright (c) Chris Putnam 2016-2018 * * Program and source code released under the GPL version 2 * */ #include #include "url.h" #include "notes.h" /* * notes are mostly directly copies; however, lots of formats hide * URLs/DOIs in the notes fields. For example: * * For RIS, Oxford Journals hides DOI in the N1 field. * For Endnote, Wiley hides DOI in the %1 field. * etc. */ typedef struct url_t { char *prefix; char *tag; int offset; } url_t; static void notes_added_url( fields *bibout, str *invalue, int level, int *ok ) { url_t prefixes[] = { { "arXiv:", "ARXIV", 6 }, { "http://arxiv.org/abs/", "ARXIV", 21 }, { "jstor:", "JSTOR", 6 }, { "http://www.jstor.org/stable/", "JSTOR", 28 }, { "medline:", "MEDLINE", 8 }, { "pubmed:", "PMID", 7 }, { "http://www.ncbi.nlm.nih.gov/pubmed/", "PMID", 35 }, { "http://www.ncbi.nlm.nih.gov/pmc/articles/", "PMC", 41 }, { "http://dx.doi.org/", "DOI", 19 }, { "isi:", "ISIREFNUM", 4 }, }; int nprefixes = sizeof( prefixes ) / sizeof( prefixes[0] ); char *p = invalue->data; char *tag = "URL"; int fstatus; int i; /* bibtex/biblatex-specific */ if ( !strncasecmp( p, "\\urllink", 8 ) ) p += 8; if ( !strncasecmp( p, "\\url", 4 ) ) p += 4; for ( i=0; idata ); if ( doi != -1 ) { fstatus = fields_add( bibout, "DOI", &(invalue->data[doi]), level ); if ( fstatus != FIELDS_OK ) *ok = 0; return 1; } else return 0; } int notes_add( fields *bibout, str *invalue, int level ) { int fstatus, done = 0, ok = 1; if ( !is_embedded_link( invalue->data ) ) { fstatus = fields_add( bibout, "NOTES", invalue->data, level ); if ( fstatus != FIELDS_OK ) ok = 0; } else { done = notes_added_doi( bibout, invalue, level, &ok ); if ( !done ) notes_added_url( bibout, invalue, level, &ok ); } return ok; } hs-bibutils-6.7.0.0/bibutils/notes.h0000755000000000000000000000035600000000000015363 0ustar0000000000000000/* * notes.h * * Copyright (c) Chris Putnam 2016-2018 * * Source code released under the GPL version 2 * */ #ifndef NOTES_H #define NOTES_H #include "bibutils.h" int notes_add( fields *bibout, str *invalue, int level ); #endif hs-bibutils-6.7.0.0/bibutils/pages.c0000644000000000000000000000311600000000000015317 0ustar0000000000000000/* * pages.c * * Copyright (c) Chris Putnam 2016-2018 * * Program and source code released under GPL verison 2 */ #include #include #include #include "is_ws.h" #include "utf8.h" #include "pages.h" /* extract_range() * * Handle input strings like: * * "1-15" * " 1 - 15 " * " 1000--- 1500" * " 1 <> 10" * " 107 111" */ static void extract_range( str *input, str *begin, str *end ) { /* -30 is the first character of a UTF8 em-dash and en-dash */ const char terminators[] = { ' ', '-', '\t', '\r', '\n', -30, '\0' }; char *p; str_empty( begin ); str_empty( end ); if ( input->len==0 ) return; p = skip_ws( input->data ); while ( *p && !strchr( terminators, *p ) ) str_addchar( begin, *p++ ); p = skip_ws( p ); while ( *p=='-' ) p++; while ( utf8_is_emdash( p ) ) p+=3; while ( utf8_is_endash( p ) ) p+=3; p = skip_ws( p ); while ( *p && !strchr( terminators, *p ) ) str_addchar( end, *p++ ); } int pages_add( fields *bibout, char *outtag, str *invalue, int level ) { int fstatus, status = 1; str start, stop; str_init( &start ); str_init( &stop ); extract_range( invalue, &start, &stop ); if ( str_memerr( &start ) || str_memerr( &stop ) ) { status = 0; goto out; } if ( start.len>0 ) { fstatus = fields_add( bibout, "PAGES:START", start.data, level ); if ( fstatus!=FIELDS_OK ) { status = 0; goto out; } } if ( stop.len>0 ) { fstatus = fields_add( bibout, "PAGES:STOP", stop.data, level ); if ( fstatus!=FIELDS_OK ) status = 0; } out: str_free( &start ); str_free( &stop ); return status; } hs-bibutils-6.7.0.0/bibutils/pages.c0000755000000000000000000000311600000000000015322 0ustar0000000000000000/* * pages.c * * Copyright (c) Chris Putnam 2016-2018 * * Program and source code released under GPL verison 2 */ #include #include #include #include "is_ws.h" #include "utf8.h" #include "pages.h" /* extract_range() * * Handle input strings like: * * "1-15" * " 1 - 15 " * " 1000--- 1500" * " 1 <> 10" * " 107 111" */ static void extract_range( str *input, str *begin, str *end ) { /* -30 is the first character of a UTF8 em-dash and en-dash */ const char terminators[] = { ' ', '-', '\t', '\r', '\n', -30, '\0' }; char *p; str_empty( begin ); str_empty( end ); if ( input->len==0 ) return; p = skip_ws( input->data ); while ( *p && !strchr( terminators, *p ) ) str_addchar( begin, *p++ ); p = skip_ws( p ); while ( *p=='-' ) p++; while ( utf8_is_emdash( p ) ) p+=3; while ( utf8_is_endash( p ) ) p+=3; p = skip_ws( p ); while ( *p && !strchr( terminators, *p ) ) str_addchar( end, *p++ ); } int pages_add( fields *bibout, char *outtag, str *invalue, int level ) { int fstatus, status = 1; str start, stop; str_init( &start ); str_init( &stop ); extract_range( invalue, &start, &stop ); if ( str_memerr( &start ) || str_memerr( &stop ) ) { status = 0; goto out; } if ( start.len>0 ) { fstatus = fields_add( bibout, "PAGES:START", start.data, level ); if ( fstatus!=FIELDS_OK ) { status = 0; goto out; } } if ( stop.len>0 ) { fstatus = fields_add( bibout, "PAGES:STOP", stop.data, level ); if ( fstatus!=FIELDS_OK ) status = 0; } out: str_free( &start ); str_free( &stop ); return status; } hs-bibutils-6.7.0.0/bibutils/pages.h0000755000000000000000000000040100000000000015321 0ustar0000000000000000/* * pages.h * * Copyright (c) Chris Putnam 2016-2018 * * Program and source code released under the GPL version 2 */ #ifndef PAGES_H #define PAGES_H #include "bibl.h" int pages_add( fields *bibout, char *outtag, str *invalue, int level ); #endif hs-bibutils-6.7.0.0/bibutils/reftypes.c0000644000000000000000000000312600000000000016062 0ustar0000000000000000/* * reftypes.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" int get_reftype( char *p, long refnum, char *progname, variants *all, int nall, char *tag, int *is_default, int chattiness ) { int i; p = skip_ws( p ); *is_default = 0; for ( i=0; intags; ++i ) /* if ( !strcasecmp( ((all[reftype]).tags[i]).oldstr, oldtag ) )*/ if ( !strcasecmp( (v->tags[i]).oldstr, oldtag ) ) return i; return -1; } /* translate_oldtag() */ int translate_oldtag( char *oldtag, int reftype, variants all[], int nall, int *processingtype, int *level, char **newtag ) { int n; n = process_findoldtag( oldtag, reftype, all, nall ); if ( n!=-1 ) { *processingtype = ((all[reftype]).tags[n]).processingtype; *level = ((all[reftype]).tags[n]).level; *newtag = ((all[reftype]).tags[n]).newstr; return 1; } return 0; } hs-bibutils-6.7.0.0/bibutils/reftypes.c0000755000000000000000000000312600000000000016065 0ustar0000000000000000/* * reftypes.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "fields.h" #include "reftypes.h" int get_reftype( char *p, long refnum, char *progname, variants *all, int nall, char *tag, int *is_default, int chattiness ) { int i; p = skip_ws( p ); *is_default = 0; for ( i=0; intags; ++i ) /* if ( !strcasecmp( ((all[reftype]).tags[i]).oldstr, oldtag ) )*/ if ( !strcasecmp( (v->tags[i]).oldstr, oldtag ) ) return i; return -1; } /* translate_oldtag() */ int translate_oldtag( char *oldtag, int reftype, variants all[], int nall, int *processingtype, int *level, char **newtag ) { int n; n = process_findoldtag( oldtag, reftype, all, nall ); if ( n!=-1 ) { *processingtype = ((all[reftype]).tags[n]).processingtype; *level = ((all[reftype]).tags[n]).level; *newtag = ((all[reftype]).tags[n]).newstr; return 1; } return 0; } hs-bibutils-6.7.0.0/bibutils/reftypes.h0000755000000000000000000000335700000000000016100 0ustar0000000000000000/* * reftypes.h * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #ifndef REFTYPES_H #define REFTYPES_H #define REFTYPE_CHATTY (0) #define REFTYPE_SILENT (1) /* Reftypes handled by core code */ #define ALWAYS (0) #define DEFAULT (1) #define SKIP (2) /* Reftypes to be handled by converters */ #define SIMPLE (3) #define TYPE (4) #define PERSON (5) #define DATE (6) #define PAGES (7) #define SERIALNO (8) #define TITLE (9) #define NOTES (10) #define DOI (11) #define HOWPUBLISHED (12) #define LINKEDFILE (13) #define KEYWORD (14) #define URL (15) #define GENRE (16) #define BT_SENTE (17) /* Bibtex 'Sente' */ #define BT_EPRINT (18) /* Bibtex 'Eprint' */ #define BT_ORG (19) /* Bibtex Organization */ #define BLT_THESIS_TYPE (20) /* Biblatex Thesis Type */ #define BLT_SCHOOL (21) /* Biblatex School */ #define BLT_EDITOR (22) /* Biblatex Editor */ #define BLT_SUBTYPE (23) /* Biblatex entrysubtype */ #define BLT_SKIP (24) /* Biblatex Skip Entry */ #define EPRINT (25) #define NUM_REFTYPES (26) typedef struct { char *oldstr; char *newstr; int processingtype; int level; } lookups; typedef struct { char type[25]; lookups *tags; int ntags; } variants; int get_reftype( char *q, long refnum, char *progname, variants *all, int nall, char *tag, int *is_default, int chattiness ); int process_findoldtag( char *oldtag, int reftype, variants all[], int nall ); int translate_oldtag( char *oldtag, int reftype, variants all[], int nall, int *processingtype, int *level, char **newtag ); #endif hs-bibutils-6.7.0.0/bibutils/risin.c0000644000000000000000000003471400000000000015354 0ustar0000000000000000/* * risin.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "utf8.h" #include "serialno.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants ris_all[]; extern int ris_nall; /***************************************************** PUBLIC: void risin_initparams() *****************************************************/ static int risin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int risin_processf( fields *risin, char *p, char *filename, long nref, param *pm ); static int risin_typef( fields *risin, char *filename, int nref, param *p ); static int risin_convertf( fields *risin, fields *info, int reftype, param *p ); void risin_initparams( param *p, const char *progname ) { p->readformat = BIBL_RISIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = risin_readf; p->processf = risin_processf; p->cleanf = NULL; p->typef = risin_typef; p->convertf = risin_convertf; p->all = ris_all; p->nall = ris_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int risin_readf() *****************************************************/ /* RIS definition of a tag is strict: character 1 = uppercase alphabetic character character 2 = uppercase alphabetic character or digit character 3 = space (ansi 32) character 4 = space (ansi 32) character 5 = dash (ansi 45) character 6 = space (ansi 32) some sources don't have a space at character 6 if there is no data (such as "ER -" records). Handle this. www.omicsonline.org mangles the RIS specification and puts _three_ spaces before the dash. Handle this too. */ static int is_ris_tag( char *buf ) { if (! (buf[0]>='A' && buf[0]<='Z') ) return 0; if (! (((buf[1]>='A' && buf[1]<='Z'))||(buf[1]>='0'&&buf[1]<='9')) ) return 0; if (buf[2]!=' ') return 0; if (buf[3]!=' ') return 0; /*...RIS fits specifications with two spaces */ if (buf[4]=='-') { if ( buf[5]==' ' || buf[5]=='\0' || buf[5]=='\n' || buf[5]=='\r' ) return 1; } /* ...extra space in tag? */ else if (buf[4]==' ') { if ( buf[5]=='-' && ( buf[6]==' ' || buf[6]=='\0' || buf[6]=='\n' || buf[6]=='\r' ) ) return 1; } return 0; } static int is_ris_start_tag( char *p ) { /* ...TY tag that fits specifications */ if ( !strncmp( p, "TY - ", 6 ) ) return 1; /* ...TY tag with an extra space? */ if ( !strncmp( p, "TY - ", 7 ) ) return 1; return 0; } static int is_ris_end_tag( char *p ) { /* ...ER tag that fits specifications */ if ( !strncmp( p, "ER -", 5 ) ) return 1; /* ...ER tag with an extra space? */ if ( !strncmp( p, "ER -", 6 ) ) return 1; return 0; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int risin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0, readtoofar = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( str_is_empty( line ) ) continue; p = &( line->data[0] ); if ( utf8_is_bom( p ) ) { *fcharset = CHARSET_UNICODE; p += 3; } /* References are bounded by tags 'TY - ' && 'ER - ' */ if ( is_ris_start_tag( p ) ) { if ( !inref ) inref = 1; else { /* we've read too far.... */ readtoofar = 1; inref = 0; } } if ( is_ris_tag( p ) ) { if ( !inref ) { fprintf(stderr,"Warning. Tagged line not " "in properly started reference.\n"); fprintf(stderr,"Ignored: '%s'\n", p ); } else if ( is_ris_end_tag( p ) ) { inref = 0; } else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } } /* not a tag, but we'll append to last values ...*/ else if ( inref && !is_ris_end_tag( p ) ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } if ( !inref && reference->len ) haveref = 1; if ( !readtoofar ) str_empty( line ); } if ( inref ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int risin_processf() *****************************************************/ static char* process_untagged_line( str *value, char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static char* process_tagged_line( str *tag, str *value, char *p ) { int i = 0; while ( i<6 && *p && *p!='\n' && *p!='\r' ) { if ( i<2 ) str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); str_trimendingws( value ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static int merge_tag_value( fields *risin, str *tag, str *value, int *tag_added ) { str *oldval; int n, status; if ( str_has_value( value ) ) { if ( *tag_added==1 ) { n = fields_num( risin ); if ( n>0 ) { oldval = fields_value( risin, n-1, FIELDS_STRP ); str_addchar( oldval, ' ' ); str_strcat( oldval, value ); if ( str_memerr( oldval ) ) return BIBL_ERR_MEMERR; } } else { status = fields_add( risin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } } return BIBL_OK; } static int add_tag_value( fields *risin, str *tag, str *value, int *tag_added ) { int status; if ( str_has_value( value ) ) { status = fields_add( risin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } else { *tag_added = 0; } return BIBL_OK; } static int risin_processf( fields *risin, char *p, char *filename, long nref, param *pm ) { int status, tag_added = 0, ret = 1; str tag, value; strs_init( &tag, &value, NULL ); while ( *p ) { /* ...tag, add entry */ if ( is_ris_tag( p ) ) { str_empty( &tag ); str_empty( &value ); p = process_tagged_line( &tag, &value, p ); status = add_tag_value( risin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } /* ...no tag, merge with previous line */ else { str_empty( &value ); p = process_untagged_line( &value, p ); status = merge_tag_value( risin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } } out: strs_free( &tag, &value, NULL ); return ret; } /***************************************************** PUBLIC: int risin_typef() *****************************************************/ static int risin_typef( fields *risin, char *filename, int nref, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename = ""; ntypename = fields_find( risin, "TY", LEVEL_MAIN ); nrefname = fields_find( risin, "ID", LEVEL_MAIN ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( risin, ntypename, FIELDS_CHRP_NOUSE ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( risin, nrefname, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int risin_convertf() *****************************************************/ static int is_uri_file_scheme( char *p ) { if ( !strncmp( p, "file:", 5 ) ) return 5; return 0; } static int risin_linkedfile( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, m; char *p; /* if URL is file:///path/to/xyz.pdf, only store "///path/to/xyz.pdf" */ m = is_uri_file_scheme( str_cstr( invalue ) ); if ( m ) { /* skip past "file:" and store only actual path */ p = invalue->data + m; fstatus = fields_add( bibout, outtag, p, level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* if URL is http:, ftp:, etc. store as a URL */ m = is_uri_remote_scheme( str_cstr( invalue ) ); if ( m!=-1 ) { fstatus = fields_add( bibout, "URL", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* badly formed, RIS wants URI, but store value anyway */ fstatus = fields_add( bibout, outtag, str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* scopus puts DOI in the DO or DI tag, but it needs cleaning */ static int risin_doi( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, doi; doi = is_doi( str_cstr( invalue ) ); if ( doi!=-1 ) { fstatus = fields_add( bibout, "DOI", &(invalue->data[doi]), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int risin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *p = invalue->data; int part, status; str date; part = ( !strncasecmp( outtag, "PART", 4 ) ); str_init( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:YEAR", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:YEAR", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:MONTH", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:MONTH", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:DAY", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:DAY", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:OTHER", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:OTHER", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &date ); return BIBL_OK; } static int risin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int i, begin, end, ok, status = BIBL_OK; slist tokens; str name; str_init( &name ); slist_init( &tokens ); status = slist_tokenize( &tokens, invalue, " \t\r\n", 1 ); if ( status!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto out; } begin = 0; while ( begin < tokens.n ) { end = begin + 1; while ( end < tokens.n && strcasecmp( slist_cstr( &tokens, end ), "and" ) ) end++; str_empty( &name ); for ( i=begin; ibegin ) str_addchar( &name, ' ' ); str_strcat( &name, slist_str( &tokens, i ) ); } ok = name_add( bibout, outtag, str_cstr( &name ), level, &(pm->asis), &(pm->corps) ); if ( !ok ) { status = BIBL_ERR_MEMERR; goto out; } begin = end + 1; /* Handle repeated 'and' errors */ while ( begin < tokens.n && !strcasecmp( slist_cstr( &tokens, begin ), "and" ) ) begin++; } out: str_free( &name ); slist_free( &tokens ); return status; } /* look for thesis-type hint */ static int risin_thesis_hints( fields *bibin, int reftype, param *p, fields *bibout ) { int i, nfields, fstatus; char *tag, *value; if ( strcasecmp( p->all[reftype].type, "THES" ) ) return BIBL_OK; nfields = fields_num( bibin ); for ( i=0; iverbose && strcmp( tag, "TY" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify RIS tag '%s'\n", tag ); } } static int risin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ SERIALNO ] = generic_serialno, [ NOTES ] = generic_notes, [ URL ] = generic_url, [ GENRE ] = generic_genre, [ PERSON ] = risin_person, [ DATE ] = risin_date, [ DOI ] = risin_doi, [ LINKEDFILE ] = risin_linkedfile, }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; idata, reftype, p->all, p->nall, &process, &level, &outtag ) ) { risin_report_notag( p, intag->data ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status == BIBL_OK ) status = risin_thesis_hints( bibin, reftype, p, bibout ); if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.7.0.0/bibutils/risin.c0000755000000000000000000003471400000000000015357 0ustar0000000000000000/* * risin.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "str.h" #include "str_conv.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "utf8.h" #include "serialno.h" #include "reftypes.h" #include "bibformats.h" #include "generic.h" extern variants ris_all[]; extern int ris_nall; /***************************************************** PUBLIC: void risin_initparams() *****************************************************/ static int risin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int risin_processf( fields *risin, char *p, char *filename, long nref, param *pm ); static int risin_typef( fields *risin, char *filename, int nref, param *p ); static int risin_convertf( fields *risin, fields *info, int reftype, param *p ); void risin_initparams( param *p, const char *progname ) { p->readformat = BIBL_RISIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 0; p->utf8in = 0; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = 0; p->readf = risin_readf; p->processf = risin_processf; p->cleanf = NULL; p->typef = risin_typef; p->convertf = risin_convertf; p->all = ris_all; p->nall = ris_nall; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int risin_readf() *****************************************************/ /* RIS definition of a tag is strict: character 1 = uppercase alphabetic character character 2 = uppercase alphabetic character or digit character 3 = space (ansi 32) character 4 = space (ansi 32) character 5 = dash (ansi 45) character 6 = space (ansi 32) some sources don't have a space at character 6 if there is no data (such as "ER -" records). Handle this. www.omicsonline.org mangles the RIS specification and puts _three_ spaces before the dash. Handle this too. */ static int is_ris_tag( char *buf ) { if (! (buf[0]>='A' && buf[0]<='Z') ) return 0; if (! (((buf[1]>='A' && buf[1]<='Z'))||(buf[1]>='0'&&buf[1]<='9')) ) return 0; if (buf[2]!=' ') return 0; if (buf[3]!=' ') return 0; /*...RIS fits specifications with two spaces */ if (buf[4]=='-') { if ( buf[5]==' ' || buf[5]=='\0' || buf[5]=='\n' || buf[5]=='\r' ) return 1; } /* ...extra space in tag? */ else if (buf[4]==' ') { if ( buf[5]=='-' && ( buf[6]==' ' || buf[6]=='\0' || buf[6]=='\n' || buf[6]=='\r' ) ) return 1; } return 0; } static int is_ris_start_tag( char *p ) { /* ...TY tag that fits specifications */ if ( !strncmp( p, "TY - ", 6 ) ) return 1; /* ...TY tag with an extra space? */ if ( !strncmp( p, "TY - ", 7 ) ) return 1; return 0; } static int is_ris_end_tag( char *p ) { /* ...ER tag that fits specifications */ if ( !strncmp( p, "ER -", 5 ) ) return 1; /* ...ER tag with an extra space? */ if ( !strncmp( p, "ER -", 6 ) ) return 1; return 0; } static int readmore( FILE *fp, char *buf, int bufsize, int *bufpos, str *line ) { if ( line->len ) return 1; else return str_fget( fp, buf, bufsize, bufpos, line ); } static int risin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { int haveref = 0, inref = 0, readtoofar = 0; char *p; *fcharset = CHARSET_UNKNOWN; while ( !haveref && readmore( fp, buf, bufsize, bufpos, line ) ) { if ( str_is_empty( line ) ) continue; p = &( line->data[0] ); if ( utf8_is_bom( p ) ) { *fcharset = CHARSET_UNICODE; p += 3; } /* References are bounded by tags 'TY - ' && 'ER - ' */ if ( is_ris_start_tag( p ) ) { if ( !inref ) inref = 1; else { /* we've read too far.... */ readtoofar = 1; inref = 0; } } if ( is_ris_tag( p ) ) { if ( !inref ) { fprintf(stderr,"Warning. Tagged line not " "in properly started reference.\n"); fprintf(stderr,"Ignored: '%s'\n", p ); } else if ( is_ris_end_tag( p ) ) { inref = 0; } else { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } } /* not a tag, but we'll append to last values ...*/ else if ( inref && !is_ris_end_tag( p ) ) { str_addchar( reference, '\n' ); str_strcatc( reference, p ); } if ( !inref && reference->len ) haveref = 1; if ( !readtoofar ) str_empty( line ); } if ( inref ) haveref = 1; return haveref; } /***************************************************** PUBLIC: int risin_processf() *****************************************************/ static char* process_untagged_line( str *value, char *p ) { while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); while ( *p=='\r' || *p=='\n' ) p++; return p; } static char* process_tagged_line( str *tag, str *value, char *p ) { int i = 0; while ( i<6 && *p && *p!='\n' && *p!='\r' ) { if ( i<2 ) str_addchar( tag, *p ); p++; i++; } while ( *p==' ' || *p=='\t' ) p++; while ( *p && *p!='\r' && *p!='\n' ) str_addchar( value, *p++ ); str_trimendingws( value ); while ( *p=='\n' || *p=='\r' ) p++; return p; } static int merge_tag_value( fields *risin, str *tag, str *value, int *tag_added ) { str *oldval; int n, status; if ( str_has_value( value ) ) { if ( *tag_added==1 ) { n = fields_num( risin ); if ( n>0 ) { oldval = fields_value( risin, n-1, FIELDS_STRP ); str_addchar( oldval, ' ' ); str_strcat( oldval, value ); if ( str_memerr( oldval ) ) return BIBL_ERR_MEMERR; } } else { status = fields_add( risin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } } return BIBL_OK; } static int add_tag_value( fields *risin, str *tag, str *value, int *tag_added ) { int status; if ( str_has_value( value ) ) { status = fields_add( risin, str_cstr( tag ), str_cstr( value ), 0 ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; *tag_added = 1; } else { *tag_added = 0; } return BIBL_OK; } static int risin_processf( fields *risin, char *p, char *filename, long nref, param *pm ) { int status, tag_added = 0, ret = 1; str tag, value; strs_init( &tag, &value, NULL ); while ( *p ) { /* ...tag, add entry */ if ( is_ris_tag( p ) ) { str_empty( &tag ); str_empty( &value ); p = process_tagged_line( &tag, &value, p ); status = add_tag_value( risin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } /* ...no tag, merge with previous line */ else { str_empty( &value ); p = process_untagged_line( &value, p ); status = merge_tag_value( risin, &tag, &value, &tag_added ); if ( status!=BIBL_OK ) { ret = 0; goto out; } } } out: strs_free( &tag, &value, NULL ); return ret; } /***************************************************** PUBLIC: int risin_typef() *****************************************************/ static int risin_typef( fields *risin, char *filename, int nref, param *p ) { int ntypename, nrefname, is_default; char *refname = "", *typename = ""; ntypename = fields_find( risin, "TY", LEVEL_MAIN ); nrefname = fields_find( risin, "ID", LEVEL_MAIN ); if ( ntypename!=FIELDS_NOTFOUND ) typename = fields_value( risin, ntypename, FIELDS_CHRP_NOUSE ); if ( nrefname!=FIELDS_NOTFOUND ) refname = fields_value( risin, nrefname, FIELDS_CHRP_NOUSE ); return get_reftype( typename, nref, p->progname, p->all, p->nall, refname, &is_default, REFTYPE_CHATTY ); } /***************************************************** PUBLIC: int risin_convertf() *****************************************************/ static int is_uri_file_scheme( char *p ) { if ( !strncmp( p, "file:", 5 ) ) return 5; return 0; } static int risin_linkedfile( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, m; char *p; /* if URL is file:///path/to/xyz.pdf, only store "///path/to/xyz.pdf" */ m = is_uri_file_scheme( str_cstr( invalue ) ); if ( m ) { /* skip past "file:" and store only actual path */ p = invalue->data + m; fstatus = fields_add( bibout, outtag, p, level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* if URL is http:, ftp:, etc. store as a URL */ m = is_uri_remote_scheme( str_cstr( invalue ) ); if ( m!=-1 ) { fstatus = fields_add( bibout, "URL", str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* badly formed, RIS wants URI, but store value anyway */ fstatus = fields_add( bibout, outtag, str_cstr( invalue ), level ); if ( fstatus==FIELDS_OK ) return BIBL_OK; else return BIBL_ERR_MEMERR; } /* scopus puts DOI in the DO or DI tag, but it needs cleaning */ static int risin_doi( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int fstatus, doi; doi = is_doi( str_cstr( invalue ) ); if ( doi!=-1 ) { fstatus = fields_add( bibout, "DOI", &(invalue->data[doi]), level ); if ( fstatus!=FIELDS_OK ) return BIBL_ERR_MEMERR; } return BIBL_OK; } static int risin_date( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { char *p = invalue->data; int part, status; str date; part = ( !strncasecmp( outtag, "PART", 4 ) ); str_init( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:YEAR", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:YEAR", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:MONTH", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:MONTH", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p && *p!='/' ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( *p=='/' ) p++; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:DAY", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:DAY", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_empty( &date ); while ( *p ) str_addchar( &date, *p++ ); if ( str_memerr( &date ) ) return BIBL_ERR_MEMERR; if ( str_has_value( &date ) ) { if ( part ) status = fields_add( bibout, "PARTDATE:OTHER", str_cstr( &date ), level ); else status = fields_add( bibout, "DATE:OTHER", str_cstr( &date ), level ); if ( status!=FIELDS_OK ) return BIBL_ERR_MEMERR; } str_free( &date ); return BIBL_OK; } static int risin_person( fields *bibin, int n, str *intag, str *invalue, int level, param *pm, char *outtag, fields *bibout ) { int i, begin, end, ok, status = BIBL_OK; slist tokens; str name; str_init( &name ); slist_init( &tokens ); status = slist_tokenize( &tokens, invalue, " \t\r\n", 1 ); if ( status!=SLIST_OK ) { status = BIBL_ERR_MEMERR; goto out; } begin = 0; while ( begin < tokens.n ) { end = begin + 1; while ( end < tokens.n && strcasecmp( slist_cstr( &tokens, end ), "and" ) ) end++; str_empty( &name ); for ( i=begin; ibegin ) str_addchar( &name, ' ' ); str_strcat( &name, slist_str( &tokens, i ) ); } ok = name_add( bibout, outtag, str_cstr( &name ), level, &(pm->asis), &(pm->corps) ); if ( !ok ) { status = BIBL_ERR_MEMERR; goto out; } begin = end + 1; /* Handle repeated 'and' errors */ while ( begin < tokens.n && !strcasecmp( slist_cstr( &tokens, begin ), "and" ) ) begin++; } out: str_free( &name ); slist_free( &tokens ); return status; } /* look for thesis-type hint */ static int risin_thesis_hints( fields *bibin, int reftype, param *p, fields *bibout ) { int i, nfields, fstatus; char *tag, *value; if ( strcasecmp( p->all[reftype].type, "THES" ) ) return BIBL_OK; nfields = fields_num( bibin ); for ( i=0; iverbose && strcmp( tag, "TY" ) ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Did not identify RIS tag '%s'\n", tag ); } } static int risin_convertf( fields *bibin, fields *bibout, int reftype, param *p ) { static int (*convertfns[NUM_REFTYPES])(fields *, int, str *, str *, int, param *, char *, fields *) = { [ 0 ... NUM_REFTYPES-1 ] = generic_null, [ SIMPLE ] = generic_simple, [ TITLE ] = generic_title, [ SERIALNO ] = generic_serialno, [ NOTES ] = generic_notes, [ URL ] = generic_url, [ GENRE ] = generic_genre, [ PERSON ] = risin_person, [ DATE ] = risin_date, [ DOI ] = risin_doi, [ LINKEDFILE ] = risin_linkedfile, }; int process, level, i, nfields, status = BIBL_OK; str *intag, *invalue; char *outtag; nfields = fields_num( bibin ); for ( i=0; idata, reftype, p->all, p->nall, &process, &level, &outtag ) ) { risin_report_notag( p, intag->data ); continue; } invalue = fields_value( bibin, i, FIELDS_STRP ); status = convertfns[ process ] ( bibin, i, intag, invalue, level, p, outtag, bibout ); if ( status!=BIBL_OK ) return status; } if ( status == BIBL_OK ) status = risin_thesis_hints( bibin, reftype, p, bibout ); if ( status==BIBL_OK && p->verbose ) fields_report( bibout, stderr ); return status; } hs-bibutils-6.7.0.0/bibutils/risout.c0000644000000000000000000005520000000000000015546 0ustar0000000000000000/* * risout.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "bibformats.h" static int risout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); static void risout_writeheader( FILE *outptr, param *p ); void risout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_RISOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; if ( p->charsetout == BIBL_CHARSET_UNICODE ) { p->utf8out = p->utf8bom = 1; } p->headerf = risout_writeheader; p->footerf = NULL; p->writef = risout_write; } enum { TYPE_UNKNOWN = 0, TYPE_STD, /* standard/generic */ TYPE_ABSTRACT, /* abstract */ TYPE_ARTICLE, /* article */ TYPE_BOOK, /* book */ TYPE_CASE, /* case */ TYPE_INBOOK, /* chapter */ TYPE_CONF, /* conference */ TYPE_ELEC, /* electronic */ TYPE_HEAR, /* hearing */ TYPE_MAGARTICLE, /* magazine article */ TYPE_NEWSPAPER, /* newspaper */ TYPE_MPCT, /* mpct */ TYPE_PAMPHLET, /* pamphlet */ TYPE_PATENT, /* patent */ TYPE_PCOMM, /* personal communication */ TYPE_PROGRAM, /* program */ TYPE_REPORT, /* report */ TYPE_STATUTE, /* statute */ TYPE_THESIS, /* thesis */ TYPE_LICENTIATETHESIS, /* thesis */ TYPE_MASTERSTHESIS, /* thesis */ TYPE_PHDTHESIS, /* thesis */ TYPE_DIPLOMATHESIS, /* thesis */ TYPE_DOCTORALTHESIS, /* thesis */ TYPE_HABILITATIONTHESIS, /* thesis */ TYPE_MAP, /* map, cartographic data */ TYPE_UNPUBLISHED, /* unpublished */ NUM_TYPES }; static int type_is_element[ NUM_TYPES ] = { [ 0 ... NUM_TYPES-1 ] = 0, [ TYPE_ARTICLE ] = 1, [ TYPE_INBOOK ] = 1, [ TYPE_MAGARTICLE ] = 1, [ TYPE_NEWSPAPER ] = 1, [ TYPE_ABSTRACT ] = 1, [ TYPE_CONF ] = 1, }; static int type_uses_journal[ NUM_TYPES ] = { [ 0 ... NUM_TYPES-1 ] = 0, [ TYPE_ARTICLE ] = 1, [ TYPE_MAGARTICLE ] = 1, }; static void write_type( FILE *fp, int type ) { const char *typenames[ NUM_TYPES ] = { [ TYPE_UNKNOWN ] = "TYPE_UNKNOWN", [ TYPE_STD ] = "TYPE_STD", [ TYPE_ABSTRACT ] = "TYPE_ABSTRACT", [ TYPE_ARTICLE ] = "TYPE_ARTICLE", [ TYPE_BOOK ] = "TYPE_BOOK", [ TYPE_CASE ] = "TYPE_CASE", [ TYPE_INBOOK ] = "TYPE_INBOOK", [ TYPE_CONF ] = "TYPE_CONF", [ TYPE_ELEC ] = "TYPE_ELEC", [ TYPE_HEAR ] = "TYPE_HEAR", [ TYPE_MAGARTICLE ] = "TYPE_MAGARTICLE", [ TYPE_NEWSPAPER ] = "TYPE_NEWSPAPER", [ TYPE_MPCT ] = "TYPE_MPCT", [ TYPE_PAMPHLET ] = "TYPE_PAMPHLET", [ TYPE_PATENT ] = "TYPE_PATENT", [ TYPE_PCOMM ] = "TYPE_PCOMM", [ TYPE_PROGRAM ] = "TYPE_PROGRAM", [ TYPE_REPORT ] = "TYPE_REPORT", [ TYPE_STATUTE ] = "TYPE_STATUTE", [ TYPE_THESIS ] = "TYPE_THESIS", [ TYPE_LICENTIATETHESIS ] = "TYPE_LICENTIATETHESIS", [ TYPE_MASTERSTHESIS ] = "TYPE_MASTERSTHESIS", [ TYPE_PHDTHESIS ] = "TYPE_PHDTHESIS", [ TYPE_DIPLOMATHESIS ] = "TYPE_DIPLOMATHESIS", [ TYPE_DOCTORALTHESIS ] = "TYPE_DOCTORALTHESIS", [ TYPE_HABILITATIONTHESIS ] = "TYPE_HABILITATIONTHESIS", [ TYPE_MAP ] = "TYPE_MAP", [ TYPE_UNPUBLISHED ] = "TYPE_UNPUBLISHED", }; if ( type < 0 || type >= NUM_TYPES ) fprintf( fp, "Error - type not in enum" ); else fprintf( fp, "%s", typenames[ type ] ); } static void verbose_type_identified( char *element_type, param *p, int type ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from %s element: ", element_type ); write_type( stderr, type ); fprintf( stderr, "\n" ); } static void verbose_type_assignment( char *tag, char *value, param *p, int type ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from tag '%s' data '%s': ", tag, value ); write_type( stderr, type ); fprintf( stderr, "\n" ); } typedef struct match_type { char *name; int type; } match_type; /* Try to determine type of reference from * */ static int get_type_genre( fields *f, param *p ) { match_type match_genres[] = { { "academic journal", TYPE_ARTICLE }, { "article", TYPE_ARTICLE }, { "journal article", TYPE_ARTICLE }, { "magazine", TYPE_MAGARTICLE }, { "conference publication", TYPE_CONF }, { "newspaper", TYPE_NEWSPAPER }, { "legislation", TYPE_STATUTE }, { "communication", TYPE_PCOMM }, { "hearing", TYPE_HEAR }, { "electronic", TYPE_ELEC }, { "legal case and case notes", TYPE_CASE }, { "book chapter", TYPE_INBOOK }, { "Ph.D. thesis", TYPE_PHDTHESIS }, { "Licentiate thesis", TYPE_LICENTIATETHESIS }, { "Masters thesis", TYPE_MASTERSTHESIS }, { "Diploma thesis", TYPE_DIPLOMATHESIS }, { "Doctoral thesis", TYPE_DOCTORALTHESIS }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS }, { "report", TYPE_REPORT }, { "technical report", TYPE_REPORT }, { "abstract or summary", TYPE_ABSTRACT }, { "patent", TYPE_PATENT }, { "unpublished", TYPE_UNPUBLISHED }, { "manuscript", TYPE_UNPUBLISHED }, { "map", TYPE_MAP }, }; int nmatch_genres = sizeof( match_genres ) / sizeof( match_genres[0] ); char *tag, *value; int type, i, j; type = TYPE_UNKNOWN; for ( i=0; iverbose ) verbose_type_assignment( tag, value, p, type ); if ( type==TYPE_UNKNOWN ) { if ( !strcasecmp( value, "periodical" ) ) type = TYPE_ARTICLE; else if ( !strcasecmp( value, "thesis" ) ) type = TYPE_THESIS; else if ( !strcasecmp( value, "book" ) ) { if ( fields_level( f, i )==0 ) type=TYPE_BOOK; else type=TYPE_INBOOK; } else if ( !strcasecmp( value, "collection" ) ) { if ( fields_level( f, i )==0 ) type=TYPE_BOOK; else type=TYPE_INBOOK; } } } if ( p->verbose ) verbose_type_identified( "genre", p, type ); return type; } /* Try to determine type of reference from * */ static int get_type_resource( fields *f, param *p ) { match_type match_res[] = { { "software, multimedia", TYPE_PROGRAM }, { "cartographic", TYPE_MAP }, }; int nmatch_res = sizeof( match_res ) / sizeof( match_res[0] ); vplist_index i; int type, j; char *value; vplist a; type = TYPE_UNKNOWN; vplist_init( &a ); fields_findv_each( f, LEVEL_ANY, FIELDS_CHRP, &a, "RESOURCE" ); for ( i=0; iverbose ) verbose_type_assignment( "RESOURCE", value, p, type ); } if ( p->verbose ) verbose_type_identified( "resource", p, type ); vplist_free( &a ); return type; } /* Try to determine type of reference from and */ /* */ static int get_type_issuance( fields *f, param *p ) { int type = TYPE_UNKNOWN; int i, monographic = 0, monographic_level = 0; // int text = 0; for ( i=0; in; ++i ) { if ( !strcasecmp( (char *) fields_tag( f, i, FIELDS_CHRP_NOUSE ), "issuance" ) && !strcasecmp( (char *) fields_value( f, i, FIELDS_CHRP_NOUSE ), "MONOGRAPHIC" ) ){ monographic = 1; monographic_level = f->level[i]; } // if ( !strcasecmp( (char *) fields_tag( f, i, FIELDS_CHRP_NOUSE ), "typeOfResource" ) && // !strcasecmp( (char *) fields_value( f, i, FIELDS_CHRP_NOUSE ), "text" ) ) { // text = 1; // } } // if ( monographic && text ) { if ( monographic ) { if ( monographic_level==0 ) type=TYPE_BOOK; else if ( monographic_level>0 ) type=TYPE_INBOOK; } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from issuance/typeOfReference elements: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } return type; } static int get_type( fields *f, param *p ) { int type; type = get_type_genre( f, p ); if ( type==TYPE_UNKNOWN ) type = get_type_resource( f, p ); if ( type==TYPE_UNKNOWN ) type = get_type_issuance( f, p ); if ( type==TYPE_UNKNOWN ) { if ( fields_maxlevel( f ) > 0 ) type = TYPE_INBOOK; else type = TYPE_STD; } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Final type: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } return type; } static void append_type( int type, param *p, fields *out, int *status ) { char *typenames[ NUM_TYPES ] = { [ TYPE_STD ] = "STD", [ TYPE_ABSTRACT ] = "ABST", [ TYPE_ARTICLE ] = "JOUR", [ TYPE_BOOK ] = "BOOK", [ TYPE_CASE ] = "CASE", [ TYPE_INBOOK ] = "CHAP", [ TYPE_CONF ] = "CONF", [ TYPE_ELEC ] = "ELEC", [ TYPE_HEAR ] = "HEAR", [ TYPE_MAGARTICLE ] = "MGZN", [ TYPE_NEWSPAPER ] = "NEWS", [ TYPE_MPCT ] = "MPCT", [ TYPE_PAMPHLET ] = "PAMP", [ TYPE_PATENT ] = "PAT", [ TYPE_PCOMM ] = "PCOMM", [ TYPE_PROGRAM ] = "COMP", [ TYPE_REPORT ] = "RPRT", [ TYPE_STATUTE ] = "STAT", [ TYPE_THESIS ] = "THES", [ TYPE_MASTERSTHESIS ] = "THES", [ TYPE_PHDTHESIS ] = "THES", [ TYPE_DIPLOMATHESIS ] = "THES", [ TYPE_DOCTORALTHESIS ] = "THES", [ TYPE_HABILITATIONTHESIS ] = "THES", [ TYPE_MAP ] = "MAP", [ TYPE_UNPUBLISHED ] = "UNPB", }; int fstatus; if ( type < 0 || type >= NUM_TYPES ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Internal error: Cannot recognize type %d, switching to TYPE_STD %d\n", type, TYPE_STD ); type = TYPE_STD; } fstatus = fields_add( out, "TY", typenames[ type ], LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_people( fields *f, char *tag, char *ristag, int level, fields *out, int *status ) { vplist_index i; str oneperson; vplist people; int fstatus; str_init( &oneperson ); vplist_init( &people ); fields_findv_each( f, level, FIELDS_CHRP, &people, tag ); for ( i=0; in; ++i ) { tag = fields_tag( out, i, FIELDS_CHRP ); value = fields_value( out, i, FIELDS_CHRP ); fprintf( fp, "%s - %s\n", tag, value ); } fprintf( fp, "ER - \n" ); fflush( fp ); } static int append_data( fields *in, param *p, fields *out ) { int type, status = BIBL_OK; type = get_type( in, p ); append_type ( type, p, out, &status ); append_allpeople ( in, type, out, &status ); append_date ( in, out, &status ); append_alltitles ( in, type, out, &status ); append_pages ( in, out, &status ); append_easy ( in, "VOLUME", "VL", LEVEL_ANY, out, &status ); append_easy ( in, "ISSUE", "IS", LEVEL_ANY, out, &status ); append_easy ( in, "NUMBER", "IS", LEVEL_ANY, out, &status ); append_easy ( in, "EDITION", "ET", LEVEL_ANY, out, &status ); append_easy ( in, "NUMVOLUMES", "NV", LEVEL_ANY, out, &status ); append_easy ( in, "AUTHORADDRESS", "AD", LEVEL_ANY, out, &status ); append_easy ( in, "PUBLISHER", "PB", LEVEL_ANY, out, &status ); append_easy ( in, "DEGREEGRANTOR", "PB", LEVEL_ANY, out, &status ); append_easy ( in, "DEGREEGRANTOR:ASIS", "PB", LEVEL_ANY, out, &status ); append_easy ( in, "DEGREEGRANTOR:CORP", "PB", LEVEL_ANY, out, &status ); append_easy ( in, "ADDRESS", "CY", LEVEL_ANY, out, &status ); append_keywords ( in, out, &status ); append_easy ( in, "ABSTRACT", "AB", LEVEL_ANY, out, &status ); append_easy ( in, "CALLNUMBER", "CN", LEVEL_ANY, out, &status ); append_easy ( in, "ISSN", "SN", LEVEL_ANY, out, &status ); append_easy ( in, "ISBN", "SN", LEVEL_ANY, out, &status ); append_file ( in, "FILEATTACH", "L1", LEVEL_ANY, out, &status ); append_file ( in, "FIGATTACH", "L4", LEVEL_ANY, out, &status ); append_easy ( in, "CAPTION", "CA", LEVEL_ANY, out, &status ); append_urls ( in, out, &status ); append_easyall ( in, "DOI", "DO", LEVEL_ANY, out, &status ); append_easy ( in, "LANGUAGE", "LA", LEVEL_ANY, out, &status ); append_easy ( in, "NOTES", "N1", LEVEL_ANY, out, &status ); append_easy ( in, "REFNUM", "ID", LEVEL_ANY, out, &status ); append_thesishint( type, out, &status ); return status; } static int risout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); status = append_data( in, p, &out ); if ( status==BIBL_OK ) output( fp, &out ); fields_free( &out ); return status; } static void risout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/risout.c0000755000000000000000000005520000000000000015551 0ustar0000000000000000/* * risout.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "utf8.h" #include "str.h" #include "strsearch.h" #include "fields.h" #include "name.h" #include "title.h" #include "url.h" #include "bibformats.h" static int risout_write( fields *info, FILE *fp, param *p, unsigned long refnum ); static void risout_writeheader( FILE *outptr, param *p ); void risout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_RISOUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_DEFAULT; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; p->xmlout = BIBL_XMLOUT_FALSE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; if ( p->charsetout == BIBL_CHARSET_UNICODE ) { p->utf8out = p->utf8bom = 1; } p->headerf = risout_writeheader; p->footerf = NULL; p->writef = risout_write; } enum { TYPE_UNKNOWN = 0, TYPE_STD, /* standard/generic */ TYPE_ABSTRACT, /* abstract */ TYPE_ARTICLE, /* article */ TYPE_BOOK, /* book */ TYPE_CASE, /* case */ TYPE_INBOOK, /* chapter */ TYPE_CONF, /* conference */ TYPE_ELEC, /* electronic */ TYPE_HEAR, /* hearing */ TYPE_MAGARTICLE, /* magazine article */ TYPE_NEWSPAPER, /* newspaper */ TYPE_MPCT, /* mpct */ TYPE_PAMPHLET, /* pamphlet */ TYPE_PATENT, /* patent */ TYPE_PCOMM, /* personal communication */ TYPE_PROGRAM, /* program */ TYPE_REPORT, /* report */ TYPE_STATUTE, /* statute */ TYPE_THESIS, /* thesis */ TYPE_LICENTIATETHESIS, /* thesis */ TYPE_MASTERSTHESIS, /* thesis */ TYPE_PHDTHESIS, /* thesis */ TYPE_DIPLOMATHESIS, /* thesis */ TYPE_DOCTORALTHESIS, /* thesis */ TYPE_HABILITATIONTHESIS, /* thesis */ TYPE_MAP, /* map, cartographic data */ TYPE_UNPUBLISHED, /* unpublished */ NUM_TYPES }; static int type_is_element[ NUM_TYPES ] = { [ 0 ... NUM_TYPES-1 ] = 0, [ TYPE_ARTICLE ] = 1, [ TYPE_INBOOK ] = 1, [ TYPE_MAGARTICLE ] = 1, [ TYPE_NEWSPAPER ] = 1, [ TYPE_ABSTRACT ] = 1, [ TYPE_CONF ] = 1, }; static int type_uses_journal[ NUM_TYPES ] = { [ 0 ... NUM_TYPES-1 ] = 0, [ TYPE_ARTICLE ] = 1, [ TYPE_MAGARTICLE ] = 1, }; static void write_type( FILE *fp, int type ) { const char *typenames[ NUM_TYPES ] = { [ TYPE_UNKNOWN ] = "TYPE_UNKNOWN", [ TYPE_STD ] = "TYPE_STD", [ TYPE_ABSTRACT ] = "TYPE_ABSTRACT", [ TYPE_ARTICLE ] = "TYPE_ARTICLE", [ TYPE_BOOK ] = "TYPE_BOOK", [ TYPE_CASE ] = "TYPE_CASE", [ TYPE_INBOOK ] = "TYPE_INBOOK", [ TYPE_CONF ] = "TYPE_CONF", [ TYPE_ELEC ] = "TYPE_ELEC", [ TYPE_HEAR ] = "TYPE_HEAR", [ TYPE_MAGARTICLE ] = "TYPE_MAGARTICLE", [ TYPE_NEWSPAPER ] = "TYPE_NEWSPAPER", [ TYPE_MPCT ] = "TYPE_MPCT", [ TYPE_PAMPHLET ] = "TYPE_PAMPHLET", [ TYPE_PATENT ] = "TYPE_PATENT", [ TYPE_PCOMM ] = "TYPE_PCOMM", [ TYPE_PROGRAM ] = "TYPE_PROGRAM", [ TYPE_REPORT ] = "TYPE_REPORT", [ TYPE_STATUTE ] = "TYPE_STATUTE", [ TYPE_THESIS ] = "TYPE_THESIS", [ TYPE_LICENTIATETHESIS ] = "TYPE_LICENTIATETHESIS", [ TYPE_MASTERSTHESIS ] = "TYPE_MASTERSTHESIS", [ TYPE_PHDTHESIS ] = "TYPE_PHDTHESIS", [ TYPE_DIPLOMATHESIS ] = "TYPE_DIPLOMATHESIS", [ TYPE_DOCTORALTHESIS ] = "TYPE_DOCTORALTHESIS", [ TYPE_HABILITATIONTHESIS ] = "TYPE_HABILITATIONTHESIS", [ TYPE_MAP ] = "TYPE_MAP", [ TYPE_UNPUBLISHED ] = "TYPE_UNPUBLISHED", }; if ( type < 0 || type >= NUM_TYPES ) fprintf( fp, "Error - type not in enum" ); else fprintf( fp, "%s", typenames[ type ] ); } static void verbose_type_identified( char *element_type, param *p, int type ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from %s element: ", element_type ); write_type( stderr, type ); fprintf( stderr, "\n" ); } static void verbose_type_assignment( char *tag, char *value, param *p, int type ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from tag '%s' data '%s': ", tag, value ); write_type( stderr, type ); fprintf( stderr, "\n" ); } typedef struct match_type { char *name; int type; } match_type; /* Try to determine type of reference from * */ static int get_type_genre( fields *f, param *p ) { match_type match_genres[] = { { "academic journal", TYPE_ARTICLE }, { "article", TYPE_ARTICLE }, { "journal article", TYPE_ARTICLE }, { "magazine", TYPE_MAGARTICLE }, { "conference publication", TYPE_CONF }, { "newspaper", TYPE_NEWSPAPER }, { "legislation", TYPE_STATUTE }, { "communication", TYPE_PCOMM }, { "hearing", TYPE_HEAR }, { "electronic", TYPE_ELEC }, { "legal case and case notes", TYPE_CASE }, { "book chapter", TYPE_INBOOK }, { "Ph.D. thesis", TYPE_PHDTHESIS }, { "Licentiate thesis", TYPE_LICENTIATETHESIS }, { "Masters thesis", TYPE_MASTERSTHESIS }, { "Diploma thesis", TYPE_DIPLOMATHESIS }, { "Doctoral thesis", TYPE_DOCTORALTHESIS }, { "Habilitation thesis", TYPE_HABILITATIONTHESIS }, { "report", TYPE_REPORT }, { "technical report", TYPE_REPORT }, { "abstract or summary", TYPE_ABSTRACT }, { "patent", TYPE_PATENT }, { "unpublished", TYPE_UNPUBLISHED }, { "manuscript", TYPE_UNPUBLISHED }, { "map", TYPE_MAP }, }; int nmatch_genres = sizeof( match_genres ) / sizeof( match_genres[0] ); char *tag, *value; int type, i, j; type = TYPE_UNKNOWN; for ( i=0; iverbose ) verbose_type_assignment( tag, value, p, type ); if ( type==TYPE_UNKNOWN ) { if ( !strcasecmp( value, "periodical" ) ) type = TYPE_ARTICLE; else if ( !strcasecmp( value, "thesis" ) ) type = TYPE_THESIS; else if ( !strcasecmp( value, "book" ) ) { if ( fields_level( f, i )==0 ) type=TYPE_BOOK; else type=TYPE_INBOOK; } else if ( !strcasecmp( value, "collection" ) ) { if ( fields_level( f, i )==0 ) type=TYPE_BOOK; else type=TYPE_INBOOK; } } } if ( p->verbose ) verbose_type_identified( "genre", p, type ); return type; } /* Try to determine type of reference from * */ static int get_type_resource( fields *f, param *p ) { match_type match_res[] = { { "software, multimedia", TYPE_PROGRAM }, { "cartographic", TYPE_MAP }, }; int nmatch_res = sizeof( match_res ) / sizeof( match_res[0] ); vplist_index i; int type, j; char *value; vplist a; type = TYPE_UNKNOWN; vplist_init( &a ); fields_findv_each( f, LEVEL_ANY, FIELDS_CHRP, &a, "RESOURCE" ); for ( i=0; iverbose ) verbose_type_assignment( "RESOURCE", value, p, type ); } if ( p->verbose ) verbose_type_identified( "resource", p, type ); vplist_free( &a ); return type; } /* Try to determine type of reference from and */ /* */ static int get_type_issuance( fields *f, param *p ) { int type = TYPE_UNKNOWN; int i, monographic = 0, monographic_level = 0; // int text = 0; for ( i=0; in; ++i ) { if ( !strcasecmp( (char *) fields_tag( f, i, FIELDS_CHRP_NOUSE ), "issuance" ) && !strcasecmp( (char *) fields_value( f, i, FIELDS_CHRP_NOUSE ), "MONOGRAPHIC" ) ){ monographic = 1; monographic_level = f->level[i]; } // if ( !strcasecmp( (char *) fields_tag( f, i, FIELDS_CHRP_NOUSE ), "typeOfResource" ) && // !strcasecmp( (char *) fields_value( f, i, FIELDS_CHRP_NOUSE ), "text" ) ) { // text = 1; // } } // if ( monographic && text ) { if ( monographic ) { if ( monographic_level==0 ) type=TYPE_BOOK; else if ( monographic_level>0 ) type=TYPE_INBOOK; } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Type from issuance/typeOfReference elements: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } return type; } static int get_type( fields *f, param *p ) { int type; type = get_type_genre( f, p ); if ( type==TYPE_UNKNOWN ) type = get_type_resource( f, p ); if ( type==TYPE_UNKNOWN ) type = get_type_issuance( f, p ); if ( type==TYPE_UNKNOWN ) { if ( fields_maxlevel( f ) > 0 ) type = TYPE_INBOOK; else type = TYPE_STD; } if ( p->verbose ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Final type: " ); write_type( stderr, type ); fprintf( stderr, "\n" ); } return type; } static void append_type( int type, param *p, fields *out, int *status ) { char *typenames[ NUM_TYPES ] = { [ TYPE_STD ] = "STD", [ TYPE_ABSTRACT ] = "ABST", [ TYPE_ARTICLE ] = "JOUR", [ TYPE_BOOK ] = "BOOK", [ TYPE_CASE ] = "CASE", [ TYPE_INBOOK ] = "CHAP", [ TYPE_CONF ] = "CONF", [ TYPE_ELEC ] = "ELEC", [ TYPE_HEAR ] = "HEAR", [ TYPE_MAGARTICLE ] = "MGZN", [ TYPE_NEWSPAPER ] = "NEWS", [ TYPE_MPCT ] = "MPCT", [ TYPE_PAMPHLET ] = "PAMP", [ TYPE_PATENT ] = "PAT", [ TYPE_PCOMM ] = "PCOMM", [ TYPE_PROGRAM ] = "COMP", [ TYPE_REPORT ] = "RPRT", [ TYPE_STATUTE ] = "STAT", [ TYPE_THESIS ] = "THES", [ TYPE_MASTERSTHESIS ] = "THES", [ TYPE_PHDTHESIS ] = "THES", [ TYPE_DIPLOMATHESIS ] = "THES", [ TYPE_DOCTORALTHESIS ] = "THES", [ TYPE_HABILITATIONTHESIS ] = "THES", [ TYPE_MAP ] = "MAP", [ TYPE_UNPUBLISHED ] = "UNPB", }; int fstatus; if ( type < 0 || type >= NUM_TYPES ) { if ( p->progname ) fprintf( stderr, "%s: ", p->progname ); fprintf( stderr, "Internal error: Cannot recognize type %d, switching to TYPE_STD %d\n", type, TYPE_STD ); type = TYPE_STD; } fstatus = fields_add( out, "TY", typenames[ type ], LEVEL_MAIN ); if ( fstatus!=FIELDS_OK ) *status = BIBL_ERR_MEMERR; } static void append_people( fields *f, char *tag, char *ristag, int level, fields *out, int *status ) { vplist_index i; str oneperson; vplist people; int fstatus; str_init( &oneperson ); vplist_init( &people ); fields_findv_each( f, level, FIELDS_CHRP, &people, tag ); for ( i=0; in; ++i ) { tag = fields_tag( out, i, FIELDS_CHRP ); value = fields_value( out, i, FIELDS_CHRP ); fprintf( fp, "%s - %s\n", tag, value ); } fprintf( fp, "ER - \n" ); fflush( fp ); } static int append_data( fields *in, param *p, fields *out ) { int type, status = BIBL_OK; type = get_type( in, p ); append_type ( type, p, out, &status ); append_allpeople ( in, type, out, &status ); append_date ( in, out, &status ); append_alltitles ( in, type, out, &status ); append_pages ( in, out, &status ); append_easy ( in, "VOLUME", "VL", LEVEL_ANY, out, &status ); append_easy ( in, "ISSUE", "IS", LEVEL_ANY, out, &status ); append_easy ( in, "NUMBER", "IS", LEVEL_ANY, out, &status ); append_easy ( in, "EDITION", "ET", LEVEL_ANY, out, &status ); append_easy ( in, "NUMVOLUMES", "NV", LEVEL_ANY, out, &status ); append_easy ( in, "AUTHORADDRESS", "AD", LEVEL_ANY, out, &status ); append_easy ( in, "PUBLISHER", "PB", LEVEL_ANY, out, &status ); append_easy ( in, "DEGREEGRANTOR", "PB", LEVEL_ANY, out, &status ); append_easy ( in, "DEGREEGRANTOR:ASIS", "PB", LEVEL_ANY, out, &status ); append_easy ( in, "DEGREEGRANTOR:CORP", "PB", LEVEL_ANY, out, &status ); append_easy ( in, "ADDRESS", "CY", LEVEL_ANY, out, &status ); append_keywords ( in, out, &status ); append_easy ( in, "ABSTRACT", "AB", LEVEL_ANY, out, &status ); append_easy ( in, "CALLNUMBER", "CN", LEVEL_ANY, out, &status ); append_easy ( in, "ISSN", "SN", LEVEL_ANY, out, &status ); append_easy ( in, "ISBN", "SN", LEVEL_ANY, out, &status ); append_file ( in, "FILEATTACH", "L1", LEVEL_ANY, out, &status ); append_file ( in, "FIGATTACH", "L4", LEVEL_ANY, out, &status ); append_easy ( in, "CAPTION", "CA", LEVEL_ANY, out, &status ); append_urls ( in, out, &status ); append_easyall ( in, "DOI", "DO", LEVEL_ANY, out, &status ); append_easy ( in, "LANGUAGE", "LA", LEVEL_ANY, out, &status ); append_easy ( in, "NOTES", "N1", LEVEL_ANY, out, &status ); append_easy ( in, "REFNUM", "ID", LEVEL_ANY, out, &status ); append_thesishint( type, out, &status ); return status; } static int risout_write( fields *in, FILE *fp, param *p, unsigned long refnum ) { int status; fields out; fields_init( &out ); status = append_data( in, p, &out ); if ( status==BIBL_OK ) output( fp, &out ); fields_free( &out ); return status; } static void risout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); } hs-bibutils-6.7.0.0/bibutils/ristypes.c0000644000000000000000000032310000000000000016100 0ustar0000000000000000/* * ristypes.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include "fields.h" #include "reftypes.h" static lookups generic[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author -- Series editors */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Name of Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachments (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Resarch Notes -> Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated? */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ }; static lookups article[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author -- Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; /* magazine article */ static lookups magarticle[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editors */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|magazine", ALWAYS, LEVEL_HOST } }; static lookups newsarticle[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|NEWSARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|newspaper", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_HOST }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title -- here abbreviated title for series*/ { "T3", "TITLE", SIMPLE, LEVEL_HOST }, /* 'Tertiary' Title -- series title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups inbook[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_HOST }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_HOST }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_HOST }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_HOST }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_SERIES }, /* 'Secondary' Title -- here abbreviated title for series*/ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_HOST }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_HOST }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_HOST }, /* Access Date */ { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups conference[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR:ASIS", SIMPLE, LEVEL_HOST }, /* 'Secondary' Author - Name of conference */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_HOST }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_SERIES }, /* 'Secondary' Title - Abbreviated series TItle*/ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title - Series Title*/ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_HOST }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_HOST }, /* Access Date */ { " ", "INTERNAL_TYPE|CONFERENCE", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups statute[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|STATUTE", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups hearing[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|HEARING", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|hearing", ALWAYS, LEVEL_MAIN } }; static lookups cases[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|CASE", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legal case and case notes", ALWAYS, LEVEL_MAIN } }; static lookups communication[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "ADDRESSEE", PERSON, LEVEL_MAIN }, /* SPECIAL */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|communication", ALWAYS, LEVEL_MAIN } }; static lookups thesis[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, }; static lookups report[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN } }; static lookups abstract[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "GENRE:MARC|abstract or summary", ALWAYS, LEVEL_MAIN } }; static lookups program[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN } }; static lookups patent[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN } }; static lookups electric[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups pamphlet[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|pamphlet", ALWAYS, LEVEL_MAIN }, }; static lookups map[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Name of Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachments (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Resarch Notes -> Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated? */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|cartographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|map", ALWAYS, LEVEL_MAIN } }; static lookups unpublished[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants ris_all[] = { REFTYPE( "STD", generic ), REFTYPE( "GEN", generic ), REFTYPE( "JOUR", article ), REFTYPE( "MGZN", magarticle ), REFTYPE( "BOOK", book ), REFTYPE( "CHAP", inbook ), REFTYPE( "CONF", conference ), REFTYPE( "STAT", statute ), REFTYPE( "HEAR", hearing ), REFTYPE( "CASE", cases ), REFTYPE( "NEWS", newsarticle ), REFTYPE( "MPCT", generic ), REFTYPE( "PCOMM", communication ), REFTYPE( "PAMP", pamphlet ), REFTYPE( "ELEC", electric ), REFTYPE( "THES", thesis ), REFTYPE( "RPRT", report ), REFTYPE( "ABST", abstract ), REFTYPE( "COMP", program ), REFTYPE( "PAT", patent ), REFTYPE( "MAP", map ), REFTYPE( "UNPB", unpublished ), }; int ris_nall = sizeof( ris_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/ristypes.c0000755000000000000000000032310000000000000016103 0ustar0000000000000000/* * ristypes.c * * Copyright (c) Chris Putnam 2003-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include "fields.h" #include "reftypes.h" static lookups generic[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author -- Series editors */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Name of Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachments (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Resarch Notes -> Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated? */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ }; static lookups article[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author -- Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|journal article", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|academic journal", ALWAYS, LEVEL_HOST } }; /* magazine article */ static lookups magarticle[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editors */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|periodical", ALWAYS, LEVEL_HOST }, { " ", "GENRE:BIBUTILS|magazine", ALWAYS, LEVEL_HOST } }; static lookups newsarticle[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_SERIES }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "PARTDATE:YEAR",DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "PARTDATE:MONTH",SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|NEWSARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "ISSUANCE|continuing", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|newspaper", ALWAYS, LEVEL_HOST } }; static lookups book[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_HOST }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title -- here abbreviated title for series*/ { "T3", "TITLE", SIMPLE, LEVEL_HOST }, /* 'Tertiary' Title -- series title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups inbook[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_HOST }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_HOST }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_HOST }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_HOST }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_HOST }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_HOST }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_SERIES }, /* 'Secondary' Title -- here abbreviated title for series*/ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_HOST }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_HOST }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_HOST }, /* Access Date */ { " ", "GENRE:BIBUTILS|book chapter", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|book", ALWAYS, LEVEL_HOST }, { " ", "ISSUANCE|monographic", ALWAYS, LEVEL_HOST }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN } }; static lookups conference[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR:ASIS", SIMPLE, LEVEL_HOST }, /* 'Secondary' Author - Name of conference */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_HOST }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_HOST }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_SERIES }, /* 'Secondary' Title - Abbreviated series TItle*/ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title - Series Title*/ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_HOST }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_HOST }, /* Access Date */ { " ", "INTERNAL_TYPE|CONFERENCE", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|conference publication", ALWAYS, LEVEL_HOST } }; static lookups statute[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|STATUTE", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legislation", ALWAYS, LEVEL_MAIN } }; static lookups hearing[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|HEARING", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|hearing", ALWAYS, LEVEL_MAIN } }; static lookups cases[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|CASE", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|legal case and case notes", ALWAYS, LEVEL_MAIN } }; static lookups communication[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "ADDRESSEE", PERSON, LEVEL_MAIN }, /* SPECIAL */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "GENRE:UKNOWN", GENRE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|ARTICLE", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|communication", ALWAYS, LEVEL_MAIN } }; static lookups thesis[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|THESIS", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|thesis", ALWAYS, LEVEL_MAIN }, }; static lookups report[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "INTERNAL_TYPE|REPORT", ALWAYS, LEVEL_MAIN }, { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|technical report", ALWAYS, LEVEL_MAIN } }; static lookups abstract[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "GENRE:MARC|abstract or summary", ALWAYS, LEVEL_MAIN } }; static lookups program[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", SIMPLE, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN } }; static lookups patent[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|patent", ALWAYS, LEVEL_MAIN } }; static lookups electric[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|software, multimedia", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|electronic", ALWAYS, LEVEL_MAIN }, }; static lookups pamphlet[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|pamphlet", ALWAYS, LEVEL_MAIN }, }; static lookups map[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Name of Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachments (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Number? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Resarch Notes -> Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated? */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|cartographic", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:MARC|map", ALWAYS, LEVEL_MAIN } }; static lookups unpublished[] = { { "A1", "AUTHOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "A2", "AUTHOR", PERSON, LEVEL_HOST }, /* 'Secondary' Author */ { "A3", "EDITOR", PERSON, LEVEL_SERIES }, /* 'Tertiary' Author - Series editor */ { "A4", "AUTHOR", PERSON, LEVEL_SERIES }, /* 'Subsidiary' Author */ { "AB", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Abstract */ { "AD", "AUTHORADDRESS",SIMPLE, LEVEL_MAIN }, /* Author Address */ { "AU", "AUTHOR", PERSON, LEVEL_MAIN }, /* Author */ { "BT", "TITLE", SIMPLE, LEVEL_MAIN }, /* Book Title - Deprecated? */ { "C1", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C2", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C3", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C4", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C5", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C6", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C7", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "C8", "NOTES", NOTES, LEVEL_MAIN }, /* 'Custom' - put in "notes" */ { "CA", "CAPTION", SIMPLE, LEVEL_MAIN }, /* Caption */ { "CN", "CALLNUMBER", SIMPLE, LEVEL_MAIN }, /* Call Number */ { "CP", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CT", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "CY", "ADDRESS", SIMPLE, LEVEL_MAIN }, /* Place Published */ { "DA", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Date */ { "DB", "DATABASE", SIMPLE, LEVEL_MAIN }, /* Database */ { "DI", "DOI", DOI, LEVEL_MAIN }, /* Deprecated? */ { "DO", "DOI", DOI, LEVEL_MAIN }, /* DOI */ { "DP", "DATABASEPROV", SIMPLE, LEVEL_MAIN }, /* Database Provider */ { "ED", "EDITOR", PERSON, LEVEL_MAIN }, /* Deprecated? */ { "EP", "PAGES:STOP", SIMPLE, LEVEL_MAIN }, /* End Page */ { "ET", "EDITION", SIMPLE, LEVEL_MAIN }, /* Edition */ { "ID", "REFNUM", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "IS", "ISSUE", SIMPLE, LEVEL_MAIN }, /* Number */ { "J1", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "J2", "TITLE", SIMPLE, LEVEL_HOST }, /* Alternate Title, abbreviated book or journal */ { "JA", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JF", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "JO", "TITLE", SIMPLE, LEVEL_HOST }, /* Deprecated? */ { "KW", "KEYWORD", SIMPLE, LEVEL_MAIN }, /* Keywords */ { "L1", "FILEATTACH", LINKEDFILE, LEVEL_MAIN }, /* File Attachment (local, not URL) */ { "L4", "FIGATTACH", LINKEDFILE, LEVEL_MAIN }, /* Figure Attachment (local, not URL) */ { "LA", "LANGUAGE", SIMPLE, LEVEL_MAIN }, /* Language */ { "LB", "LABEL", SIMPLE, LEVEL_MAIN }, /* Label */ { "M1", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M2", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Deprecated? */ { "M3", "NOTES", NOTES, LEVEL_MAIN }, /* Misc or Type of Work? */ { "N1", "NOTES", NOTES, LEVEL_MAIN }, /* Notes */ { "N2", "ABSTRACT", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "NV", "NUMVOLUMES", SIMPLE, LEVEL_MAIN }, /* Number of Volumes */ { "OP", "ORIGPUB", SIMPLE, LEVEL_MAIN }, /* Original Publication */ { "PB", "PUBLISHER", SIMPLE, LEVEL_MAIN }, /* Publisher */ { "PY", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Year */ { "RI", "REVIEWEDITEM", SIMPLE, LEVEL_MAIN }, /* Reviewed Item */ { "RN", "NOTES", NOTES, LEVEL_MAIN }, /* Research Notes */ { "RP", "REPRINTSTATUS",SIMPLE, LEVEL_MAIN }, /* Reprint Edition */ { "SE", "SECTION", SIMPLE, LEVEL_MAIN }, /* Section */ { "SN", "SERIALNUMBER", SERIALNO,LEVEL_MAIN }, /* ISBN/ISSN */ { "SP", "PAGES:START", SIMPLE, LEVEL_MAIN }, /* Start Page */ { "ST", "SHORTTITLE", SIMPLE, LEVEL_MAIN }, /* Short Title */ { "T1", "TITLE", TITLE, LEVEL_MAIN }, /* Deprecated? */ { "T2", "SHORTTITLE", SIMPLE, LEVEL_HOST }, /* 'Secondary' Title */ { "T3", "TITLE", SIMPLE, LEVEL_SERIES }, /* 'Tertiary' Title */ { "TI", "TITLE", TITLE, LEVEL_MAIN }, /* Title */ { "TT", "TRANSTITLE", TITLE, LEVEL_MAIN }, /* Translated Title */ { "U1", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U2", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U3", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U4", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "U5", "NOTES", NOTES, LEVEL_MAIN }, /* 'User' - Deprecated? */ { "UR", "URL", URL, LEVEL_MAIN }, /* URL */ { "VL", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Volume */ { "VO", "VOLUME", SIMPLE, LEVEL_MAIN }, /* Deprecated? */ { "Y1", "DATE:YEAR", DATE, LEVEL_MAIN }, /* Deprecated */ { "Y2", "DATE:MONTH", SIMPLE, LEVEL_MAIN }, /* Access Date */ { " ", "RESOURCE|text", ALWAYS, LEVEL_MAIN }, { " ", "GENRE:BIBUTILS|unpublished", ALWAYS, LEVEL_MAIN } }; #define ORIG(a) ( &(a[0]) ) #define SIZE(a) ( sizeof( a ) / sizeof( lookups ) ) #define REFTYPE(a,b) { a, ORIG(b), SIZE(b) } variants ris_all[] = { REFTYPE( "STD", generic ), REFTYPE( "GEN", generic ), REFTYPE( "JOUR", article ), REFTYPE( "MGZN", magarticle ), REFTYPE( "BOOK", book ), REFTYPE( "CHAP", inbook ), REFTYPE( "CONF", conference ), REFTYPE( "STAT", statute ), REFTYPE( "HEAR", hearing ), REFTYPE( "CASE", cases ), REFTYPE( "NEWS", newsarticle ), REFTYPE( "MPCT", generic ), REFTYPE( "PCOMM", communication ), REFTYPE( "PAMP", pamphlet ), REFTYPE( "ELEC", electric ), REFTYPE( "THES", thesis ), REFTYPE( "RPRT", report ), REFTYPE( "ABST", abstract ), REFTYPE( "COMP", program ), REFTYPE( "PAT", patent ), REFTYPE( "MAP", map ), REFTYPE( "UNPB", unpublished ), }; int ris_nall = sizeof( ris_all ) / sizeof( variants ); hs-bibutils-6.7.0.0/bibutils/serialno.c0000644000000000000000000000234700000000000016041 0ustar0000000000000000/* * serialno.c * * Copyright (c) Chris Putnam 2005-2018 * * Source code released under the GPL version 2 * */ #include #include "serialno.h" int addsn( fields *info, char *buf, int level ) { int ndigits, issn=0, isbn=0, isbn10=0, isbn13=0, status; char *p = buf, *tag; if ( !strncasecmp( p, "ISSN", 4 ) ) issn=1; else if ( !strncasecmp( p, "ISBN", 4 ) ) isbn=1; if ( isbn ) { ndigits = 0; while ( *p && !(ndigits && (*p==';'||*p==':')) ) { if ( ( *p>='0' && *p<='9' ) || *p=='x' || *p=='X' ) ndigits++; p++; } if ( ndigits==13 ) isbn13 = 1; else /* ( ndigits==10) */ isbn10 = 1; } if ( !issn && !isbn ) { /* a lot have semicolons between multiple ISBN's for paperbacks and hardbacks with different numbers */ ndigits = 0; while ( *p && !(ndigits && (*p==';'||*p==':')) ) { if ( ( *p>='0' && *p<='9' ) || *p=='x' || *p=='X' ) ndigits++; p++; } if ( ndigits==8 ) issn = 1; else if ( ndigits==10 ) isbn10 = 1; else if ( ndigits==13 ) isbn13 = 1; } if ( issn ) tag = "ISSN"; else if ( isbn10 ) tag = "ISBN"; else if ( isbn13 ) tag = "ISBN13"; else tag = "SERIALNUMBER"; status = fields_add( info, tag, buf, level ); if ( status==FIELDS_OK ) return 1; else return 0; } hs-bibutils-6.7.0.0/bibutils/serialno.c0000755000000000000000000000234700000000000016044 0ustar0000000000000000/* * serialno.c * * Copyright (c) Chris Putnam 2005-2018 * * Source code released under the GPL version 2 * */ #include #include "serialno.h" int addsn( fields *info, char *buf, int level ) { int ndigits, issn=0, isbn=0, isbn10=0, isbn13=0, status; char *p = buf, *tag; if ( !strncasecmp( p, "ISSN", 4 ) ) issn=1; else if ( !strncasecmp( p, "ISBN", 4 ) ) isbn=1; if ( isbn ) { ndigits = 0; while ( *p && !(ndigits && (*p==';'||*p==':')) ) { if ( ( *p>='0' && *p<='9' ) || *p=='x' || *p=='X' ) ndigits++; p++; } if ( ndigits==13 ) isbn13 = 1; else /* ( ndigits==10) */ isbn10 = 1; } if ( !issn && !isbn ) { /* a lot have semicolons between multiple ISBN's for paperbacks and hardbacks with different numbers */ ndigits = 0; while ( *p && !(ndigits && (*p==';'||*p==':')) ) { if ( ( *p>='0' && *p<='9' ) || *p=='x' || *p=='X' ) ndigits++; p++; } if ( ndigits==8 ) issn = 1; else if ( ndigits==10 ) isbn10 = 1; else if ( ndigits==13 ) isbn13 = 1; } if ( issn ) tag = "ISSN"; else if ( isbn10 ) tag = "ISBN"; else if ( isbn13 ) tag = "ISBN13"; else tag = "SERIALNUMBER"; status = fields_add( info, tag, buf, level ); if ( status==FIELDS_OK ) return 1; else return 0; } hs-bibutils-6.7.0.0/bibutils/serialno.h0000755000000000000000000000040400000000000016041 0ustar0000000000000000/* * serialno.h * * Copyright (c) Chris Putnam 2005-2018 * * Source code released under the GPL version 2 * */ #ifndef SERIALNO_H #define SERIALNO_H #include #include "fields.h" extern int addsn( fields *info, char *buf, int level ); #endif hs-bibutils-6.7.0.0/bibutils/slist.c0000644000000000000000000003271200000000000015362 0ustar0000000000000000/* * slist.c * * version: 2017-11-14 * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * * Implements a simple managed array of strs. * */ #include "slist.h" /* Do not use asserts in VPLIST_NOASSERT defined */ #ifdef VPLIST_NOASSERT #define NDEBUG #endif #include #define SLIST_MINALLOC (20) #define SLIST_EXACT_SIZE (0) #define SLIST_DOUBLE_SIZE (1) /* * returns 1 if n is valid string in slist */ static inline int slist_valid_num( slist *a, slist_index n ) { if ( n < 0 || n >= a->n ) return 0; return 1; } void slist_init( slist *a ) { assert( a ); a->strs = NULL; a->max = 0; a->n = 0; a->sorted = 1; } int slist_init_values( slist *a, ... ) { int status = SLIST_OK; va_list ap; str *s, *t; slist_init( a ); va_start( ap, a ); do { s = va_arg( ap, str * ); if ( s ) { t = slist_add( a, s ); if ( !t ) { status = SLIST_ERR_MEMERR; goto out; } } } while ( s ); out: va_end( ap ); return status; } int slist_init_valuesc( slist *a, ... ) { int status = SLIST_OK; va_list ap; char *s; str *t; slist_init( a ); va_start( ap, a ); do { s = va_arg( ap, char * ); if ( s ) { t = slist_addc( a, s ); if ( !t ) { status = SLIST_ERR_MEMERR; goto out; } } } while ( s ); out: va_end( ap ); return status; } void slist_empty( slist *a ) { slist_index i; assert( a ); for ( i=0; imax; ++i ) str_empty( &(a->strs[i]) ); a->n = 0; a->sorted = 1; } void slist_free( slist *a ) { slist_index i; assert( a ); for ( i=0; imax; ++i ) str_free( &(a->strs[i]) ); free( a->strs ); slist_init( a ); } slist * slist_new( void ) { slist *a; a = ( slist * ) malloc( sizeof ( slist ) ); if ( a ) slist_init( a ); return a; } void slist_delete( slist *a ) { assert( a ); slist_free( a ); free( a ); } void slist_deletev( void *v ) { slist_delete( (slist*) v ); } void slist_swap( slist *a, slist_index n1, slist_index n2 ) { assert( a ); if ( slist_valid_num( a, n1 ) && slist_valid_num( a, n2 ) ) str_swapstrings( &(a->strs[n1]), &(a->strs[n2]) ); } static int slist_comp( const void *v1, const void *v2 ) { str *s1 = ( str *) v1; str *s2 = ( str *) v2; if ( !s1->len && !s2->len ) return 0; else if ( !s1->len ) return -1; else if ( !s2->len ) return 1; else return str_strcmp( s1, s2 ); } static int slist_comp_step( slist *a, slist_index n1, slist_index n2 ) { return slist_comp( (const void*) &(a->strs[n1]), (const void*) &(a->strs[n2]) ); } static str * slist_set_cleanup( slist *a, slist_index n ) { if ( str_memerr( &(a->strs[n]) ) ) return NULL; if ( a->sorted ) { if ( n>0 && slist_comp_step( a, n-1, n )>0 ) a->sorted = 0; } if ( a->sorted ) { if ( nn-1 && slist_comp_step( a, n, n+1 )>0 ) a->sorted = 0; } return &(a->strs[n]); } str * slist_setc( slist *a, slist_index n, const char *s ) { assert( a ); assert( s ); if ( !slist_valid_num( a, n ) ) return NULL; str_strcpyc( &(a->strs[n]), s ); return slist_set_cleanup( a, n ); } str * slist_set( slist *a, slist_index n, str *s ) { assert( s ); return slist_setc( a, n, str_cstr( s ) ); } /* * return pointer to str 'n' */ str * slist_str( slist *a, slist_index n ) { assert( a ); if ( !slist_valid_num( a, n ) ) return NULL; else return &(a->strs[n]); } /* * return pointer to C string 'n' * * So long as the index is a valid number ensure * that a pointer is returned even if the newstr isn't * allocated. Only return NULL if the index * is invalid. Thus we can convert loops like: * * for ( i=0; in; ++i ) { * p = slist_cstr( a, i ); * if ( p==NULL ) continue; // empty string * ... * } * * to * * i = 0; * while ( ( p = slist_cstr( a, i ) ) ) { * ... * i++; * } * */ char * slist_cstr( slist *a, slist_index n ) { static char empty[] = ""; char *p; assert( a ); if ( !slist_valid_num( a, n ) ) return NULL; p = str_cstr( &(a->strs[n]) ); if ( p ) return p; else return empty; } static inline int slist_alloc( slist *a, slist_index alloc ) { slist_index i; a->strs = ( str* ) malloc( sizeof( str ) * alloc ); if ( !(a->strs) ) return SLIST_ERR_MEMERR; a->max = alloc; a->n = 0; for ( i=0; istrs[i]) ); return SLIST_OK; } static inline int slist_realloc( slist *a, slist_index alloc ) { slist_index i; str *more; more = ( str* ) realloc( a->strs, sizeof( str ) * alloc ); if ( !more ) return SLIST_ERR_MEMERR; a->strs = more; for ( i=a->max; istrs[i]) ); a->max = alloc; return SLIST_OK; } #define SLIST_EXACT_SIZE (0) #define SLIST_DOUBLE_SIZE (1) static int slist_ensure_space( slist *a, slist_index n, int mode ) { int status = SLIST_OK; int alloc = n; if ( a->max==0 ) { if ( mode == SLIST_DOUBLE_SIZE && alloc < SLIST_MINALLOC ) alloc = SLIST_MINALLOC; status = slist_alloc( a, alloc ); } else if ( a->max < n ) { if ( mode == SLIST_DOUBLE_SIZE && alloc < a->max * 2 ) alloc = a->max * 2; status = slist_realloc( a, alloc ); } return status; } str * slist_addvp( slist *a, int mode, void *vp ) { str *s = NULL; int status; status = slist_ensure_space( a, a->n+1, SLIST_DOUBLE_SIZE ); if ( status==SLIST_OK ) { s = &( a->strs[a->n] ); if ( mode==SLIST_CHR ) str_strcpyc( s, (const char*) vp ); else str_strcpy( s, (str*) vp ); if ( str_memerr( s ) ) return NULL; a->n++; if ( a->sorted && a->n > 1 ) { if ( slist_comp_step( a, a->n-2, a->n-1 ) > 0 ) a->sorted = 0; } } return s; } str * slist_addc( slist *a, const char *s ) { return slist_addvp( a, SLIST_CHR, (void*)s ); } str * slist_add( slist *a, str *s ) { return slist_addvp( a, SLIST_STR, (void*)s ); } str * slist_addvp_unique( slist *a, int mode, void *vp ) { str *s; int n; if ( mode==SLIST_CHR ) n = slist_findc( a, (const char*) vp ); else n = slist_find( a, (str*) vp ); if ( slist_wasfound( a, n ) ) s = &( a->strs[n] ); else s = slist_addvp( a, mode, vp ); return s; } str * slist_addc_unique( slist *a, const char *s ) { return slist_addvp_unique( a, SLIST_CHR, (void*)s ); } str * slist_add_unique( slist *a, str *s ) { return slist_addvp_unique( a, SLIST_STR, (void*)s ); } int slist_addvp_all( slist *a, int mode, ... ) { int ret = SLIST_OK; va_list ap; void *v; str *s; va_start( ap, mode ); do { if ( mode==SLIST_CHR ) v = va_arg( ap, char * ); else v = va_arg( ap, str * ); if ( v ) { s = slist_addvp( a, mode, v ); if ( s==NULL ) { ret = SLIST_ERR_MEMERR; goto out; } } } while ( v ); out: va_end( ap ); return ret; } int slist_add_all( slist *a, ... ) { int ret = SLIST_OK; va_list ap; str *s, *v; va_start( ap, a ); do { v = va_arg( ap, str * ); if ( v ) { s = slist_addvp( a, SLIST_STR, (void*)v ); if ( s==NULL ) { ret = SLIST_ERR_MEMERR; goto out; } } } while ( v ); out: va_end( ap ); return ret; } int slist_addc_all( slist *a, ... ) { int ret = SLIST_OK; const char *v; va_list ap; str *s; va_start( ap, a ); do { v = va_arg( ap, const char * ); if ( v ) { s = slist_addvp( a, SLIST_CHR, (void*)v ); if ( s==NULL ) { ret = SLIST_ERR_MEMERR; goto out; } } } while ( v ); out: va_end( ap ); return ret; } int slist_append( slist *a, slist *toadd ) { int i, status; assert( a ); assert( toadd ); status = slist_ensure_space( a, a->n + toadd->n, SLIST_EXACT_SIZE ); if ( status == SLIST_OK ) { for ( i=0; in; ++i ) { str_strcpy( &(a->strs[a->n+i]), &(toadd->strs[i]) ); if ( str_memerr( &(a->strs[a->n+i]) ) ) return SLIST_ERR_MEMERR; } a->n += toadd->n; } return status; } int slist_append_unique( slist *a, slist *toadd ) { str *s; int i; assert( a ); assert( toadd ); for ( i=0; in; ++i ) { s = slist_add_unique( a, &(toadd->strs[i]) ); if ( !s ) return SLIST_ERR_MEMERR; } return SLIST_OK; } int slist_remove( slist *a, slist_index n ) { int i; assert( a ); if ( !slist_valid_num( a, n ) ) return SLIST_ERR_BADPARAM; for ( i=n+1; in; ++i ) { str_strcpy( &(a->strs[i-1]), &(a->strs[i]) ); if ( str_memerr( &(a->strs[i-1]) ) ) return SLIST_ERR_MEMERR; } a->n--; return SLIST_OK; } void slist_sort( slist *a ) { qsort( a->strs, a->n, sizeof( str ), slist_comp ); a->sorted = 1; } static slist_index slist_find_sorted( slist *a, const char *searchstr ) { slist_index min, max, mid; str s, *cs; int comp; assert( a ); assert( searchstr ); str_initstrc( &s, searchstr ); min = 0; max = a->n - 1; while ( min <= max ) { mid = ( min + max ) / 2; cs = slist_str( a, mid ); comp = slist_comp( (void*)cs, (void*) (&s) ); if ( comp==0 ) { str_free( &s ); return mid; } else if ( comp > 0 ) max = mid - 1; else if ( comp < 0 ) min = mid + 1; } str_free( &s ); return -1; } static slist_index slist_find_simple( slist *a, const char *searchstr, int nocase ) { slist_index i; assert( a ); assert( searchstr ); if ( nocase ) { for ( i=0; in; ++i ) if ( !str_strcasecmpc( &(a->strs[i]), searchstr ) ) return i; } else { for ( i=0; in; ++i ) if ( !str_strcmpc( &(a->strs[i]), searchstr ) ) return i; } return -1; } slist_index slist_findc( slist *a, const char *searchstr ) { assert( a ); if ( a->n==0 ) return -1; if ( a->sorted ) return slist_find_sorted( a, searchstr ); else return slist_find_simple( a, searchstr, 0 ); } slist_index slist_find( slist *a, str *searchstr ) { if ( searchstr->len==0 ) return -1; return slist_findc( a, str_cstr( searchstr ) ); } slist_index slist_findnocasec( slist *a, const char *searchstr ) { assert( a ); return slist_find_simple( a, searchstr, 1 ); } slist_index slist_findnocase( slist *a, str *searchstr ) { if ( searchstr->len==0 ) return -1; return slist_findnocasec( a, str_cstr( searchstr ) ); } int slist_wasfound( slist *a, slist_index n ) { return ( n!=-1 ); } int slist_wasnotfound( slist *a, slist_index n ) { return ( n==-1 ); } int slist_fillfp( slist *a, FILE *fp, unsigned char skip_blank_lines ) { int ret = SLIST_OK; str line, *s; assert( a ); assert( fp ); slist_empty( a ); str_init( &line ); while ( str_fgetline( &line, fp ) ) { if ( skip_blank_lines && line.len==0 ) continue; s = slist_add( a, &line ); if ( !s ) { ret = SLIST_ERR_MEMERR; goto out; } } out: str_free( &line ); return ret; } int slist_fill( slist *a, const char *filename, unsigned char skip_blank_lines ) { FILE *fp; int ret; fp = fopen( filename, "r" ); if ( !fp ) return SLIST_ERR_CANTOPEN; ret = slist_fillfp( a, fp, skip_blank_lines ); fclose( fp ); return ret; } int slist_copy( slist *to, slist *from ) { slist_index i; int status; assert( to ); assert( from ); slist_free( to ); if ( from->n==0 ) return SLIST_OK; status = slist_ensure_space( to, from->n, SLIST_EXACT_SIZE ); if ( status == SLIST_OK ) { to->sorted = from->sorted; to->n = from->n; for ( i=0; in; i++ ) { str_strcpy( &(to->strs[i]), &(from->strs[i]) ); if ( str_memerr( &(to->strs[i]) ) ) return SLIST_ERR_MEMERR; } } return SLIST_OK; } slist * slist_dup( slist *from ) { int status; slist *to; to = slist_new(); if ( to ) { status = slist_copy( to, from ); if ( status!=SLIST_OK ) { slist_delete( to ); to = NULL; } } return to; } unsigned long slist_get_maxlen( slist *a ) { unsigned long max = 0; slist_index i; str *s; assert( a ); for ( i=0; in; ++i ) { s = slist_str( a, i ); if ( s->len > max ) max = s->len; } return max; } void slist_dump( slist *a, FILE *fp, int newline ) { slist_index i; assert( a ); assert( fp ); if ( newline ) { for ( i=0; in; ++i ) fprintf( fp, "%s\n", slist_cstr( a, i ) ); } else { for ( i=0; in; ++i ) fprintf( fp, "%s", slist_cstr( a, i ) ); } } int slist_match_entry( slist *a, int n, const char *s ) { assert( a ); if ( !slist_valid_num( a, n ) ) return 0; if ( str_strcmpc( &(a->strs[n]), s ) ) return 0; return 1; } void slist_trimend( slist *a, int n ) { slist_index i; assert( a ); if ( a->n - n < 1 ) { slist_empty( a ); } else { for ( i=a->n -n; in; ++i ) { str_empty( &(a->strs[i]) ); } a->n -= n; } } int slist_tokenizec( slist *tokens, char *p, const char *delim, int merge_delim ) { int ret = SLIST_OK; str s, *t; char *q; assert( tokens ); slist_empty( tokens ); str_init( &s ); while ( p && *p ) { q = p; while ( *q && !strchr( delim, *q ) ) q++; str_segcpy( &s, p, q ); if ( str_memerr( &s ) ) { ret = SLIST_ERR_MEMERR; goto out; } if ( s.len ) { t = slist_addvp( tokens, SLIST_STR, (void*) &s ); if ( !t ) { ret = SLIST_ERR_MEMERR; goto out; } } else if ( !merge_delim ) { t = slist_addvp( tokens, SLIST_CHR, (void*) "" ); if ( !t ) { ret = SLIST_ERR_MEMERR; goto out; } } p = q; if ( *p ) p++; } out: str_free( &s ); return ret; } int slist_tokenize( slist *tokens, str *in, const char *delim, int merge_delim ) { return slist_tokenizec( tokens, str_cstr( in ), delim, merge_delim ); } void slists_init( slist *a, ... ) { slist *a2; va_list ap; slist_init( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_init( a2 ); } while ( a2 ); va_end( ap ); } void slists_free( slist *a, ... ) { slist *a2; va_list ap; slist_free( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_free( a2 ); } while ( a2 ); va_end( ap ); } void slists_empty( slist *a, ... ) { slist *a2; va_list ap; slist_empty( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_empty( a2 ); } while ( a2 ); va_end( ap ); } hs-bibutils-6.7.0.0/bibutils/slist.c0000755000000000000000000003271200000000000015365 0ustar0000000000000000/* * slist.c * * version: 2017-11-14 * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * * Implements a simple managed array of strs. * */ #include "slist.h" /* Do not use asserts in VPLIST_NOASSERT defined */ #ifdef VPLIST_NOASSERT #define NDEBUG #endif #include #define SLIST_MINALLOC (20) #define SLIST_EXACT_SIZE (0) #define SLIST_DOUBLE_SIZE (1) /* * returns 1 if n is valid string in slist */ static inline int slist_valid_num( slist *a, slist_index n ) { if ( n < 0 || n >= a->n ) return 0; return 1; } void slist_init( slist *a ) { assert( a ); a->strs = NULL; a->max = 0; a->n = 0; a->sorted = 1; } int slist_init_values( slist *a, ... ) { int status = SLIST_OK; va_list ap; str *s, *t; slist_init( a ); va_start( ap, a ); do { s = va_arg( ap, str * ); if ( s ) { t = slist_add( a, s ); if ( !t ) { status = SLIST_ERR_MEMERR; goto out; } } } while ( s ); out: va_end( ap ); return status; } int slist_init_valuesc( slist *a, ... ) { int status = SLIST_OK; va_list ap; char *s; str *t; slist_init( a ); va_start( ap, a ); do { s = va_arg( ap, char * ); if ( s ) { t = slist_addc( a, s ); if ( !t ) { status = SLIST_ERR_MEMERR; goto out; } } } while ( s ); out: va_end( ap ); return status; } void slist_empty( slist *a ) { slist_index i; assert( a ); for ( i=0; imax; ++i ) str_empty( &(a->strs[i]) ); a->n = 0; a->sorted = 1; } void slist_free( slist *a ) { slist_index i; assert( a ); for ( i=0; imax; ++i ) str_free( &(a->strs[i]) ); free( a->strs ); slist_init( a ); } slist * slist_new( void ) { slist *a; a = ( slist * ) malloc( sizeof ( slist ) ); if ( a ) slist_init( a ); return a; } void slist_delete( slist *a ) { assert( a ); slist_free( a ); free( a ); } void slist_deletev( void *v ) { slist_delete( (slist*) v ); } void slist_swap( slist *a, slist_index n1, slist_index n2 ) { assert( a ); if ( slist_valid_num( a, n1 ) && slist_valid_num( a, n2 ) ) str_swapstrings( &(a->strs[n1]), &(a->strs[n2]) ); } static int slist_comp( const void *v1, const void *v2 ) { str *s1 = ( str *) v1; str *s2 = ( str *) v2; if ( !s1->len && !s2->len ) return 0; else if ( !s1->len ) return -1; else if ( !s2->len ) return 1; else return str_strcmp( s1, s2 ); } static int slist_comp_step( slist *a, slist_index n1, slist_index n2 ) { return slist_comp( (const void*) &(a->strs[n1]), (const void*) &(a->strs[n2]) ); } static str * slist_set_cleanup( slist *a, slist_index n ) { if ( str_memerr( &(a->strs[n]) ) ) return NULL; if ( a->sorted ) { if ( n>0 && slist_comp_step( a, n-1, n )>0 ) a->sorted = 0; } if ( a->sorted ) { if ( nn-1 && slist_comp_step( a, n, n+1 )>0 ) a->sorted = 0; } return &(a->strs[n]); } str * slist_setc( slist *a, slist_index n, const char *s ) { assert( a ); assert( s ); if ( !slist_valid_num( a, n ) ) return NULL; str_strcpyc( &(a->strs[n]), s ); return slist_set_cleanup( a, n ); } str * slist_set( slist *a, slist_index n, str *s ) { assert( s ); return slist_setc( a, n, str_cstr( s ) ); } /* * return pointer to str 'n' */ str * slist_str( slist *a, slist_index n ) { assert( a ); if ( !slist_valid_num( a, n ) ) return NULL; else return &(a->strs[n]); } /* * return pointer to C string 'n' * * So long as the index is a valid number ensure * that a pointer is returned even if the newstr isn't * allocated. Only return NULL if the index * is invalid. Thus we can convert loops like: * * for ( i=0; in; ++i ) { * p = slist_cstr( a, i ); * if ( p==NULL ) continue; // empty string * ... * } * * to * * i = 0; * while ( ( p = slist_cstr( a, i ) ) ) { * ... * i++; * } * */ char * slist_cstr( slist *a, slist_index n ) { static char empty[] = ""; char *p; assert( a ); if ( !slist_valid_num( a, n ) ) return NULL; p = str_cstr( &(a->strs[n]) ); if ( p ) return p; else return empty; } static inline int slist_alloc( slist *a, slist_index alloc ) { slist_index i; a->strs = ( str* ) malloc( sizeof( str ) * alloc ); if ( !(a->strs) ) return SLIST_ERR_MEMERR; a->max = alloc; a->n = 0; for ( i=0; istrs[i]) ); return SLIST_OK; } static inline int slist_realloc( slist *a, slist_index alloc ) { slist_index i; str *more; more = ( str* ) realloc( a->strs, sizeof( str ) * alloc ); if ( !more ) return SLIST_ERR_MEMERR; a->strs = more; for ( i=a->max; istrs[i]) ); a->max = alloc; return SLIST_OK; } #define SLIST_EXACT_SIZE (0) #define SLIST_DOUBLE_SIZE (1) static int slist_ensure_space( slist *a, slist_index n, int mode ) { int status = SLIST_OK; int alloc = n; if ( a->max==0 ) { if ( mode == SLIST_DOUBLE_SIZE && alloc < SLIST_MINALLOC ) alloc = SLIST_MINALLOC; status = slist_alloc( a, alloc ); } else if ( a->max < n ) { if ( mode == SLIST_DOUBLE_SIZE && alloc < a->max * 2 ) alloc = a->max * 2; status = slist_realloc( a, alloc ); } return status; } str * slist_addvp( slist *a, int mode, void *vp ) { str *s = NULL; int status; status = slist_ensure_space( a, a->n+1, SLIST_DOUBLE_SIZE ); if ( status==SLIST_OK ) { s = &( a->strs[a->n] ); if ( mode==SLIST_CHR ) str_strcpyc( s, (const char*) vp ); else str_strcpy( s, (str*) vp ); if ( str_memerr( s ) ) return NULL; a->n++; if ( a->sorted && a->n > 1 ) { if ( slist_comp_step( a, a->n-2, a->n-1 ) > 0 ) a->sorted = 0; } } return s; } str * slist_addc( slist *a, const char *s ) { return slist_addvp( a, SLIST_CHR, (void*)s ); } str * slist_add( slist *a, str *s ) { return slist_addvp( a, SLIST_STR, (void*)s ); } str * slist_addvp_unique( slist *a, int mode, void *vp ) { str *s; int n; if ( mode==SLIST_CHR ) n = slist_findc( a, (const char*) vp ); else n = slist_find( a, (str*) vp ); if ( slist_wasfound( a, n ) ) s = &( a->strs[n] ); else s = slist_addvp( a, mode, vp ); return s; } str * slist_addc_unique( slist *a, const char *s ) { return slist_addvp_unique( a, SLIST_CHR, (void*)s ); } str * slist_add_unique( slist *a, str *s ) { return slist_addvp_unique( a, SLIST_STR, (void*)s ); } int slist_addvp_all( slist *a, int mode, ... ) { int ret = SLIST_OK; va_list ap; void *v; str *s; va_start( ap, mode ); do { if ( mode==SLIST_CHR ) v = va_arg( ap, char * ); else v = va_arg( ap, str * ); if ( v ) { s = slist_addvp( a, mode, v ); if ( s==NULL ) { ret = SLIST_ERR_MEMERR; goto out; } } } while ( v ); out: va_end( ap ); return ret; } int slist_add_all( slist *a, ... ) { int ret = SLIST_OK; va_list ap; str *s, *v; va_start( ap, a ); do { v = va_arg( ap, str * ); if ( v ) { s = slist_addvp( a, SLIST_STR, (void*)v ); if ( s==NULL ) { ret = SLIST_ERR_MEMERR; goto out; } } } while ( v ); out: va_end( ap ); return ret; } int slist_addc_all( slist *a, ... ) { int ret = SLIST_OK; const char *v; va_list ap; str *s; va_start( ap, a ); do { v = va_arg( ap, const char * ); if ( v ) { s = slist_addvp( a, SLIST_CHR, (void*)v ); if ( s==NULL ) { ret = SLIST_ERR_MEMERR; goto out; } } } while ( v ); out: va_end( ap ); return ret; } int slist_append( slist *a, slist *toadd ) { int i, status; assert( a ); assert( toadd ); status = slist_ensure_space( a, a->n + toadd->n, SLIST_EXACT_SIZE ); if ( status == SLIST_OK ) { for ( i=0; in; ++i ) { str_strcpy( &(a->strs[a->n+i]), &(toadd->strs[i]) ); if ( str_memerr( &(a->strs[a->n+i]) ) ) return SLIST_ERR_MEMERR; } a->n += toadd->n; } return status; } int slist_append_unique( slist *a, slist *toadd ) { str *s; int i; assert( a ); assert( toadd ); for ( i=0; in; ++i ) { s = slist_add_unique( a, &(toadd->strs[i]) ); if ( !s ) return SLIST_ERR_MEMERR; } return SLIST_OK; } int slist_remove( slist *a, slist_index n ) { int i; assert( a ); if ( !slist_valid_num( a, n ) ) return SLIST_ERR_BADPARAM; for ( i=n+1; in; ++i ) { str_strcpy( &(a->strs[i-1]), &(a->strs[i]) ); if ( str_memerr( &(a->strs[i-1]) ) ) return SLIST_ERR_MEMERR; } a->n--; return SLIST_OK; } void slist_sort( slist *a ) { qsort( a->strs, a->n, sizeof( str ), slist_comp ); a->sorted = 1; } static slist_index slist_find_sorted( slist *a, const char *searchstr ) { slist_index min, max, mid; str s, *cs; int comp; assert( a ); assert( searchstr ); str_initstrc( &s, searchstr ); min = 0; max = a->n - 1; while ( min <= max ) { mid = ( min + max ) / 2; cs = slist_str( a, mid ); comp = slist_comp( (void*)cs, (void*) (&s) ); if ( comp==0 ) { str_free( &s ); return mid; } else if ( comp > 0 ) max = mid - 1; else if ( comp < 0 ) min = mid + 1; } str_free( &s ); return -1; } static slist_index slist_find_simple( slist *a, const char *searchstr, int nocase ) { slist_index i; assert( a ); assert( searchstr ); if ( nocase ) { for ( i=0; in; ++i ) if ( !str_strcasecmpc( &(a->strs[i]), searchstr ) ) return i; } else { for ( i=0; in; ++i ) if ( !str_strcmpc( &(a->strs[i]), searchstr ) ) return i; } return -1; } slist_index slist_findc( slist *a, const char *searchstr ) { assert( a ); if ( a->n==0 ) return -1; if ( a->sorted ) return slist_find_sorted( a, searchstr ); else return slist_find_simple( a, searchstr, 0 ); } slist_index slist_find( slist *a, str *searchstr ) { if ( searchstr->len==0 ) return -1; return slist_findc( a, str_cstr( searchstr ) ); } slist_index slist_findnocasec( slist *a, const char *searchstr ) { assert( a ); return slist_find_simple( a, searchstr, 1 ); } slist_index slist_findnocase( slist *a, str *searchstr ) { if ( searchstr->len==0 ) return -1; return slist_findnocasec( a, str_cstr( searchstr ) ); } int slist_wasfound( slist *a, slist_index n ) { return ( n!=-1 ); } int slist_wasnotfound( slist *a, slist_index n ) { return ( n==-1 ); } int slist_fillfp( slist *a, FILE *fp, unsigned char skip_blank_lines ) { int ret = SLIST_OK; str line, *s; assert( a ); assert( fp ); slist_empty( a ); str_init( &line ); while ( str_fgetline( &line, fp ) ) { if ( skip_blank_lines && line.len==0 ) continue; s = slist_add( a, &line ); if ( !s ) { ret = SLIST_ERR_MEMERR; goto out; } } out: str_free( &line ); return ret; } int slist_fill( slist *a, const char *filename, unsigned char skip_blank_lines ) { FILE *fp; int ret; fp = fopen( filename, "r" ); if ( !fp ) return SLIST_ERR_CANTOPEN; ret = slist_fillfp( a, fp, skip_blank_lines ); fclose( fp ); return ret; } int slist_copy( slist *to, slist *from ) { slist_index i; int status; assert( to ); assert( from ); slist_free( to ); if ( from->n==0 ) return SLIST_OK; status = slist_ensure_space( to, from->n, SLIST_EXACT_SIZE ); if ( status == SLIST_OK ) { to->sorted = from->sorted; to->n = from->n; for ( i=0; in; i++ ) { str_strcpy( &(to->strs[i]), &(from->strs[i]) ); if ( str_memerr( &(to->strs[i]) ) ) return SLIST_ERR_MEMERR; } } return SLIST_OK; } slist * slist_dup( slist *from ) { int status; slist *to; to = slist_new(); if ( to ) { status = slist_copy( to, from ); if ( status!=SLIST_OK ) { slist_delete( to ); to = NULL; } } return to; } unsigned long slist_get_maxlen( slist *a ) { unsigned long max = 0; slist_index i; str *s; assert( a ); for ( i=0; in; ++i ) { s = slist_str( a, i ); if ( s->len > max ) max = s->len; } return max; } void slist_dump( slist *a, FILE *fp, int newline ) { slist_index i; assert( a ); assert( fp ); if ( newline ) { for ( i=0; in; ++i ) fprintf( fp, "%s\n", slist_cstr( a, i ) ); } else { for ( i=0; in; ++i ) fprintf( fp, "%s", slist_cstr( a, i ) ); } } int slist_match_entry( slist *a, int n, const char *s ) { assert( a ); if ( !slist_valid_num( a, n ) ) return 0; if ( str_strcmpc( &(a->strs[n]), s ) ) return 0; return 1; } void slist_trimend( slist *a, int n ) { slist_index i; assert( a ); if ( a->n - n < 1 ) { slist_empty( a ); } else { for ( i=a->n -n; in; ++i ) { str_empty( &(a->strs[i]) ); } a->n -= n; } } int slist_tokenizec( slist *tokens, char *p, const char *delim, int merge_delim ) { int ret = SLIST_OK; str s, *t; char *q; assert( tokens ); slist_empty( tokens ); str_init( &s ); while ( p && *p ) { q = p; while ( *q && !strchr( delim, *q ) ) q++; str_segcpy( &s, p, q ); if ( str_memerr( &s ) ) { ret = SLIST_ERR_MEMERR; goto out; } if ( s.len ) { t = slist_addvp( tokens, SLIST_STR, (void*) &s ); if ( !t ) { ret = SLIST_ERR_MEMERR; goto out; } } else if ( !merge_delim ) { t = slist_addvp( tokens, SLIST_CHR, (void*) "" ); if ( !t ) { ret = SLIST_ERR_MEMERR; goto out; } } p = q; if ( *p ) p++; } out: str_free( &s ); return ret; } int slist_tokenize( slist *tokens, str *in, const char *delim, int merge_delim ) { return slist_tokenizec( tokens, str_cstr( in ), delim, merge_delim ); } void slists_init( slist *a, ... ) { slist *a2; va_list ap; slist_init( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_init( a2 ); } while ( a2 ); va_end( ap ); } void slists_free( slist *a, ... ) { slist *a2; va_list ap; slist_free( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_free( a2 ); } while ( a2 ); va_end( ap ); } void slists_empty( slist *a, ... ) { slist *a2; va_list ap; slist_empty( a ); va_start( ap, a ); do { a2 = va_arg( ap, slist * ); if ( a2 ) slist_empty( a2 ); } while ( a2 ); va_end( ap ); } hs-bibutils-6.7.0.0/bibutils/slist.h0000755000000000000000000000542000000000000015366 0ustar0000000000000000/* * slist.h * * version: 2017-11-14 * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * */ #ifndef SLIST_H #define SLIST_H #include #include #include #include #include "str.h" #define SLIST_OK (0) #define SLIST_ERR_MEMERR (-1) #define SLIST_ERR_CANTOPEN (-2) #define SLIST_ERR_BADPARAM (-3) #define SLIST_CHR (0) #define SLIST_STR (1) typedef int slist_index; typedef struct slist { slist_index n, max; int sorted; str *strs; } slist; void slists_init( slist *a, ... ); void slists_free( slist *a, ... ); void slists_empty( slist *a, ... ); void slist_init( slist *a ); int slist_init_values ( slist *a, ... ); int slist_init_valuesc( slist *a, ... ); void slist_free( slist *a ); void slist_empty( slist *a ); slist * slist_new( void ); void slist_delete( slist * ); void slist_deletev( void *v ); slist * slist_dup( slist *a ); int slist_copy( slist *to, slist *from ); void slist_swap( slist *a, slist_index n1, slist_index n2 ); str * slist_addvp( slist *a, int mode, void *vp ); str * slist_addc( slist *a, const char *value ); str * slist_add( slist *a, str *value ); int slist_addvp_all( slist *a, int mode, ... ); int slist_addc_all( slist *a, ... ); int slist_add_all( slist *a, ... ); str * slist_addvp_unique( slist *a, int mode, void *vp ); str * slist_addc_unique( slist *a, const char *value ); str * slist_add_unique( slist *a, str *value ); int slist_append( slist *a, slist *toadd ); int slist_append_unique( slist *a, slist *toadd ); int slist_remove( slist *a, slist_index n ); str * slist_str( slist *a, slist_index n ); char * slist_cstr( slist *a, slist_index n ); str * slist_set( slist *a, slist_index n, str *s ); str * slist_setc( slist *a, slist_index n, const char *s ); void slist_sort( slist *a ); int slist_find( slist *a, str *searchstr ); int slist_findc( slist *a, const char *searchstr ); int slist_findnocase( slist *a, str *searchstr ); int slist_findnocasec( slist *a, const char *searchstr ); int slist_wasfound( slist *a, slist_index n ); int slist_wasnotfound( slist *a, slist_index n ); int slist_match_entry( slist *a, slist_index n, const char *s ); void slist_trimend( slist *a, slist_index n ); unsigned long slist_get_maxlen( slist *a ); void slist_dump( slist *a, FILE *fp, int newline ); int slist_fill( slist *a, const char *filename, unsigned char skip_blank_lines ); int slist_fillfp( slist *a, FILE *fp, unsigned char skip_blank_lines ); int slist_tokenize( slist *tokens, str *in, const char *delim, int merge_delim ); int slist_tokenizec( slist *tokens, char *p, const char *delim, int merge_delim ); #endif hs-bibutils-6.7.0.0/bibutils/str.c0000644000000000000000000004707600000000000015045 0ustar0000000000000000/* * str.c * * Version: 2018-08-03 * * Copyright (c) Chris Putnam 1999-2018 * * Source code released under the GPL version 2 * * * routines for dynamically allocated strings * */ #include #include #include #include #include #include #include "is_ws.h" #include "str.h" /* Do not use asserts in STR_NOASSERT defined */ #ifdef STR_NOASSERT #define NDEBUG #endif #include #define str_initlen (64) #ifndef STR_SMALL #define str_clear_status( s ) s->status = STR_OK; #define handle_memerr( s, f ) s->status = STR_MEMERR; #define return_if_memerr( s ) \ { \ if ( s->status != STR_OK ) return; \ } #define return_zero_if_memerr( s ) \ { \ if ( s->status != STR_OK ) return 0; \ } #define return_after_delim_if_memerr( s, p, delim, finalstep ) \ { \ if ( s->status != STR_OK ) { \ while ( p && *p && !strchr( delim, *p ) ) p++; \ if ( p && *p && finalstep ) p++; \ return p; \ } \ } #else #define str_clear_status( s ) {} #define handle_memerr( s, f ) \ { \ fprintf( stderr,"Error. Cannot allocate memory in %s.\n", f ); \ exit( EXIT_FAILURE ); \ } #define return_if_memerr( s ) {} #define return_zero_if_memerr( s ) {} #define return_after_delim_if_memerr( s, p, delim, finalstep ) {} #endif /* Clear memory in resize/free if STR_PARANOIA defined */ #ifndef STR_PARANOIA static void str_realloc( str *s, unsigned long minsize ) { unsigned long size; char *newptr; assert( s ); return_if_memerr( s ); size = 2 * s->dim; if (size < minsize) size = minsize; newptr = (char *) realloc( s->data, sizeof( *(s->data) )*size ); if ( !newptr ) handle_memerr( s, __FUNCTION__ ); s->data = newptr; s->dim = size; } /* define as a no-op */ #define str_nullify( s ) #else static void str_realloc( str *s, unsigned long minsize ) { unsigned long size; char *newptr; assert( s ); return_if_memerr( s ); size = 2 * s->dim; if ( size < minsize ) size = minsize; newptr = (char *) malloc( sizeof( *(s->data) ) * size ); if ( !newptr ) handle_memerr( s, __FUNCTION__ ); if ( s->data ) { str_nullify( s ); free( s->data ); } s->data = newptr; s->dim = size; } static inline void str_nullify( str *s ) { memset( s->data, 0, s->dim ); } #endif void str_init( str *s ) { assert( s ); s->dim = 0; s->len = 0; s->data = NULL; str_clear_status( s ); } void str_initstr( str *s, str *from ) { assert( s ); assert( from ); str_init( s ); str_strcpy( s, from ); } void str_initstrc( str *s, const char *initstr ) { assert( s ); assert( initstr ); str_init( s ); str_strcpyc( s, initstr ); } void str_initstrsc( str *s, ... ) { const char *c; va_list ap; str_init( s ); va_start( ap, s ); do { c = va_arg( ap, const char * ); if ( c ) str_strcatc( s, c ); } while ( c ); va_end( ap ); } void strs_init( str *s, ... ) { str *s2; va_list ap; str_init( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_init( s2 ); } while ( s2 ); va_end( ap ); } int str_memerr( str *s ) { #ifndef STR_SMALL return s->status == STR_MEMERR; #else return 0; #endif } void str_mergestrs( str *s, ... ) { va_list ap; const char *cp; str_clear_status( s ); str_empty( s ); va_start( ap, s ); do { cp = va_arg( ap, const char * ); if ( cp ) str_strcatc( s, cp ); } while ( cp ); va_end( ap ); } static void str_initalloc( str *s, unsigned long minsize ) { unsigned long size = str_initlen; assert( s ); if ( minsize > str_initlen ) size = minsize; s->data = (char *) malloc (sizeof( *(s->data) ) * size); if ( !s->data ) { fprintf(stderr,"Error. Cannot allocate memory in str_initalloc, requested %lu characters.\n", size ); exit( EXIT_FAILURE ); } s->data[0]='\0'; s->dim=size; s->len=0; } str * str_new( void ) { str *s = (str *) malloc( sizeof( *s ) ); if ( s ) str_initalloc( s, str_initlen ); return s; } void str_free( str *s ) { assert( s ); if ( s->data ) { str_nullify( s ); free( s->data ); } s->dim = 0; s->len = 0; s->data = NULL; } void strs_free( str *s, ... ) { str *s2; va_list ap; str_free( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_free( s2 ); } while ( s2 ); va_end( ap ); } void str_delete( str *s ) { assert( s ); str_free( s ); free( s ); } void str_empty( str *s ) { assert( s ); str_clear_status( s ); if ( s->data ) { str_nullify( s ); s->data[0] = '\0'; } s->len = 0; } void strs_empty( str *s, ... ) { str *s2; va_list ap; str_empty( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_empty( s2 ); } while ( s2 ); va_end( ap ); } void str_addchar( str *s, char newchar ) { assert( s ); return_if_memerr( s ); if ( newchar=='\0' ) return; /* appending '\0' is a null operation */ if ( !s->data || s->dim==0 ) str_initalloc( s, str_initlen ); if ( s->len + 2 > s->dim ) str_realloc( s, s->len*2 ); s->data[s->len++] = newchar; s->data[s->len] = '\0'; } /* str_addutf8 * * Add potential multibyte character to s starting at pointer p. * Multibyte Unicode characters have the high bit set. * * Since we can progress more than one byte at p, return the * properly updated pointer p. */ const char * str_addutf8( str *s, const char *p ) { if ( ! ((*p) & 128 ) ) { str_addchar( s, *p ); p++; } else { while ( ((*p) & 128) ) { str_addchar( s, *p ); p++; } } return p; } char * str_cstr( str *s ) { assert( s ); return s->data; } void str_fprintf( FILE *fp, str *s ) { assert( s ); if ( s->data ) fprintf( fp, "%s", s->data ); } void str_prepend( str *s, const char *addstr ) { unsigned long lenaddstr, i; assert( s && addstr ); return_if_memerr( s ); lenaddstr = strlen( addstr ); if ( lenaddstr==0 ) return; /* appending an empty string is a null op */ if ( !s->data || !s->dim ) str_initalloc( s, lenaddstr+1 ); else { if ( s->len + lenaddstr + 1 > s->dim ) str_realloc( s, s->len + lenaddstr + 1 ); for ( i=s->len+lenaddstr-1; i>=lenaddstr; i-- ) s->data[i] = s->data[i-lenaddstr]; } strncpy( s->data, addstr, lenaddstr ); s->len += lenaddstr; s->data[ s->len ] = '\0'; } static inline void str_strcat_ensurespace( str *s, unsigned long n ) { unsigned long m = s->len + n + 1; if ( !s->data || !s->dim ) str_initalloc( s, m ); else if ( s->len + n + 1 > s->dim ) str_realloc( s, m ); } static inline void str_strcat_internal( str *s, const char *addstr, unsigned long n ) { return_if_memerr( s ); str_strcat_ensurespace( s, n ); strncat( &(s->data[s->len]), addstr, n ); s->len += n; s->data[s->len]='\0'; } void str_strcat( str *s, str *from ) { assert ( s && from ); if ( !from->data ) return; else str_strcat_internal( s, from->data, from->len ); } void str_strcatc( str *s, const char *from ) { unsigned long n; assert( s && from ); n = strlen( from ); str_strcat_internal( s, from, n ); } void str_segcat( str *s, char *startat, char *endat ) { unsigned long n; char *p; assert( s && startat && endat ); assert( (size_t) startat < (size_t) endat ); return_if_memerr( s ); if ( startat==endat ) return; n = 0; p = startat; while ( p!=endat ) { n++; p++; } str_strcat_internal( s, startat, n ); } void str_indxcat( str *s, char *p, unsigned long start, unsigned long stop ) { unsigned long i; assert( s && p ); assert( start <= stop ); return_if_memerr( s ); for ( i=start; idata || !s->dim ) str_initalloc( s, m ); else if ( m > s->dim ) str_realloc( s, m ); } static inline void str_strcpy_internal( str *s, const char *p, unsigned long n ) { return_if_memerr( s ); str_strcpy_ensurespace( s, n ); strncpy( s->data, p, n ); s->data[n] = '\0'; s->len = n; } void str_strcpy( str *s, str *from ) { assert( s ); assert( from ); if ( s==from ) return; else if ( !from || from->len==0 ) str_empty( s ); else str_strcpy_internal( s, from->data, from->len ); } void str_strcpyc( str *s, const char *from ) { unsigned long n; assert( s && from ); n = strlen( from ); str_strcpy_internal( s, from, n ); } /* str_segcpy( s, start, end ); * * copies [start,end) into s */ void str_segcpy( str *s, char *startat, char *endat ) { unsigned long n; char *p; assert( s && startat && endat ); assert( ((size_t) startat) <= ((size_t) endat) ); return_if_memerr( s ); if ( startat==endat ) { str_empty( s ); return; } n = 0; p = startat; while ( p!=endat ) { p++; n++; } str_strcpy_internal( s, startat, n ); } /* * str_indxcpy( s, in, start, stop ); * * copies in[start,stop) (excludes stop) into s */ void str_indxcpy( str *s, char *p, unsigned long start, unsigned long stop ) { unsigned long i; assert( s && p ); assert( start <= stop ); return_if_memerr( s ); if ( start == stop ) { str_empty( s ); return; } str_strcpy_ensurespace( s, stop-start+1 ); for ( i=start; idata[i-start] = p[i]; s->len = stop-start; s->data[s->len] = '\0'; } str * str_strdup( str *from ) { str *s = str_new(); if ( s ) str_strcpy( s, from ); return s; } str * str_strdupc( const char *from ) { str *s = str_new(); if ( s ) str_strcpyc( s, from ); return s; } void str_segdel( str *s, char *p, char *q ) { str tmp1, tmp2; char *r; assert( s ); return_if_memerr( s ); r = &(s->data[s->len]); str_init( &tmp1 ); str_init( &tmp2 ); str_segcpy( &tmp1, s->data, p ); str_segcpy( &tmp2, q, r ); str_empty( s ); if ( tmp1.data ) str_strcat( s, &tmp1 ); if ( tmp2.data ) str_strcat( s, &tmp2 ); str_free( &tmp2 ); str_free( &tmp1 ); } /* * str_findreplace() * * if replace is "" or NULL, then delete find */ int str_findreplace( str *s, const char *find, const char *replace ) { long diff; size_t findstart, searchstart; size_t p1, p2; size_t find_len, rep_len, curr_len; char empty[2] = ""; unsigned long minsize; char *p; int n = 0; assert( s && find ); return_zero_if_memerr( s ); if ( !s->data || !s->dim ) return 0; if ( !replace ) replace = empty; find_len = strlen( find ); rep_len = strlen( replace ); diff = rep_len - find_len; if ( diff < 0 ) diff = 0; searchstart=0; while ((p=strstr(s->data + searchstart,find))!=NULL) { curr_len = strlen(s->data); findstart=(size_t) p - (size_t) s->data; minsize = curr_len + diff + 1; if (s->dim <= minsize) str_realloc( s, minsize ); if ( find_len > rep_len ) { p1 = findstart + rep_len; p2 = findstart + find_len; while( s->data[p2] ) s->data[p1++]=s->data[p2++]; s->data[p1]='\0'; n++; } else if ( find_len < rep_len ) { for ( p1=curr_len; p1>=findstart+find_len; p1-- ) s->data[p1+diff] = s->data[p1]; n++; } for (p1=0; p1data[findstart+p1]=replace[p1]; searchstart = findstart + rep_len; s->len += rep_len - find_len; } return n; } /* str_fget() * returns 0 if we're done, 1 if we're not done * extracts line by line (regardless of end characters) * and feeds from buf.... */ int str_fget( FILE *fp, char *buf, int bufsize, int *pbufpos, str *outs ) { int bufpos = *pbufpos, done = 0; char *ok; assert( fp && outs ); str_empty( outs ); while ( !done ) { while ( buf[bufpos] && buf[bufpos]!='\r' && buf[bufpos]!='\n' ) str_addchar( outs, buf[bufpos++] ); if ( buf[bufpos]=='\0' ) { ok = fgets( buf, bufsize, fp ); bufpos=*pbufpos=0; if ( !ok && feof(fp) ) { /* end-of-file */ buf[bufpos] = 0; if ( outs->len==0 ) return 0; /*nothing in out*/ else return 1; /*one last out */ } } else if ( buf[bufpos]=='\r' || buf[bufpos]=='\n' ) done=1; } if ( ( buf[bufpos]=='\n' && buf[bufpos+1]=='\r') || ( buf[bufpos]=='\r' && buf[bufpos+1]=='\n') ) bufpos+=2; else if ( buf[bufpos]=='\n' || buf[bufpos]=='\r' ) bufpos+=1; *pbufpos = bufpos; return 1; } void str_toupper( str *s ) { unsigned long i; assert( s ); for ( i=0; ilen; ++i ) s->data[i] = toupper( (unsigned char)s->data[i] ); } void str_tolower( str *s ) { unsigned long i; assert( s ); for ( i=0; ilen; ++i ) s->data[i] = tolower( (unsigned char)s->data[i] ); } /* str_swapstrings( s1, s2 ) * be sneaky and swap internal string data from one * string to another */ void str_swapstrings( str *s1, str *s2 ) { char *tmpp; int tmp; assert( s1 && s2 ); /* swap dimensioning info */ tmp = s1->dim; s1->dim = s2->dim; s2->dim = tmp; /* swap length info */ tmp = s1->len; s1->len = s2->len; s2->len = tmp; /* swap data */ tmpp = s1->data; s1->data = s2->data; s2->data = tmpp; } void str_trimstartingws( str *s ) { char *p, *q; int n; assert( s ); if ( s->len==0 || !is_ws( s->data[0] ) ) return; n = 0; p = s->data; while ( is_ws( *p ) ) p++; q = s->data; while ( *p ) { *q++ = *p++; n++; } *q = '\0'; s->len = n; } void str_trimendingws( str *s ) { assert( s ); while ( s->len > 0 && is_ws( s->data[s->len-1] ) ) { s->data[s->len-1] = '\0'; s->len--; } } int str_match_first( str *s, char ch ) { assert( s ); if ( !s->len ) return 0; if ( s->data[0] == ch ) return 1; return 0; } int str_match_end( str *s, char ch ) { assert( s ); if ( !s->len ) return 0; if ( s->data[ s->len - 1 ] == ch ) return 1; return 0; } void str_trimbegin( str *s, unsigned long n ) { char *p, *q; assert( s ); if ( n==0 ) return; if ( s->len==0 ) return; if ( n >= s->len ) { str_empty( s ); return; } p = s->data; while ( n-- > 0 ) p++; n = 0; q = s->data; while ( *p ) { *q++ = *p++; n++; } *q = '\0'; s->len = n; } void str_trimend( str *s, unsigned long n ) { assert( s ); if ( n==0 ) return; if ( n >= s->len ) { str_empty( s ); return; } s->len -= n; s->data[ s->len ] = '\0'; } void str_pad( str *s, unsigned long len, char ch ) { unsigned long i; assert( s ); for ( i=s->len; i in->len ) max = in->len; for ( i=pos; idata[i] ); } static void str_check_case( str *s, int *lowercase, int *uppercase ) { int i; assert( s ); *lowercase = 0; *uppercase = 0; if ( s->len < 1 ) return; for ( i=0; ilen && !( *lowercase && *uppercase ); ++i ) { if ( isalpha( (unsigned char)s->data[i] ) ) { if ( isupper( (unsigned char)s->data[i] ) ) *uppercase += 1; else if ( islower( (unsigned char)s->data[i] ) ) *lowercase += 1; } } } int str_is_mixedcase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase > 0 && uppercase > 0 ) return 1; return 0; } int str_is_lowercase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase > 0 && uppercase == 0 ) return 1; return 0; } int str_is_uppercase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase == 0 && uppercase > 0 ) return 1; return 0; } void str_stripws( str *s ) { unsigned long len = 0; char *p, *q; assert( s ); if ( s->len ) { p = q = s->data; while ( *p ) { if ( !is_ws( *p ) ) { *q = *p; q++; len++; } p++; } *q = '\0'; } s->len = len; } int str_strcmp( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strcmp( "", t->data ); if ( t->len == 0 ) return strcmp( s->data, "" ); return strcmp( s->data, t->data ); } int str_strcmpc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strcmp( "", t ); return strcmp( s->data, t ); } int str_strncmp( const str *s, const str *t, size_t n ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strncmp( "", t->data, n ); if ( t->len == 0 ) return strncmp( s->data, "", n ); return strncmp( s->data, t->data, n ); } int str_strncmpc( const str *s, const char *t, size_t n ) { assert( s ); assert( t ); if ( s->len == 0 ) return strncmp( "", t, n ); return strncmp( s->data, t, n ); } int str_strcasecmp( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strcasecmp( "", t->data ); if ( t->len == 0 ) return strcasecmp( s->data, "" ); return strcasecmp( s->data, t->data ); } int str_strcasecmpc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strcasecmp( "", t ); return strcasecmp( s->data, t ); } char * str_strstr( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return strstr( "", "" ); if ( s->len == 0 ) return strstr( "", t->data ); if ( t->len == 0 ) return strstr( s->data, "" ); return strstr( s->data, t->data ); } char * str_strstrc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strstr( "", t ); return strstr( s->data, t ); } void str_reverse( str *s ) { unsigned long i, max; char tmp; assert( s ); max = s->len / 2; for ( i=0; idata[ i ]; s->data[ i ] = s->data[ s->len - 1 - i ]; s->data[ s->len - 1 - i ] = tmp; } } int str_fgetline( str *s, FILE *fp ) { int ch, eol = 0; assert( s ); assert( fp ); str_empty( s ); if ( feof( fp ) ) return 0; while ( !feof( fp ) && !eol ) { ch = fgetc( fp ); if ( ch == EOF ) { if ( s->len ) return 1; else return 0; } else if ( ch == '\n' ) eol = 1; else if ( ch == '\r' ) { ch = fgetc( fp ); if ( ch != '\n' ) ungetc( ch, fp ); eol = 1; } else { str_addchar( s, (char) ch ); } } return 1; } /* * s = "Hi!\0", s.len = 3 * * str_char( s, 0 ) = 'H' str_revchar( s, 0 ) = '!' * str_char( s, 1 ) = 'i' str_revchar( s, 1 ) = 'i' * str_char( s, 2 ) = '!' str_revchar( s, 2 ) = 'H' * str_char( s, 3 ) = '\0' str_revchar( s, 3 ) = '\0' */ char str_char( str *s, unsigned long n ) { assert( s ); if ( s->len==0 || n >= s->len ) return '\0'; return s->data[ n ]; } char str_revchar( str *s, unsigned long n ) { assert( s ); if ( s->len==0 || n >= s->len ) return '\0'; return s->data[ s->len - n - 1]; } void str_makepath( str *path, const char *dirname, const char *filename, char sep ) { assert( path ); if ( dirname ) str_strcpyc( path, dirname ); else str_empty( path ); if ( path->len && path->data[path->len-1]!=sep ) str_addchar( path, sep ); if ( filename ) str_strcatc( path, filename ); } void str_fill( str *s, unsigned long n, char fillchar ) { unsigned long i; assert( s ); str_clear_status( s ); if ( !s->data || s->dim==0 ) str_initalloc( s, n+1 ); if ( n + 1 > s->dim ) str_realloc( s, n+1 ); for ( i=0; idata[i] = fillchar; s->data[n] = '\0'; s->len = n; } int str_has_value( str *s ) { if ( !s || s->len==0 ) return 0; return 1; } int str_is_empty( str *s ) { if ( !s || s->len==0 ) return 1; return 0; } unsigned long str_strlen( str *s ) { if ( !s ) return 0; else return s->len; } hs-bibutils-6.7.0.0/bibutils/str.c0000755000000000000000000004707600000000000015050 0ustar0000000000000000/* * str.c * * Version: 2018-08-03 * * Copyright (c) Chris Putnam 1999-2018 * * Source code released under the GPL version 2 * * * routines for dynamically allocated strings * */ #include #include #include #include #include #include #include "is_ws.h" #include "str.h" /* Do not use asserts in STR_NOASSERT defined */ #ifdef STR_NOASSERT #define NDEBUG #endif #include #define str_initlen (64) #ifndef STR_SMALL #define str_clear_status( s ) s->status = STR_OK; #define handle_memerr( s, f ) s->status = STR_MEMERR; #define return_if_memerr( s ) \ { \ if ( s->status != STR_OK ) return; \ } #define return_zero_if_memerr( s ) \ { \ if ( s->status != STR_OK ) return 0; \ } #define return_after_delim_if_memerr( s, p, delim, finalstep ) \ { \ if ( s->status != STR_OK ) { \ while ( p && *p && !strchr( delim, *p ) ) p++; \ if ( p && *p && finalstep ) p++; \ return p; \ } \ } #else #define str_clear_status( s ) {} #define handle_memerr( s, f ) \ { \ fprintf( stderr,"Error. Cannot allocate memory in %s.\n", f ); \ exit( EXIT_FAILURE ); \ } #define return_if_memerr( s ) {} #define return_zero_if_memerr( s ) {} #define return_after_delim_if_memerr( s, p, delim, finalstep ) {} #endif /* Clear memory in resize/free if STR_PARANOIA defined */ #ifndef STR_PARANOIA static void str_realloc( str *s, unsigned long minsize ) { unsigned long size; char *newptr; assert( s ); return_if_memerr( s ); size = 2 * s->dim; if (size < minsize) size = minsize; newptr = (char *) realloc( s->data, sizeof( *(s->data) )*size ); if ( !newptr ) handle_memerr( s, __FUNCTION__ ); s->data = newptr; s->dim = size; } /* define as a no-op */ #define str_nullify( s ) #else static void str_realloc( str *s, unsigned long minsize ) { unsigned long size; char *newptr; assert( s ); return_if_memerr( s ); size = 2 * s->dim; if ( size < minsize ) size = minsize; newptr = (char *) malloc( sizeof( *(s->data) ) * size ); if ( !newptr ) handle_memerr( s, __FUNCTION__ ); if ( s->data ) { str_nullify( s ); free( s->data ); } s->data = newptr; s->dim = size; } static inline void str_nullify( str *s ) { memset( s->data, 0, s->dim ); } #endif void str_init( str *s ) { assert( s ); s->dim = 0; s->len = 0; s->data = NULL; str_clear_status( s ); } void str_initstr( str *s, str *from ) { assert( s ); assert( from ); str_init( s ); str_strcpy( s, from ); } void str_initstrc( str *s, const char *initstr ) { assert( s ); assert( initstr ); str_init( s ); str_strcpyc( s, initstr ); } void str_initstrsc( str *s, ... ) { const char *c; va_list ap; str_init( s ); va_start( ap, s ); do { c = va_arg( ap, const char * ); if ( c ) str_strcatc( s, c ); } while ( c ); va_end( ap ); } void strs_init( str *s, ... ) { str *s2; va_list ap; str_init( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_init( s2 ); } while ( s2 ); va_end( ap ); } int str_memerr( str *s ) { #ifndef STR_SMALL return s->status == STR_MEMERR; #else return 0; #endif } void str_mergestrs( str *s, ... ) { va_list ap; const char *cp; str_clear_status( s ); str_empty( s ); va_start( ap, s ); do { cp = va_arg( ap, const char * ); if ( cp ) str_strcatc( s, cp ); } while ( cp ); va_end( ap ); } static void str_initalloc( str *s, unsigned long minsize ) { unsigned long size = str_initlen; assert( s ); if ( minsize > str_initlen ) size = minsize; s->data = (char *) malloc (sizeof( *(s->data) ) * size); if ( !s->data ) { fprintf(stderr,"Error. Cannot allocate memory in str_initalloc, requested %lu characters.\n", size ); exit( EXIT_FAILURE ); } s->data[0]='\0'; s->dim=size; s->len=0; } str * str_new( void ) { str *s = (str *) malloc( sizeof( *s ) ); if ( s ) str_initalloc( s, str_initlen ); return s; } void str_free( str *s ) { assert( s ); if ( s->data ) { str_nullify( s ); free( s->data ); } s->dim = 0; s->len = 0; s->data = NULL; } void strs_free( str *s, ... ) { str *s2; va_list ap; str_free( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_free( s2 ); } while ( s2 ); va_end( ap ); } void str_delete( str *s ) { assert( s ); str_free( s ); free( s ); } void str_empty( str *s ) { assert( s ); str_clear_status( s ); if ( s->data ) { str_nullify( s ); s->data[0] = '\0'; } s->len = 0; } void strs_empty( str *s, ... ) { str *s2; va_list ap; str_empty( s ); va_start( ap, s ); do { s2 = va_arg( ap, str * ); if ( s2 ) str_empty( s2 ); } while ( s2 ); va_end( ap ); } void str_addchar( str *s, char newchar ) { assert( s ); return_if_memerr( s ); if ( newchar=='\0' ) return; /* appending '\0' is a null operation */ if ( !s->data || s->dim==0 ) str_initalloc( s, str_initlen ); if ( s->len + 2 > s->dim ) str_realloc( s, s->len*2 ); s->data[s->len++] = newchar; s->data[s->len] = '\0'; } /* str_addutf8 * * Add potential multibyte character to s starting at pointer p. * Multibyte Unicode characters have the high bit set. * * Since we can progress more than one byte at p, return the * properly updated pointer p. */ const char * str_addutf8( str *s, const char *p ) { if ( ! ((*p) & 128 ) ) { str_addchar( s, *p ); p++; } else { while ( ((*p) & 128) ) { str_addchar( s, *p ); p++; } } return p; } char * str_cstr( str *s ) { assert( s ); return s->data; } void str_fprintf( FILE *fp, str *s ) { assert( s ); if ( s->data ) fprintf( fp, "%s", s->data ); } void str_prepend( str *s, const char *addstr ) { unsigned long lenaddstr, i; assert( s && addstr ); return_if_memerr( s ); lenaddstr = strlen( addstr ); if ( lenaddstr==0 ) return; /* appending an empty string is a null op */ if ( !s->data || !s->dim ) str_initalloc( s, lenaddstr+1 ); else { if ( s->len + lenaddstr + 1 > s->dim ) str_realloc( s, s->len + lenaddstr + 1 ); for ( i=s->len+lenaddstr-1; i>=lenaddstr; i-- ) s->data[i] = s->data[i-lenaddstr]; } strncpy( s->data, addstr, lenaddstr ); s->len += lenaddstr; s->data[ s->len ] = '\0'; } static inline void str_strcat_ensurespace( str *s, unsigned long n ) { unsigned long m = s->len + n + 1; if ( !s->data || !s->dim ) str_initalloc( s, m ); else if ( s->len + n + 1 > s->dim ) str_realloc( s, m ); } static inline void str_strcat_internal( str *s, const char *addstr, unsigned long n ) { return_if_memerr( s ); str_strcat_ensurespace( s, n ); strncat( &(s->data[s->len]), addstr, n ); s->len += n; s->data[s->len]='\0'; } void str_strcat( str *s, str *from ) { assert ( s && from ); if ( !from->data ) return; else str_strcat_internal( s, from->data, from->len ); } void str_strcatc( str *s, const char *from ) { unsigned long n; assert( s && from ); n = strlen( from ); str_strcat_internal( s, from, n ); } void str_segcat( str *s, char *startat, char *endat ) { unsigned long n; char *p; assert( s && startat && endat ); assert( (size_t) startat < (size_t) endat ); return_if_memerr( s ); if ( startat==endat ) return; n = 0; p = startat; while ( p!=endat ) { n++; p++; } str_strcat_internal( s, startat, n ); } void str_indxcat( str *s, char *p, unsigned long start, unsigned long stop ) { unsigned long i; assert( s && p ); assert( start <= stop ); return_if_memerr( s ); for ( i=start; idata || !s->dim ) str_initalloc( s, m ); else if ( m > s->dim ) str_realloc( s, m ); } static inline void str_strcpy_internal( str *s, const char *p, unsigned long n ) { return_if_memerr( s ); str_strcpy_ensurespace( s, n ); strncpy( s->data, p, n ); s->data[n] = '\0'; s->len = n; } void str_strcpy( str *s, str *from ) { assert( s ); assert( from ); if ( s==from ) return; else if ( !from || from->len==0 ) str_empty( s ); else str_strcpy_internal( s, from->data, from->len ); } void str_strcpyc( str *s, const char *from ) { unsigned long n; assert( s && from ); n = strlen( from ); str_strcpy_internal( s, from, n ); } /* str_segcpy( s, start, end ); * * copies [start,end) into s */ void str_segcpy( str *s, char *startat, char *endat ) { unsigned long n; char *p; assert( s && startat && endat ); assert( ((size_t) startat) <= ((size_t) endat) ); return_if_memerr( s ); if ( startat==endat ) { str_empty( s ); return; } n = 0; p = startat; while ( p!=endat ) { p++; n++; } str_strcpy_internal( s, startat, n ); } /* * str_indxcpy( s, in, start, stop ); * * copies in[start,stop) (excludes stop) into s */ void str_indxcpy( str *s, char *p, unsigned long start, unsigned long stop ) { unsigned long i; assert( s && p ); assert( start <= stop ); return_if_memerr( s ); if ( start == stop ) { str_empty( s ); return; } str_strcpy_ensurespace( s, stop-start+1 ); for ( i=start; idata[i-start] = p[i]; s->len = stop-start; s->data[s->len] = '\0'; } str * str_strdup( str *from ) { str *s = str_new(); if ( s ) str_strcpy( s, from ); return s; } str * str_strdupc( const char *from ) { str *s = str_new(); if ( s ) str_strcpyc( s, from ); return s; } void str_segdel( str *s, char *p, char *q ) { str tmp1, tmp2; char *r; assert( s ); return_if_memerr( s ); r = &(s->data[s->len]); str_init( &tmp1 ); str_init( &tmp2 ); str_segcpy( &tmp1, s->data, p ); str_segcpy( &tmp2, q, r ); str_empty( s ); if ( tmp1.data ) str_strcat( s, &tmp1 ); if ( tmp2.data ) str_strcat( s, &tmp2 ); str_free( &tmp2 ); str_free( &tmp1 ); } /* * str_findreplace() * * if replace is "" or NULL, then delete find */ int str_findreplace( str *s, const char *find, const char *replace ) { long diff; size_t findstart, searchstart; size_t p1, p2; size_t find_len, rep_len, curr_len; char empty[2] = ""; unsigned long minsize; char *p; int n = 0; assert( s && find ); return_zero_if_memerr( s ); if ( !s->data || !s->dim ) return 0; if ( !replace ) replace = empty; find_len = strlen( find ); rep_len = strlen( replace ); diff = rep_len - find_len; if ( diff < 0 ) diff = 0; searchstart=0; while ((p=strstr(s->data + searchstart,find))!=NULL) { curr_len = strlen(s->data); findstart=(size_t) p - (size_t) s->data; minsize = curr_len + diff + 1; if (s->dim <= minsize) str_realloc( s, minsize ); if ( find_len > rep_len ) { p1 = findstart + rep_len; p2 = findstart + find_len; while( s->data[p2] ) s->data[p1++]=s->data[p2++]; s->data[p1]='\0'; n++; } else if ( find_len < rep_len ) { for ( p1=curr_len; p1>=findstart+find_len; p1-- ) s->data[p1+diff] = s->data[p1]; n++; } for (p1=0; p1data[findstart+p1]=replace[p1]; searchstart = findstart + rep_len; s->len += rep_len - find_len; } return n; } /* str_fget() * returns 0 if we're done, 1 if we're not done * extracts line by line (regardless of end characters) * and feeds from buf.... */ int str_fget( FILE *fp, char *buf, int bufsize, int *pbufpos, str *outs ) { int bufpos = *pbufpos, done = 0; char *ok; assert( fp && outs ); str_empty( outs ); while ( !done ) { while ( buf[bufpos] && buf[bufpos]!='\r' && buf[bufpos]!='\n' ) str_addchar( outs, buf[bufpos++] ); if ( buf[bufpos]=='\0' ) { ok = fgets( buf, bufsize, fp ); bufpos=*pbufpos=0; if ( !ok && feof(fp) ) { /* end-of-file */ buf[bufpos] = 0; if ( outs->len==0 ) return 0; /*nothing in out*/ else return 1; /*one last out */ } } else if ( buf[bufpos]=='\r' || buf[bufpos]=='\n' ) done=1; } if ( ( buf[bufpos]=='\n' && buf[bufpos+1]=='\r') || ( buf[bufpos]=='\r' && buf[bufpos+1]=='\n') ) bufpos+=2; else if ( buf[bufpos]=='\n' || buf[bufpos]=='\r' ) bufpos+=1; *pbufpos = bufpos; return 1; } void str_toupper( str *s ) { unsigned long i; assert( s ); for ( i=0; ilen; ++i ) s->data[i] = toupper( (unsigned char)s->data[i] ); } void str_tolower( str *s ) { unsigned long i; assert( s ); for ( i=0; ilen; ++i ) s->data[i] = tolower( (unsigned char)s->data[i] ); } /* str_swapstrings( s1, s2 ) * be sneaky and swap internal string data from one * string to another */ void str_swapstrings( str *s1, str *s2 ) { char *tmpp; int tmp; assert( s1 && s2 ); /* swap dimensioning info */ tmp = s1->dim; s1->dim = s2->dim; s2->dim = tmp; /* swap length info */ tmp = s1->len; s1->len = s2->len; s2->len = tmp; /* swap data */ tmpp = s1->data; s1->data = s2->data; s2->data = tmpp; } void str_trimstartingws( str *s ) { char *p, *q; int n; assert( s ); if ( s->len==0 || !is_ws( s->data[0] ) ) return; n = 0; p = s->data; while ( is_ws( *p ) ) p++; q = s->data; while ( *p ) { *q++ = *p++; n++; } *q = '\0'; s->len = n; } void str_trimendingws( str *s ) { assert( s ); while ( s->len > 0 && is_ws( s->data[s->len-1] ) ) { s->data[s->len-1] = '\0'; s->len--; } } int str_match_first( str *s, char ch ) { assert( s ); if ( !s->len ) return 0; if ( s->data[0] == ch ) return 1; return 0; } int str_match_end( str *s, char ch ) { assert( s ); if ( !s->len ) return 0; if ( s->data[ s->len - 1 ] == ch ) return 1; return 0; } void str_trimbegin( str *s, unsigned long n ) { char *p, *q; assert( s ); if ( n==0 ) return; if ( s->len==0 ) return; if ( n >= s->len ) { str_empty( s ); return; } p = s->data; while ( n-- > 0 ) p++; n = 0; q = s->data; while ( *p ) { *q++ = *p++; n++; } *q = '\0'; s->len = n; } void str_trimend( str *s, unsigned long n ) { assert( s ); if ( n==0 ) return; if ( n >= s->len ) { str_empty( s ); return; } s->len -= n; s->data[ s->len ] = '\0'; } void str_pad( str *s, unsigned long len, char ch ) { unsigned long i; assert( s ); for ( i=s->len; i in->len ) max = in->len; for ( i=pos; idata[i] ); } static void str_check_case( str *s, int *lowercase, int *uppercase ) { int i; assert( s ); *lowercase = 0; *uppercase = 0; if ( s->len < 1 ) return; for ( i=0; ilen && !( *lowercase && *uppercase ); ++i ) { if ( isalpha( (unsigned char)s->data[i] ) ) { if ( isupper( (unsigned char)s->data[i] ) ) *uppercase += 1; else if ( islower( (unsigned char)s->data[i] ) ) *lowercase += 1; } } } int str_is_mixedcase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase > 0 && uppercase > 0 ) return 1; return 0; } int str_is_lowercase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase > 0 && uppercase == 0 ) return 1; return 0; } int str_is_uppercase( str *s ) { int lowercase, uppercase; str_check_case( s, &lowercase, &uppercase ); if ( lowercase == 0 && uppercase > 0 ) return 1; return 0; } void str_stripws( str *s ) { unsigned long len = 0; char *p, *q; assert( s ); if ( s->len ) { p = q = s->data; while ( *p ) { if ( !is_ws( *p ) ) { *q = *p; q++; len++; } p++; } *q = '\0'; } s->len = len; } int str_strcmp( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strcmp( "", t->data ); if ( t->len == 0 ) return strcmp( s->data, "" ); return strcmp( s->data, t->data ); } int str_strcmpc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strcmp( "", t ); return strcmp( s->data, t ); } int str_strncmp( const str *s, const str *t, size_t n ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strncmp( "", t->data, n ); if ( t->len == 0 ) return strncmp( s->data, "", n ); return strncmp( s->data, t->data, n ); } int str_strncmpc( const str *s, const char *t, size_t n ) { assert( s ); assert( t ); if ( s->len == 0 ) return strncmp( "", t, n ); return strncmp( s->data, t, n ); } int str_strcasecmp( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return 0; if ( s->len == 0 ) return strcasecmp( "", t->data ); if ( t->len == 0 ) return strcasecmp( s->data, "" ); return strcasecmp( s->data, t->data ); } int str_strcasecmpc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strcasecmp( "", t ); return strcasecmp( s->data, t ); } char * str_strstr( const str *s, const str *t ) { assert( s ); assert( t ); if ( s->len == 0 && t->len == 0 ) return strstr( "", "" ); if ( s->len == 0 ) return strstr( "", t->data ); if ( t->len == 0 ) return strstr( s->data, "" ); return strstr( s->data, t->data ); } char * str_strstrc( const str *s, const char *t ) { assert( s ); assert( t ); if ( s->len == 0 ) return strstr( "", t ); return strstr( s->data, t ); } void str_reverse( str *s ) { unsigned long i, max; char tmp; assert( s ); max = s->len / 2; for ( i=0; idata[ i ]; s->data[ i ] = s->data[ s->len - 1 - i ]; s->data[ s->len - 1 - i ] = tmp; } } int str_fgetline( str *s, FILE *fp ) { int ch, eol = 0; assert( s ); assert( fp ); str_empty( s ); if ( feof( fp ) ) return 0; while ( !feof( fp ) && !eol ) { ch = fgetc( fp ); if ( ch == EOF ) { if ( s->len ) return 1; else return 0; } else if ( ch == '\n' ) eol = 1; else if ( ch == '\r' ) { ch = fgetc( fp ); if ( ch != '\n' ) ungetc( ch, fp ); eol = 1; } else { str_addchar( s, (char) ch ); } } return 1; } /* * s = "Hi!\0", s.len = 3 * * str_char( s, 0 ) = 'H' str_revchar( s, 0 ) = '!' * str_char( s, 1 ) = 'i' str_revchar( s, 1 ) = 'i' * str_char( s, 2 ) = '!' str_revchar( s, 2 ) = 'H' * str_char( s, 3 ) = '\0' str_revchar( s, 3 ) = '\0' */ char str_char( str *s, unsigned long n ) { assert( s ); if ( s->len==0 || n >= s->len ) return '\0'; return s->data[ n ]; } char str_revchar( str *s, unsigned long n ) { assert( s ); if ( s->len==0 || n >= s->len ) return '\0'; return s->data[ s->len - n - 1]; } void str_makepath( str *path, const char *dirname, const char *filename, char sep ) { assert( path ); if ( dirname ) str_strcpyc( path, dirname ); else str_empty( path ); if ( path->len && path->data[path->len-1]!=sep ) str_addchar( path, sep ); if ( filename ) str_strcatc( path, filename ); } void str_fill( str *s, unsigned long n, char fillchar ) { unsigned long i; assert( s ); str_clear_status( s ); if ( !s->data || s->dim==0 ) str_initalloc( s, n+1 ); if ( n + 1 > s->dim ) str_realloc( s, n+1 ); for ( i=0; idata[i] = fillchar; s->data[n] = '\0'; s->len = n; } int str_has_value( str *s ) { if ( !s || s->len==0 ) return 0; return 1; } int str_is_empty( str *s ) { if ( !s || s->len==0 ) return 1; return 0; } unsigned long str_strlen( str *s ) { if ( !s ) return 0; else return s->len; } hs-bibutils-6.7.0.0/bibutils/str.h0000755000000000000000000001013400000000000015036 0ustar0000000000000000/* * str.h * * Version: 2018-08-03 * * Copyright (c) Chris Putnam 1999-2018 * * Source code released under the GPL version 2 * */ #ifndef STR_H #define STR_H #define STR_OK (0) #define STR_MEMERR (-1) #include typedef struct str { char *data; unsigned long dim; unsigned long len; #ifndef STR_SMALL int status; #endif } str; str * str_new ( void ); void str_delete ( str *s ); void str_init ( str *s ); void str_initstr ( str *s, str *from ); void str_initstrc ( str *s, const char *initstr ); void str_initstrsc ( str *s, ... ); void str_empty ( str *s ); void str_free ( str *s ); void strs_init ( str *s, ... ); void strs_empty ( str *s, ... ); void strs_free ( str *s, ... ); str* str_strdup ( str *s ); str* str_strdupc( const char *p ); void str_strcat ( str *s, str *from ); void str_strcatc( str *s, const char *from ); void str_strcpy ( str *s, str *from ); void str_strcpyc( str *s, const char *from ); int str_strcmp ( const str *s, const str *t ); int str_strcmpc( const str *s, const char *t ); int str_strncmp ( const str *s, const str *t, size_t n ); int str_strncmpc( const str *s, const char *t, size_t n ); int str_strcasecmp ( const str *s, const str *t ); int str_strcasecmpc( const str *s, const char *t ); char * str_strstr ( const str *s, const str *t ); char * str_strstrc( const str *s, const char *t ); void str_prepend ( str *s, const char *addstr ); void str_mergestrs ( str *s, ... ); void str_addchar ( str *s, char newchar ); void str_reverse ( str *s ); const char *str_addutf8 ( str *s, const char *p ); void str_segcat ( str *s, char *startat, char *endat ); char *str_cpytodelim ( str *s, char *p, const char *delim, unsigned char finalstep ); char *str_cattodelim ( str *s, char *p, const char *delim, unsigned char finalstep ); void str_prepend ( str *s, const char *addstr ); void str_segcpy ( str *s, char *startat, char *endat ); void str_segdel ( str *s, char *startat, char *endat ); void str_indxcpy ( str *s, char *p, unsigned long start, unsigned long stop ); void str_indxcat ( str *s, char *p, unsigned long start, unsigned long stop ); void str_fprintf ( FILE *fp, str *s ); int str_fget ( FILE *fp, char *buf, int bufsize, int *pbufpos, str *outs ); char * str_cstr ( str *s ); char str_char ( str *s, unsigned long n ); char str_revchar ( str *s, unsigned long n ); int str_fgetline ( str *s, FILE *fp ); int str_findreplace ( str *s, const char *find, const char *replace ); void str_toupper ( str *s ); void str_tolower ( str *s ); void str_trimstartingws( str *s ); void str_trimendingws( str *s ); void str_swapstrings ( str *s1, str *s2 ); void str_stripws ( str *s ); int str_match_first ( str *s, char ch ); int str_match_end ( str *s, char ch ); void str_trimbegin ( str *s, unsigned long n ); void str_trimend ( str *s, unsigned long n ); void str_pad ( str *s, unsigned long len, char ch ); void str_copyposlen ( str *s, str *in, unsigned long pos, unsigned long len ); void str_makepath ( str *path, const char *dirname, const char *filename, char sep ); void str_fill ( str *s, unsigned long n, char fillchar ); int str_is_mixedcase( str *s ); int str_is_lowercase( str *s ); int str_is_uppercase( str *s ); int str_memerr( str *s ); unsigned long str_strlen( str *s ); int str_has_value( str *s ); int str_is_empty( str *s ); /* #define STR_PARANOIA * * set to clear memory before it is freed or reallocated * note that this is slower...may be important if string * contains sensitive information */ /* #define STR_NOASSERT * * set to turn off the use of asserts (and associated call to exit) * in str functions...useful for library construction for * Linux distributions that don't want libraries calling exit, but * not useful during code development */ /* #define STR_SMALL * * set to make the smallest possible struct str, but will get * exit( EXIT_FAILURE ) upon memory failures */ #endif hs-bibutils-6.7.0.0/bibutils/str_conv.c0000644000000000000000000001247500000000000016065 0ustar0000000000000000/* * str_conv.c * * Copyright (c) Chris Putnam 1999-2018 * * Source code released under the GPL version 2 * * str routines for converting strs between character sets * */ #include #include #include #include #include #include "latex.h" #include "entities.h" #include "utf8.h" #include "gb18030.h" #include "charsets.h" #include "str_conv.h" static void addentity( str *s, unsigned int ch ) { char buf[512]; sprintf( buf, "&#%u;", ch ); str_strcatc( s, buf ); } /* These are the five minimal predefined entites in XML */ static int minimalxmlchars( str *s, unsigned int ch ) { if ( ch==34 ) { str_strcatc( s, """ ); return 1; } else if ( ch==38 ) { str_strcatc( s, "&" ); return 1; } else if ( ch==39 ) { str_strcatc( s, "'" ); return 1; } else if ( ch==60 ) { str_strcatc( s, "<" ); return 1; } else if ( ch==62 ) { str_strcatc( s, ">" ); return 1; } return 0; } static void addxmlchar( str *s, unsigned int ch ) { if ( minimalxmlchars( s, ch ) ) return; if ( ch > 127 ) addentity( s, ch ); else str_addchar( s, ch ); } static void addutf8char( str *s, unsigned int ch, int xmlout ) { unsigned char code[6]; int nc, i; if ( xmlout ) { if ( minimalxmlchars( s, ch ) ) return; if ( ch > 127 && xmlout == STR_CONV_XMLOUT_ENTITIES ) { addentity( s, ch ); return; } } nc = utf8_encode( ch, code ); for ( i=0; i 127 && xmlout == STR_CONV_XMLOUT_ENTITIES ) { addentity( s, ch ); return; } } nc = gb18030_encode( ch, code ); for ( i=0; i 128 or by numeric xml entities such as "Ȗ" * then the output of decode_entity() and utf8_decode will necessarily * be in the charsetin character set. On the other hand, if it's a * fancy latex expression, such as "\alpha", or a non-numeric xml entity * like "&", then we'll get the Unicode value (because our lists only * keep the Unicode equivalent). * * The unicode variable indicates whether or not a Unicode-based listing * was used to convert the character (remember that charsetin could be * Unicode independently). * * The charset variable is used to keep track of what character set * the character is in prior to conversion. * */ static unsigned int get_unicode( str *s, unsigned int *pi, int charsetin, int latexin, int utf8in, int xmlin ) { unsigned int ch; int unicode = 0, err = 0; if ( xmlin && s->data[*pi]=='&' ) { ch = decode_entity( s->data, pi, &unicode, &err ); } else if ( charsetin==CHARSET_GB18030 ) { ch = gb18030_decode( s->data, pi ); unicode = 1; } else if ( latexin ) { /* Must handle bibtex files in UTF8/Unicode */ if ( utf8in && ( s->data[*pi] & 128 ) ) { ch = utf8_decode( s->data, pi ); unicode = 1; } else ch = latex2char( s->data, pi, &unicode ); } else if ( utf8in ) ch = utf8_decode( s->data, pi ); else { ch = (unsigned int) s->data[*pi]; *pi = *pi + 1; } if ( !unicode && charsetin!=CHARSET_UNICODE ) ch = charset_lookupchar( charsetin, ch ); return ch; } static int write_unicode( str *s, unsigned int ch, int charsetout, int latexout, int utf8out, int xmlout ) { unsigned int c; if ( latexout ) { addlatexchar( s, ch, xmlout, utf8out ); } else if ( utf8out ) { addutf8char( s, ch, xmlout ); } else if ( charsetout==CHARSET_GB18030 ) { addgb18030char( s, ch, xmlout ); } else { c = charset_lookupuni( charsetout, ch ); if ( xmlout ) addxmlchar( s, c ); else str_addchar( s, c ); } return 1; } /* * Returns 1 on memory error condition */ int str_convert( str *s, int charsetin, int latexin, int utf8in, int xmlin, int charsetout, int latexout, int utf8out, int xmlout ) { unsigned int pos = 0; unsigned int ch; str ns; int ok = 1; if ( !s || s->len==0 ) return ok; /* Ensure that string is internally allocated. * This fixes NULL pointer derefernce in CVE-2018-10775 in bibutils * as a string with a valid data pointer is potentially replaced * by a string without a valid data pointer due to it being invalid * unicode. * This probably also fixes CVE-2018-10773 and CVE-2018-10774 which * are NULL dereferences also likely due to a fuzzer, but without * test cases in the report, I can't be completely sure. */ str_initstrc( &ns, "" ); if ( charsetin==CHARSET_UNKNOWN ) charsetin = CHARSET_DEFAULT; if ( charsetout==CHARSET_UNKNOWN ) charsetout = CHARSET_DEFAULT; while ( s->data[pos] ) { ch = get_unicode( s, &pos, charsetin, latexin, utf8in, xmlin ); ok = write_unicode( &ns, ch, charsetout, latexout, utf8out, xmlout ); if ( !ok ) goto out; } str_swapstrings( s, &ns ); out: str_free( &ns ); return ok; } hs-bibutils-6.7.0.0/bibutils/str_conv.c0000755000000000000000000001247500000000000016070 0ustar0000000000000000/* * str_conv.c * * Copyright (c) Chris Putnam 1999-2018 * * Source code released under the GPL version 2 * * str routines for converting strs between character sets * */ #include #include #include #include #include #include "latex.h" #include "entities.h" #include "utf8.h" #include "gb18030.h" #include "charsets.h" #include "str_conv.h" static void addentity( str *s, unsigned int ch ) { char buf[512]; sprintf( buf, "&#%u;", ch ); str_strcatc( s, buf ); } /* These are the five minimal predefined entites in XML */ static int minimalxmlchars( str *s, unsigned int ch ) { if ( ch==34 ) { str_strcatc( s, """ ); return 1; } else if ( ch==38 ) { str_strcatc( s, "&" ); return 1; } else if ( ch==39 ) { str_strcatc( s, "'" ); return 1; } else if ( ch==60 ) { str_strcatc( s, "<" ); return 1; } else if ( ch==62 ) { str_strcatc( s, ">" ); return 1; } return 0; } static void addxmlchar( str *s, unsigned int ch ) { if ( minimalxmlchars( s, ch ) ) return; if ( ch > 127 ) addentity( s, ch ); else str_addchar( s, ch ); } static void addutf8char( str *s, unsigned int ch, int xmlout ) { unsigned char code[6]; int nc, i; if ( xmlout ) { if ( minimalxmlchars( s, ch ) ) return; if ( ch > 127 && xmlout == STR_CONV_XMLOUT_ENTITIES ) { addentity( s, ch ); return; } } nc = utf8_encode( ch, code ); for ( i=0; i 127 && xmlout == STR_CONV_XMLOUT_ENTITIES ) { addentity( s, ch ); return; } } nc = gb18030_encode( ch, code ); for ( i=0; i 128 or by numeric xml entities such as "Ȗ" * then the output of decode_entity() and utf8_decode will necessarily * be in the charsetin character set. On the other hand, if it's a * fancy latex expression, such as "\alpha", or a non-numeric xml entity * like "&", then we'll get the Unicode value (because our lists only * keep the Unicode equivalent). * * The unicode variable indicates whether or not a Unicode-based listing * was used to convert the character (remember that charsetin could be * Unicode independently). * * The charset variable is used to keep track of what character set * the character is in prior to conversion. * */ static unsigned int get_unicode( str *s, unsigned int *pi, int charsetin, int latexin, int utf8in, int xmlin ) { unsigned int ch; int unicode = 0, err = 0; if ( xmlin && s->data[*pi]=='&' ) { ch = decode_entity( s->data, pi, &unicode, &err ); } else if ( charsetin==CHARSET_GB18030 ) { ch = gb18030_decode( s->data, pi ); unicode = 1; } else if ( latexin ) { /* Must handle bibtex files in UTF8/Unicode */ if ( utf8in && ( s->data[*pi] & 128 ) ) { ch = utf8_decode( s->data, pi ); unicode = 1; } else ch = latex2char( s->data, pi, &unicode ); } else if ( utf8in ) ch = utf8_decode( s->data, pi ); else { ch = (unsigned int) s->data[*pi]; *pi = *pi + 1; } if ( !unicode && charsetin!=CHARSET_UNICODE ) ch = charset_lookupchar( charsetin, ch ); return ch; } static int write_unicode( str *s, unsigned int ch, int charsetout, int latexout, int utf8out, int xmlout ) { unsigned int c; if ( latexout ) { addlatexchar( s, ch, xmlout, utf8out ); } else if ( utf8out ) { addutf8char( s, ch, xmlout ); } else if ( charsetout==CHARSET_GB18030 ) { addgb18030char( s, ch, xmlout ); } else { c = charset_lookupuni( charsetout, ch ); if ( xmlout ) addxmlchar( s, c ); else str_addchar( s, c ); } return 1; } /* * Returns 1 on memory error condition */ int str_convert( str *s, int charsetin, int latexin, int utf8in, int xmlin, int charsetout, int latexout, int utf8out, int xmlout ) { unsigned int pos = 0; unsigned int ch; str ns; int ok = 1; if ( !s || s->len==0 ) return ok; /* Ensure that string is internally allocated. * This fixes NULL pointer derefernce in CVE-2018-10775 in bibutils * as a string with a valid data pointer is potentially replaced * by a string without a valid data pointer due to it being invalid * unicode. * This probably also fixes CVE-2018-10773 and CVE-2018-10774 which * are NULL dereferences also likely due to a fuzzer, but without * test cases in the report, I can't be completely sure. */ str_initstrc( &ns, "" ); if ( charsetin==CHARSET_UNKNOWN ) charsetin = CHARSET_DEFAULT; if ( charsetout==CHARSET_UNKNOWN ) charsetout = CHARSET_DEFAULT; while ( s->data[pos] ) { ch = get_unicode( s, &pos, charsetin, latexin, utf8in, xmlin ); ok = write_unicode( &ns, ch, charsetout, latexout, utf8out, xmlout ); if ( !ok ) goto out; } str_swapstrings( s, &ns ); out: str_free( &ns ); return ok; } hs-bibutils-6.7.0.0/bibutils/str_conv.h0000755000000000000000000000067100000000000016070 0ustar0000000000000000/* * str_conv.h * * Copyright (c) Chris Putnam 1999-2018 * * Source code released under the GPL version 2 * */ #ifndef STR_CONV_H #define STR_CONV_H #define STR_CONV_XMLOUT_FALSE (0) #define STR_CONV_XMLOUT_TRUE (1) #define STR_CONV_XMLOUT_ENTITIES (3) #include "str.h" extern int str_convert( str *s, int charsetin, int latexin, int utf8in, int xmlin, int charsetout, int latexout, int utf8out, int xmlout ); #endif hs-bibutils-6.7.0.0/bibutils/strsearch.c0000644000000000000000000000171400000000000016220 0ustar0000000000000000/* strsearch.c * * Copyright (c) Chris Putnam 1995-2018 * * Source code released under the GPL version 2 * * strsearch() locates a case-independent substring * e.g. a case-independent version of strstr() * * returns pointer to first occurrence of substring needle in * the string haystack when found, NULL if not found * * '\0' characters terminating strings are not compared * * strsearch returns haystack when needle is empty as per strstr() * conventions * */ #include #include #include "strsearch.h" char *strsearch (const char *haystack, const char *needle) { char *returnptr=NULL; unsigned long pos=0; if ( !(*needle) ) returnptr = (char *) haystack; while (*(haystack+pos) && returnptr==NULL) { if ( toupper((unsigned char)*(haystack+pos)) == toupper((unsigned char)*(needle+pos)) ) pos++; else { pos = 0; haystack++; } if ( ! (*(needle+pos)) ) returnptr = (char *) haystack; } return returnptr; } hs-bibutils-6.7.0.0/bibutils/strsearch.c0000755000000000000000000000171400000000000016223 0ustar0000000000000000/* strsearch.c * * Copyright (c) Chris Putnam 1995-2018 * * Source code released under the GPL version 2 * * strsearch() locates a case-independent substring * e.g. a case-independent version of strstr() * * returns pointer to first occurrence of substring needle in * the string haystack when found, NULL if not found * * '\0' characters terminating strings are not compared * * strsearch returns haystack when needle is empty as per strstr() * conventions * */ #include #include #include "strsearch.h" char *strsearch (const char *haystack, const char *needle) { char *returnptr=NULL; unsigned long pos=0; if ( !(*needle) ) returnptr = (char *) haystack; while (*(haystack+pos) && returnptr==NULL) { if ( toupper((unsigned char)*(haystack+pos)) == toupper((unsigned char)*(needle+pos)) ) pos++; else { pos = 0; haystack++; } if ( ! (*(needle+pos)) ) returnptr = (char *) haystack; } return returnptr; } hs-bibutils-6.7.0.0/bibutils/strsearch.h0000755000000000000000000000034500000000000016227 0ustar0000000000000000/* * strsearch.h * * Copyright (c) Chris Putnam 1995-2018 * * Source code released under the GPL version 2 * */ #ifndef STRSEARCH_H #define STRSEARCH_H char *strsearch (const char *haystack, const char *needle); #endif hs-bibutils-6.7.0.0/bibutils/title.c0000644000000000000000000000443400000000000015345 0ustar0000000000000000/* * title.c * * process titles into title/subtitle pairs for MODS * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include "str.h" #include "fields.h" #include "title.h" #include "is_ws.h" int title_process( fields *info, char *tag, char *data, int level, unsigned char nosplittitle ) { str title, subtitle; char *p, *q; int status; str_init( &title ); str_init( &subtitle ); if ( nosplittitle ) q = NULL; else { q = strstr( data, ": " ); if ( !q ) q = strstr( data, "? " ); } if ( !q ) str_strcpyc( &title, data ); else { p = data; while ( p!=q ) str_addchar( &title, *p++ ); if ( *q=='?' ) str_addchar( &title, '?' ); q++; q = skip_ws( q ); while ( *q ) str_addchar( &subtitle, *q++ ); } if ( strncasecmp( "SHORT", tag, 5 ) ) { if ( str_has_value( &title ) ) { status = fields_add( info, "TITLE", str_cstr( &title ), level ); if ( status!=FIELDS_OK ) return 0; } if ( str_has_value( &subtitle ) ) { status = fields_add( info, "SUBTITLE", str_cstr( &subtitle ), level ); if ( status!=FIELDS_OK ) return 0; } } else { if ( str_has_value( &title ) ) { status = fields_add( info, "SHORTTITLE", str_cstr( &title ), level ); if ( status!=FIELDS_OK ) return 0; } /* no SHORT-SUBTITLE! */ } str_free( &subtitle ); str_free( &title ); return 1; } /* title_combine() * * Combine a main title and a subtitle into a full title. * * Example: * Main title = "A Clearing in the Distance" * Subtitle = "The Biography of Frederick Law Olmstead" * Full title = "A Clearing in the Distance: The Biography of Frederick Law Olmstead" * Example: * Main title = "What Makes a Good Team Player?" * Subtitle = "Personality and Team Effectiveness" * Full title = "What Makes a Good Team Player? Personality and Team Effectiveness" */ void title_combine( str *fullttl, str *mainttl, str *subttl ) { str_empty( fullttl ); if ( !mainttl ) return; str_strcpy( fullttl, mainttl ); if ( subttl ) { if ( str_has_value( mainttl ) ) { if ( mainttl->data[ mainttl->len - 1 ] != '?' && mainttl->data[ mainttl->len - 1] != ':' ) str_strcatc( fullttl, ": " ); else str_strcatc( fullttl, " " ); } str_strcat( fullttl, subttl ); } } hs-bibutils-6.7.0.0/bibutils/title.c0000755000000000000000000000443400000000000015350 0ustar0000000000000000/* * title.c * * process titles into title/subtitle pairs for MODS * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include "str.h" #include "fields.h" #include "title.h" #include "is_ws.h" int title_process( fields *info, char *tag, char *data, int level, unsigned char nosplittitle ) { str title, subtitle; char *p, *q; int status; str_init( &title ); str_init( &subtitle ); if ( nosplittitle ) q = NULL; else { q = strstr( data, ": " ); if ( !q ) q = strstr( data, "? " ); } if ( !q ) str_strcpyc( &title, data ); else { p = data; while ( p!=q ) str_addchar( &title, *p++ ); if ( *q=='?' ) str_addchar( &title, '?' ); q++; q = skip_ws( q ); while ( *q ) str_addchar( &subtitle, *q++ ); } if ( strncasecmp( "SHORT", tag, 5 ) ) { if ( str_has_value( &title ) ) { status = fields_add( info, "TITLE", str_cstr( &title ), level ); if ( status!=FIELDS_OK ) return 0; } if ( str_has_value( &subtitle ) ) { status = fields_add( info, "SUBTITLE", str_cstr( &subtitle ), level ); if ( status!=FIELDS_OK ) return 0; } } else { if ( str_has_value( &title ) ) { status = fields_add( info, "SHORTTITLE", str_cstr( &title ), level ); if ( status!=FIELDS_OK ) return 0; } /* no SHORT-SUBTITLE! */ } str_free( &subtitle ); str_free( &title ); return 1; } /* title_combine() * * Combine a main title and a subtitle into a full title. * * Example: * Main title = "A Clearing in the Distance" * Subtitle = "The Biography of Frederick Law Olmstead" * Full title = "A Clearing in the Distance: The Biography of Frederick Law Olmstead" * Example: * Main title = "What Makes a Good Team Player?" * Subtitle = "Personality and Team Effectiveness" * Full title = "What Makes a Good Team Player? Personality and Team Effectiveness" */ void title_combine( str *fullttl, str *mainttl, str *subttl ) { str_empty( fullttl ); if ( !mainttl ) return; str_strcpy( fullttl, mainttl ); if ( subttl ) { if ( str_has_value( mainttl ) ) { if ( mainttl->data[ mainttl->len - 1 ] != '?' && mainttl->data[ mainttl->len - 1] != ':' ) str_strcatc( fullttl, ": " ); else str_strcatc( fullttl, " " ); } str_strcat( fullttl, subttl ); } } hs-bibutils-6.7.0.0/bibutils/title.h0000755000000000000000000000063300000000000015352 0ustar0000000000000000/* * title.h * * process titles into title/subtitle pairs for MODS * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL verison 2 * */ #ifndef TITLE_H #define TITLE_H #include "str.h" #include "fields.h" int title_process( fields *info, char *tag, char *data, int level, unsigned char nosplittitle ); void title_combine( str *fullttl, str *mainttl, str *subttl ); #endif hs-bibutils-6.7.0.0/bibutils/unicode.c0000644000000000000000000003773400000000000015663 0ustar0000000000000000/* * unicode.c * * Helper unicode functions/values to determine the * types of unicode characters. */ #include "utf8.h" #include "unicode.h" typedef struct { unsigned int value; unsigned short info; } unicodeinfo_t; static unicodeinfo_t unicodeinfo[] = { { 48, UNICODE_NUMBER }, /* 0 */ { 49, UNICODE_NUMBER }, /* 1 */ { 50, UNICODE_NUMBER }, /* 2 */ { 51, UNICODE_NUMBER }, /* 3 */ { 52, UNICODE_NUMBER }, /* 4 */ { 53, UNICODE_NUMBER }, /* 5 */ { 54, UNICODE_NUMBER }, /* 6 */ { 55, UNICODE_NUMBER }, /* 7 */ { 56, UNICODE_NUMBER }, /* 8 */ { 57, UNICODE_NUMBER }, /* 9 */ { 65, UNICODE_UPPER }, /* Latin Capital A */ { 66, UNICODE_UPPER }, /* Latin Capital B */ { 67, UNICODE_UPPER }, /* Latin Capital C */ { 68, UNICODE_UPPER }, /* Latin Capital D */ { 69, UNICODE_UPPER }, /* Latin Capital E */ { 70, UNICODE_UPPER }, /* Latin Capital F */ { 71, UNICODE_UPPER }, /* Latin Capital G */ { 72, UNICODE_UPPER }, /* Latin Capital H */ { 73, UNICODE_UPPER }, /* Latin Capital I */ { 74, UNICODE_UPPER }, /* Latin Capital J */ { 75, UNICODE_UPPER }, /* Latin Capital K */ { 76, UNICODE_UPPER }, /* Latin Capital L */ { 77, UNICODE_UPPER }, /* Latin Capital M */ { 78, UNICODE_UPPER }, /* Latin Capital N */ { 79, UNICODE_UPPER }, /* Latin Capital O */ { 80, UNICODE_UPPER }, /* Latin Capital P */ { 81, UNICODE_UPPER }, /* Latin Capital Q */ { 82, UNICODE_UPPER }, /* Latin Capital R */ { 83, UNICODE_UPPER }, /* Latin Capital S */ { 84, UNICODE_UPPER }, /* Latin Capital T */ { 85, UNICODE_UPPER }, /* Latin Capital U */ { 86, UNICODE_UPPER }, /* Latin Capital V */ { 87, UNICODE_UPPER }, /* Latin Capital W */ { 88, UNICODE_UPPER }, /* Latin Capital X */ { 89, UNICODE_UPPER }, /* Latin Capital Y */ { 90, UNICODE_UPPER }, /* Latin Capital Z */ { 97, UNICODE_LOWER }, /* Latin Small a */ { 98, UNICODE_LOWER }, /* Latin Small b */ { 99, UNICODE_LOWER }, /* Latin Small c */ { 100, UNICODE_LOWER }, /* Latin Small d */ { 101, UNICODE_LOWER }, /* Latin Small e */ { 102, UNICODE_LOWER }, /* Latin Small f */ { 103, UNICODE_LOWER }, /* Latin Small g */ { 104, UNICODE_LOWER }, /* Latin Small h */ { 105, UNICODE_LOWER }, /* Latin Small i */ { 106, UNICODE_LOWER }, /* Latin Small j */ { 107, UNICODE_LOWER }, /* Latin Small k */ { 108, UNICODE_LOWER }, /* Latin Small l */ { 109, UNICODE_LOWER }, /* Latin Small m */ { 110, UNICODE_LOWER }, /* Latin Small n */ { 111, UNICODE_LOWER }, /* Latin Small o */ { 112, UNICODE_LOWER }, /* Latin Small p */ { 113, UNICODE_LOWER }, /* Latin Small q */ { 114, UNICODE_LOWER }, /* Latin Small r */ { 115, UNICODE_LOWER }, /* Latin Small s */ { 116, UNICODE_LOWER }, /* Latin Small t */ { 117, UNICODE_LOWER }, /* Latin Small u */ { 118, UNICODE_LOWER }, /* Latin Small v */ { 119, UNICODE_LOWER }, /* Latin Small w */ { 120, UNICODE_LOWER }, /* Latin Small x */ { 121, UNICODE_LOWER }, /* Latin Small y */ { 122, UNICODE_LOWER }, /* Latin Small z */ { 192, UNICODE_UPPER }, /* Latin Capital A with grave */ { 193, UNICODE_UPPER }, /* Latin Capital A with acute */ { 194, UNICODE_UPPER }, /* Latin Capital A with circumflex */ { 195, UNICODE_UPPER }, /* Latin Capital A with tilde */ { 196, UNICODE_UPPER }, /* Latin Capital A with diuresis */ { 197, UNICODE_UPPER }, /* Latin Capital A with ring above */ { 198, UNICODE_UPPER }, /* Latin Capital AE */ { 199, UNICODE_UPPER }, /* Latin Capital C with cedilla */ { 200, UNICODE_UPPER }, /* Latin Capital E with grave */ { 201, UNICODE_UPPER }, /* Latin Capital E with acute */ { 202, UNICODE_UPPER }, /* Latin Capital E with circumflex */ { 203, UNICODE_UPPER }, /* Latin Capital E with diuresis */ { 204, UNICODE_UPPER }, /* Latin Capital I with grave */ { 205, UNICODE_UPPER }, /* Latin Capital I with acute */ { 206, UNICODE_UPPER }, /* Latin Capital I with circumflex */ { 207, UNICODE_UPPER }, /* Latin Capital I with diuresis */ { 208, UNICODE_UPPER }, /* Latin Capital ETH */ { 209, UNICODE_UPPER }, /* Latin Capital N with tilde */ { 210, UNICODE_UPPER }, /* Latin Capital O with grave */ { 211, UNICODE_UPPER }, /* Latin Capital O with acute */ { 212, UNICODE_UPPER }, /* Latin Capital O with circumflex */ { 213, UNICODE_UPPER }, /* Latin Capital O with tilde */ { 214, UNICODE_UPPER }, /* Latin Captial O with diaeresis */ { 216, UNICODE_UPPER }, /* Latin Capital O with stroke */ { 217, UNICODE_UPPER }, /* Latin Capital U with grave */ { 218, UNICODE_UPPER }, /* Latin Capital U with acute */ { 219, UNICODE_UPPER }, /* Latin Capital U with circumflex */ { 220, UNICODE_UPPER }, /* Latin Capital U with diaeresis */ { 221, UNICODE_UPPER }, /* Latin Capital Y with acute */ { 222, UNICODE_UPPER }, /* Latin Capital THORN */ { 223, UNICODE_LOWER }, /* German sz ligature */ { 224, UNICODE_LOWER }, /* Latin Small a with grave */ { 225, UNICODE_LOWER }, /* Latin Small a with acute */ { 226, UNICODE_LOWER }, /* Latin Small a with circumflex */ { 227, UNICODE_LOWER }, /* Latin Small a with tilde */ { 228, UNICODE_LOWER }, /* Latin Small a with diuresis */ { 229, UNICODE_LOWER }, /* Latin Small a with ring above */ { 230, UNICODE_LOWER }, /* Latin Small ae */ { 231, UNICODE_LOWER }, /* Latin Small c with cedilla */ { 232, UNICODE_LOWER }, /* Latin Small e with grave */ { 233, UNICODE_LOWER }, /* Latin Small e with acute */ { 234, UNICODE_LOWER }, /* Latin Small e with circumflex */ { 235, UNICODE_LOWER }, /* Latin Small e with diuresis */ { 236, UNICODE_LOWER }, /* Latin Small i with grave */ { 237, UNICODE_LOWER }, /* Latin Small i with acute */ { 238, UNICODE_LOWER }, /* Latin Small i with circumflex */ { 239, UNICODE_LOWER }, /* Latin Small i with diuresis */ { 240, UNICODE_LOWER }, /* Latin Small eth */ { 241, UNICODE_LOWER }, /* Latin Small n with tilde */ { 242, UNICODE_LOWER }, /* Latin Small o with grave */ { 243, UNICODE_LOWER }, /* Latin Small o with acute */ { 244, UNICODE_LOWER }, /* Latin Small o with circumflex */ { 245, UNICODE_LOWER }, /* Latin Small o with tilde */ { 246, UNICODE_LOWER }, /* Latin Small o with diaeresis */ { 248, UNICODE_LOWER }, /* Latin Small o with stroke */ { 249, UNICODE_LOWER }, /* Latin Small u with grave */ { 250, UNICODE_LOWER }, /* Latin Small u with acute */ { 251, UNICODE_LOWER }, /* Latin Small u with circumflex */ { 252, UNICODE_LOWER }, /* Latin Small u with diaeresis */ { 253, UNICODE_LOWER }, /* Latin Small y with acute */ { 254, UNICODE_LOWER }, /* Latin Small thorn */ { 255, UNICODE_LOWER }, /* Latin Small y with diaeresis */ { 256, UNICODE_UPPER }, /* Latin Capital A with macron */ { 257, UNICODE_LOWER }, /* Latin Small a with macron */ { 258, UNICODE_UPPER }, /* Latin Capital A with breve */ { 259, UNICODE_LOWER }, /* Latin Small a with breve */ { 260, UNICODE_UPPER }, /* Latin Capital A with ogonek */ { 261, UNICODE_LOWER }, /* Latin Small a with ogonek */ { 262, UNICODE_UPPER }, /* Latin Capital C with acute */ { 263, UNICODE_LOWER }, /* Latin Small c with acute */ { 264, UNICODE_UPPER }, /* Latin Capital C with circumflex */ { 265, UNICODE_LOWER }, /* Latin Small c with circumflex */ { 266, UNICODE_UPPER }, /* Latin Capital C with dot above */ { 267, UNICODE_LOWER }, /* Latin Small c with dot above */ { 268, UNICODE_UPPER }, /* Latin Capital C with caron (hacek) */ { 269, UNICODE_LOWER }, /* Latin Small c with caron (hacek) */ { 270, UNICODE_UPPER }, /* Latin Capital D with caron (hacek) */ { 271, UNICODE_LOWER }, /* Latin Small d with caron (hacek) */ { 272, UNICODE_UPPER }, /* Latin Capital D with stroke */ { 273, UNICODE_LOWER }, /* Latin Small d with stroke */ { 274, UNICODE_UPPER }, /* Latin Capital E with macron */ { 275, UNICODE_LOWER }, /* Latin Small e with macron */ { 276, UNICODE_UPPER }, /* Latin Capital E with breve */ { 277, UNICODE_LOWER }, /* Latin Small e with breve */ { 278, UNICODE_UPPER }, /* Latin Capital E with dot above */ { 279, UNICODE_LOWER }, /* Latin Small e with dot above */ { 280, UNICODE_UPPER }, /* Latin Capital E with ogonek */ { 281, UNICODE_LOWER }, /* Latin Small e with ogonek */ { 282, UNICODE_UPPER }, /* Latin Capital E with caron (hacek) */ { 283, UNICODE_LOWER }, /* Latin Small e with caron */ { 284, UNICODE_UPPER }, /* Latin Capital G with circumflex */ { 285, UNICODE_LOWER }, /* Latin Small g with circumflex */ { 286, UNICODE_UPPER }, /* Latin Capital G with breve */ { 287, UNICODE_LOWER }, /* Latin Small g with breve */ { 288, UNICODE_UPPER }, /* Latin Capital G with dot above */ { 289, UNICODE_LOWER }, /* Latin Small g with dot above */ { 290, UNICODE_UPPER }, /* Latin Capital G with cedilla */ { 291, UNICODE_LOWER }, /* Latin Small g with cedilla */ { 292, UNICODE_UPPER }, /* Latin Capital H with circumflex */ { 293, UNICODE_LOWER }, /* Latin Small h with circumflex */ { 294, UNICODE_UPPER }, /* Latin Capital H with stroke */ { 295, UNICODE_LOWER }, /* Latin Small h with stroke */ { 296, UNICODE_UPPER }, /* Latin Capital I with tilde */ { 297, UNICODE_LOWER }, /* Latin Small i with tilde */ { 298, UNICODE_UPPER }, /* Latin Capital I with macron */ { 299, UNICODE_LOWER }, /* Latin Small i with macron */ { 300, UNICODE_UPPER }, /* Latin Capital I with breve */ { 301, UNICODE_LOWER }, /* Latin Small i with breve */ { 302, UNICODE_UPPER }, /* Latin Capital I with ogonek */ { 303, UNICODE_LOWER }, /* Latin Small i with ogonek */ { 304, UNICODE_UPPER }, /* Latin Capital I with dot above */ { 305, UNICODE_LOWER }, /* Latin Small i without dot above */ { 306, UNICODE_UPPER }, /* Latin Capital IJ */ { 307, UNICODE_LOWER }, /* Latin Small IJ */ { 308, UNICODE_UPPER }, /* Latin Capital J with circumflex */ { 309, UNICODE_LOWER }, /* Latin Small j with circumflex */ { 310, UNICODE_UPPER }, /* Latin Capital K with cedilla */ { 311, UNICODE_LOWER }, /* Latin Small j with cedilla */ { 312, UNICODE_LOWER }, /* Latin Small kra */ { 313, UNICODE_UPPER }, /* Latin Capital L with acute */ { 314, UNICODE_LOWER }, /* Latin Small l with acute */ { 315, UNICODE_UPPER }, /* Latin Capital L with cedilla */ { 316, UNICODE_LOWER }, /* Latin Small l with cedilla */ { 317, UNICODE_UPPER }, /* Latin Capital L with caron */ { 318, UNICODE_LOWER }, /* Latin Small l with caron */ { 319, UNICODE_UPPER }, /* Latin Capital L with middle dot */ { 320, UNICODE_LOWER }, /* Latin Small l with middle dot */ { 321, UNICODE_UPPER }, /* Latin Capital L with stroke */ { 322, UNICODE_LOWER }, /* Latin Small l with stroke */ { 323, UNICODE_UPPER }, /* Latin Capital N with acute */ { 324, UNICODE_LOWER }, /* Latin Small n with acute */ { 325, UNICODE_UPPER }, /* Latin Capital N with cedilla */ { 326, UNICODE_LOWER }, /* Latin Small n with cedilla */ { 327, UNICODE_UPPER }, /* Latin Capital N with caron */ { 328, UNICODE_LOWER }, /* Latin Small n with caron */ { 329, UNICODE_LOWER }, /* Latin Small n preceeded by apostrophe */ { 330, UNICODE_UPPER }, /* Latin Capital Eng */ { 331, UNICODE_LOWER }, /* Latin Small eng */ { 332, UNICODE_UPPER }, /* Latin Capital O with macron */ { 333, UNICODE_LOWER }, /* Latin Small o with macron */ { 334, UNICODE_UPPER }, /* Latin Capital O with breve */ { 335, UNICODE_LOWER }, /* Latin Small o with breve */ { 336, UNICODE_UPPER }, /* Latin Capital O with double acute */ { 337, UNICODE_LOWER }, /* Latin Small o with double acute */ { 338, UNICODE_UPPER }, /* Latin Capital OE */ { 339, UNICODE_LOWER }, /* Latin Small oe */ { 340, UNICODE_UPPER }, /* Latin Capital R with acute */ { 341, UNICODE_LOWER }, /* Latin Small r with acute */ { 342, UNICODE_UPPER }, /* Latin Capital R with cedilla */ { 343, UNICODE_LOWER }, /* Latin Small r with cedilla */ { 344, UNICODE_UPPER }, /* Latin Capital R with caron */ { 345, UNICODE_LOWER }, /* Latin Small r with caron */ { 346, UNICODE_UPPER }, /* Latin Capital S with acute */ { 347, UNICODE_LOWER }, /* Latin Small s with acute */ { 348, UNICODE_UPPER }, /* Latin Capital S with circumflex */ { 349, UNICODE_LOWER }, /* Latin Small s with circumflex */ { 350, UNICODE_UPPER }, /* Latin Capital S with cedilla */ { 351, UNICODE_LOWER }, /* Latin Small s with cedilla */ { 352, UNICODE_UPPER }, /* Latin Capital S with caron */ { 353, UNICODE_LOWER }, /* Latin Small s with caron */ { 354, UNICODE_UPPER }, /* Latin Capital T with cedilla */ { 355, UNICODE_LOWER }, /* Latin Small t with cedilla */ { 356, UNICODE_UPPER }, /* Latin Capital T with caron */ { 357, UNICODE_LOWER }, /* Latin Small t with caron */ { 358, UNICODE_UPPER }, /* Latin Capital T with stroke */ { 359, UNICODE_LOWER }, /* Latin Small t with stroke */ { 360, UNICODE_UPPER }, /* Latin Capital U with tilde */ { 361, UNICODE_LOWER }, /* Latin Small u with tilde */ { 362, UNICODE_UPPER }, /* Latin Capital U with macron */ { 363, UNICODE_LOWER }, /* Latin Small u with macron */ { 364, UNICODE_UPPER }, /* Latin Capital U with breve */ { 365, UNICODE_LOWER }, /* Latin Small u with breve */ { 366, UNICODE_UPPER }, /* Latin Capital U with ring above */ { 367, UNICODE_LOWER }, /* Latin Small u with ring above */ { 368, UNICODE_UPPER }, /* Latin Capital U with double acute */ { 369, UNICODE_LOWER }, /* Latin Small u with double acute */ { 370, UNICODE_UPPER }, /* Latin Capital U with ogonek */ { 371, UNICODE_LOWER }, /* Latin Small u with ogonek */ { 372, UNICODE_UPPER }, /* Latin Capital W with circumflex */ { 373, UNICODE_LOWER }, /* Latin Small w with circumflex */ { 374, UNICODE_UPPER }, /* Latin Capital Y with circumflex */ { 375, UNICODE_LOWER }, /* Latin Small y with circumflex */ { 376, UNICODE_UPPER }, /* Latin Capital Y with diaeresis */ { 377, UNICODE_UPPER }, /* Latin Capital Z with acute */ { 378, UNICODE_LOWER }, /* Latin Small z with acute */ { 379, UNICODE_UPPER }, /* Latin Capital Z with dot above */ { 380, UNICODE_LOWER }, /* Latin Small z with dot above */ { 381, UNICODE_UPPER }, /* Latin Capital Z with caron */ { 382, UNICODE_LOWER }, /* Latin Small z with caron */ { 383, UNICODE_LOWER }, /* Latin Small long S */ { 461, UNICODE_UPPER }, /* Latin Capital A with caron (hacek) */ { 462, UNICODE_LOWER }, /* Latin Small a with caron (hacek) */ { 463, UNICODE_UPPER }, /* Latin Capital I with caron (hacek) */ { 464, UNICODE_LOWER }, /* Latin Small i with caron (hacek) */ { 465, UNICODE_UPPER }, /* Latin Capital O with caron (hacek) */ { 466, UNICODE_LOWER }, /* Latin Small o with caron (hacek) */ { 467, UNICODE_UPPER }, /* Latin Capital U with caron (hacek) */ { 468, UNICODE_LOWER }, /* Latin Small u with caron (hacek) */ { 486, UNICODE_UPPER }, /* Latin Capital G with caron */ { 487, UNICODE_LOWER }, /* Latin Small g with caron */ { 488, UNICODE_UPPER }, /* Latin Capital J with caron */ { 489, UNICODE_LOWER }, /* Latin Small j with caron */ { 490, UNICODE_UPPER }, /* Latin Capital O with caron */ { 491, UNICODE_LOWER }, /* Latin Small o with caron */ { 500, UNICODE_UPPER }, /* Latin Capital G with acute */ { 501, UNICODE_LOWER }, /* Latin Small g with caron */ }; static int nunicodeinfo = sizeof( unicodeinfo ) / sizeof( unicodeinfo[0] ); static int unicode_find( unsigned int unicode_character ) { int min = 0, max = nunicodeinfo, mid; while ( min < max ) { mid = ( min + max ) / 2; if ( unicodeinfo[mid].value < unicode_character ) min = mid + 1; else max = mid; } if ( ( max==min ) && ( unicodeinfo[min].value == unicode_character ) ) return min; else return -1; } unsigned short unicode_utf8_classify( char *p ) { unsigned int unicode_character, pos = 0; int n; unicode_character = utf8_decode( p, &pos ); n = unicode_find( unicode_character ); if ( n==-1 ) return UNICODE_SYMBOL; else return unicodeinfo[n].info; } unsigned short unicode_utf8_classify_str( str *s ) { unsigned int unicode_character, pos = 0; unsigned short value = 0; int n; while ( pos < s->len ) { unicode_character = utf8_decode( str_cstr( s ), &pos ); n = unicode_find( unicode_character ); if ( n==-1 ) value |= UNICODE_SYMBOL; else value |= unicodeinfo[n].info; } return value; } hs-bibutils-6.7.0.0/bibutils/unicode.c0000755000000000000000000003773400000000000015666 0ustar0000000000000000/* * unicode.c * * Helper unicode functions/values to determine the * types of unicode characters. */ #include "utf8.h" #include "unicode.h" typedef struct { unsigned int value; unsigned short info; } unicodeinfo_t; static unicodeinfo_t unicodeinfo[] = { { 48, UNICODE_NUMBER }, /* 0 */ { 49, UNICODE_NUMBER }, /* 1 */ { 50, UNICODE_NUMBER }, /* 2 */ { 51, UNICODE_NUMBER }, /* 3 */ { 52, UNICODE_NUMBER }, /* 4 */ { 53, UNICODE_NUMBER }, /* 5 */ { 54, UNICODE_NUMBER }, /* 6 */ { 55, UNICODE_NUMBER }, /* 7 */ { 56, UNICODE_NUMBER }, /* 8 */ { 57, UNICODE_NUMBER }, /* 9 */ { 65, UNICODE_UPPER }, /* Latin Capital A */ { 66, UNICODE_UPPER }, /* Latin Capital B */ { 67, UNICODE_UPPER }, /* Latin Capital C */ { 68, UNICODE_UPPER }, /* Latin Capital D */ { 69, UNICODE_UPPER }, /* Latin Capital E */ { 70, UNICODE_UPPER }, /* Latin Capital F */ { 71, UNICODE_UPPER }, /* Latin Capital G */ { 72, UNICODE_UPPER }, /* Latin Capital H */ { 73, UNICODE_UPPER }, /* Latin Capital I */ { 74, UNICODE_UPPER }, /* Latin Capital J */ { 75, UNICODE_UPPER }, /* Latin Capital K */ { 76, UNICODE_UPPER }, /* Latin Capital L */ { 77, UNICODE_UPPER }, /* Latin Capital M */ { 78, UNICODE_UPPER }, /* Latin Capital N */ { 79, UNICODE_UPPER }, /* Latin Capital O */ { 80, UNICODE_UPPER }, /* Latin Capital P */ { 81, UNICODE_UPPER }, /* Latin Capital Q */ { 82, UNICODE_UPPER }, /* Latin Capital R */ { 83, UNICODE_UPPER }, /* Latin Capital S */ { 84, UNICODE_UPPER }, /* Latin Capital T */ { 85, UNICODE_UPPER }, /* Latin Capital U */ { 86, UNICODE_UPPER }, /* Latin Capital V */ { 87, UNICODE_UPPER }, /* Latin Capital W */ { 88, UNICODE_UPPER }, /* Latin Capital X */ { 89, UNICODE_UPPER }, /* Latin Capital Y */ { 90, UNICODE_UPPER }, /* Latin Capital Z */ { 97, UNICODE_LOWER }, /* Latin Small a */ { 98, UNICODE_LOWER }, /* Latin Small b */ { 99, UNICODE_LOWER }, /* Latin Small c */ { 100, UNICODE_LOWER }, /* Latin Small d */ { 101, UNICODE_LOWER }, /* Latin Small e */ { 102, UNICODE_LOWER }, /* Latin Small f */ { 103, UNICODE_LOWER }, /* Latin Small g */ { 104, UNICODE_LOWER }, /* Latin Small h */ { 105, UNICODE_LOWER }, /* Latin Small i */ { 106, UNICODE_LOWER }, /* Latin Small j */ { 107, UNICODE_LOWER }, /* Latin Small k */ { 108, UNICODE_LOWER }, /* Latin Small l */ { 109, UNICODE_LOWER }, /* Latin Small m */ { 110, UNICODE_LOWER }, /* Latin Small n */ { 111, UNICODE_LOWER }, /* Latin Small o */ { 112, UNICODE_LOWER }, /* Latin Small p */ { 113, UNICODE_LOWER }, /* Latin Small q */ { 114, UNICODE_LOWER }, /* Latin Small r */ { 115, UNICODE_LOWER }, /* Latin Small s */ { 116, UNICODE_LOWER }, /* Latin Small t */ { 117, UNICODE_LOWER }, /* Latin Small u */ { 118, UNICODE_LOWER }, /* Latin Small v */ { 119, UNICODE_LOWER }, /* Latin Small w */ { 120, UNICODE_LOWER }, /* Latin Small x */ { 121, UNICODE_LOWER }, /* Latin Small y */ { 122, UNICODE_LOWER }, /* Latin Small z */ { 192, UNICODE_UPPER }, /* Latin Capital A with grave */ { 193, UNICODE_UPPER }, /* Latin Capital A with acute */ { 194, UNICODE_UPPER }, /* Latin Capital A with circumflex */ { 195, UNICODE_UPPER }, /* Latin Capital A with tilde */ { 196, UNICODE_UPPER }, /* Latin Capital A with diuresis */ { 197, UNICODE_UPPER }, /* Latin Capital A with ring above */ { 198, UNICODE_UPPER }, /* Latin Capital AE */ { 199, UNICODE_UPPER }, /* Latin Capital C with cedilla */ { 200, UNICODE_UPPER }, /* Latin Capital E with grave */ { 201, UNICODE_UPPER }, /* Latin Capital E with acute */ { 202, UNICODE_UPPER }, /* Latin Capital E with circumflex */ { 203, UNICODE_UPPER }, /* Latin Capital E with diuresis */ { 204, UNICODE_UPPER }, /* Latin Capital I with grave */ { 205, UNICODE_UPPER }, /* Latin Capital I with acute */ { 206, UNICODE_UPPER }, /* Latin Capital I with circumflex */ { 207, UNICODE_UPPER }, /* Latin Capital I with diuresis */ { 208, UNICODE_UPPER }, /* Latin Capital ETH */ { 209, UNICODE_UPPER }, /* Latin Capital N with tilde */ { 210, UNICODE_UPPER }, /* Latin Capital O with grave */ { 211, UNICODE_UPPER }, /* Latin Capital O with acute */ { 212, UNICODE_UPPER }, /* Latin Capital O with circumflex */ { 213, UNICODE_UPPER }, /* Latin Capital O with tilde */ { 214, UNICODE_UPPER }, /* Latin Captial O with diaeresis */ { 216, UNICODE_UPPER }, /* Latin Capital O with stroke */ { 217, UNICODE_UPPER }, /* Latin Capital U with grave */ { 218, UNICODE_UPPER }, /* Latin Capital U with acute */ { 219, UNICODE_UPPER }, /* Latin Capital U with circumflex */ { 220, UNICODE_UPPER }, /* Latin Capital U with diaeresis */ { 221, UNICODE_UPPER }, /* Latin Capital Y with acute */ { 222, UNICODE_UPPER }, /* Latin Capital THORN */ { 223, UNICODE_LOWER }, /* German sz ligature */ { 224, UNICODE_LOWER }, /* Latin Small a with grave */ { 225, UNICODE_LOWER }, /* Latin Small a with acute */ { 226, UNICODE_LOWER }, /* Latin Small a with circumflex */ { 227, UNICODE_LOWER }, /* Latin Small a with tilde */ { 228, UNICODE_LOWER }, /* Latin Small a with diuresis */ { 229, UNICODE_LOWER }, /* Latin Small a with ring above */ { 230, UNICODE_LOWER }, /* Latin Small ae */ { 231, UNICODE_LOWER }, /* Latin Small c with cedilla */ { 232, UNICODE_LOWER }, /* Latin Small e with grave */ { 233, UNICODE_LOWER }, /* Latin Small e with acute */ { 234, UNICODE_LOWER }, /* Latin Small e with circumflex */ { 235, UNICODE_LOWER }, /* Latin Small e with diuresis */ { 236, UNICODE_LOWER }, /* Latin Small i with grave */ { 237, UNICODE_LOWER }, /* Latin Small i with acute */ { 238, UNICODE_LOWER }, /* Latin Small i with circumflex */ { 239, UNICODE_LOWER }, /* Latin Small i with diuresis */ { 240, UNICODE_LOWER }, /* Latin Small eth */ { 241, UNICODE_LOWER }, /* Latin Small n with tilde */ { 242, UNICODE_LOWER }, /* Latin Small o with grave */ { 243, UNICODE_LOWER }, /* Latin Small o with acute */ { 244, UNICODE_LOWER }, /* Latin Small o with circumflex */ { 245, UNICODE_LOWER }, /* Latin Small o with tilde */ { 246, UNICODE_LOWER }, /* Latin Small o with diaeresis */ { 248, UNICODE_LOWER }, /* Latin Small o with stroke */ { 249, UNICODE_LOWER }, /* Latin Small u with grave */ { 250, UNICODE_LOWER }, /* Latin Small u with acute */ { 251, UNICODE_LOWER }, /* Latin Small u with circumflex */ { 252, UNICODE_LOWER }, /* Latin Small u with diaeresis */ { 253, UNICODE_LOWER }, /* Latin Small y with acute */ { 254, UNICODE_LOWER }, /* Latin Small thorn */ { 255, UNICODE_LOWER }, /* Latin Small y with diaeresis */ { 256, UNICODE_UPPER }, /* Latin Capital A with macron */ { 257, UNICODE_LOWER }, /* Latin Small a with macron */ { 258, UNICODE_UPPER }, /* Latin Capital A with breve */ { 259, UNICODE_LOWER }, /* Latin Small a with breve */ { 260, UNICODE_UPPER }, /* Latin Capital A with ogonek */ { 261, UNICODE_LOWER }, /* Latin Small a with ogonek */ { 262, UNICODE_UPPER }, /* Latin Capital C with acute */ { 263, UNICODE_LOWER }, /* Latin Small c with acute */ { 264, UNICODE_UPPER }, /* Latin Capital C with circumflex */ { 265, UNICODE_LOWER }, /* Latin Small c with circumflex */ { 266, UNICODE_UPPER }, /* Latin Capital C with dot above */ { 267, UNICODE_LOWER }, /* Latin Small c with dot above */ { 268, UNICODE_UPPER }, /* Latin Capital C with caron (hacek) */ { 269, UNICODE_LOWER }, /* Latin Small c with caron (hacek) */ { 270, UNICODE_UPPER }, /* Latin Capital D with caron (hacek) */ { 271, UNICODE_LOWER }, /* Latin Small d with caron (hacek) */ { 272, UNICODE_UPPER }, /* Latin Capital D with stroke */ { 273, UNICODE_LOWER }, /* Latin Small d with stroke */ { 274, UNICODE_UPPER }, /* Latin Capital E with macron */ { 275, UNICODE_LOWER }, /* Latin Small e with macron */ { 276, UNICODE_UPPER }, /* Latin Capital E with breve */ { 277, UNICODE_LOWER }, /* Latin Small e with breve */ { 278, UNICODE_UPPER }, /* Latin Capital E with dot above */ { 279, UNICODE_LOWER }, /* Latin Small e with dot above */ { 280, UNICODE_UPPER }, /* Latin Capital E with ogonek */ { 281, UNICODE_LOWER }, /* Latin Small e with ogonek */ { 282, UNICODE_UPPER }, /* Latin Capital E with caron (hacek) */ { 283, UNICODE_LOWER }, /* Latin Small e with caron */ { 284, UNICODE_UPPER }, /* Latin Capital G with circumflex */ { 285, UNICODE_LOWER }, /* Latin Small g with circumflex */ { 286, UNICODE_UPPER }, /* Latin Capital G with breve */ { 287, UNICODE_LOWER }, /* Latin Small g with breve */ { 288, UNICODE_UPPER }, /* Latin Capital G with dot above */ { 289, UNICODE_LOWER }, /* Latin Small g with dot above */ { 290, UNICODE_UPPER }, /* Latin Capital G with cedilla */ { 291, UNICODE_LOWER }, /* Latin Small g with cedilla */ { 292, UNICODE_UPPER }, /* Latin Capital H with circumflex */ { 293, UNICODE_LOWER }, /* Latin Small h with circumflex */ { 294, UNICODE_UPPER }, /* Latin Capital H with stroke */ { 295, UNICODE_LOWER }, /* Latin Small h with stroke */ { 296, UNICODE_UPPER }, /* Latin Capital I with tilde */ { 297, UNICODE_LOWER }, /* Latin Small i with tilde */ { 298, UNICODE_UPPER }, /* Latin Capital I with macron */ { 299, UNICODE_LOWER }, /* Latin Small i with macron */ { 300, UNICODE_UPPER }, /* Latin Capital I with breve */ { 301, UNICODE_LOWER }, /* Latin Small i with breve */ { 302, UNICODE_UPPER }, /* Latin Capital I with ogonek */ { 303, UNICODE_LOWER }, /* Latin Small i with ogonek */ { 304, UNICODE_UPPER }, /* Latin Capital I with dot above */ { 305, UNICODE_LOWER }, /* Latin Small i without dot above */ { 306, UNICODE_UPPER }, /* Latin Capital IJ */ { 307, UNICODE_LOWER }, /* Latin Small IJ */ { 308, UNICODE_UPPER }, /* Latin Capital J with circumflex */ { 309, UNICODE_LOWER }, /* Latin Small j with circumflex */ { 310, UNICODE_UPPER }, /* Latin Capital K with cedilla */ { 311, UNICODE_LOWER }, /* Latin Small j with cedilla */ { 312, UNICODE_LOWER }, /* Latin Small kra */ { 313, UNICODE_UPPER }, /* Latin Capital L with acute */ { 314, UNICODE_LOWER }, /* Latin Small l with acute */ { 315, UNICODE_UPPER }, /* Latin Capital L with cedilla */ { 316, UNICODE_LOWER }, /* Latin Small l with cedilla */ { 317, UNICODE_UPPER }, /* Latin Capital L with caron */ { 318, UNICODE_LOWER }, /* Latin Small l with caron */ { 319, UNICODE_UPPER }, /* Latin Capital L with middle dot */ { 320, UNICODE_LOWER }, /* Latin Small l with middle dot */ { 321, UNICODE_UPPER }, /* Latin Capital L with stroke */ { 322, UNICODE_LOWER }, /* Latin Small l with stroke */ { 323, UNICODE_UPPER }, /* Latin Capital N with acute */ { 324, UNICODE_LOWER }, /* Latin Small n with acute */ { 325, UNICODE_UPPER }, /* Latin Capital N with cedilla */ { 326, UNICODE_LOWER }, /* Latin Small n with cedilla */ { 327, UNICODE_UPPER }, /* Latin Capital N with caron */ { 328, UNICODE_LOWER }, /* Latin Small n with caron */ { 329, UNICODE_LOWER }, /* Latin Small n preceeded by apostrophe */ { 330, UNICODE_UPPER }, /* Latin Capital Eng */ { 331, UNICODE_LOWER }, /* Latin Small eng */ { 332, UNICODE_UPPER }, /* Latin Capital O with macron */ { 333, UNICODE_LOWER }, /* Latin Small o with macron */ { 334, UNICODE_UPPER }, /* Latin Capital O with breve */ { 335, UNICODE_LOWER }, /* Latin Small o with breve */ { 336, UNICODE_UPPER }, /* Latin Capital O with double acute */ { 337, UNICODE_LOWER }, /* Latin Small o with double acute */ { 338, UNICODE_UPPER }, /* Latin Capital OE */ { 339, UNICODE_LOWER }, /* Latin Small oe */ { 340, UNICODE_UPPER }, /* Latin Capital R with acute */ { 341, UNICODE_LOWER }, /* Latin Small r with acute */ { 342, UNICODE_UPPER }, /* Latin Capital R with cedilla */ { 343, UNICODE_LOWER }, /* Latin Small r with cedilla */ { 344, UNICODE_UPPER }, /* Latin Capital R with caron */ { 345, UNICODE_LOWER }, /* Latin Small r with caron */ { 346, UNICODE_UPPER }, /* Latin Capital S with acute */ { 347, UNICODE_LOWER }, /* Latin Small s with acute */ { 348, UNICODE_UPPER }, /* Latin Capital S with circumflex */ { 349, UNICODE_LOWER }, /* Latin Small s with circumflex */ { 350, UNICODE_UPPER }, /* Latin Capital S with cedilla */ { 351, UNICODE_LOWER }, /* Latin Small s with cedilla */ { 352, UNICODE_UPPER }, /* Latin Capital S with caron */ { 353, UNICODE_LOWER }, /* Latin Small s with caron */ { 354, UNICODE_UPPER }, /* Latin Capital T with cedilla */ { 355, UNICODE_LOWER }, /* Latin Small t with cedilla */ { 356, UNICODE_UPPER }, /* Latin Capital T with caron */ { 357, UNICODE_LOWER }, /* Latin Small t with caron */ { 358, UNICODE_UPPER }, /* Latin Capital T with stroke */ { 359, UNICODE_LOWER }, /* Latin Small t with stroke */ { 360, UNICODE_UPPER }, /* Latin Capital U with tilde */ { 361, UNICODE_LOWER }, /* Latin Small u with tilde */ { 362, UNICODE_UPPER }, /* Latin Capital U with macron */ { 363, UNICODE_LOWER }, /* Latin Small u with macron */ { 364, UNICODE_UPPER }, /* Latin Capital U with breve */ { 365, UNICODE_LOWER }, /* Latin Small u with breve */ { 366, UNICODE_UPPER }, /* Latin Capital U with ring above */ { 367, UNICODE_LOWER }, /* Latin Small u with ring above */ { 368, UNICODE_UPPER }, /* Latin Capital U with double acute */ { 369, UNICODE_LOWER }, /* Latin Small u with double acute */ { 370, UNICODE_UPPER }, /* Latin Capital U with ogonek */ { 371, UNICODE_LOWER }, /* Latin Small u with ogonek */ { 372, UNICODE_UPPER }, /* Latin Capital W with circumflex */ { 373, UNICODE_LOWER }, /* Latin Small w with circumflex */ { 374, UNICODE_UPPER }, /* Latin Capital Y with circumflex */ { 375, UNICODE_LOWER }, /* Latin Small y with circumflex */ { 376, UNICODE_UPPER }, /* Latin Capital Y with diaeresis */ { 377, UNICODE_UPPER }, /* Latin Capital Z with acute */ { 378, UNICODE_LOWER }, /* Latin Small z with acute */ { 379, UNICODE_UPPER }, /* Latin Capital Z with dot above */ { 380, UNICODE_LOWER }, /* Latin Small z with dot above */ { 381, UNICODE_UPPER }, /* Latin Capital Z with caron */ { 382, UNICODE_LOWER }, /* Latin Small z with caron */ { 383, UNICODE_LOWER }, /* Latin Small long S */ { 461, UNICODE_UPPER }, /* Latin Capital A with caron (hacek) */ { 462, UNICODE_LOWER }, /* Latin Small a with caron (hacek) */ { 463, UNICODE_UPPER }, /* Latin Capital I with caron (hacek) */ { 464, UNICODE_LOWER }, /* Latin Small i with caron (hacek) */ { 465, UNICODE_UPPER }, /* Latin Capital O with caron (hacek) */ { 466, UNICODE_LOWER }, /* Latin Small o with caron (hacek) */ { 467, UNICODE_UPPER }, /* Latin Capital U with caron (hacek) */ { 468, UNICODE_LOWER }, /* Latin Small u with caron (hacek) */ { 486, UNICODE_UPPER }, /* Latin Capital G with caron */ { 487, UNICODE_LOWER }, /* Latin Small g with caron */ { 488, UNICODE_UPPER }, /* Latin Capital J with caron */ { 489, UNICODE_LOWER }, /* Latin Small j with caron */ { 490, UNICODE_UPPER }, /* Latin Capital O with caron */ { 491, UNICODE_LOWER }, /* Latin Small o with caron */ { 500, UNICODE_UPPER }, /* Latin Capital G with acute */ { 501, UNICODE_LOWER }, /* Latin Small g with caron */ }; static int nunicodeinfo = sizeof( unicodeinfo ) / sizeof( unicodeinfo[0] ); static int unicode_find( unsigned int unicode_character ) { int min = 0, max = nunicodeinfo, mid; while ( min < max ) { mid = ( min + max ) / 2; if ( unicodeinfo[mid].value < unicode_character ) min = mid + 1; else max = mid; } if ( ( max==min ) && ( unicodeinfo[min].value == unicode_character ) ) return min; else return -1; } unsigned short unicode_utf8_classify( char *p ) { unsigned int unicode_character, pos = 0; int n; unicode_character = utf8_decode( p, &pos ); n = unicode_find( unicode_character ); if ( n==-1 ) return UNICODE_SYMBOL; else return unicodeinfo[n].info; } unsigned short unicode_utf8_classify_str( str *s ) { unsigned int unicode_character, pos = 0; unsigned short value = 0; int n; while ( pos < s->len ) { unicode_character = utf8_decode( str_cstr( s ), &pos ); n = unicode_find( unicode_character ); if ( n==-1 ) value |= UNICODE_SYMBOL; else value |= unicodeinfo[n].info; } return value; } hs-bibutils-6.7.0.0/bibutils/unicode.h0000755000000000000000000000105300000000000015654 0ustar0000000000000000/* * unicode.h * * Copyright (c) Chris Putnam 2004-2018 * * Program and source code released under the GPL version 2 */ #ifndef UNICODE_H #define UNICODE_H #include "str.h" #define UNICODE_SYMBOL (1) #define UNICODE_UPPER (2) /* Uppercase letter */ #define UNICODE_LOWER (4) /* Lowercase letter */ #define UNICODE_NUMBER (8) /* Numeric character */ #define UNICODE_MIXEDCASE ( UNICODE_UPPER | UNICODE_LOWER ) extern unsigned short unicode_utf8_classify( char *p ); extern unsigned short unicode_utf8_classify_str( str *s ); #endif hs-bibutils-6.7.0.0/bibutils/url.c0000644000000000000000000002124100000000000015021 0ustar0000000000000000/* * url.c * * doi_to_url() * Handle outputing DOI as a URL (Endnote and RIS formats) * 1) Append https://doi.org as necessary * 2) Check for overlap with pre-existing URL for the DOI * * is_doi() * Check for DOI buried in another field. * * Copyright (c) Chris Putnam 2008-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include #include "bibutils.h" #include "url.h" static void construct_url( char *prefix, str *id, str *id_url, char sep ) { if ( !strncasecmp( str_cstr( id ), "http:", 5 ) ) str_strcpy( id_url, id ); else { str_strcpyc( id_url, prefix ); if ( sep!='\0' ) { if ( id->data[0]!=sep ) str_addchar( id_url, sep ); } str_strcat( id_url, id ); } } static int url_exists( fields *f, char *urltag, str *doi_url ) { int i, n; if ( urltag ) { n = fields_num( f ); for ( i=0; in; ++i ) { str_strcpyc( &url, prefix ); str_strcatc( &url, ( char * ) vplist_get( values, i ) ); fstatus = fields_add( out, tag_out, str_cstr( &url ), lvl_out ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &url ); return status; } /* * urls_merge_and_add() * * Append urls of types controlled by the list type and automatically append appropriate * prefixes. If no prefix is found for the entry, don't add one (e.g. "URL" entries). * * Control of the types to be added by list type is necessary as some reference formats * like bibtex ought to do special things with DOI, ARXIV, MRNUMBER, and the like. */ int urls_merge_and_add( fields *in, int lvl_in, fields *out, char *tag_out, int lvl_out, slist *types ) { int i, j, status = BIBL_OK; char *tag, *prefix, *empty=""; vplist a; vplist_init( &a ); for ( i=0; in; ++i ) { tag = slist_cstr( types, i ); /* ...look for data of requested type; if not found skip */ vplist_empty( &a ); fields_findv_each( in, lvl_in, FIELDS_CHRP, &a, tag ); if ( a.n==0 ) continue; /* ...find the prefix (if present) */ prefix = empty; for ( j=0; j #include #include #include #include "bibutils.h" #include "url.h" static void construct_url( char *prefix, str *id, str *id_url, char sep ) { if ( !strncasecmp( str_cstr( id ), "http:", 5 ) ) str_strcpy( id_url, id ); else { str_strcpyc( id_url, prefix ); if ( sep!='\0' ) { if ( id->data[0]!=sep ) str_addchar( id_url, sep ); } str_strcat( id_url, id ); } } static int url_exists( fields *f, char *urltag, str *doi_url ) { int i, n; if ( urltag ) { n = fields_num( f ); for ( i=0; in; ++i ) { str_strcpyc( &url, prefix ); str_strcatc( &url, ( char * ) vplist_get( values, i ) ); fstatus = fields_add( out, tag_out, str_cstr( &url ), lvl_out ); if ( fstatus!=FIELDS_OK ) { status = BIBL_ERR_MEMERR; goto out; } } out: str_free( &url ); return status; } /* * urls_merge_and_add() * * Append urls of types controlled by the list type and automatically append appropriate * prefixes. If no prefix is found for the entry, don't add one (e.g. "URL" entries). * * Control of the types to be added by list type is necessary as some reference formats * like bibtex ought to do special things with DOI, ARXIV, MRNUMBER, and the like. */ int urls_merge_and_add( fields *in, int lvl_in, fields *out, char *tag_out, int lvl_out, slist *types ) { int i, j, status = BIBL_OK; char *tag, *prefix, *empty=""; vplist a; vplist_init( &a ); for ( i=0; in; ++i ) { tag = slist_cstr( types, i ); /* ...look for data of requested type; if not found skip */ vplist_empty( &a ); fields_findv_each( in, lvl_in, FIELDS_CHRP, &a, tag ); if ( a.n==0 ) continue; /* ...find the prefix (if present) */ prefix = empty; for ( j=0; j #include #include "utf8.h" /* UTF-8 encoding U-00000000 - U-0000007F: 0xxxxxxx U-00000080 - U-000007FF: 110xxxxx 10xxxxxx U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */ static void utf8_build( unsigned int value, unsigned char out[6], int in_pos, int out_pos ) { unsigned int in_mask, out_mask; int byte = 0; while ( in_pos < 32 ) { in_mask = 1 << ( 31 - in_pos ); out_mask = 1 << ( 7 - out_pos ); if ( value & in_mask ) out[byte] |= out_mask; in_pos++; out_pos++; if ( out_pos > 7 ) { out_pos=2; byte++; } } } /* int utf8( in, out[6] ); * * in is character code 0x0 -> 0x7FFFFFFF * int is number of characters for output * */ int utf8_encode( unsigned int value, unsigned char out[6] ) { int i; for ( i=1; i<6; ++i ) out[i] = 0x80; /* 10xxxxxx */ if ( value < 0x80 ) { out[0] = 0x0; /* 0xxxxxxx */ utf8_build( value, out, 25, 1 ); return 1; } else if ( value < 0x800 ) { out[0] = 0xC0; /* 110xxxxx */ utf8_build( value, out, 21, 3 ); return 2; } else if ( value < 0x10000 ) { out[0] = 0xE0; /* 1110xxxx */ utf8_build( value, out, 16, 4 ); return 3; } else if ( value < 0x200000 ) { out[0] = 0xF0; /* 11110xxx */ utf8_build( value, out, 11, 5 ); return 4; } else if ( value < 0x4000000 ) { out[0] = 0xF8; /* 111110xx */ utf8_build( value, out, 6, 6 ); return 5; } else if ( value < (unsigned int ) 0x80000000 ) { out[0] = 0xFC; /* 1111110x */ utf8_build( value, out, 1, 7 ); return 6; } else { /* error, above 2^31 bits encodable by UTF-8 */ return 0; } } /* Generate UTF8 character as null-terminated string */ void utf8_encode_str( unsigned int value, char outstr[7] ) { unsigned char encoded[6]; int i, n; n = utf8_encode( value, encoded ); for ( i=0; i #include #include "utf8.h" /* UTF-8 encoding U-00000000 - U-0000007F: 0xxxxxxx U-00000080 - U-000007FF: 110xxxxx 10xxxxxx U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */ static void utf8_build( unsigned int value, unsigned char out[6], int in_pos, int out_pos ) { unsigned int in_mask, out_mask; int byte = 0; while ( in_pos < 32 ) { in_mask = 1 << ( 31 - in_pos ); out_mask = 1 << ( 7 - out_pos ); if ( value & in_mask ) out[byte] |= out_mask; in_pos++; out_pos++; if ( out_pos > 7 ) { out_pos=2; byte++; } } } /* int utf8( in, out[6] ); * * in is character code 0x0 -> 0x7FFFFFFF * int is number of characters for output * */ int utf8_encode( unsigned int value, unsigned char out[6] ) { int i; for ( i=1; i<6; ++i ) out[i] = 0x80; /* 10xxxxxx */ if ( value < 0x80 ) { out[0] = 0x0; /* 0xxxxxxx */ utf8_build( value, out, 25, 1 ); return 1; } else if ( value < 0x800 ) { out[0] = 0xC0; /* 110xxxxx */ utf8_build( value, out, 21, 3 ); return 2; } else if ( value < 0x10000 ) { out[0] = 0xE0; /* 1110xxxx */ utf8_build( value, out, 16, 4 ); return 3; } else if ( value < 0x200000 ) { out[0] = 0xF0; /* 11110xxx */ utf8_build( value, out, 11, 5 ); return 4; } else if ( value < 0x4000000 ) { out[0] = 0xF8; /* 111110xx */ utf8_build( value, out, 6, 6 ); return 5; } else if ( value < (unsigned int ) 0x80000000 ) { out[0] = 0xFC; /* 1111110x */ utf8_build( value, out, 1, 7 ); return 6; } else { /* error, above 2^31 bits encodable by UTF-8 */ return 0; } } /* Generate UTF8 character as null-terminated string */ void utf8_encode_str( unsigned int value, char outstr[7] ) { unsigned char encoded[6]; int i, n; n = utf8_encode( value, encoded ); for ( i=0; i int utf8_encode( unsigned int value, unsigned char out[6] ); void utf8_encode_str( unsigned int value, char outstr[7] ); unsigned int utf8_decode( char *s, unsigned int *pi ); void utf8_writebom( FILE *outptr ); int utf8_is_bom( char *p ); int utf8_is_emdash( char *p ); int utf8_is_endash( char *p ); #endif hs-bibutils-6.7.0.0/bibutils/vplist.c0000644000000000000000000001515700000000000015551 0ustar0000000000000000/* * vplist.c * * Version: 1/9/2017 * * Copyright (c) Chris Putnam 2011-2018 * * Source code released under the GPL version 2 * * Implements a simple managed array of pointers to void * */ #include #include "vplist.h" /* Do not use asserts in VPLIST_NOASSERT defined */ #ifdef VPLIST_NOASSERT #define NDEBUG #endif #include #define VPLIST_MINALLOC (20) #define VPLIST_EXACT_SIZE (0) #define VPLIST_DOUBLE_SIZE (1) void vplist_init( vplist *vpl ) { assert( vpl ); vpl->data = NULL; vpl->n = vpl->max = 0; } vplist * vplist_new( void ) { vplist *vpl; vpl = ( vplist * ) malloc( sizeof( vplist ) ); if ( vpl ) vplist_init( vpl ); return vpl; } static inline int vplist_alloc( vplist *vpl, vplist_index alloc ) { vpl->data = ( void ** ) malloc( sizeof( void * ) * alloc ); if ( !vpl->data ) return VPLIST_MEMERR; vpl->max = alloc; vpl->n = 0; return VPLIST_OK; } static inline int vplist_realloc( vplist *vpl, vplist_index alloc ) { void **more; more = ( void ** ) realloc( vpl->data, sizeof( void * ) * alloc ); if ( !more ) return VPLIST_MEMERR; vpl->data = more; vpl->max = alloc; return VPLIST_OK; } /* vplist_ensure_space( vpl, n, mode ) * * Makes sure that vplist can hold at least n members, allocating memory if required. * * mode * - Can either be VPLIST_DOUBLE_SIZE or VPLIST_EXACT_SIZE. * - If VPLIST_EXACT_SIZE and current size < n, size will be exactly n. * - If VPLIST_DOUBLE_SIZE and current size < n, size will be doubled (or VPLIST_MINALLOC * if the vplist is empty) or n, whichever is bigger. * * Returns VPLIST_OK or VPLIST_MEMERR. */ static int vplist_ensure_space( vplist *vpl, vplist_index n, unsigned char mode ) { vplist_index alloc = n; int status = VPLIST_OK; if ( vpl->max == 0 ) { if ( mode == VPLIST_DOUBLE_SIZE && alloc < VPLIST_MINALLOC ) alloc = VPLIST_MINALLOC; status = vplist_alloc( vpl, alloc ); } else if ( vpl->max < n ) { if ( mode == VPLIST_DOUBLE_SIZE && alloc < 2 * vpl->max ) alloc = 2 * vpl->max; status = vplist_realloc( vpl, alloc ); } return status; } int vplist_copy( vplist *to, vplist *from ) { vplist_index i; int status; assert( to ); assert( from ); status = vplist_ensure_space( to, from->n, VPLIST_EXACT_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; in; ++i ) to->data[i] = from->data[i]; to->n = from->n; } return status; } int vplist_fill( vplist *vpl, vplist_index n, void *v ) { vplist_index i; int status; assert( vpl ); status = vplist_ensure_space( vpl, n, VPLIST_EXACT_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; idata[i] = v; vpl->n = n; } return status; } int vplist_add( vplist *vpl, void *v ) { int status; assert( vpl ); status = vplist_ensure_space( vpl, vpl->n + 1, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { vpl->data[vpl->n] = v; vpl->n++; } return status; } int vplist_insert_list( vplist *vpl, vplist_index pos, vplist *add ) { vplist_index i; int status; assert( vpl ); assert( add ); assert( pos <= vpl->n ); /* nothing to do here */ if ( add->n < 1 ) return VPLIST_OK; status = vplist_ensure_space( vpl, vpl->n + add->n, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { for ( i=vpl->n-1; i>=pos; --i ) vpl->data[i+add->n] = vpl->data[i]; for ( i=0; in; ++i ) vpl->data[pos+i] = add->data[i]; vpl->n += add->n; } return status; } int vplist_append( vplist *vpl, vplist *add ) { vplist_index i; int status; assert( vpl ); assert( add ); status = vplist_ensure_space( vpl, vpl->n + add->n, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; in; ++i ) vpl->data[ vpl->n + i ] = add->data[i]; vpl->n += add->n; } return status; } static void vplist_freemembers( vplist *vpl, vplist_ptrfree vpf ) { vplist_index i; void *v; for ( i=0; in; ++i ) { v = vplist_get( vpl, i ); if ( v ) (*vpf)( v ); } } void vplist_emptyfn( vplist *vpl, vplist_ptrfree vpf ) { assert( vpl ); if ( vpf ) vplist_freemembers( vpl, vpf ); vpl->n = 0; } void vplist_empty( vplist *vpl ) { vplist_emptyfn( vpl, NULL ); } void vplist_freefn( vplist *vpl, vplist_ptrfree vpf ) { assert( vpl ); if ( vpf ) vplist_freemembers( vpl, vpf ); if ( vpl->data ) free( vpl->data ); vplist_init( vpl ); } void vplist_free( vplist *vpl ) { vplist_freefn( vpl, NULL ); } void vplist_deletefn( vplist **vpl, vplist_ptrfree vpf ) { vplist_freefn( *vpl, vpf ); free( *vpl ); *vpl = NULL; } void vplist_delete( vplist **vpl ) { vplist_deletefn( vpl, NULL ); } static inline int vplist_validindex( vplist *vpl, vplist_index n ) { if ( n < 0 || n >= vpl->n ) return 0; return 1; } void * vplist_get( vplist *vpl, vplist_index n ) { assert( vpl ); if ( !vplist_validindex( vpl, n ) ) return NULL; return vpl->data[ n ]; } void vplist_set( vplist *vpl, vplist_index n, void *v ) { assert( vpl ); assert( vplist_validindex( vpl, n ) ); vpl->data[ n ] = v; } int vplist_find( vplist *vpl, void *v ) { vplist_index i; assert( vpl ); for ( i=0; in; ++i ) if ( vpl->data[i]==v ) return i; return -1; } void vplist_swap( vplist *vpl, vplist_index n1, vplist_index n2 ) { void *tmp; assert( vpl ); assert( vplist_validindex( vpl, n1 ) ); assert( vplist_validindex( vpl, n2 ) ); tmp = vpl->data[n1]; vpl->data[n1] = vpl->data[n2]; vpl->data[n2] = tmp; } int vplist_removefn( vplist *vpl, vplist_index n, vplist_ptrfree vpf ) { vplist_index i; assert( vpl ); assert( vplist_validindex( vpl, n ) ); if ( vpf ) (*vpf)( vplist_get( vpl, n ) ); for ( i=n+1; in; ++i ) vpl->data[ i-1 ] = vpl->data[ i ]; vpl->n -= 1; return 1; } int vplist_remove( vplist *vpl, vplist_index n ) { return vplist_removefn( vpl, n, NULL ); } int vplist_removevpfn( vplist *vpl, void *v, vplist_ptrfree vpf ) { vplist_index n; int count = 0; assert( vpl ); do { n = vplist_find( vpl, v ); if ( vplist_found( vpl, n ) ) { vplist_removefn( vpl, n, vpf ); count++; } } while ( vplist_found( vpl, n ) ); return count; } int vplist_removevp( vplist *vpl, void *v ) { return vplist_removevpfn( vpl, v, NULL ); } void vplist_remove_rangefn( vplist *vpl, vplist_index start, vplist_index endplusone, vplist_ptrfree vpf ) { vplist_index i, n; assert( endplusone <= vpl->n ); assert( endplusone > start ); n = endplusone - start; if ( vpf ) { for ( i=start; in; ++i ) { vpl->data[i-n] = vpl->data[i]; } vpl->n -= n; } void vplist_remove_range( vplist *vpl, vplist_index start, vplist_index endplusone ) { vplist_remove_rangefn( vpl, start, endplusone, NULL ); } hs-bibutils-6.7.0.0/bibutils/vplist.c0000755000000000000000000001515700000000000015554 0ustar0000000000000000/* * vplist.c * * Version: 1/9/2017 * * Copyright (c) Chris Putnam 2011-2018 * * Source code released under the GPL version 2 * * Implements a simple managed array of pointers to void * */ #include #include "vplist.h" /* Do not use asserts in VPLIST_NOASSERT defined */ #ifdef VPLIST_NOASSERT #define NDEBUG #endif #include #define VPLIST_MINALLOC (20) #define VPLIST_EXACT_SIZE (0) #define VPLIST_DOUBLE_SIZE (1) void vplist_init( vplist *vpl ) { assert( vpl ); vpl->data = NULL; vpl->n = vpl->max = 0; } vplist * vplist_new( void ) { vplist *vpl; vpl = ( vplist * ) malloc( sizeof( vplist ) ); if ( vpl ) vplist_init( vpl ); return vpl; } static inline int vplist_alloc( vplist *vpl, vplist_index alloc ) { vpl->data = ( void ** ) malloc( sizeof( void * ) * alloc ); if ( !vpl->data ) return VPLIST_MEMERR; vpl->max = alloc; vpl->n = 0; return VPLIST_OK; } static inline int vplist_realloc( vplist *vpl, vplist_index alloc ) { void **more; more = ( void ** ) realloc( vpl->data, sizeof( void * ) * alloc ); if ( !more ) return VPLIST_MEMERR; vpl->data = more; vpl->max = alloc; return VPLIST_OK; } /* vplist_ensure_space( vpl, n, mode ) * * Makes sure that vplist can hold at least n members, allocating memory if required. * * mode * - Can either be VPLIST_DOUBLE_SIZE or VPLIST_EXACT_SIZE. * - If VPLIST_EXACT_SIZE and current size < n, size will be exactly n. * - If VPLIST_DOUBLE_SIZE and current size < n, size will be doubled (or VPLIST_MINALLOC * if the vplist is empty) or n, whichever is bigger. * * Returns VPLIST_OK or VPLIST_MEMERR. */ static int vplist_ensure_space( vplist *vpl, vplist_index n, unsigned char mode ) { vplist_index alloc = n; int status = VPLIST_OK; if ( vpl->max == 0 ) { if ( mode == VPLIST_DOUBLE_SIZE && alloc < VPLIST_MINALLOC ) alloc = VPLIST_MINALLOC; status = vplist_alloc( vpl, alloc ); } else if ( vpl->max < n ) { if ( mode == VPLIST_DOUBLE_SIZE && alloc < 2 * vpl->max ) alloc = 2 * vpl->max; status = vplist_realloc( vpl, alloc ); } return status; } int vplist_copy( vplist *to, vplist *from ) { vplist_index i; int status; assert( to ); assert( from ); status = vplist_ensure_space( to, from->n, VPLIST_EXACT_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; in; ++i ) to->data[i] = from->data[i]; to->n = from->n; } return status; } int vplist_fill( vplist *vpl, vplist_index n, void *v ) { vplist_index i; int status; assert( vpl ); status = vplist_ensure_space( vpl, n, VPLIST_EXACT_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; idata[i] = v; vpl->n = n; } return status; } int vplist_add( vplist *vpl, void *v ) { int status; assert( vpl ); status = vplist_ensure_space( vpl, vpl->n + 1, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { vpl->data[vpl->n] = v; vpl->n++; } return status; } int vplist_insert_list( vplist *vpl, vplist_index pos, vplist *add ) { vplist_index i; int status; assert( vpl ); assert( add ); assert( pos <= vpl->n ); /* nothing to do here */ if ( add->n < 1 ) return VPLIST_OK; status = vplist_ensure_space( vpl, vpl->n + add->n, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { for ( i=vpl->n-1; i>=pos; --i ) vpl->data[i+add->n] = vpl->data[i]; for ( i=0; in; ++i ) vpl->data[pos+i] = add->data[i]; vpl->n += add->n; } return status; } int vplist_append( vplist *vpl, vplist *add ) { vplist_index i; int status; assert( vpl ); assert( add ); status = vplist_ensure_space( vpl, vpl->n + add->n, VPLIST_DOUBLE_SIZE ); if ( status == VPLIST_OK ) { for ( i=0; in; ++i ) vpl->data[ vpl->n + i ] = add->data[i]; vpl->n += add->n; } return status; } static void vplist_freemembers( vplist *vpl, vplist_ptrfree vpf ) { vplist_index i; void *v; for ( i=0; in; ++i ) { v = vplist_get( vpl, i ); if ( v ) (*vpf)( v ); } } void vplist_emptyfn( vplist *vpl, vplist_ptrfree vpf ) { assert( vpl ); if ( vpf ) vplist_freemembers( vpl, vpf ); vpl->n = 0; } void vplist_empty( vplist *vpl ) { vplist_emptyfn( vpl, NULL ); } void vplist_freefn( vplist *vpl, vplist_ptrfree vpf ) { assert( vpl ); if ( vpf ) vplist_freemembers( vpl, vpf ); if ( vpl->data ) free( vpl->data ); vplist_init( vpl ); } void vplist_free( vplist *vpl ) { vplist_freefn( vpl, NULL ); } void vplist_deletefn( vplist **vpl, vplist_ptrfree vpf ) { vplist_freefn( *vpl, vpf ); free( *vpl ); *vpl = NULL; } void vplist_delete( vplist **vpl ) { vplist_deletefn( vpl, NULL ); } static inline int vplist_validindex( vplist *vpl, vplist_index n ) { if ( n < 0 || n >= vpl->n ) return 0; return 1; } void * vplist_get( vplist *vpl, vplist_index n ) { assert( vpl ); if ( !vplist_validindex( vpl, n ) ) return NULL; return vpl->data[ n ]; } void vplist_set( vplist *vpl, vplist_index n, void *v ) { assert( vpl ); assert( vplist_validindex( vpl, n ) ); vpl->data[ n ] = v; } int vplist_find( vplist *vpl, void *v ) { vplist_index i; assert( vpl ); for ( i=0; in; ++i ) if ( vpl->data[i]==v ) return i; return -1; } void vplist_swap( vplist *vpl, vplist_index n1, vplist_index n2 ) { void *tmp; assert( vpl ); assert( vplist_validindex( vpl, n1 ) ); assert( vplist_validindex( vpl, n2 ) ); tmp = vpl->data[n1]; vpl->data[n1] = vpl->data[n2]; vpl->data[n2] = tmp; } int vplist_removefn( vplist *vpl, vplist_index n, vplist_ptrfree vpf ) { vplist_index i; assert( vpl ); assert( vplist_validindex( vpl, n ) ); if ( vpf ) (*vpf)( vplist_get( vpl, n ) ); for ( i=n+1; in; ++i ) vpl->data[ i-1 ] = vpl->data[ i ]; vpl->n -= 1; return 1; } int vplist_remove( vplist *vpl, vplist_index n ) { return vplist_removefn( vpl, n, NULL ); } int vplist_removevpfn( vplist *vpl, void *v, vplist_ptrfree vpf ) { vplist_index n; int count = 0; assert( vpl ); do { n = vplist_find( vpl, v ); if ( vplist_found( vpl, n ) ) { vplist_removefn( vpl, n, vpf ); count++; } } while ( vplist_found( vpl, n ) ); return count; } int vplist_removevp( vplist *vpl, void *v ) { return vplist_removevpfn( vpl, v, NULL ); } void vplist_remove_rangefn( vplist *vpl, vplist_index start, vplist_index endplusone, vplist_ptrfree vpf ) { vplist_index i, n; assert( endplusone <= vpl->n ); assert( endplusone > start ); n = endplusone - start; if ( vpf ) { for ( i=start; in; ++i ) { vpl->data[i-n] = vpl->data[i]; } vpl->n -= n; } void vplist_remove_range( vplist *vpl, vplist_index start, vplist_index endplusone ) { vplist_remove_rangefn( vpl, start, endplusone, NULL ); } hs-bibutils-6.7.0.0/bibutils/vplist.h0000755000000000000000000000501100000000000015545 0ustar0000000000000000/* * vplist.h * * generic container to hold a list of pointers to void * * Version: 1/9/2017 * * Copyright (c) Chris Putnam 2011-2018 * * Source code released under the GPL version 2 * */ #ifndef VPLIST_H #define VPLIST_H #define VPLIST_MEMERR (-1) #define VPLIST_OK (0) typedef int vplist_index; typedef struct vplist { vplist_index n, max; void **data; } vplist; #define vplist_found( vpl, n ) ( n!=-1 ) #define vplist_notfound( vpl, n ) ( n==-1 ) typedef void (*vplist_ptrfree)(void*); vplist * vplist_new( void ); void vplist_init ( vplist *vpl ); int vplist_add ( vplist *vpl, void *v ); int vplist_fill ( vplist *vpl, vplist_index n, void *v ); int vplist_copy ( vplist *to, vplist *from ); int vplist_append ( vplist *vpl, vplist *add ); int vplist_insert_list ( vplist *vpl, vplist_index pos, vplist *add ); void * vplist_get ( vplist *vpl, vplist_index n ); void vplist_set ( vplist *vpl, vplist_index n, void *v ); void vplist_swap ( vplist *vpl, vplist_index n1, vplist_index n2 ); int vplist_remove ( vplist *vpl, vplist_index n ); int vplist_removefn ( vplist *vpl, vplist_index n, vplist_ptrfree vpf ); int vplist_removevp ( vplist *vpl, void *v ); int vplist_removevpfn ( vplist *vpl, void *v, vplist_ptrfree vpf ); void vplist_remove_rangefn( vplist *vpl, vplist_index start, vplist_index endplusone, vplist_ptrfree vpf ); void vplist_remove_range ( vplist *vpl, vplist_index start, vplist_index endplusone ); vplist_index vplist_find( vplist *vpl, void *v ); /* * vplist_empty does not free space * * if members require their own free calls, then call vplist_emptyfn() * * void * member_free( void *v ) * { * member *m = ( member * ) v; * member_free( m ); * free( m ); * } * vplist_emptyfn( &vpl, member_free ); * * if members are simply allocated with malloc(), then use free() * * vplist_emptyfn( &vpl, free ); */ void vplist_empty ( vplist *vpl ); void vplist_emptyfn( vplist *vpl, vplist_ptrfree fn ); /* * vplist_free frees the space for the data array of void * elements. * * if members require their own free calls, then call vplist_freefn() */ void vplist_free ( vplist *vpl ); void vplist_freefn( vplist *vpl, vplist_ptrfree fn ); /* * vplist_delete does vplist_free and deallocates the struct * vplist * and replaces with NULL. */ void vplist_delete ( vplist **vpl ); void vplist_deletefn( vplist **vpl, vplist_ptrfree fn ); #endif hs-bibutils-6.7.0.0/bibutils/wordin.c0000644000000000000000000002056400000000000015530 0ustar0000000000000000/* * wordin.c * * Copyright (c) Chris Putnam 2010-2018 * * Source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "xml.h" #include "xml_encoding.h" #include "bibformats.h" static int wordin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int wordin_processf( fields *wordin, char *data, char *filename, long nref, param *p ); /***************************************************** PUBLIC: void wordin_initparams() *****************************************************/ void wordin_initparams( param *p, const char *progname ) { p->readformat = BIBL_WORDIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 1; p->utf8in = 1; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; p->readf = wordin_readf; p->processf = wordin_processf; p->cleanf = NULL; p->typef = NULL; p->convertf = NULL; p->all = NULL; p->nall = 0; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int wordin_readf() *****************************************************/ static char * wordin_findstartwrapper( char *buf, int *ntype ) { return xml_find_start( buf, "b:Source" ); } static char * wordin_findendwrapper( char *buf, int ntype ) { return xml_find_end( buf, "b:Source" ); } static int wordin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { str tmp; char *startptr = NULL, *endptr; int haveref = 0, inref = 0, file_charset = CHARSET_UNKNOWN, m, type = 1; str_init( &tmp ); while ( !haveref && str_fget( fp, buf, bufsize, bufpos, line ) ) { if ( str_cstr( line ) ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( str_cstr( line ) ) { startptr = wordin_findstartwrapper( str_cstr( line ), &type ); } if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = wordin_findendwrapper( str_cstr( &tmp ), type ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int wordin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; /* wordin_person_last() * * From an xml list, extract the value from the first entry * of xxxx and copy into name * * Additional yyyyy will be ignored. * * Returns BIBL_ERR_MEMERR on memory error, BIBL_OK otherwise. */ static int wordin_person_last( xml *node, str *name ) { while ( node && !xml_tag_matches( node, "b:Last" ) ) node = node->next; if ( xml_has_value( node ) ) { str_strcpy( name, xml_value( node ) ); if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* wordin_person_first() * * From an xml list, extract the value of any * xxxx and append "|xxxx" to name. * * Returns BIBL_ERR_MEMERR on memory error, BIBL_OK otherwise */ static int wordin_person_first( xml *node, str *name ) { for ( ; node; node=node->next ) { if ( !xml_tag_matches( node, "b:First" ) ) continue; if ( xml_has_value( node ) ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); str_strcat( name, xml_value( node ) ); if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int wordin_person( xml *node, fields *info, char *type ) { int status, ret = BIBL_OK; str name; str_init( &name ); status = wordin_person_last( node, &name ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = wordin_person_first( node, &name ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = fields_add( info, type, str_cstr( &name ), 0 ); if ( status != FIELDS_OK ) ret = BIBL_ERR_MEMERR; out: str_free( &name ); return ret; } static int wordin_people( xml *node, fields *info, char *type ) { int ret = BIBL_OK; if ( xml_tag_matches( node, "b:Author" ) && node->down ) { ret = wordin_people( node->down, info, type ); } else if ( xml_tag_matches( node, "b:NameList" ) && node->down ) { ret = wordin_people( node->down, info, type ); } else if ( xml_tag_matches( node, "b:Person" ) ) { if ( node->down ) ret = wordin_person( node->down, info, type ); if ( ret!=BIBL_OK ) return ret; if ( node->next ) ret = wordin_people( node->next, info, type ); } return ret; } static int wordin_pages( xml *node, fields *info ) { int i, status, ret = BIBL_OK; str sp, ep; char *p; strs_init( &sp, &ep, NULL ); p = xml_value_cstr( node ); while ( *p && *p!='-' ) str_addchar( &sp, *p++ ); if ( str_memerr( &sp ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( *p=='-' ) p++; while ( *p ) str_addchar( &ep, *p++ ); if ( str_memerr( &ep ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &sp ) ) { status = fields_add( info, "PAGES:START", str_cstr( &sp ), 1 ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &ep ) ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idown ) { ret = wordin_people( node->down, info, "AUTHOR" ); } else if ( xml_tag_matches( node, "b:Editor" ) && node->down ) { ret = wordin_people( node->down, info, "EDITOR" ); } } if ( ret==BIBL_OK && node->next ) wordin_reference( node->next, info ); return ret; } static int wordin_assembleref( xml *node, fields *info ) { int ret = BIBL_OK; if ( xml_tag_matches( node, "b:Source" ) ) { if ( node->down ) ret = wordin_reference( node->down, info ); } else if ( str_is_empty( &(node->tag) ) && node->down ) { ret = wordin_assembleref( node->down, info ); } return ret; } static int wordin_processf( fields *wordin, char *data, char *filename, long nref, param *p ) { int status, ret = 1; xml top; xml_init( &top ); xml_parse( data, &top ); status = wordin_assembleref( &top, wordin ); xml_free( &top ); if ( status==BIBL_ERR_MEMERR ) ret = 0; return ret; } hs-bibutils-6.7.0.0/bibutils/wordin.c0000755000000000000000000002056400000000000015533 0ustar0000000000000000/* * wordin.c * * Copyright (c) Chris Putnam 2010-2018 * * Source code released under the GPL version 2 * */ #include #include #include "is_ws.h" #include "str.h" #include "str_conv.h" #include "fields.h" #include "xml.h" #include "xml_encoding.h" #include "bibformats.h" static int wordin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ); static int wordin_processf( fields *wordin, char *data, char *filename, long nref, param *p ); /***************************************************** PUBLIC: void wordin_initparams() *****************************************************/ void wordin_initparams( param *p, const char *progname ) { p->readformat = BIBL_WORDIN; p->charsetin = BIBL_CHARSET_DEFAULT; p->charsetin_src = BIBL_SRC_DEFAULT; p->latexin = 0; p->xmlin = 1; p->utf8in = 1; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->output_raw = BIBL_RAW_WITHMAKEREFID | BIBL_RAW_WITHCHARCONVERT; p->readf = wordin_readf; p->processf = wordin_processf; p->cleanf = NULL; p->typef = NULL; p->convertf = NULL; p->all = NULL; p->nall = 0; slist_init( &(p->asis) ); slist_init( &(p->corps) ); if ( !progname ) p->progname = NULL; else p->progname = strdup( progname ); } /***************************************************** PUBLIC: int wordin_readf() *****************************************************/ static char * wordin_findstartwrapper( char *buf, int *ntype ) { return xml_find_start( buf, "b:Source" ); } static char * wordin_findendwrapper( char *buf, int ntype ) { return xml_find_end( buf, "b:Source" ); } static int wordin_readf( FILE *fp, char *buf, int bufsize, int *bufpos, str *line, str *reference, int *fcharset ) { str tmp; char *startptr = NULL, *endptr; int haveref = 0, inref = 0, file_charset = CHARSET_UNKNOWN, m, type = 1; str_init( &tmp ); while ( !haveref && str_fget( fp, buf, bufsize, bufpos, line ) ) { if ( str_cstr( line ) ) { m = xml_getencoding( line ); if ( m!=CHARSET_UNKNOWN ) file_charset = m; } if ( str_cstr( line ) ) { startptr = wordin_findstartwrapper( str_cstr( line ), &type ); } if ( startptr || inref ) { if ( inref ) str_strcat( &tmp, line ); else { str_strcatc( &tmp, startptr ); inref = 1; } endptr = wordin_findendwrapper( str_cstr( &tmp ), type ); if ( endptr ) { str_segcpy( reference, str_cstr( &tmp ), endptr ); haveref = 1; } } } str_free( &tmp ); *fcharset = file_charset; return haveref; } /***************************************************** PUBLIC: int wordin_processf() *****************************************************/ typedef struct xml_convert { char *in; /* The input tag */ char *a, *aval; /* The attribute="attribute_value" pair, if nec. */ char *out; /* The output tag */ int level; } xml_convert; /* wordin_person_last() * * From an xml list, extract the value from the first entry * of xxxx and copy into name * * Additional yyyyy will be ignored. * * Returns BIBL_ERR_MEMERR on memory error, BIBL_OK otherwise. */ static int wordin_person_last( xml *node, str *name ) { while ( node && !xml_tag_matches( node, "b:Last" ) ) node = node->next; if ( xml_has_value( node ) ) { str_strcpy( name, xml_value( node ) ); if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; } return BIBL_OK; } /* wordin_person_first() * * From an xml list, extract the value of any * xxxx and append "|xxxx" to name. * * Returns BIBL_ERR_MEMERR on memory error, BIBL_OK otherwise */ static int wordin_person_first( xml *node, str *name ) { for ( ; node; node=node->next ) { if ( !xml_tag_matches( node, "b:First" ) ) continue; if ( xml_has_value( node ) ) { if ( str_has_value( name ) ) str_addchar( name, '|' ); str_strcat( name, xml_value( node ) ); if ( str_memerr( name ) ) return BIBL_ERR_MEMERR; } } return BIBL_OK; } static int wordin_person( xml *node, fields *info, char *type ) { int status, ret = BIBL_OK; str name; str_init( &name ); status = wordin_person_last( node, &name ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = wordin_person_first( node, &name ); if ( status!=BIBL_OK ) { ret = status; goto out; } status = fields_add( info, type, str_cstr( &name ), 0 ); if ( status != FIELDS_OK ) ret = BIBL_ERR_MEMERR; out: str_free( &name ); return ret; } static int wordin_people( xml *node, fields *info, char *type ) { int ret = BIBL_OK; if ( xml_tag_matches( node, "b:Author" ) && node->down ) { ret = wordin_people( node->down, info, type ); } else if ( xml_tag_matches( node, "b:NameList" ) && node->down ) { ret = wordin_people( node->down, info, type ); } else if ( xml_tag_matches( node, "b:Person" ) ) { if ( node->down ) ret = wordin_person( node->down, info, type ); if ( ret!=BIBL_OK ) return ret; if ( node->next ) ret = wordin_people( node->next, info, type ); } return ret; } static int wordin_pages( xml *node, fields *info ) { int i, status, ret = BIBL_OK; str sp, ep; char *p; strs_init( &sp, &ep, NULL ); p = xml_value_cstr( node ); while ( *p && *p!='-' ) str_addchar( &sp, *p++ ); if ( str_memerr( &sp ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( *p=='-' ) p++; while ( *p ) str_addchar( &ep, *p++ ); if ( str_memerr( &ep ) ) { ret = BIBL_ERR_MEMERR; goto out; } if ( str_has_value( &sp ) ) { status = fields_add( info, "PAGES:START", str_cstr( &sp ), 1 ); if ( status!=FIELDS_OK ) { ret = BIBL_ERR_MEMERR; goto out; } } if ( str_has_value( &ep ) ) { if ( sp.len > ep.len ) { for ( i=sp.len-ep.len; idown ) { ret = wordin_people( node->down, info, "AUTHOR" ); } else if ( xml_tag_matches( node, "b:Editor" ) && node->down ) { ret = wordin_people( node->down, info, "EDITOR" ); } } if ( ret==BIBL_OK && node->next ) wordin_reference( node->next, info ); return ret; } static int wordin_assembleref( xml *node, fields *info ) { int ret = BIBL_OK; if ( xml_tag_matches( node, "b:Source" ) ) { if ( node->down ) ret = wordin_reference( node->down, info ); } else if ( str_is_empty( &(node->tag) ) && node->down ) { ret = wordin_assembleref( node->down, info ); } return ret; } static int wordin_processf( fields *wordin, char *data, char *filename, long nref, param *p ) { int status, ret = 1; xml top; xml_init( &top ); xml_parse( data, &top ); status = wordin_assembleref( &top, wordin ); xml_free( &top ); if ( status==BIBL_ERR_MEMERR ) ret = 0; return ret; } hs-bibutils-6.7.0.0/bibutils/wordout.c0000644000000000000000000004345500000000000015735 0ustar0000000000000000/* * wordout.c * * (Word 2007 format) * * Copyright (c) Chris Putnam 2007-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include "str.h" #include "fields.h" #include "utf8.h" #include "bibformats.h" static void wordout_writeheader( FILE *outptr, param *p ); static void wordout_writefooter( FILE *outptr ); static int wordout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ); void wordout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_WORD2007OUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_UNICODE; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; if ( !p->utf8out ) p->xmlout = BIBL_XMLOUT_ENTITIES; else p->xmlout = BIBL_XMLOUT_TRUE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; p->headerf = wordout_writeheader; p->footerf = wordout_writefooter; p->writef = wordout_write; } typedef struct convert { char *oldtag; char *newtag; char *prefix; int code; } convert; /* At the moment 17 unique types of sources are defined: {code} Art ArticleInAPeriodical Book BookSection Case Conference DocumentFromInternetSite ElectronicSource Film InternetSite Interview JournalArticle Report Misc Patent Performance Proceedings SoundRecording {code} */ enum { TYPE_UNKNOWN = 0, TYPE_ART, TYPE_ARTICLEINAPERIODICAL, TYPE_BOOK, TYPE_BOOKSECTION, TYPE_CASE, TYPE_CONFERENCE, TYPE_DOCUMENTFROMINTERNETSITE, TYPE_ELECTRONICSOURCE, TYPE_FILM, TYPE_INTERNETSITE, TYPE_INTERVIEW, TYPE_JOURNALARTICLE, TYPE_MISC, TYPE_PATENT, TYPE_PERFORMANCE, TYPE_PROCEEDINGS, TYPE_REPORT, TYPE_SOUNDRECORDING, TYPE_THESIS, TYPE_MASTERSTHESIS, TYPE_PHDTHESIS, }; /* * fixed output */ static void output_fixed( FILE *outptr, char *tag, char *value, int level ) { int i; for ( i=0; i%s\n", tag, value, tag ); } /* detail output * */ static void output_item( fields *info, FILE *outptr, char *tag, char *prefix, int item, int level ) { int i; if ( item==-1 ) return; for ( i=0; i%s%s\n", tag, prefix, (char*) fields_value( info, item, FIELDS_CHRP ), tag ); } static void output_itemv( FILE *outptr, char *tag, char *item, int level ) { int i; for ( i=0; i%s\n", tag, item, tag ); } /* range output * * start-end * */ static void output_range( FILE *outptr, char *tag, char *start, char *end, int level ) { int i; if ( start==NULL && end==NULL ) return; if ( start==NULL ) output_itemv( outptr, tag, end, 0 ); else if ( end==NULL ) output_itemv( outptr, tag, start, 0 ); else { for ( i=0; i%s-%s\n", tag, start, end, tag ); } } static void output_list( fields *info, FILE *outptr, convert *c, int nc ) { int i, n; for ( i=0; in; ++i ) { tag = (char *) fields_tag( info, i, FIELDS_CHRP ); if ( strcasecmp( tag, "GENRE:MARC" ) && strcasecmp( tag, "GENRE:BIBUTILS" ) && strcasecmp( tag, "GENRE:UNKNOWN" ) ) continue; genre = (char *) fields_value( info, i, FIELDS_CHRP ); for ( j=0; jlevel[i]; if ( !strcasecmp( genre, "academic journal" ) ) { type = TYPE_JOURNALARTICLE; } else if ( !strcasecmp( genre, "periodical" ) ) { if ( type == TYPE_UNKNOWN ) type = TYPE_ARTICLEINAPERIODICAL; } else if ( !strcasecmp( genre, "book" ) || !strcasecmp( genre, "collection" ) ) { if ( info->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_BOOKSECTION; } else if ( !strcasecmp( genre, "conference publication" ) ) { if ( level==0 ) type=TYPE_CONFERENCE; else type = TYPE_PROCEEDINGS; } else if ( !strcasecmp( genre, "thesis" ) ) { if ( type==TYPE_UNKNOWN ) type=TYPE_THESIS; } else if ( !strcasecmp( genre, "Ph.D. thesis" ) ) { type = TYPE_PHDTHESIS; } else if ( !strcasecmp( genre, "Masters thesis" ) ) { type = TYPE_MASTERSTHESIS; } } } return type; } static int get_type_from_resource( fields *info ) { int type = TYPE_UNKNOWN, i; char *tag, *resource; for ( i=0; in; ++i ) { tag = (char *) fields_tag( info, i, FIELDS_CHRP ); if ( strcasecmp( tag, "RESOURCE" ) ) continue; resource = (char *) fields_value( info, i, FIELDS_CHRP ); if ( !strcasecmp( resource, "moving image" ) ) type = TYPE_FILM; } return type; } static int get_type( fields *info ) { int type; type = get_type_from_genre( info ); if ( type==TYPE_UNKNOWN ) type = get_type_from_resource( info ); return type; } static void output_titlebits( char *mainttl, char *subttl, FILE *outptr ) { if ( mainttl ) fprintf( outptr, "%s", mainttl ); if ( subttl ) { if ( mainttl ) { if ( mainttl[ strlen( mainttl ) - 1 ] != '?' ) fprintf( outptr, ": " ); else fprintf( outptr, " " ); } fprintf( outptr, "%s", subttl ); } } static void output_titleinfo( char *mainttl, char *subttl, FILE *outptr, char *tag, int level ) { if ( mainttl || subttl ) { fprintf( outptr, "<%s>", tag ); output_titlebits( mainttl, subttl, outptr ); fprintf( outptr, "\n", tag ); } } static void output_generaltitle( fields *info, FILE *outptr, char *tag, int level ) { char *ttl = fields_findv( info, level, FIELDS_CHRP, "TITLE" ); char *subttl = fields_findv( info, level, FIELDS_CHRP, "SUBTITLE" ); char *shrttl = fields_findv( info, level, FIELDS_CHRP, "SHORTTITLE" ); char *shrsubttl = fields_findv( info, level, FIELDS_CHRP, "SHORTSUBTITLE" ); if ( ttl ) { output_titleinfo( ttl, subttl, outptr, tag, level ); } else if ( shrttl ) { output_titleinfo( shrttl, shrsubttl, outptr, tag, level ); } } static void output_maintitle( fields *info, FILE *outptr, int level ) { char *ttl = fields_findv( info, level, FIELDS_CHRP, "TITLE" ); char *subttl = fields_findv( info, level, FIELDS_CHRP, "SUBTITLE" ); char *shrttl = fields_findv( info, level, FIELDS_CHRP, "SHORTTITLE" ); char *shrsubttl = fields_findv( info, level, FIELDS_CHRP, "SHORTSUBTITLE" ); if ( ttl ) { output_titleinfo( ttl, subttl, outptr, "b:Title", level ); /* output shorttitle if it's different from normal title */ if ( shrttl ) { if ( !ttl || ( strcmp( shrttl, ttl ) || subttl ) ) { fprintf( outptr, " " ); output_titlebits( shrttl, shrsubttl, outptr ); fprintf( outptr, "\n" ); } } } else if ( shrttl ) { output_titleinfo( shrttl, shrsubttl, outptr, "b:Title", level ); } } static void output_name_nomangle( FILE *outptr, char *p ) { fprintf( outptr, "" ); fprintf( outptr, "%s", p ); fprintf( outptr, "\n" ); } static void output_name( FILE *outptr, char *p ) { str family, part; int n=0, npart=0; str_init( &family ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); if ( *p=='|' ) p++; if ( str_has_value( &family ) ) { fprintf( outptr, "" ); fprintf( outptr, "%s", str_cstr( &family ) ); n++; } str_free( &family ); str_init( &part ); while ( *p ) { while ( *p && *p!='|' ) str_addchar( &part, *p++ ); if ( str_has_value( &part ) ) { if ( n==0 ) fprintf( outptr, "" ); if ( npart==0 ) fprintf( outptr, "%s", str_cstr( &part ) ); else fprintf( outptr, "%s", str_cstr( &part ) ); n++; npart++; } if ( *p=='|' ) { p++; str_empty( &part ); } } if ( n ) fprintf( outptr, "\n" ); str_free( &part ); } #define NAME (1) #define NAME_ASIS (2) #define NAME_CORP (4) static int extract_name_and_info( str *outtag, str *intag ) { int code = NAME; str_strcpy( outtag, intag ); if ( str_findreplace( outtag, ":ASIS", "" ) ) code = NAME_ASIS; if ( str_findreplace( outtag, ":CORP", "" ) ) code = NAME_CORP; return code; } static void output_name_type( fields *info, FILE *outptr, int level, char *map[], int nmap, char *tag ) { str ntag; int i, j, n=0, code, nfields; str_init( &ntag ); nfields = fields_num( info ); for ( j=0; jtag[i]) ); if ( strcasecmp( str_cstr( &ntag ), map[j] ) ) continue; if ( n==0 ) fprintf( outptr, "<%s>\n", tag ); if ( code != NAME ) output_name_nomangle( outptr, (char *) fields_value( info, i, FIELDS_CHRP ) ); else output_name( outptr, (char *) fields_value( info, i, FIELDS_CHRP ) ); n++; } } str_free( &ntag ); if ( n ) fprintf( outptr, "\n", tag ); } static void output_names( fields *info, FILE *outptr, int level, int type ) { char *authors[] = { "AUTHOR", "WRITER", "ASSIGNEE", "ARTIST", "CARTOGRAPHER", "INVENTOR", "ORGANIZER", "DIRECTOR", "PERFORMER", "REPORTER", "TRANSLATOR", "ADDRESSEE", "2ND_AUTHOR", "3RD_AUTHOR", "SUB_AUTHOR", "COMMITTEE", "COURT", "LEGISLATIVEBODY" }; int nauthors = sizeof( authors ) / sizeof( authors[0] ); char *editors[] = { "EDITOR" }; int neditors = sizeof( editors ) / sizeof( editors[0] ); char author_default[] = "b:Author", inventor[] = "b:Inventor"; char *author_type = author_default; if ( type == TYPE_PATENT ) author_type = inventor; fprintf( outptr, "\n" ); output_name_type( info, outptr, level, authors, nauthors, author_type ); output_name_type( info, outptr, level, editors, neditors, "b:Editor" ); fprintf( outptr, "\n" ); } static void output_date( fields *info, FILE *outptr, int level ) { char *year = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:YEAR", "DATE:YEAR", NULL ); char *month = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:MONTH", "DATE:MONTH", NULL ); char *day = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:DAY", "DATE:DAY", NULL ); if ( year ) output_itemv( outptr, "b:Year", year, 0 ); if ( month ) output_itemv( outptr, "b:Month", month, 0 ); if ( day ) output_itemv( outptr, "b:Day", day, 0 ); } static void output_pages( fields *info, FILE *outptr, int level ) { char *sn = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "PAGES:START" ); char *en = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "PAGES:STOP" ); char *ar = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "ARTICLENUMBER" ); if ( sn || en ) output_range( outptr, "b:Pages", sn, en, level ); else if ( ar ) output_range( outptr, "b:Pages", ar, NULL, level ); } static void output_includedin( fields *info, FILE *outptr, int type ) { if ( type==TYPE_JOURNALARTICLE ) { output_generaltitle( info, outptr, "b:JournalName", 1 ); } else if ( type==TYPE_ARTICLEINAPERIODICAL ) { output_generaltitle( info, outptr, "b:PeriodicalTitle", 1 ); } else if ( type==TYPE_BOOKSECTION ) { output_generaltitle( info, outptr, "b:ConferenceName", 1 ); /*??*/ } else if ( type==TYPE_PROCEEDINGS ) { output_generaltitle( info, outptr, "b:ConferenceName", 1 ); } } static int type_is_thesis( int type ) { if ( type==TYPE_THESIS || type==TYPE_PHDTHESIS || type==TYPE_MASTERSTHESIS ) return 1; else return 0; } static void output_thesisdetails( fields *info, FILE *outptr, int type ) { char *tag; int i, n; if ( type==TYPE_PHDTHESIS ) output_fixed( outptr, "b:ThesisType", "Ph.D. Thesis", 0 ); else if ( type==TYPE_MASTERSTHESIS ) output_fixed( outptr, "b:ThesisType", "Masters Thesis", 0 ); n = fields_num( info ); for ( i=0; i" ); for ( i=0; i\n" ); if ( type_is_thesis( type ) ) output_thesisdetails( info, outptr, type ); } static void output_comments( fields *info, FILE *outptr, int level ) { vplist_index i; vplist notes; char *abs; vplist_init( ¬es ); abs = fields_findv( info, level, FIELDS_CHRP, "ABSTRACT" ); fields_findv_each( info, level, FIELDS_CHRP, ¬es, "NOTES" ); if ( abs || notes.n ) fprintf( outptr, "" ); if ( abs ) fprintf( outptr, "%s", abs ); for ( i=0; i\n" ); vplist_free( ¬es ); } static void output_bibkey( fields *info, FILE *outptr ) { char *bibkey = fields_findv_firstof( info, LEVEL_ANY, FIELDS_CHRP, "REFNUM", "BIBKEY", NULL ); if ( bibkey ) output_itemv( outptr, "b:Tag", bibkey, 0 ); } static void output_citeparts( fields *info, FILE *outptr, int level, int max, int type ) { convert origin[] = { { "ADDRESS", "b:City", "", LEVEL_ANY }, { "PUBLISHER", "b:Publisher", "", LEVEL_ANY }, { "EDITION", "b:Edition", "", LEVEL_ANY } }; int norigin = sizeof( origin ) / sizeof ( convert ); convert parts[] = { { "VOLUME", "b:Volume", "", LEVEL_ANY }, { "SECTION", "b:Section", "", LEVEL_ANY }, { "ISSUE", "b:Issue", "", LEVEL_ANY }, { "NUMBER", "b:Issue", "", LEVEL_ANY }, { "PUBLICLAWNUMBER", "b:Volume", "", LEVEL_ANY }, { "SESSION", "b:Issue", "", LEVEL_ANY }, { "URL", "b:Url", "", LEVEL_ANY }, { "JSTOR", "b:Url", "http://www.jstor.org/stable/", LEVEL_ANY }, { "ARXIV", "b:Url", "http://arxiv.org/abs/", LEVEL_ANY }, { "PMID", "b:Url", "http://www.ncbi.nlm.nih.gov/pubmed/", LEVEL_ANY }, { "PMC", "b:Url", "http://www.ncbi.nlm.nih.gov/pmc/articles/", LEVEL_ANY }, { "DOI", "b:Url", "https://doi.org/", LEVEL_ANY }, { "MRNUMBER", "b:Url", "http://www.ams.org/mathscinet-getitem?mr=", LEVEL_ANY }, }; int nparts=sizeof(parts)/sizeof(convert); output_bibkey( info, outptr ); output_type( info, outptr, type ); output_list( info, outptr, origin, norigin ); output_date( info, outptr, level ); output_includedin( info, outptr, type ); output_list( info, outptr, parts, nparts ); output_pages( info, outptr, level ); output_names( info, outptr, level, type ); output_maintitle( info, outptr, 0 ); output_comments( info, outptr, level ); } static int wordout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ) { int max = fields_maxlevel( info ); int type = get_type( info ); fprintf( outptr, "\n" ); output_citeparts( info, outptr, -1, max, type ); fprintf( outptr, "\n" ); fflush( outptr ); return BIBL_OK; } static void wordout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); fprintf(outptr,"\n"); fprintf(outptr,"\n"); } static void wordout_writefooter( FILE *outptr ) { fprintf(outptr,"\n"); fflush( outptr ); } hs-bibutils-6.7.0.0/bibutils/wordout.c0000755000000000000000000004345500000000000015740 0ustar0000000000000000/* * wordout.c * * (Word 2007 format) * * Copyright (c) Chris Putnam 2007-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include "str.h" #include "fields.h" #include "utf8.h" #include "bibformats.h" static void wordout_writeheader( FILE *outptr, param *p ); static void wordout_writefooter( FILE *outptr ); static int wordout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ); void wordout_initparams( param *p, const char *progname ) { p->writeformat = BIBL_WORD2007OUT; p->format_opts = 0; p->charsetout = BIBL_CHARSET_UNICODE; p->charsetout_src = BIBL_SRC_DEFAULT; p->latexout = 0; p->utf8out = BIBL_CHARSET_UTF8_DEFAULT; p->utf8bom = BIBL_CHARSET_BOM_DEFAULT; if ( !p->utf8out ) p->xmlout = BIBL_XMLOUT_ENTITIES; else p->xmlout = BIBL_XMLOUT_TRUE; p->nosplittitle = 0; p->verbose = 0; p->addcount = 0; p->singlerefperfile = 0; p->headerf = wordout_writeheader; p->footerf = wordout_writefooter; p->writef = wordout_write; } typedef struct convert { char *oldtag; char *newtag; char *prefix; int code; } convert; /* At the moment 17 unique types of sources are defined: {code} Art ArticleInAPeriodical Book BookSection Case Conference DocumentFromInternetSite ElectronicSource Film InternetSite Interview JournalArticle Report Misc Patent Performance Proceedings SoundRecording {code} */ enum { TYPE_UNKNOWN = 0, TYPE_ART, TYPE_ARTICLEINAPERIODICAL, TYPE_BOOK, TYPE_BOOKSECTION, TYPE_CASE, TYPE_CONFERENCE, TYPE_DOCUMENTFROMINTERNETSITE, TYPE_ELECTRONICSOURCE, TYPE_FILM, TYPE_INTERNETSITE, TYPE_INTERVIEW, TYPE_JOURNALARTICLE, TYPE_MISC, TYPE_PATENT, TYPE_PERFORMANCE, TYPE_PROCEEDINGS, TYPE_REPORT, TYPE_SOUNDRECORDING, TYPE_THESIS, TYPE_MASTERSTHESIS, TYPE_PHDTHESIS, }; /* * fixed output */ static void output_fixed( FILE *outptr, char *tag, char *value, int level ) { int i; for ( i=0; i%s\n", tag, value, tag ); } /* detail output * */ static void output_item( fields *info, FILE *outptr, char *tag, char *prefix, int item, int level ) { int i; if ( item==-1 ) return; for ( i=0; i%s%s\n", tag, prefix, (char*) fields_value( info, item, FIELDS_CHRP ), tag ); } static void output_itemv( FILE *outptr, char *tag, char *item, int level ) { int i; for ( i=0; i%s\n", tag, item, tag ); } /* range output * * start-end * */ static void output_range( FILE *outptr, char *tag, char *start, char *end, int level ) { int i; if ( start==NULL && end==NULL ) return; if ( start==NULL ) output_itemv( outptr, tag, end, 0 ); else if ( end==NULL ) output_itemv( outptr, tag, start, 0 ); else { for ( i=0; i%s-%s\n", tag, start, end, tag ); } } static void output_list( fields *info, FILE *outptr, convert *c, int nc ) { int i, n; for ( i=0; in; ++i ) { tag = (char *) fields_tag( info, i, FIELDS_CHRP ); if ( strcasecmp( tag, "GENRE:MARC" ) && strcasecmp( tag, "GENRE:BIBUTILS" ) && strcasecmp( tag, "GENRE:UNKNOWN" ) ) continue; genre = (char *) fields_value( info, i, FIELDS_CHRP ); for ( j=0; jlevel[i]; if ( !strcasecmp( genre, "academic journal" ) ) { type = TYPE_JOURNALARTICLE; } else if ( !strcasecmp( genre, "periodical" ) ) { if ( type == TYPE_UNKNOWN ) type = TYPE_ARTICLEINAPERIODICAL; } else if ( !strcasecmp( genre, "book" ) || !strcasecmp( genre, "collection" ) ) { if ( info->level[i]==0 ) type = TYPE_BOOK; else type = TYPE_BOOKSECTION; } else if ( !strcasecmp( genre, "conference publication" ) ) { if ( level==0 ) type=TYPE_CONFERENCE; else type = TYPE_PROCEEDINGS; } else if ( !strcasecmp( genre, "thesis" ) ) { if ( type==TYPE_UNKNOWN ) type=TYPE_THESIS; } else if ( !strcasecmp( genre, "Ph.D. thesis" ) ) { type = TYPE_PHDTHESIS; } else if ( !strcasecmp( genre, "Masters thesis" ) ) { type = TYPE_MASTERSTHESIS; } } } return type; } static int get_type_from_resource( fields *info ) { int type = TYPE_UNKNOWN, i; char *tag, *resource; for ( i=0; in; ++i ) { tag = (char *) fields_tag( info, i, FIELDS_CHRP ); if ( strcasecmp( tag, "RESOURCE" ) ) continue; resource = (char *) fields_value( info, i, FIELDS_CHRP ); if ( !strcasecmp( resource, "moving image" ) ) type = TYPE_FILM; } return type; } static int get_type( fields *info ) { int type; type = get_type_from_genre( info ); if ( type==TYPE_UNKNOWN ) type = get_type_from_resource( info ); return type; } static void output_titlebits( char *mainttl, char *subttl, FILE *outptr ) { if ( mainttl ) fprintf( outptr, "%s", mainttl ); if ( subttl ) { if ( mainttl ) { if ( mainttl[ strlen( mainttl ) - 1 ] != '?' ) fprintf( outptr, ": " ); else fprintf( outptr, " " ); } fprintf( outptr, "%s", subttl ); } } static void output_titleinfo( char *mainttl, char *subttl, FILE *outptr, char *tag, int level ) { if ( mainttl || subttl ) { fprintf( outptr, "<%s>", tag ); output_titlebits( mainttl, subttl, outptr ); fprintf( outptr, "\n", tag ); } } static void output_generaltitle( fields *info, FILE *outptr, char *tag, int level ) { char *ttl = fields_findv( info, level, FIELDS_CHRP, "TITLE" ); char *subttl = fields_findv( info, level, FIELDS_CHRP, "SUBTITLE" ); char *shrttl = fields_findv( info, level, FIELDS_CHRP, "SHORTTITLE" ); char *shrsubttl = fields_findv( info, level, FIELDS_CHRP, "SHORTSUBTITLE" ); if ( ttl ) { output_titleinfo( ttl, subttl, outptr, tag, level ); } else if ( shrttl ) { output_titleinfo( shrttl, shrsubttl, outptr, tag, level ); } } static void output_maintitle( fields *info, FILE *outptr, int level ) { char *ttl = fields_findv( info, level, FIELDS_CHRP, "TITLE" ); char *subttl = fields_findv( info, level, FIELDS_CHRP, "SUBTITLE" ); char *shrttl = fields_findv( info, level, FIELDS_CHRP, "SHORTTITLE" ); char *shrsubttl = fields_findv( info, level, FIELDS_CHRP, "SHORTSUBTITLE" ); if ( ttl ) { output_titleinfo( ttl, subttl, outptr, "b:Title", level ); /* output shorttitle if it's different from normal title */ if ( shrttl ) { if ( !ttl || ( strcmp( shrttl, ttl ) || subttl ) ) { fprintf( outptr, " " ); output_titlebits( shrttl, shrsubttl, outptr ); fprintf( outptr, "\n" ); } } } else if ( shrttl ) { output_titleinfo( shrttl, shrsubttl, outptr, "b:Title", level ); } } static void output_name_nomangle( FILE *outptr, char *p ) { fprintf( outptr, "" ); fprintf( outptr, "%s", p ); fprintf( outptr, "\n" ); } static void output_name( FILE *outptr, char *p ) { str family, part; int n=0, npart=0; str_init( &family ); while ( *p && *p!='|' ) str_addchar( &family, *p++ ); if ( *p=='|' ) p++; if ( str_has_value( &family ) ) { fprintf( outptr, "" ); fprintf( outptr, "%s", str_cstr( &family ) ); n++; } str_free( &family ); str_init( &part ); while ( *p ) { while ( *p && *p!='|' ) str_addchar( &part, *p++ ); if ( str_has_value( &part ) ) { if ( n==0 ) fprintf( outptr, "" ); if ( npart==0 ) fprintf( outptr, "%s", str_cstr( &part ) ); else fprintf( outptr, "%s", str_cstr( &part ) ); n++; npart++; } if ( *p=='|' ) { p++; str_empty( &part ); } } if ( n ) fprintf( outptr, "\n" ); str_free( &part ); } #define NAME (1) #define NAME_ASIS (2) #define NAME_CORP (4) static int extract_name_and_info( str *outtag, str *intag ) { int code = NAME; str_strcpy( outtag, intag ); if ( str_findreplace( outtag, ":ASIS", "" ) ) code = NAME_ASIS; if ( str_findreplace( outtag, ":CORP", "" ) ) code = NAME_CORP; return code; } static void output_name_type( fields *info, FILE *outptr, int level, char *map[], int nmap, char *tag ) { str ntag; int i, j, n=0, code, nfields; str_init( &ntag ); nfields = fields_num( info ); for ( j=0; jtag[i]) ); if ( strcasecmp( str_cstr( &ntag ), map[j] ) ) continue; if ( n==0 ) fprintf( outptr, "<%s>\n", tag ); if ( code != NAME ) output_name_nomangle( outptr, (char *) fields_value( info, i, FIELDS_CHRP ) ); else output_name( outptr, (char *) fields_value( info, i, FIELDS_CHRP ) ); n++; } } str_free( &ntag ); if ( n ) fprintf( outptr, "\n", tag ); } static void output_names( fields *info, FILE *outptr, int level, int type ) { char *authors[] = { "AUTHOR", "WRITER", "ASSIGNEE", "ARTIST", "CARTOGRAPHER", "INVENTOR", "ORGANIZER", "DIRECTOR", "PERFORMER", "REPORTER", "TRANSLATOR", "ADDRESSEE", "2ND_AUTHOR", "3RD_AUTHOR", "SUB_AUTHOR", "COMMITTEE", "COURT", "LEGISLATIVEBODY" }; int nauthors = sizeof( authors ) / sizeof( authors[0] ); char *editors[] = { "EDITOR" }; int neditors = sizeof( editors ) / sizeof( editors[0] ); char author_default[] = "b:Author", inventor[] = "b:Inventor"; char *author_type = author_default; if ( type == TYPE_PATENT ) author_type = inventor; fprintf( outptr, "\n" ); output_name_type( info, outptr, level, authors, nauthors, author_type ); output_name_type( info, outptr, level, editors, neditors, "b:Editor" ); fprintf( outptr, "\n" ); } static void output_date( fields *info, FILE *outptr, int level ) { char *year = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:YEAR", "DATE:YEAR", NULL ); char *month = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:MONTH", "DATE:MONTH", NULL ); char *day = fields_findv_firstof( info, level, FIELDS_CHRP, "PARTDATE:DAY", "DATE:DAY", NULL ); if ( year ) output_itemv( outptr, "b:Year", year, 0 ); if ( month ) output_itemv( outptr, "b:Month", month, 0 ); if ( day ) output_itemv( outptr, "b:Day", day, 0 ); } static void output_pages( fields *info, FILE *outptr, int level ) { char *sn = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "PAGES:START" ); char *en = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "PAGES:STOP" ); char *ar = fields_findv( info, LEVEL_ANY, FIELDS_CHRP, "ARTICLENUMBER" ); if ( sn || en ) output_range( outptr, "b:Pages", sn, en, level ); else if ( ar ) output_range( outptr, "b:Pages", ar, NULL, level ); } static void output_includedin( fields *info, FILE *outptr, int type ) { if ( type==TYPE_JOURNALARTICLE ) { output_generaltitle( info, outptr, "b:JournalName", 1 ); } else if ( type==TYPE_ARTICLEINAPERIODICAL ) { output_generaltitle( info, outptr, "b:PeriodicalTitle", 1 ); } else if ( type==TYPE_BOOKSECTION ) { output_generaltitle( info, outptr, "b:ConferenceName", 1 ); /*??*/ } else if ( type==TYPE_PROCEEDINGS ) { output_generaltitle( info, outptr, "b:ConferenceName", 1 ); } } static int type_is_thesis( int type ) { if ( type==TYPE_THESIS || type==TYPE_PHDTHESIS || type==TYPE_MASTERSTHESIS ) return 1; else return 0; } static void output_thesisdetails( fields *info, FILE *outptr, int type ) { char *tag; int i, n; if ( type==TYPE_PHDTHESIS ) output_fixed( outptr, "b:ThesisType", "Ph.D. Thesis", 0 ); else if ( type==TYPE_MASTERSTHESIS ) output_fixed( outptr, "b:ThesisType", "Masters Thesis", 0 ); n = fields_num( info ); for ( i=0; i" ); for ( i=0; i\n" ); if ( type_is_thesis( type ) ) output_thesisdetails( info, outptr, type ); } static void output_comments( fields *info, FILE *outptr, int level ) { vplist_index i; vplist notes; char *abs; vplist_init( ¬es ); abs = fields_findv( info, level, FIELDS_CHRP, "ABSTRACT" ); fields_findv_each( info, level, FIELDS_CHRP, ¬es, "NOTES" ); if ( abs || notes.n ) fprintf( outptr, "" ); if ( abs ) fprintf( outptr, "%s", abs ); for ( i=0; i\n" ); vplist_free( ¬es ); } static void output_bibkey( fields *info, FILE *outptr ) { char *bibkey = fields_findv_firstof( info, LEVEL_ANY, FIELDS_CHRP, "REFNUM", "BIBKEY", NULL ); if ( bibkey ) output_itemv( outptr, "b:Tag", bibkey, 0 ); } static void output_citeparts( fields *info, FILE *outptr, int level, int max, int type ) { convert origin[] = { { "ADDRESS", "b:City", "", LEVEL_ANY }, { "PUBLISHER", "b:Publisher", "", LEVEL_ANY }, { "EDITION", "b:Edition", "", LEVEL_ANY } }; int norigin = sizeof( origin ) / sizeof ( convert ); convert parts[] = { { "VOLUME", "b:Volume", "", LEVEL_ANY }, { "SECTION", "b:Section", "", LEVEL_ANY }, { "ISSUE", "b:Issue", "", LEVEL_ANY }, { "NUMBER", "b:Issue", "", LEVEL_ANY }, { "PUBLICLAWNUMBER", "b:Volume", "", LEVEL_ANY }, { "SESSION", "b:Issue", "", LEVEL_ANY }, { "URL", "b:Url", "", LEVEL_ANY }, { "JSTOR", "b:Url", "http://www.jstor.org/stable/", LEVEL_ANY }, { "ARXIV", "b:Url", "http://arxiv.org/abs/", LEVEL_ANY }, { "PMID", "b:Url", "http://www.ncbi.nlm.nih.gov/pubmed/", LEVEL_ANY }, { "PMC", "b:Url", "http://www.ncbi.nlm.nih.gov/pmc/articles/", LEVEL_ANY }, { "DOI", "b:Url", "https://doi.org/", LEVEL_ANY }, { "MRNUMBER", "b:Url", "http://www.ams.org/mathscinet-getitem?mr=", LEVEL_ANY }, }; int nparts=sizeof(parts)/sizeof(convert); output_bibkey( info, outptr ); output_type( info, outptr, type ); output_list( info, outptr, origin, norigin ); output_date( info, outptr, level ); output_includedin( info, outptr, type ); output_list( info, outptr, parts, nparts ); output_pages( info, outptr, level ); output_names( info, outptr, level, type ); output_maintitle( info, outptr, 0 ); output_comments( info, outptr, level ); } static int wordout_write( fields *info, FILE *outptr, param *p, unsigned long numrefs ) { int max = fields_maxlevel( info ); int type = get_type( info ); fprintf( outptr, "\n" ); output_citeparts( info, outptr, -1, max, type ); fprintf( outptr, "\n" ); fflush( outptr ); return BIBL_OK; } static void wordout_writeheader( FILE *outptr, param *p ) { if ( p->utf8bom ) utf8_writebom( outptr ); fprintf(outptr,"\n"); fprintf(outptr,"\n"); } static void wordout_writefooter( FILE *outptr ) { fprintf(outptr,"\n"); fflush( outptr ); } hs-bibutils-6.7.0.0/bibutils/xml.c0000644000000000000000000002052200000000000015020 0ustar0000000000000000/* * xml.c * * Copyright (c) Chris Putnam 2004-2018 * * Source code released under the GPL version 2 * */ #include #include #include #include "is_ws.h" #include "strsearch.h" #include "xml.h" char *xml_pns = NULL; void xml_init( xml *node ) { str_init( &(node->tag) ); str_init( &(node->value) ); slist_init( &(node->attributes) ); slist_init( &(node->attribute_values) ); node->down = NULL; node->next = NULL; } static xml * xml_new( void ) { xml *node = ( xml * ) malloc( sizeof( xml ) ); if ( node ) xml_init( node ); return node; } static void xml_delete( xml *node ) { xml_free( node ); free( node ); } void xml_free( xml *node ) { str_free( &(node->tag) ); str_free( &(node->value) ); slist_free( &(node->attributes) ); slist_free( &(node->attribute_values) ); if ( node->down ) xml_delete( node->down ); if ( node->next ) xml_delete( node->next ); } enum { XML_DESCRIPTOR, XML_COMMENT, XML_OPEN, XML_CLOSE, XML_OPENCLOSE }; static int xml_is_terminator( char *p, int *type ) { if ( *p=='>' ) { return 1; } else if ( *p=='/' && *(p+1)=='>' ) { if ( *type==XML_OPENCLOSE ) return 1; else if ( *type==XML_OPEN ) { *type = XML_OPENCLOSE; return 1; } } else if ( *p=='?' && *(p+1)=='>' && *type==XML_DESCRIPTOR ) { return 1; } else if ( *p=='!' && *(p+1)=='>' && *type==XML_COMMENT ) { return 1; } return 0; } static int xml_add_attribute( xml *node, char *attribute, char *attribute_value ) { str *s; if ( attribute ) s = slist_addc( &(node->attributes), attribute ); else s = slist_addc( &(node->attributes), "" ); if ( s==NULL ) return 0; if ( attribute_value ) s = slist_addc( &(node->attribute_values), attribute_value ); else s = slist_addc( &(node->attribute_values), "" ); if ( s==NULL ) { (void) slist_remove( &(node->attributes), node->attributes.n-1 ); return 0; } return 1; } static char * xml_processattrib( char *p, xml *node, int *type ) { char quote_character = '\"'; int inquotes = 0; str aname, aval; str_init( &aname ); str_init( &aval ); while ( *p && !xml_is_terminator( p, type ) ) { /* get attribute name */ while ( *p==' ' || *p=='\t' ) p++; while ( *p && !strchr( "= \t", *p ) && !xml_is_terminator( p, type ) ){ str_addchar( &aname, *p ); p++; } /* equals sign */ while ( *p==' ' || *p=='\t' ) p++; if ( *p=='=' ) p++; while ( *p==' ' || *p=='\t' ) p++; /* get attribute value */ if ( *p=='\"' || *p=='\'' ) { if ( *p=='\'' ) quote_character = *p; inquotes=1; p++; } while ( *p && ((!xml_is_terminator(p,type) && !strchr("= \t", *p ))||inquotes)){ if ( *p==quote_character ) inquotes=0; else str_addchar( &aval, *p ); p++; } if ( str_has_value( &aname ) ) { xml_add_attribute( node, str_cstr( &aname ), str_cstr( &aval ) ); } str_empty( &aname ); str_empty( &aval ); } str_free( &aname ); str_free( &aval ); return p; } /* * xml_processtag * * start right after '<' * * * XML_COMMENT * XML_DESCRIPTOR * XML_OPEN * XML_CLOSE * XML_OPENCLOSE */ static char * xml_processtag( char *p, xml *node, int *type ) { str tag; str_init( &tag ); if ( *p=='!' ) { *type = XML_COMMENT; while ( *p && *p!='>' ) p++; } else if ( *p=='?' ) { *type = XML_DESCRIPTOR; p++; /* skip '?' */ while ( *p && !strchr( " \t", *p ) && !xml_is_terminator(p,type) ) str_addchar( &tag, *p++ ); if ( *p==' ' || *p=='\t' ) p = xml_processattrib( p, node, type ); } else if ( *p=='/' ) { *type = XML_CLOSE; while ( *p && !strchr( " \t", *p ) && !xml_is_terminator(p,type) ) str_addchar( &tag, *p++ ); if ( *p==' ' || *p=='\t' ) p = xml_processattrib( p, node, type ); } else { *type = XML_OPEN; while ( *p && !strchr( " \t", *p ) && !xml_is_terminator(p,type) ) str_addchar( &tag, *p++ ); if ( *p==' ' || *p=='\t' ) p = xml_processattrib( p, node, type ); } while ( *p && *p!='>' ) p++; if ( *p=='>' ) p++; str_strcpy( &(node->tag), &tag ); str_free( &tag ); return p; } static void xml_appendnode( xml *onode, xml *nnode ) { if ( !onode->down ) onode->down = nnode; else { xml *p = onode->down; while ( p->next ) p = p->next; p->next = nnode; } } char * xml_parse( char *p, xml *onode ) { int type, is_style = 0; xml *nnode; while ( *p ) { /* retain white space for